Wysłany: 2015-02-04, 10:22
Avira15
Wiek: 33 Na forum: 4921 dni Posty: 34
Witam.
Probuje zrobic mandat w gui tz, policjant wystawia mandat /mandat id kwota exp czas
i dla gracza pokazuje gui czy ma zaplacic kase i exp czy wybrac czas paki, lecz cos nie dziala po kliknieciu przyjmuje nic nie zabiera, a po kliknieciu wiezienie zawsze daje wiezienie na 0 min, jakby nie pobieralo wartsci... Prosze, oto moj kod:
Kod: CMD:mandat(playerid, params[])
{
new idm, kasam, score, czasm;
if(gTeam[playerid] == TEAM_POLICJA)
{
if(sscanf(params, "dddd[64]", idm, kasam, score, czasm))
return SendClientMessage(playerid, COLOR_WHITE, "wpisz: /mandat [id] [kasa] [exp] [wiezienie]");
if(!IsPlayerConnected(idm))
return SendClientMessage(playerid, COLOR_RED, "Zle id!");
new dis;
new player;
dis = GetDistanceBetweenPlayers(playerid, player);
if(dis >= 8)
return SendClientMessage(playerid, CZERWONY, "Ten gracz jest zbyt daleko od Ciebie!");
else
{
new ss[256];
format(ss, sizeof(ss), "Policjant %s wystawil mandat w wysokosci %d$ i %d exp\nPrzyjmujesz mandat czy wybierasz wiezienie na %d min ?", PlayerName(playerid), kasam, score, czasm);
ShowPlayerDialog(idm, 1005, DIALOG_STYLE_MSGBOX, "Mandat",ss,"Przyjmuje","Wiezienie");
new id;
ZapiszGracza(id);
}
}
else
{
SendClientMessage(playerid, COLOR_RED, "Nie masz dostepu do tej komendy");
}
return 1;
}
oraz dialogid:
Kod: if(dialogid == 1005)//lalka
{
if(response)
{
new kasam, idm, score;
if(GetPlayerMoney(idm) < kasam)
{
SendClientMessage(playerid, COLOR_WHITE, "Klient nie ma tyle pieniedzy!");
SendClientMessage(idm, COLOR_WHITE, "Nie masz tyle kasy!");
}
if(Gracz[playerid][exp] < score)
{
SendClientMessage(playerid, COLOR_WHITE, "Klient nie ma tyle exp!");
SendClientMessage(idm, COLOR_WHITE, "Nie masz tyle expa!");
}
else
{
Gracz[idm][exp] = Gracz[idm][exp] - score;
GivePlayerMoney(idm, -kasam);
new s[256];
format(s, sizeof(s), "{999999}Gracz {FFFFFF}%s {999999}zaplacil mandat", PlayerName(idm));
SendClientMessageToAll(COLOR_WHITE, s);
SendClientMessage(idm, COLOR_WHITE, "Zaplaciles mandat!");
}
}
else if(!response)
{
new czasm, idm;
SetPlayerPos(idm,197.7029,175.8801,1003.0234);
SetPlayerInterior(idm, 3);
new s[256];
format(s, sizeof(s), "{999999}Gracz {FFFFFF}%s {999999}zostal aresztowany przez {FFFFFF}%s {999999}na: {00FF00}%d minut", PlayerName(idm), PlayerName(playerid), czasm);
SendClientMessage(playerid, COLOR_WHITE, "Gracz wybral wiezienie");
format(s, sizeof(s), "Wybrales wiezienie na %d minut", czasm);
SetTimerEx("Unaresztuj", czasm*60000, 0, "d", idm);
}
}
Macie jakis pomysl ? bez GUI all ladnie smiga.
Z gory dzieki
Wysłany: 2015-02-04, 10:26
Iggy
#admin
Wiek: 26 Na forum: 4596 dni Posty: 3469
Nick w MP: Iggy
Piwa : 1716
Wysłany: 2015-02-04, 20:19
zielo511
Wiek: 29 Na forum: 4910 dni Posty: 24
Nick w MP: san
Piwa : 2
Cytat:
new kasam, idm, score;
new czasm, idm;
Te newy co porobi?e? w dialogach maj? domy?ln? warto?? == 0 bo je na nowo tworzysz najlepiej zr?b w cmd :
Kod: SetPVarInt(player, "Money", kasam);
SetPVarInt(player, "Score", score);
SetPVarInt(player, "Time", czasm);
w dialogach daj tam gdzie masz np odejmowanie kasy GivePlayerMoney(playerid,-GetPVarInt(playerid, "Money"));
a potem je?li chcesz DeletePVar(playerid, "Money"); ale to chyba b?dzie zb?dne
Wysłany: 2015-02-04, 20:54
kazami
Pawner/PTG
Wiek: 27 Na forum: 4596 dni Posty: 405
Nick w MP: adi888
Piwa : 43
poprawnie powinno by? tak dam przyk?ad:
new kasa = strval(params);
Tagi: mandat :: gui
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: