Kako da napravim ovo?


Započeo Marijan10111, April 09, 2018, 22:47:07 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Problem(error/warning): Kada igrac pljacka banku i ode sa pickup-akako sada da napravim da prekine pljacku
Dio skripte: [ pawn ]CMD:robbank(playerid, params[])
{
   if(robpossible == 1)
   {
      if(gPlayerLogged[playerid] == 0) return SendClientMessage(playerid, 0xFF8284FF, "ERROR: Ne mozete koristiti komande jer niste jos prijavljeni na svoj account / ili ste mrtvi.");
      if(PlayerInfo[playerid][pLeader] < 1) return SCM(playerid,0xFF8284FF, "ERROR: Niste autorizirani za koristenje ove komande jer nemate status lidera.");
      if(PlayerInfo[playerid][pArea] == 1) return SendClientMessage(playerid, 0xFF8284FF, "ERROR: Ne mozete koristiti ovu komandu jer ste trenutno u area-i.");
      if(PlayerInfo[playerid][pArea] == 2) return SendClientMessage(playerid, 0xFF8284FF, "ERROR: Ne mozete koristiti ovu komandu jer ste trenutno u zatvoru.");
      if(PlayerInfo[playerid][pTazan] == 1) return SendClientMessage(playerid, 0xFF8284FF, "ERROR: Ne mozete koristiti ovu komandu jer ste sokirani od strane policajca.");
      if(PlayerInfo[playerid][pMember] == 0 || PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pMember] == 6) return SCM(playerid,0xFF8284FF,"ERROR: Niste clan bande/mafije.");
      if(IsPlayerInAnyVehicle(playerid)) return SCM(playerid,0xFF8284FF,"ERROR: Komanda koju ste odabrali nije dostupna u vozilu - izadite pa pokusajte ponovno.");
      if(!IsPlayerInRangeOfPoint(playerid, 2.0, 252.3625,125.2756,1003.2188)) return SCM(playerid,0xFF8284FF,"ERROR: Ne moze koristiti ovu komandu jer niste u banci.");
      {

          robpossible = 0;
         SetTimerEx("waittimer", 1200000,false, "w", playerid);
          SetTimerEx("robtimer", 10000,false, "r", playerid);
        PlayerPlaySound(playerid, 1057, 0.0, 0.0, 10.0);
          PlayerActionMessage(playerid,15.0,"Krenuo pljackati banku.");
          SendClientMessage(playerid, 0xE8C400FF, "INFO: Krenuli ste sa pljackom oprez policija je obavijestena!");
          SendClientMessage(playerid, 0xE8C400FF, "INFO: Morate ostati 5 minuta u banci!");

      }

     new string[256];
   for(new i = 0; i < MAX_PLAYERS; i++)
   {
    if(PlayerInfo[playerid][pWanted] > 6)
   {
   if(PlayerInfo[playerid][pMember] != 1)
   {
   if(PlayerInfo[playerid][pArea] == 0)
   {
   SendClientMessage(playerid,0xFC7860FF,"INFO: Pocinili ste zlocin te ste dobili 6 zvjezdica.");
   format(string, sizeof(string), "[[ OBAVIJEST SVIM JEDINICAMA ]] Zlocin: Pljacka banke. Pocinitelj: %s.", GetName(playerid));
   SendPoliceMessage(0x31CFFFFF, string);
   PlayerInfo[playerid][pWanted] = 6;
   SetPlayerWantedLevel(playerid, 6);
   SavePlayer(playerid);
   }}}}
   }
   else
   {
      SendClientMessage(playerid,0xFF8284FF,"ERROR: Nedavno su biznisi opljackani pokusajte ponovo kasnije");
   }
   return 1;
}
public robtimer(playerid)
{
   if(IsPlayerInRangeOfPoint(playerid, 2.0, 252.3625,125.2756,1003.2188))
   {
   new string[128];//We are defining a new string for the formatted message that we are displaying later on.
   new pljacka = random(50000);
   GivePlayerMoney(playerid, pljacka);
   GivePlayerCash(playerid, pljacka);
   format(string, sizeof(string),"~w~Opljackali ste banku i uzeli ~g~%d$ !", pljacka);
   GameTextForPlayer(playerid, string, 6000, 4);
   format(string, sizeof(string), "INFO: Uspijesno ste opljackali banku i odnijeli $%d sa sobom!", pljacka);
   SendClientMessage(playerid, 0xE8C400FF, string);
   }
   else
   {
      SendClientMessage(playerid,0xFF8284FF,"ERROR: Otisli ste sa pickup-a te ste prekinuli pljacku banke");
   }
}
[ /pawn ]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): [ code ]ima kod[ /code ]
Slika/video ingame problema(obavezno ako je ingame problem): ima kod
Poslednja Izmena: April 09, 2018, 22:51:51 POSLE PODNE od Marijan10111

Kod je previse nepregledan, imas pawn ikonicu dok pises text pa ubacis samo :)
Al evo kako bi trebalo...
Kada igrac pokrene pljacku trebo bi imat proveru tipa:
PljackaBanku[playerid] = 1;

E sad, ako se igrac makne sa mesta pljacke i onda da mu prekine pljacku, ovako nekako:
public OnPlayerUpdate(playerid)
{
	if(PljackaBanku[playerid] == 1)
	{
		if(!IsPlayerInRangeOfPoint(playerid, Float:range, Float:x, Float:y, Float:z)) //<- Ovde stavi range i korde mesta za pljackanje, ovo je provera da li je kod mesta za pljacku.
		{
			PljackaBanku[playerid] = 0;
			SCM(playerid, -1, "Otisli ste predaleko od pickupa, pljackanje je prekinuto!");
			SCMTA(-1, "Pljackanje banke je prekinuto!");
			BankaSePljacka = 0; //<- Ovde stavi tvoju proveru da li se banka vec pljacka...
		}
	}
	return 1;
}