Wysłany: 2013-02-15, 14:53
arkopi
Wiek: 31 Na forum: 5579 dni Posty: 177
Piwa : 60
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.
Wysłany: 2013-02-15, 16:15
Quis
Wszechwiedzący
Wiek: 31 Na forum: 5146 dni Posty: 464
Nick w MP: Quis
Piwa : 1110
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
Tagi: tankuj
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: