Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2013-02-15, 14:53


arkopi







Wiek: 31
Na forum: 5579 dni
Posty: 177

Piwa: 60

Respekt: 50

Ostrzeżeń: 20%
Witam.Posiadam w mapie system stacji benzynowych i mam problem i? po wpisaniu /stacja i wybraniu tankuj pisze tankowanie i na tym si? ko?czy blokuje pojazd i nic nie mo?na dokona?.

Kodzik:



Kod:

if(strcmp(cmdtext,"/stacja",true)==0)
{
if(IsPlayerConnected(playerid))
{
if(Stacje(playerid))
{
ShowPlayerDialog(playerid, 14567, DIALOG_STYLE_LIST, "Stacja paliw", "Tankuj paliwo\nKup buty\nKup bielizne\nKup hplecak\nOlej oliwa z oliwy\nmocny full\nDo?adowanie ..\nStan konta ..", "Wybierz", "Anuluj");
}
return 1;
}
return 0;
}


if(dialogid == 14567 && response)
{
switch(listitem)
{
case 0:
{
if(GetPlayerMoney(playerid) <= 519)
{
SendClientMessage(playerid,COLOR_LIGHTRED,"Nie masz tyle kasy!");
return 1;
}
if(IsPlayerConnected(playerid))
{
GameTextForPlayer(playerid, "~h~~y~Tankowanie...", 2000, 6);
SetTimerEx("Tankowanie", 100, 0, "d", playerid);
TogglePlayerControllable(playerid, 0);
}
}


case 1:
{
SendClientMessage(playerid, GREEN, "Kupi?e? buty. (koszt 4$)");
GivePlayerMoney(playerid, -4);
new Float:hp;
GetPlayerHealth(playerid, hp);
SetPlayerHealth(playerid, hp+10.0);
return 1;
}
case 2:
{
SendClientMessage(playerid, GREEN, "Kupi?e? bielizne. (koszt 6$)");
GivePlayerMoney(playerid, -6);
new Float:hp;
GetPlayerHealth(playerid, hp);
SetPlayerHealth(playerid, hp+20.0);
return 1;
}
case 3:
{
SendClientMessage(playerid, GREEN, "Kupi?e? plecak. (koszt 6$)");
GivePlayerMoney(playerid, -6);
new Float:hp;
GetPlayerHealth(playerid, hp);
SetPlayerHealth(playerid, hp+20.0);
return 1;
}
case 4:
{
SendClientMessage(playerid, GREEN, "Olej oliwe z oliwy. (koszt 50$)");
GivePlayerMoney(playerid, -50);
SetVehicleHealth(GetPlayerVehicleID(playerid), 1000.0);
}
case 5:
{
SendClientMessage(playerid, GREEN, "Kupi?e? mocny full. (koszt 20$)");
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_BEER);
GivePlayerMoney(playerid, -20);
}
}


return 1;
}


forward Tankowanie(playerid);
public Tankowanie(playerid)
{
new VID;
new FillUpz;
new string[256];
VID = GetPlayerVehicleID(playerid);
FillUpz = GasZwykly - Gas[VID];
if(GetPlayerMoney(playerid) >= FillUpz+4)
{
Gas[VID] += FillUpz;
FillUpz = FillUpz * 1;
format(string,sizeof(string)," Zatankowa?e? %d Litry za %d $\nCena za litr paliwa to 4$\nSzeroko?ci! ",FillUpz,FillUpz*3);
ShowPlayerDialog(playerid, 9875, DIALOG_STYLE_MSGBOX, "Stacja Paliw", string, "OK", "");
GivePlayerMoney(playerid,-FillUpz*4);
TogglePlayerControllable(playerid, 1);
}
return 1;
}



Jeszcze mam stacje ale chyba nie ma potrzeby wstawia?.Po jakims czasie powinno pisa? ?e zatankowano i powinno odblokowa? pojazd ale tak si? nie dzieje.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-02-15, 16:15


Quis

Wszechwiedzący






Wiek: 31
Na forum: 5147 dni
Posty: 464
Nick w MP: Quis

Piwa: 1110

Respekt: 325
Respekt: 325Respekt: 325Respekt: 325

Kod:

if(GetPlayerMoney(playerid) >= FillUpz+4)

Ten warunek nie zostaje spe?niony, i gracz nie zostaje odmro?ony.
Przed returnem w funkcji "Tankowanie" dodaj:
Kod:

else {
SendClientMessage(playerid,COLOR_LIGHTRED,"Nie masz tyle kasy!");
TogglePlayerControllable(playerid, true);
}

I powinno by? dobrze.

Swoj? drog? nie wiem po co timer na 100ms (0,1 sekundy), nie lepiej u?y? kodu bezpo?rednio, bez timera i funkcji?

Pozdrawiam

Postaw piwo autorowi tego posta
 

 
Tagi: tankuj
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN » [INNE] Tankuj Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku