[POMOC]relog


Započeo Sarkenzo, Jul 29, 2014, 20:50:10 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Skripta koju koristim:GTARP
Detaljan opis problema:Napravio sam kada igrac ima wanted level, i ode relog da se stvori u zatvoru na 1600 sekundi.Al problem je sto zatvara i kada igrac nema wanted level
Dio skripte:
Neke slike/video za lakse dobivanje pomoci(neobavezno)://
:if(WantedLevel(playerid) > 0)
{
      PlayerInfo[playerid][pJailedLTA] = 1;
      PlayerInfo[playerid][pLTATime] = 1600;
	  WantedLevel[playerid] = 0;
	  WantedPoints[playerid] = 0;
}

		if(PlayerInfo[playerid][pJailedLTA] == 1)
		{
		    SetPlayerInterior(playerid, 5);
		    PlayerInfo[playerid][pInt] = 5;
			SetPlayerPos(playerid,322.197998,302.497985,999.148437);
			SendClientMessage(playerid, COLOR_LIGHTRED, "Zato sto ste otisli relog sa wanted level-om, kaznjeni ste na 1600 sekundi zatvora!");
			return 1;
		}
Poslednja Izmena: Jul 29, 2014, 20:51:01 POSLE PODNE od Sarkenzo

pa sigurno je problem u proveri postojanosti wanted levela tog igraca..
69

E kako to da proverim kazi koje kodove da ti posaljem

daj stock WantedLevel ili sta vec.
69

Nemam stock
Al imam ovo
public SetPlayerCriminal(playerid,declare,reason[])
{//example: SetPlayerCriminal(playerid,255, "Stealing A Police Vehicle");
	if(IsPlayerConnected(playerid))
	{
	    PlayerInfo[playerid][pCrimes] += 1;
	    new points = WantedPoints[playerid];
		new turned[MAX_PLAYER_NAME];
		new turner[MAX_PLAYER_NAME];
		new turnmes[128];
		new wantedmes[128];
		new wlevel;
		strmid(PlayerCrime[playerid][pAccusedof], reason, 0, strlen(reason), 255);
		GetPlayerName(playerid, turned, sizeof(turned));
		if (declare == 255)
		{
			format(turner, sizeof(turner), "Nepoznat");
			strmid(PlayerCrime[playerid][pVictim], turner, 0, strlen(turner), 255);
		}
		else
		{
		    if(IsPlayerConnected(declare))
		    {
				GetPlayerName(declare, turner, sizeof(turner));
				strmid(PlayerCrime[playerid][pVictim], turner, 0, strlen(turner), 255);
				strmid(PlayerCrime[declare][pBplayer], turned, 0, strlen(turned), 255);
				strmid(PlayerCrime[declare][pAccusing], reason, 0, strlen(reason), 255);
			}
		}
		format(turnmes, sizeof(turnmes), "Pocinili ste zlocin: %s. Reporter: %s.",reason,turner);
		SendClientMessage(playerid, COLOR_DARKNICERED, turnmes);
		if(points > 0)
		{
		    new yesno;
			if(points == 3) { if(WantedLevel[playerid] != 1) { WantedLevel[playerid] = 1; wlevel = 1; yesno = 1; } }
			else if(points >= 4 && points <= 5) { if(WantedLevel[playerid] != 2) { WantedLevel[playerid] = 2; wlevel = 2; yesno = 1; } }
			else if(points >= 6 && points <= 7) { if(WantedLevel[playerid] != 3) { WantedLevel[playerid] = 3; wlevel = 3; yesno = 1; } }
			else if(points >= 8 && points <= 9) { if(WantedLevel[playerid] != 4) { WantedLevel[playerid] = 4; wlevel = 4; yesno = 1; } }
			else if(points >= 10 && points <= 11) { if(WantedLevel[playerid] != 5) { WantedLevel[playerid] = 5; wlevel = 5; yesno = 1; } }
			else if(points >= 12 && points <= 13) { if(WantedLevel[playerid] != 6) { WantedLevel[playerid] = 6; wlevel = 6; yesno = 1; } }
			else if(points >= 14) { if(WantedLevel[playerid] != 10) { WantedLevel[playerid] = 10; wlevel = 10; yesno = 1; } }
			if(WantedLevel[playerid] >= 1) { if(gTeam[playerid] == 3) { gTeam[playerid] = 4; } }
			if(yesno)
			{
				format(wantedmes, sizeof(wantedmes), "Trenutni wanted level: %d", wlevel);
				SendClientMessage(playerid, COLOR_YELLOW, wantedmes);
				for(new i = 0; i < MAX_PLAYERS; i++)
				{
					if(IsPlayerConnected(i))
					{
					    if(PlayerInfo[i][pMember] == 1||PlayerInfo[i][pLeader] == 1)
					    {
							format(cbjstore, sizeof(turnmes), "HQ: Svim jedinicama APB: Reporter: %s",turner);
							SendClientMessage(i, TEAM_BLUE_COLOR, cbjstore);
							format(cbjstore, sizeof(turnmes), "HQ: Zlocin: %s, Osumnjiceni: %s",reason,turned);
							SendClientMessage(i, TEAM_BLUE_COLOR, cbjstore);
						}
					}
				}
			}
		}
	}//not connected
}
//---------------------------------------------------------

public SetPlayerCriminalEx(playerid,declare,reason[])
{//example: SetPlayerCriminal(playerid,255, "Stealing A Police Vehicle");
	if(IsPlayerConnected(playerid))
	{
	    PlayerInfo[playerid][pCrimes] += 1;
	    new points = WantedPoints[playerid];
		new turned[MAX_PLAYER_NAME];
		new turner[MAX_PLAYER_NAME];
		new turnmes[128];
		new wantedmes[128];
		new wlevel;
		strmid(PlayerCrime[playerid][pAccusedof], reason, 0, strlen(reason), 255);
		GetPlayerName(playerid, turned, sizeof(turned));
		if (declare == 255)
		{
			format(turner, sizeof(turner), "Nepoznat");
			strmid(PlayerCrime[playerid][pVictim], turner, 0, strlen(turner), 255);
		}
		else
		{
		    if(IsPlayerConnected(declare))
		    {
				GetPlayerName(declare, turner, sizeof(turner));
				strmid(PlayerCrime[playerid][pVictim], turner, 0, strlen(turner), 255);
				strmid(PlayerCrime[declare][pBplayer], turned, 0, strlen(turned), 255);
				strmid(PlayerCrime[declare][pAccusing], reason, 0, strlen(reason), 255);
			}
		}
		format(turnmes, sizeof(turnmes), "Pocinili ste zlocin: %s. Reporter: %s.",reason,turner);
		//SendClientMessage(playerid, COLOR_DARKNICERED, turnmes);
		if(points > 0)
		{
		    new yesno;
			if(points == 3) { if(WantedLevel[playerid] != 1) { WantedLevel[playerid] = 1; wlevel = 1; yesno = 1; } }
			else if(points >= 4 && points <= 5) { if(WantedLevel[playerid] != 2) { WantedLevel[playerid] = 2; wlevel = 2; yesno = 1; } }
			else if(points >= 6 && points <= 7) { if(WantedLevel[playerid] != 3) { WantedLevel[playerid] = 3; wlevel = 3; yesno = 1; } }
			else if(points >= 8 && points <= 9) { if(WantedLevel[playerid] != 4) { WantedLevel[playerid] = 4; wlevel = 4; yesno = 1; } }
			else if(points >= 10 && points <= 11) { if(WantedLevel[playerid] != 5) { WantedLevel[playerid] = 5; wlevel = 5; yesno = 1; } }
			else if(points >= 12 && points <= 13) { if(WantedLevel[playerid] != 6) { WantedLevel[playerid] = 6; wlevel = 6; yesno = 1; } }
			else if(points >= 14) { if(WantedLevel[playerid] != 10) { WantedLevel[playerid] = 10; wlevel = 10; yesno = 1; } }
			if(WantedLevel[playerid] >= 1) { if(gTeam[playerid] == 3) { gTeam[playerid] = 4; } }
			if(yesno)
			{
				format(wantedmes, sizeof(wantedmes), "Trenutni wanted level: %d", wlevel);
				SendClientMessage(playerid, COLOR_YELLOW, wantedmes);
				for(new i = 0; i < MAX_PLAYERS; i++)
				{
					if(IsPlayerConnected(i))
					{
					    if(PlayerInfo[i][pMember] == 1||PlayerInfo[i][pLeader] == 1)
					    {
							format(cbjstore, sizeof(turnmes), "HQ: Svim jedinicama APB: Reporter: %s",turner);
							SendClientMessage(i, TEAM_BLUE_COLOR, cbjstore);
							format(cbjstore, sizeof(turnmes), "HQ: Zlocin: %s, Osumnjiceni: %s",reason,turned);
							SendClientMessage(i, TEAM_BLUE_COLOR, cbjstore);
						}
					}
				}
			}
		}
	}//not connected
}
Public OnPlayerDeath
	if(victimteam >= 4)
	{
	    if(IsPlayerConnected(killerid))
	    {
			//new killer[MAX_PLAYER_NAME];
			//GetPlayerName(killerid, killer, sizeof(killer));
			new slice = 100; //$100
			playercash = GetPlayerMoney(playerid);
			if(gTeam[killerid] != 2) { WantedPoints[killerid] += 2; } //+ 2 wanted points
			if(SafeTime[playerid] <= 0)
			{
				if(gTeam[killerid] != gTeam[playerid])
				{
					if(GetPlayerState(killerid) == 1)
					{
						PlayerInfo[killerid][pKills] = PlayerInfo[killerid][pKills] + 2;
					}
					else
					{
						PlayerInfo[killerid][pKills]++;
					}
					PlayerInfo[playerid][pKills]--;
				}
			}
			/*if (strlen(deathreason) > 0)// patch
			{
				if (((gTeam[killerid]) == 1) || ((gTeam[killerid]) == 3 && civnokill) || gTeam[killerid] == gTeam[playerid])//med kill criminal
				{
					format(string, sizeof(string), ".: %s murdered %s. (%s) :.", killer, name, deathreason);
				}
				else
				{
					format(string, sizeof(string), ".: %s murdered %s. (%s) for $%d :.", killer, name, deathreason, slice);
				}

			}
			else
			{
				if (((gTeam[killerid]) == 1) || ((gTeam[killerid]) == 3 && civnokill || gTeam[killerid] == gTeam[playerid]))
				{
					format(string, sizeof(string), ".: %s murdered %s :.", killer, name);
				}
				else
				{
					format(string, sizeof(string), ".: %s murdered %s for $%d :.", killer, name, slice);
				}
			}*/
			if (((gTeam[killerid]) == 1) || ((gTeam[killerid]) == 3 && civnokill) || (gTeam[killerid] == gTeam[playerid] && gTeam[playerid] != 4))
			{
				slice = 0;
			}
			if (((gTeam[killerid]) != 4) && ((gTeam[killerid]) == gTeam[playerid]))//no team kill
			{
				slice = 0;
			}
			if (playercash > 0)
			{
				SafeGivePlayerMoney(playerid, -slice);
			}
			else
			{
				slice = slice+500;
			}
			//SafeGivePlayerMoney(killerid, slice);
			//GameTextForPlayer(playerid, dmessage, 5000, 2);
			PlayerPlaySound(killerid, 1083, 0.0, 0.0, 0.0);
			if (((gTeam[killerid]) == 3) && reason != 49)
			{
				SetPlayerCriminal(killerid,255, "Ubistvo prvog stepena");
			}
			else if (((gTeam[killerid]) == 3) && reason == 49)
			{
				SetPlayerCriminal(killerid,255, "Udara i pokusava da pobegne");
			}
		}
	}
	else if (victimteam == 2)
	{
	    if(IsPlayerConnected(killerid))
	    {
			//new killer[MAX_PLAYER_NAME];
			//GetPlayerName(killerid, killer, sizeof(killer));
			// Cop kill
			PlayerInfo[playerid][pKills]--;
			if (gTeam[killerid] == 2)//cops kill cop
			{
			    PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0);
			   SafeGivePlayerMoney(killerid, -suecost);
		 	    GetPlayerName(killerid, killer2, sizeof(killer2));
		 	    GetPlayerName(playerid, name2, sizeof(name));
			    format(string,128,"PRAVOSUDNI SUD: Milicajac %s je kaznjen od strane pravosudja novcanom kaznom od 1000$ | Razlog: ubistvo svog kolege %s!",killer2,name2,suecost);
			    SendClientMessageToAll(COLOR_LIGHTRED,string);
				WantedPoints[playerid] = 0;
			    WantedLevel[playerid] = 0;
				SafeGivePlayerMoney(playerid, suecost);//+100pays hospital bill
			}
			else
			{
				//format(string,128,".: %s murdered Officer %s (%s) :.",killer,name,deathreason);
		    }
			if (gTeam[killerid] >= 3)
			{
			    WantedPoints[killerid] += 2; //+ 2 wanted points
				if(reason != 49)
				{
					SetPlayerCriminal(killerid,255, "Ubistvo prvog stepena");
				}
				else if (reason == 49)
				{
					SetPlayerCriminal(killerid,255, "Udara i pokusava da pobegne");
				}
			}
			if(gTeam[killerid] >= 5 && SafeTime[playerid] <= 0)
			{
				if(GetPlayerState(killerid) == 1)
				{
					PlayerInfo[killerid][pKills] = PlayerInfo[killerid][pKills]+2;
				}
				else
				{
					PlayerInfo[killerid][pKills]++;
				}
				WantedPoints[killerid]+=2;
			}
			//BroadCast(COLOR_RED, string);
		}
	}
	else if (victimteam == 3)
	{
	    if(IsPlayerConnected(killerid))
	    {
			//new killer[MAX_PLAYER_NAME];
			//GetPlayerName(killerid, killer, sizeof(killer));
			// Civ kill
			if ((gTeam[killerid]) == 2)//cops kill civ
			{
			    if(WantedLevel[playerid] < 1)
			    {
					//format(string,128,".: Officer %s murdered %s (%s) and was sued for $%d :.",killer,name,deathreason,suecost);
			    PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0);
			   SafeGivePlayerMoney(killerid, -suecost);
		 	    GetPlayerName(killerid, killer2, sizeof(killer2));
		 	    GetPlayerName(playerid, name2, sizeof(name));
			    format(string,128,"PRAVOSUDNI SUD: Milicajac %s je kaznjen od strane pravosudja novcanom kaznom | Razlog: ubistvo civila %s bez wanted level-a!",killer2,name2,suecost);
			    SendClientMessageToAll(COLOR_LIGHTRED,string);
				WantedPoints[playerid] = 0;
			    WantedLevel[playerid] = 0;
				SafeGivePlayerMoney(playerid, suecost);//+100pays hospital bill

				}
			}
			else
			{
				//format(string,128,".: %s murdered %s (%s) :.",killer,name,deathreason);
				WantedPoints[killerid] += 2;
		    }
			if (((gTeam[killerid]) >= 3 || (gTeam[killerid]) == 1) && reason != 49)
			{
				SetPlayerCriminal(killerid,255, "Ubistvo prvog stepena");
			}
			else if (((gTeam[killerid]) >= 3 || (gTeam[killerid]) == 1) && reason == 49)
			{
				SetPlayerCriminal(killerid,255, "Udara i pokusava da pobegne");
			}
		    //BroadCast(COLOR_RED, string);
		}
	}
	else if (victimteam == 1)
	{
	    if(IsPlayerConnected(killerid))
	    {
			//new killer[MAX_PLAYER_NAME];
			//GetPlayerName(killerid, killer, sizeof(killer));
			// Civ kill
			if ((gTeam[killerid]) == 2)//cops kill civ
			{
				//format(string,128,".: Officer %s murdered Paramedic %s (%s) and was sued for $%d :.",killer,name,deathreason,suecost);
                PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0);
			   SafeGivePlayerMoney(killerid, -suecost);
		 	    GetPlayerName(killerid, killer2, sizeof(killer2));
		 	    GetPlayerName(playerid, name2, sizeof(name));
			    format(string,128,"PRAVOSUDNI SUD: Oficir %s je kaznjen od strane pravosudja novcanom kaznom od 1000$ | Razlog: ubistvo bolnicara %s!",killer2,name2,suecost);
			    SendClientMessageToAll(COLOR_LIGHTRED,string);
				WantedPoints[playerid] = 0;
			    WantedLevel[playerid] = 0;
				SafeGivePlayerMoney(playerid, suecost);//+100pays hospital bill
			}
			else if ((gTeam[killerid]) == 1)//med kill civ
			{
			    PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0);
			   SafeGivePlayerMoney(killerid, -suecost);
		 	    GetPlayerName(killerid, killer2, sizeof(killer2));
		 	    GetPlayerName(playerid, name2, sizeof(name));
			    format(string,128,"PRAVOSUDNI SUD: Bolnicar %s je kaznjen od strane pravosudja novcanom kaznom od 1000$ | Razlog: ubistvo civila %s!",killer2,name2,suecost);
			    SendClientMessageToAll(COLOR_LIGHTRED,string);
				WantedPoints[playerid] = 0;
			    WantedLevel[playerid] = 0;
				SafeGivePlayerMoney(playerid, suecost);//+100pays hospital bill
			}
			else
			{
				//format(string,128,".: %s murdered %s (%s) :.",killer,name,deathreason);
		    }
			if (((gTeam[killerid]) == 4) && reason != 49)
			{
				SetPlayerCriminal(killerid,255, "Ubistvo prvog stepena");
			}
			else if (((gTeam[killerid]) == 3) && reason == 49)
			{
				SetPlayerCriminal(killerid,255, "Udara i pokusava da pobegne");
			}
		    //BroadCast(COLOR_RED, string);
		}
	}
Poslednja Izmena: Jul 29, 2014, 21:07:56 POSLE PODNE od Sarkenzo

pa sta je ovo
WantedLevel(playerid) ?

jel imas public pod ovim nazivom?
jer ti preko njega proveravas wanted i dajes igracu varijablu za jail.
69

Nemam public pod tim imenom.Da nije mozda nesto do statsa ja sam gore pokusao da definisem pwanted i to al opet nece.I da stavim proveru sa pwanted  if(PlayerInfo[playerid][pWanted] >= 1).Al opet nece zatvara i igrace koji nemaju wl.Kada ukucam /stats ne izbacuje mi koliko imam wanteda.Nego stalno pise 0
Poslednja Izmena: Jul 29, 2014, 21:12:34 POSLE PODNE od Sarkenzo

Citat: Sarkenzo poslato Jul 29, 2014, 21:09:12 POSLE PODNE
Nemam public pod tim imenom
pa gledaj znaci kad igrac ide relog uradis

pVarijabla = wantedleve;

i onda ucitas normalno varijablu i proveris da li je njena vrednost vecao od 0 ako jest postavis ga u jail.
69

Kako to da uradim, nije mi bas jasno

Citat: Sarkenzo poslato Jul 29, 2014, 21:13:47 POSLE PODNE
Kako to da uradim, nije mi bas jasno
pa sta vise da ti objasnim.. sve je jasno kao dan.

u player enum uvrstis pWanted.

i onda kad se igrac disconnecta upises mu u tu varijablu njegov wanted.

i onda ucitas varijablu kao i sve ostale i samo proveris pod OnPlayerpspawn ili gde oces.
69

pWanted,
public onplayerregister
format(var, 64, "Wanted=%d\n",PlayerInfo[playerid][pWanted]);fwrite(hFile, var);
public onplayerlogin
 if( strcmp( key , "Wanted" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pWanted] = strval( val ); }
public onplayerupdate
format(var, 64, "Wanted=%d\n",PlayerInfo[playerid][pWanted]);fwrite(hFile, var);
public showstats
  new wanted = PlayerInfo[targetid][pWanted];

Gde gresim sta da upisem u te kodove sto sam ti dao, vidis sve je to definisano brt
Poslednja Izmena: Jul 29, 2014, 21:24:16 POSLE PODNE od Sarkenzo

pa ako imas load save samo proveri tu vrednost pod onplayerspspawn i to je to.
69

Kako mislis da proverim tu vrednost nemam nista vezano za wanted pod onplayerspawn
Mislis ovako
if(PlayerInfo[playerid][pWanted] > 0)//Kazna za relog
        {
      PlayerInfo[playerid][pJailedLTA] = 1;
      PlayerInfo[playerid][pLTATime] = 1600;
	  WantedLevel[playerid] = 0;
	  WantedPoints[playerid] = 0;
      SendClientMessage(playerid, COLOR_RED, "Zato sto ste otisli relog sa wanted level-om, kaznjeni ste na 1600 sekundi zatvora");
         return 1;
	    }
Poslednja Izmena: Jul 29, 2014, 21:33:49 POSLE PODNE od Sarkenzo

Citat: Sarkenzo poslato Jul 29, 2014, 21:31:11 POSLE PODNE
Kako mislis da proverim tu vrednost nemam nista vezano za wanted pod onplayerspawn
ja ti preporucujem da naucis osnove skriptanja a ne da odma uzimas modove jer ocigledno nerazumijes osnovu.

znaci..
uzmes varijablu kojom oznacavas wanted i upises joj svoj wanted kad izlazis...

i onda samo pod onplayerspawn tu varijablu proveris i stavis ga u jail ... ako ovo nerazumes onda batali skriptanje..
69

Ja tri meseca skriptam i ne mogu odmah sve da znam, nema veze nije ni bitno.