[Pomoc] Oko ticketa


Započeo Markoni990, Septembar 11, 2014, 12:17:35 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Skripta koju koristim:BE
Detaljan opis problema:Interesuje me kako odraditi kad kuca /ticked id razlog cena da ne placa preko /accept ticket nego da ide u pd i kuca /payticket i da plati kaznu
Dio skripte:
if(strcmp(cmd, "/ticket", true) == 0 || strcmp(cmd, "/kazna", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
	    {
	        //if(gTeam[playerid] != 2)
        	if(PlayerInfo[playerid][pLeader]==20)
			{
			    SendClientMessage(playerid, COLOR_GREY, "   Niste Saobracajac!");
			    return 1;
			}
	        if(OnDuty[playerid] != 1 && PlayerInfo[playerid][pMember] == 20)
			{
			    SendClientMessage(playerid, COLOR_GREY, "   Niste na Duznosti!");
			    return 1;
			}
	    	tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_GRAD2, "Koriscenje: /kazna [ID Igraca/Dio Imena] [Cena] [razlog]");
				return 1;
			}
			giveplayerid = ReturnUser(tmp);
            tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_GRAD2, "Koriscenje: /ticket [ID Igraca/Dio Imena] [Cena] [razlog]");
				return 1;
			}
			moneys = strval(tmp);
			if(moneys < 1 || moneys > 2001) { SendClientMessage(playerid, COLOR_GREY, "   Cena kazne ne moze biti ispod 1 ni preko 2000 !"); return 1; }
			if(IsPlayerConnected(giveplayerid))
			{
			    if(giveplayerid != INVALID_PLAYER_ID)
			    {
			        if (ProxDetectorS(8.0, playerid, giveplayerid))
					{
					    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
						GetPlayerName(playerid, sendername, sizeof(sendername));
						new length = strlen(cmdtext);
						while ((idx < length) && (cmdtext[idx] <= ' '))
						{
							idx++;
						}
						new offset = idx;
						new result[64];
						while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
						{
							result[idx - offset] = cmdtext[idx];
							idx++;
						}
						result[idx - offset] = EOS;
						if(!strlen(result))
						{
							SendClientMessage(playerid, COLOR_GRAD2, "Koriscenje: /ticket [ID Igraca/Dio Imena] [Cena] [razlog]");
							return 1;
						}
						if (GetPlayerMoney(giveplayerid) < moneys)
						{
							SendClientMessage(playerid, COLOR_WHITE, "* Taj igrac nema dovoljno novca da plati kaznu.");
							return 1;
						}
						format(string, sizeof(string), "* Napisali ste %s-u kaznu od $%d, razlog: %s", giveplayer, moneys, (result));
						SendClientMessage(playerid, COLOR_WHITE, string);
						format(string, sizeof(string), "* Saobracajac %s vam je napisao kaznu od $%d, razlog: %s", sendername, moneys, (result));
						SendClientMessage(giveplayerid, COLOR_WHITE, string);
						SendClientMessage(giveplayerid, COLOR_WHITE, "* Kucajte /accept ticket, da je prihvatite.");
						SendClientMessage(giveplayerid, COLOR_WHITE, "* Ako ne prihvatite kaznu, ici cete u zatvor!");
						TicketOffer[giveplayerid] = playerid;
						TicketMoney[giveplayerid] = moneys;
						return 1;
					}
					else
					{
						SendClientMessage(playerid, COLOR_GREY, "   Taj igrac nije blizu vas !");
						return 1;
					}
				}
			}
			else
			{
			    SendClientMessage(playerid, COLOR_GREY, "   Igrac je offline !");
			    return 1;
			}
		}
		return 1;
	}
  return 1;//SendClientMessage(playerid,  COLOR_LIGHTRED, "{C77D87}[GRESKA]: {C0C0C0}Komanda koju ste upisali ne postoji kucajte {C77D87}/help {C0C0C0}da vidite listu komandi!");
}

Neke slike/video za lakse dobivanje pomoci(neobavezno):

Samo uradis variable i sccanf . Znaci kreiras variablu postavljas mu na 0 na connectu i onda povecavas variablu kada uradi prekrsaj odnonsno u komandi mu stavis toj tiket vrijednost neku . U /payticket provjeravas variablu i to je to.
-      @ Mirzerian_06     -


You wanna play a game? Alright.

Brt sve si mi reko, daj komandu kako ide

Citat: Markoni990 poslato Septembar 11, 2014, 14:35:47 POSLE PODNE
Brt sve si mi reko, daj komandu kako ide

Znaci evo ti primjer
new Saobracajnakazna[MAX_PLAYERS];
pod register igraca
Saobracajnakazna[playerid] = 0;
u komandi kazna
CMD:kazna(playerid,params[])
{
 if(!IsPlayerConnected(playerid)) return SCM(playerid, -1,"Nisi se konektovao.");
 new razlog[24],novac,ID;
 if(sscanf(params,"uis[24]",ID,novac,razlog)) return SCM(playerid, -1,"Koristi /kazna ID/dio imena | Novac Kazna | Razlog");
 new string[128];
 new pare = novac * 1000;
 format(string,sizeof(string),"Dobio si kaznu od %s , te trebas platiti %d. | Razlog: %s",GetName(playerid),pare,razlog);
 SCM(ID,-1,string);
 Saobacajnakazna[ID] = novac;
 return 1;
}
CMD:payticket(playerid,params[])
{
 if(Saobracajnakazna[playerid] == 0) return SCM(playerid,-1,"Ti ne trebas platiti kaznu.");
 new pare = Saobracajnakazna[playerid] * 1000;
 if(GetPlayerMoney(playerid) < pare) return SCM(playerid ,-1,"Nemas dovoljno.");
 GivePlayerMoney(playerid, -pare);
 return 1;
}


Na brzinu sam iskuco tako da....

-      @ Mirzerian_06     -


You wanna play a game? Alright.

Citat: Amar Tinjak poslato Septembar 11, 2014, 18:02:38 POSLE PODNE
Citat: Markoni990 poslato Septembar 11, 2014, 14:35:47 POSLE PODNE
Brt sve si mi reko, daj komandu kako ide

Znaci evo ti primjer
new Saobracajnakazna[MAX_PLAYERS];
pod register igraca
Saobracajnakazna[playerid] = 0;
u komandi kazna
CMD:kazna(playerid,params[])
{
 if(!IsPlayerConnected(playerid)) return SCM(playerid, -1,"Nisi se konektovao.");
 new razlog[24],novac,ID;
 if(sscanf(params,"uis[24]",ID,novac,razlog)) return SCM(playerid, -1,"Koristi /kazna ID/dio imena | Novac Kazna | Razlog");
 new string[128];
 new pare = novac * 1000;
 format(string,sizeof(string),"Dobio si kaznu od %s , te trebas platiti %d. | Razlog: %s",GetName(playerid),pare,razlog);
 SCM(ID,-1,string);
 Saobacajnakazna[ID] = novac;
 return 1;
}
CMD:payticket(playerid,params[])
{
 if(Saobracajnakazna[playerid] == 0) return SCM(playerid,-1,"Ti ne trebas platiti kaznu.");
 new pare = Saobracajnakazna[playerid] * 1000;
 if(GetPlayerMoney(playerid) < pare) return SCM(playerid ,-1,"Nemas dovoljno.");
 GivePlayerMoney(playerid, -pare);
 return 1;
}


Na brzinu sam iskuco tako da....
Po tom tvom ako igrac dobije tickete samo ode relog i vrate mu se na 0.

Citat: Amar Tinjak poslato Septembar 11, 2014, 18:02:38 POSLE PODNE
Citat: Markoni990 poslato Septembar 11, 2014, 14:35:47 POSLE PODNE
Brt sve si mi reko, daj komandu kako ide

Znaci evo ti primjer
new Saobracajnakazna[MAX_PLAYERS];
pod register igraca
Saobracajnakazna[playerid] = 0;
u komandi kazna
CMD:kazna(playerid,params[])
{
 if(!IsPlayerConnected(playerid)) return SCM(playerid, -1,"Nisi se konektovao.");
 new razlog[24],novac,ID;
 if(sscanf(params,"uis[24]",ID,novac,razlog)) return SCM(playerid, -1,"Koristi /kazna ID/dio imena | Novac Kazna | Razlog");
 new string[128];
 new pare = novac * 1000;
 format(string,sizeof(string),"Dobio si kaznu od %s , te trebas platiti %d. | Razlog: %s",GetName(playerid),pare,razlog);
 SCM(ID,-1,string);
 Saobacajnakazna[ID] = novac;
 return 1;
}
CMD:payticket(playerid,params[])
{
 if(Saobracajnakazna[playerid] == 0) return SCM(playerid,-1,"Ti ne trebas platiti kaznu.");
 new pare = Saobracajnakazna[playerid] * 1000;
 if(GetPlayerMoney(playerid) < pare) return SCM(playerid ,-1,"Nemas dovoljno.");
 GivePlayerMoney(playerid, -pare);
 return 1;
}


Na brzinu sam iskuco tako da....



Ovo sam mu uradio u igri sve medjutim moze i preko pvar da se uradi ako oce da mu sacuva no nije to naveo.
-      @ Mirzerian_06     -


You wanna play a game? Alright.

Denis_Lapi

*

Balkan SA:MP Web Designer

Nije Amarova duznost da mu kreira sistem za spremanje.
Inace izbacio sam ti neke delove koji nisu potrebni u Amarovoj komandi

CMD:kazna(playerid,params[])
{
 new razlog[24],novac,ID;
 if(sscanf(params,"uis[24]",ID,novac,razlog)) return SCM(playerid, -1,"Koristi /kazna ID/dio imena | Novac Kazna | Razlog");
 new string[128];
 new pare = novac * 1000;
 format(string,sizeof(string),"Dobio si kaznu od %s , te trebas platiti %d. | Razlog: %s",GetName(playerid),pare,razlog);
 SCM(ID,-1,string);
 Saobacajnakazna[ID] = novac;
 return 1;
}
CMD:payticket(playerid,params[])
{
 if(IsPlayerInRangeOfPoint(playerid,7.0, x, y, z)) // Postavi koordinate policije tj. one koje zelis
 {
 if(Saobracajnakazna[playerid] == 0) return SCM(playerid,-1,"Ti ne trebas platiti kaznu.");
 new pare = Saobracajnakazna[playerid] * 1000;
 if(GetPlayerMoney(playerid) < pare) return SCM(playerid ,-1,"Nemas dovoljno.");
 GivePlayerMoney(playerid, -pare);
 }
 else return SCM(playerid,-1,"Niste u policiji, ne mozete platiti kaznu");
 return 1;
}


Ovo je sad ono sto si ti trazio..

[FS] Bank Sistem
[TuT] Array Sistem (Napredna)


"Pa krenite na mene i provesce te se super ko kapetan Kuka kada levom brise dupe"

www.denis-lapi.com