Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Agent 47 poslato Septembar 16, 2018, 13:19:06 POSLE PODNE

Naslov: Oko /rrb
Poruka od: Agent 47 poslato Septembar 16, 2018, 13:19:06 POSLE PODNE
Problem(error/warning): Napravio sam komandu /rb za postavljanje blokade i sad zelim da napravim /rrb da unistim tu postsavljenu blokadu ali ne znam kako u skripti da napravim da se ona unisti~
Dio skripte://
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): //
Slika/video ingame problema(obavezno ako je ingame problem): //
Naslov: Odg: Oko /rrb
Poruka od: Agent 47 poslato Septembar 16, 2018, 13:28:03 POSLE PODNE
Izvadio sam iz ATH moda opet baca erre
[pawn]stock DeleteClosestRoadblock( playerid )
{
    for( new i = 0; i < sizeof(Roadblocks); i++)
     {
         if( IsPlayerInRangeOfPoint( playerid, 5.0, Roadblocks[ i ][sX], Roadblocks[ i ][sY], Roadblocks[ i ][sZ ] ) )
        {
             if(Roadblocks[ i ][sCreated] == 1)
            {
                Roadblocks[ i ][sCreated] = 0;
                Roadblocks[ i ][sX] = 0.0;
                Roadblocks[ i ][sY] = 0.0;
                Roadblocks[ i ][sZ] = 0.0;
                Roadblocks[ i ][ sSpike ] = false;
                DestroyDynamicObject(Roadblocks[ i ][sObject] );
                return 1;
             }
         }
     }
     return 1;
}[/pawn]
https://imgur.com/a/k7ajlqb
Naslov: Odg: Oko /rrb
Poruka od: Paul Castellano poslato Septembar 16, 2018, 19:08:35 POSLE PODNE
O bože.Pa ne možeÅ¡ samo funkciju prebaciti iz drugog moda i očekivati da ona magično radi i na tvom modu  :'(

Ja koliko vidim iz tvoje komande(iz prethodne teme) ti uopće ne čuvaš nigdje ID objekta.Kako ga onda planiraš uništavati...Moraš sačuvati negdje ID kreiranog objekta kako bi ga kasnije mogao uništiti.
Naslov: Odg: Oko /rrb
Poruka od: Agent 47 poslato Septembar 16, 2018, 20:10:39 POSLE PODNE
Citat: Paul Castellano poslato Septembar 16, 2018, 19:08:35 POSLE PODNE
O bože.Pa ne možeÅ¡ samo funkciju prebaciti iz drugog moda i očekivati da ona magično radi i na tvom modu  :'(

Ja koliko vidim iz tvoje komande(iz prethodne teme) ti uopće ne čuvaš nigdje ID objekta.Kako ga onda planiraš uništavati...Moraš sačuvati negdje ID kreiranog objekta kako bi ga kasnije mogao uništiti.

Evo zuzeo sam iz up moda i kad ukucam /unistiprepreku 1 prepreka i dalje stoji.
Evo slika za rrb komandu
[pawn]CMD:rrb(playerid, params[])
{
    if(!IsACop(playerid)) SCM(playerid,-1,"{07C1F5}{FFFFFF} Niste clan Policije");
   new id;
   if(sscanf(params, "i", id)) return SCM(playerid,GRAD2,"KORISTITE: /rrb (1-4)");
   if(id == 1)
   {
      if(Prepreka1Kreirana[playerid] == true)
      {
         DestroyDynamicObject(Prepreka1[playerid]);
         SCM(playerid,GRAD2,"Unistili ste prepreku.");
         Prepreka1Kreirana[playerid] = false;
      }
      else return SendClientMessage(playerid,GRAD2,"Ta prepreka nije kreirana");
   }
   else if(id == 2)
   {
      if(Prepreka2Kreirana[playerid] == true)
      {
         DestroyDynamicObject(Prepreka2[playerid]);
         SCM(playerid,GRAD2,"Unistili ste prepreku.");
         Prepreka2Kreirana[playerid] = false;
      }
      else return SendClientMessage(playerid,GRAD2,"Ta prepreka nije kreirana");
   }
   else if(id == 3)
   {
      if(Prepreka3Kreirana[playerid] == true)
      {
         DestroyDynamicObject(Prepreka3[playerid]);
         SCM(playerid,GRAD2,"Unistili ste prepreku.");
         Prepreka3Kreirana[playerid] = false;
      }
      else return SendClientMessage(playerid,GRAD2,"Ta prepreka nije kreirana");
   }
   return 1;
}[/pawn]

Naslov: Odg: Oko /rrb
Poruka od: bc-cod2 poslato Septembar 16, 2018, 20:53:36 POSLE PODNE
Probaj sa ovim:


pastebin: https://pastebin.com/mhnrcVx3

[pawn]enum preprekaInfo
{
   Float:PreprekaX,
   Float:PreprekaY,
   Float:PreprekaZ,
   PreprekaId,
};
new PreprekaInfo[MAX_PLAYERS][preprekaInfo];[/pawn]

Pod public OnPlayerConnect

PreprekaInfo[playerid][PreprekaX] = 0.0;
PreprekaInfo[playerid][PreprekaY] = 0.0;
PreprekaInfo[playerid][PreprekaZ] = 0.0;
PreprekaInfo[playerid][PreprekaId]= -1;//prepreka nije kreirana


Pod public OnPlayerDisconnect

[pawn]if(PreprekaInfo[playerid][PreprekaId]!=-1)
{
   DestroyDynamicObject(PreprekaInfo[playerid][PreprekaId]); // unistava prepreku ako igrac napusti server
}[/pawn]

Komande ZCMD+sscanf

[pawn]COMMAND:makniprepreku(playerid, params[])
{
   if(IsACop(playerid))
   {
      if(PreprekaInfo[playerid][PreprekaId] == -1)
      {
         SendClientMessage(playerid, -1,"Nemas napravljenu prepreku!");
         return 1;
      }
      if(!IsPlayerInRangeOfPoint(playerid, 7.0, PreprekaInfo[playerid][PreprekaX], PreprekaInfo[playerid][PreprekaY], PreprekaInfo[playerid][PreprekaZ]))
      {
         SendClientMessage(playerid, -1, "Predaleko si od prepreke!");
         return 1;
      }
      PreprekaInfo[playerid][PreprekaX]=0.0;
      PreprekaInfo[playerid][PreprekaY]=0.0;
      PreprekaInfo[playerid][PreprekaZ]=0.0;
      DestroyDynamicObject(PreprekaInfo[playerid][PreprekaId]);
      PreprekaInfo[playerid][PreprekaId]=-1;
      SendClientMessage(playerid, -1,"Maknuli ste prepreku.");
   }
   else return SendClientMessage(playerid,-1,"Niste clan Policije");
   return 1;
}

COMMAND:prepreka(playerid, params[])
{
   if(IsACop(playerid))
   {
      new vrsta;
      if (sscanf(params, "d", vrsta)) SendClientMessage(playerid, -1,"/prepreka [1-Mala, 2-Srednja, 3-Velika, 4-Cunj]");
      else if(vrsta < 1 || vrsta > 4) SendClientMessage(playerid, -1, "Pogresan odabir(1-4).");
      else
      {
         if(IsPlayerInAnyVehicle(playerid))
         {
            SendClientMessage(playerid,-1,"Ne smijes biti u vozilu!");
            return 1;
         }
         if(PreprekaInfo[playerid][PreprekaId] != -1)
         {
            SendClientMessage(playerid,-1,"Vec imas postavljenu prepreku!");
            return 1;
         }
         new Float:pozx,Float:pozy,Float:pozz,Float:poza;
         GetPlayerPos(playerid, pozx, pozy, pozz); GetPlayerFacingAngle(playerid,poza);
         PreprekaInfo[playerid][PreprekaX]=pozx; PreprekaInfo[playerid][PreprekaY]=pozy; PreprekaInfo[playerid][PreprekaZ]=pozz;
         if(vrsta==1)
         {
            PreprekaInfo[playerid][PreprekaId] = CreateDynamicObject(1459, pozx,pozy,pozz-0.7, 0, 0, poza);
            GameTextForPlayer( playerid,"~w~Mala prepreka ~b~postavljena!",1500,1);
         }
         else if(vrsta==2)
         {
            PreprekaInfo[playerid][PreprekaId] = CreateDynamicObject(978, pozx,pozy,pozz-0.7, 0, 0, poza);
            GameTextForPlayer( playerid,"~w~Srednja prepreka ~b~postavljena!",1500,1);
         }
         else if(vrsta==3)
         {
            PreprekaInfo[playerid][PreprekaId] = CreateDynamicObject(981, pozx,pozy,pozz-0.7, 0, 0, poza);
            GameTextForPlayer( playerid,"~w~Velika prepreka ~b~postavljena!",1500,1);
         }
         else if(vrsta==4)
         {
            PreprekaInfo[playerid][PreprekaId] = CreateDynamicObject(1238, pozx,pozy,pozz-0.7, 0, 0, poza);
            GameTextForPlayer( playerid,"~w~Cunj ~b~postavljen!",1500,1);
         }
      }
   }
   else return SendClientMessage(playerid,-1,"Niste clan Policije");
   return 1;
}[/pawn]
Naslov: Odg: Oko /rrb
Poruka od: Paul Castellano poslato Septembar 16, 2018, 23:19:38 POSLE PODNE
Citat: Moren0 poslato Septembar 16, 2018, 20:10:39 POSLE PODNE
Evo zuzeo sam iz up moda i kad ukucam /unistiprepreku 1 prepreka i dalje stoji.
Evo slika za rrb komandu
[pawn]CMD:rrb(playerid, params[])
{
    if(!IsACop(playerid)) SCM(playerid,-1,"{07C1F5}{FFFFFF} Niste clan Policije");
   new id;
   if(sscanf(params, "i", id)) return SCM(playerid,GRAD2,"KORISTITE: /rrb (1-4)");
   if(id == 1)
   {
      if(Prepreka1Kreirana[playerid] == true)
      {
         DestroyDynamicObject(Prepreka1[playerid]);
         SCM(playerid,GRAD2,"Unistili ste prepreku.");
         Prepreka1Kreirana[playerid] = false;
      }
      else return SendClientMessage(playerid,GRAD2,"Ta prepreka nije kreirana");
   }
   else if(id == 2)
   {
      if(Prepreka2Kreirana[playerid] == true)
      {
         DestroyDynamicObject(Prepreka2[playerid]);
         SCM(playerid,GRAD2,"Unistili ste prepreku.");
         Prepreka2Kreirana[playerid] = false;
      }
      else return SendClientMessage(playerid,GRAD2,"Ta prepreka nije kreirana");
   }
   else if(id == 3)
   {
      if(Prepreka3Kreirana[playerid] == true)
      {
         DestroyDynamicObject(Prepreka3[playerid]);
         SCM(playerid,GRAD2,"Unistili ste prepreku.");
         Prepreka3Kreirana[playerid] = false;
      }
      else return SendClientMessage(playerid,GRAD2,"Ta prepreka nije kreirana");
   }
   return 1;
}[/pawn]


Kako si napravio /rb komandu?
Jesi napravio
Prepreka1[playerid] = CreateDynamicObject(.. ?
Naslov: Odg: Oko /rrb
Poruka od: Agent 47 poslato Septembar 18, 2018, 16:09:08 POSLE PODNE
Citat: Paul Castellano poslato Septembar 16, 2018, 23:19:38 POSLE PODNE
Kako si napravio /rb komandu?
Jesi napravio
Prepreka1[playerid] = CreateDynamicObject(.. ?

@Paul Castellano  DA
Naslov: Odg: Oko /rrb
Poruka od: Agent 47 poslato Septembar 18, 2018, 16:30:47 POSLE PODNE
Citat: [R] buLLeT_ poslato Septembar 16, 2018, 20:53:36 POSLE PODNE
Probaj sa ovim:


pastebin: https://pastebin.com/mhnrcVx3

[pawn]enum preprekaInfo
{
   Float:PreprekaX,
   Float:PreprekaY,
   Float:PreprekaZ,
   PreprekaId,
};
new PreprekaInfo[MAX_PLAYERS][preprekaInfo];[/pawn]

Pod public OnPlayerConnect

PreprekaInfo[playerid][PreprekaX] = 0.0;
PreprekaInfo[playerid][PreprekaY] = 0.0;
PreprekaInfo[playerid][PreprekaZ] = 0.0;
PreprekaInfo[playerid][PreprekaId]= -1;//prepreka nije kreirana


Pod public OnPlayerDisconnect

[pawn]if(PreprekaInfo[playerid][PreprekaId]!=-1)
{
   DestroyDynamicObject(PreprekaInfo[playerid][PreprekaId]); // unistava prepreku ako igrac napusti server
}[/pawn]

Komande ZCMD+sscanf

[pawn]COMMAND:makniprepreku(playerid, params[])
{
   if(IsACop(playerid))
   {
      if(PreprekaInfo[playerid][PreprekaId] == -1)
      {
         SendClientMessage(playerid, -1,"Nemas napravljenu prepreku!");
         return 1;
      }
      if(!IsPlayerInRangeOfPoint(playerid, 7.0, PreprekaInfo[playerid][PreprekaX], PreprekaInfo[playerid][PreprekaY], PreprekaInfo[playerid][PreprekaZ]))
      {
         SendClientMessage(playerid, -1, "Predaleko si od prepreke!");
         return 1;
      }
      PreprekaInfo[playerid][PreprekaX]=0.0;
      PreprekaInfo[playerid][PreprekaY]=0.0;
      PreprekaInfo[playerid][PreprekaZ]=0.0;
      DestroyDynamicObject(PreprekaInfo[playerid][PreprekaId]);
      PreprekaInfo[playerid][PreprekaId]=-1;
      SendClientMessage(playerid, -1,"Maknuli ste prepreku.");
   }
   else return SendClientMessage(playerid,-1,"Niste clan Policije");
   return 1;
}

COMMAND:prepreka(playerid, params[])
{
   if(IsACop(playerid))
   {
      new vrsta;
      if (sscanf(params, "d", vrsta)) SendClientMessage(playerid, -1,"/prepreka [1-Mala, 2-Srednja, 3-Velika, 4-Cunj]");
      else if(vrsta < 1 || vrsta > 4) SendClientMessage(playerid, -1, "Pogresan odabir(1-4).");
      else
      {
         if(IsPlayerInAnyVehicle(playerid))
         {
            SendClientMessage(playerid,-1,"Ne smijes biti u vozilu!");
            return 1;
         }
         if(PreprekaInfo[playerid][PreprekaId] != -1)
         {
            SendClientMessage(playerid,-1,"Vec imas postavljenu prepreku!");
            return 1;
         }
         new Float:pozx,Float:pozy,Float:pozz,Float:poza;
         GetPlayerPos(playerid, pozx, pozy, pozz); GetPlayerFacingAngle(playerid,poza);
         PreprekaInfo[playerid][PreprekaX]=pozx; PreprekaInfo[playerid][PreprekaY]=pozy; PreprekaInfo[playerid][PreprekaZ]=pozz;
         if(vrsta==1)
         {
            PreprekaInfo[playerid][PreprekaId] = CreateDynamicObject(1459, pozx,pozy,pozz-0.7, 0, 0, poza);
            GameTextForPlayer( playerid,"~w~Mala prepreka ~b~postavljena!",1500,1);
         }
         else if(vrsta==2)
         {
            PreprekaInfo[playerid][PreprekaId] = CreateDynamicObject(978, pozx,pozy,pozz-0.7, 0, 0, poza);
            GameTextForPlayer( playerid,"~w~Srednja prepreka ~b~postavljena!",1500,1);
         }
         else if(vrsta==3)
         {
            PreprekaInfo[playerid][PreprekaId] = CreateDynamicObject(981, pozx,pozy,pozz-0.7, 0, 0, poza);
            GameTextForPlayer( playerid,"~w~Velika prepreka ~b~postavljena!",1500,1);
         }
         else if(vrsta==4)
         {
            PreprekaInfo[playerid][PreprekaId] = CreateDynamicObject(1238, pozx,pozy,pozz-0.7, 0, 0, poza);
            GameTextForPlayer( playerid,"~w~Cunj ~b~postavljen!",1500,1);
         }
      }
   }
   else return SendClientMessage(playerid,-1,"Niste clan Policije");
   return 1;
}[/pawn]

@[R] buLLeT_ brate radi sve nego mozes da mi dodas tu u komandi da mogu koliko hocu prepreka da postavim da ne moram samo 1
Naslov: Odg: Oko /rrb
Poruka od: Agent 47 poslato Septembar 19, 2018, 20:37:25 POSLE PODNE
BUMP
Naslov: Odg: Oko /rrb
Poruka od: DJER1C poslato Septembar 19, 2018, 21:36:41 POSLE PODNE
Moraju postojati odredjeni idovi objekata koji PD moze da stvara. Mozes PD-u zadati jedan dialog na kome ce pitati koji id objekta zeli da stvori.naravno ne samo id objekta kao objekta nego i id sortiranog.Kako bi brisao blokade mora prvo uneti id sortiranog objekta da bi obrisao istu.
Naslov: Odg: Oko /rrb
Poruka od: Agent 47 poslato Septembar 20, 2018, 20:07:59 POSLE PODNE
Citat: Djeric Script poslato Septembar 19, 2018, 21:36:41 POSLE PODNE
Moraju postojati odredjeni idovi objekata koji PD moze da stvara. Mozes PD-u zadati jedan dialog na kome ce pitati koji id objekta zeli da stvori.naravno ne samo id objekta kao objekta nego i id sortiranog.Kako bi brisao blokade mora prvo uneti id sortiranog objekta da bi obrisao istu.

Razumem te ali mozes li pomoci oko toga
Naslov: Odg: Oko /rrb
Poruka od: DJER1C poslato Septembar 20, 2018, 21:08:07 POSLE PODNE
Kako su ti definisani objekti za rb, daj mi sve vezano za /rb
Naslov: Odg: Oko /rrb
Poruka od: Agent 47 poslato Septembar 20, 2018, 22:17:41 POSLE PODNE
Citat: Djeric Script poslato Septembar 20, 2018, 21:08:07 POSLE PODNE
Kako su ti definisani objekti za rb, daj mi sve vezano za /rb

@Djeric Script
[pawn]CMD:rb(playerid, params[])
{
if(IsACop(playerid))
{
new vrsta;
new altstring[128];
if (sscanf(params, "d", vrsta)) SendClientMessage(playerid, -1,"/prepreka [1-Mala, 2-Srednja, 3-Velika, 4-Cunj]");
else if(vrsta < 1 || vrsta > 4) SendClientMessage(playerid, -1, "Pogresan odabir(1-4).");
else
{
if(IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid,-1,"Ne smes biti u vozilu!");
return 1;
}
new Float:pozx,Float:pozy,Float:pozz,Float:poza;
GetPlayerPos(playerid, pozx, pozy, pozz); GetPlayerFacingAngle(playerid,poza);
PreprekaInfo[playerid][PreprekaX]=pozx; PreprekaInfo[playerid][PreprekaY]=pozy; PreprekaInfo[playerid][PreprekaZ]=pozz;
if(vrsta==1)
{
PreprekaInfo[playerid][PreprekaId] = CreateDynamicObject(1459, pozx,pozy,pozz-0.7, 0, 0, poza);
GameTextForPlayer( playerid,"~w~Mala prepreka ~b~postavljena!",1500,1);
format(altstring,sizeof(altstring),"~r~ (AC) - ~w~ Policajac %s je postavio malo prepreku",GetName(playerid));
DodajWarnRed(altstring);
}
else if(vrsta==2)
{
PreprekaInfo[playerid][PreprekaId] = CreateDynamicObject(978, pozx,pozy,pozz-0.7, 0, 0, poza);
GameTextForPlayer( playerid,"~w~Srednja prepreka ~b~postavljena!",1500,1);
format(altstring,sizeof(altstring),"~r~ (AC) - ~w~ Policajac %s je postavio srednju prepreku",GetName(playerid));
DodajWarnRed(altstring);
}
else if(vrsta==3)
{
PreprekaInfo[playerid][PreprekaId] = CreateDynamicObject(981, pozx,pozy,pozz-0.7, 0, 0, poza);
GameTextForPlayer( playerid,"~w~Velika prepreka ~b~postavljena!",1500,1);
format(altstring,sizeof(altstring),"~r~ (AC) - ~w~ Policajac %s je postavio veliku prepreku",GetName(playerid));
DodajWarnRed(altstring);
}
else if(vrsta==4)
{
PreprekaInfo[playerid][PreprekaId] = CreateDynamicObject(1238, pozx,pozy,pozz-0.7, 0, 0, poza);
GameTextForPlayer( playerid,"~w~Cunj ~b~postavljen!",1500,1);
format(altstring,sizeof(altstring),"~r~ (AC) - ~w~ Policajac %s je postavio cunj",GetName(playerid));
DodajWarnRed(altstring);
}
}
}
else return SendClientMessage(playerid,-1,"Niste clan Policije");
return 1;
}[/pawn]
Naslov: Odg: Oko /rrb
Poruka od: bc-cod2 poslato Septembar 21, 2018, 13:20:06 POSLE PODNE
https://pastebin.com/Kvq6LHk5

Jedan igrac moze napraviti 10 prepreka
Naslov: Odg: Oko /rrb
Poruka od: Agent 47 poslato Septembar 21, 2018, 15:44:54 POSLE PODNE
Citat: [R] buLLeT_ poslato Septembar 21, 2018, 13:20:06 POSLE PODNE
https://pastebin.com/Kvq6LHk5

Jedan igrac moze napraviti 10 prepreka

HVALA RADI!