Wysłany: 2017-06-22, 12:45
Grace
Kierowca Pralki
Wiek: 24 Na forum: 3436 dni Posty: 168
Nick w MP: Grace
Piwa : 1031
Cze??, mam pewien problem. Ot?? chcia?bym z bazy dany pobra? dwa floaty, a mianowicie 'glod' i 'sen'.
Chc? to zapisa? w textdrawie, robi? tak:
Pawn stock PlayerLogin ( playerid )
{
CameraMoverTimer [ playerid ] = SetTimerEx ( "RuchKamery" , 100 , false , "i" , playerid );
format ( query , sizeof query , "SELECT * FROM members WHERE nick = '%s'" , PlayerName ( playerid ));
mysql_query ( query );
mysql_store_result ();
if( mysql_fetch_row ( data , "|" ))
{
sscanf ( data , "p<|>ds[24]s[16]ds[10]dddfffdddff" ,
PlayerCache [ playerid ][ pUID ],
PlayerCache [ playerid ][ pNick ],
PlayerCache [ playerid ][ pHaslo ],
PlayerCache [ playerid ][ pAdminLVL ],
PlayerCache [ playerid ][ pAdmin_Text ],
PlayerCache [ playerid ][ pScore ],
PlayerCache [ playerid ][ pMoney ],
PlayerCache [ playerid ][ pVip_Points ],
PlayerCache [ playerid ][ pPosX ],
PlayerCache [ playerid ][ pPosY ],
PlayerCache [ playerid ][ pPosZ ],
PlayerCache [ playerid ][ pSkin ],
PlayerCache [ playerid ][ pEq ],
PlayerCache [ playerid ][ pGun ],
PlayerCache [ playerid ][ pGlod ],
PlayerCache [ playerid ][ pSen ]);
format ( str , sizeof ( str ), "\c{FFFFFF}Witaj {FFCC33}%s {FFFFFF}na serwerze Homeland {ff0000}Trucking 2017!\n\c{FFFFFF}Twoje konto istnieje w naszej bazie danych, wi?c mo?esz si? zalogowa?!\n\cZatem wpisz swoje has?o aby to uczyni?!" , PlayerName ( playerid ));
ShowPlayerDialog ( playerid , D_LOGIN , DIALOG_STYLE_PASSWORD , "Logowanie do konta" , str , "Zaloguj" , "Anuluj" );
}
else
{
format ( str , sizeof ( str ), "\c{FFFFFF}Witaj {FFCC33}%s {FFFFFF}na serwerze Homeland {ff0000}Trucking 2017!\n\c{FFFFFF}Niestety, ale twojego konta nie odnaleziono w bazie danych!\n\cWpisz swoje haslo, aby sie zarejestrowac!" , PlayerName ( playerid ));
ShowPlayerDialog ( playerid , D_REGISTER , DIALOG_STYLE_PASSWORD , "Logowanie do konta" , str , "Zaloguj" , "Anuluj" );
}
mysql_free_result ();
return 1 ;
}
Tak oto pobieram sobie narazie dane.
Gdy gracz sie zespawnuje, pokazuje mu textdrawy:
Pawn public OnPlayerSpawn ( playerid )
{
SetPlayerSkin ( playerid , PlayerCache [ playerid ][ pSkin ]);
GivePlayerWeapon ( playerid , PlayerCache [ playerid ][ pGun ], 999999 );
TextDrawShowForPlayer ( playerid , Potrzeby [ playerid ]);
TextDrawShowForPlayer ( playerid , Time ), TextDrawShowForPlayer ( playerid , Date );
SetTimerEx ( "UpdatePotrzeby" , 100 , false , "i" , playerid );
return 1 ;
}
Przy czym po 100 ms updatetuje potrzeby raz, bo w OnPlayerConnect mam ustawione:
Pawn SetTimerEx ( "UpdatePotrzeby" , 60000 , true , "i" , playerid );
A 'UpdatePotrzeby' wyglada tak:
Pawn forward UpdatePotrzeby ( playerid );
public UpdatePotrzeby ( playerid )
{
PlayerCache [ playerid ][ pGlod ] -= 1 ;
PlayerCache [ playerid ][ pSen ] -= 1 ;
new glodstring [ 50 ], senstring [ 50 ];
if( PlayerCache [ playerid ][ pGlod ] >= 85 )
{
format ( glodstring , sizeof ( glodstring ), "~y~Glod: ~h~~g~%0.1f" , PlayerCache [ playerid ][ pGlod ]);
}
if( PlayerCache [ playerid ][ pGlod ] >= 50 )
{
format ( glodstring , sizeof ( glodstring ), "~y~Glod: ~h~~y~%0.1f" , PlayerCache [ playerid ][ pGlod ]);
}
if( PlayerCache [ playerid ][ pGlod ] >= 20 )
{
format ( glodstring , sizeof ( glodstring ), "~y~Glod: ~h~~b~%0.1f" , PlayerCache [ playerid ][ pGlod ]);
}
if( PlayerCache [ playerid ][ pGlod ] <= 19 )
{
format ( glodstring , sizeof ( glodstring ), "~y~Glod: ~h~~r~%0.1f" , PlayerCache [ playerid ][ pGlod ]);
}
// ===================================================
if( PlayerCache [ playerid ][ pSen ] >= 85 )
{
format ( senstring , sizeof ( senstring ), "~y~Sen: ~h~~g~%0.1f" , PlayerCache [ playerid ][ pSen ]);
}
if( PlayerCache [ playerid ][ pSen ] >= 50 )
{
format ( senstring , sizeof ( senstring ), "~y~Sen: ~h~~y~%0.1f" , PlayerCache [ playerid ][ pSen ]);
}
if( PlayerCache [ playerid ][ pSen ] >= 20 )
{
format ( senstring , sizeof ( senstring ), "~y~Sen: ~h~~b~%0.1f" , PlayerCache [ playerid ][ pSen ]);
}
if( PlayerCache [ playerid ][ pSen ] <= 19 )
{
format ( senstring , sizeof ( senstring ), "~y~Sen: ~h~~r%0.1f" , PlayerCache [ playerid ][ pSen ]);
}
format ( str , sizeof ( str ), "~w~Twoje ~b~Potrzeby~n~%s~n~%s" , glodstring , senstring );
TextDrawSetString ( Potrzeby [ playerid ], str );
}
Problem lezy w tym, ze w textdrawie zamiast normalnej liczby, jest przed przecinkiem 10 cyfr.
Wysłany: 2017-06-22, 15:25
Pr0f3ssi0n4LisT
Wiek: 25 Na forum: 6845 dni Posty: 120
Piwa : 3653
1. Jak robisz SELECT to dawaj na koncu LIMIT 1 bo raczej nie masz wiecej takich samych nickow w tabeli members niz ten jeden.
2. Glod i Sen sa w enumie jako Float ?
3. SetTimerEx("UpdatePotrzeby", 60000, true, "i", playerid); a gdzie masz KillTimer? przeciez za kazdym razem gdy wejdzie gracz na serwer jest tworzony kolejny dzialajacy timer co minute
Wysłany: 2017-06-22, 16:21
Grace
Kierowca Pralki
Wiek: 24 Na forum: 3436 dni Posty: 168
Nick w MP: Grace
Piwa : 1031
Pr0f3ssi0n4LisT , w enumie by?y te opcje, KillTimer by? w OnPlayerDisconnect.
Zmieniled to na inta i dziala normalnie ...
Wysłany: 2017-06-23, 16:47
Virex_PL
Głos rozsądku
Wiek: 26 Na forum: 4187 dni Posty: 170
Nick w MP: Virex_PL
Piwa : 31
W bazie danych w kolumnie masz ustawione float?
Tagi: floaty :: bazy
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: