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): //
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
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.
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]
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]
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(.. ?
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
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
BUMP
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.
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
Kako su ti definisani objekti za rb, daj mi sve vezano za /rb
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]
https://pastebin.com/Kvq6LHk5
Jedan igrac moze napraviti 10 prepreka
Citat: [R] buLLeT_ poslato Septembar 21, 2018, 13:20:06 POSLE PODNE
https://pastebin.com/Kvq6LHk5
Jedan igrac moze napraviti 10 prepreka
HVALA RADI!