Pomoc oko actora

Započeo Risticc, Avgust 01, 2020, 13:24:46 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Problem(error/warning): Jel zna neko da mi pomogne kako da napravim kad igrac ukuca ovu komandu da se pojavi actor na odredjenoj lokaciji i kad stigne na checkpoint da on nestane
Deo skripte:Komanda[pawn]CMD:prevozidrogu(playerid,params[])
{
    if(!IsPlayerInRangeOfPoint(playerid, 7.0, 1486.6311, -1725.8000, 6.7086))
       return GRESKA(playerid, "Niste kod mesta za pokrentanja ovog posla.");
      if( !IsPlayerInAnyVehicle( playerid ) ) return GRESKA( playerid, "Ne mozete pokrenuti ovaj posao u koliko niste u vozilu." );
      if( PrevozDrogeTimer[ playerid ] > 0 ) return GRESKA( playerid, "Morate cekati 30 minuta pre ponovog prevoza droge!");

    SetPlayerCheckpoint(playerid, -176.7016, 358.8314, 12.2813, 5.0);

    PrevozDroge[playerid] = 1;

    Info(playerid, "Pokrenuli ste prevoz paketa brasna,idite do mesta oznaceno na mapi te dajte drogu coveku.");
    PrevozDrogeTimer[ playerid ] = 1800;
    return 1;
}[/pawn]
Deo kada stize na checkpoint
[pawn]    if(PrevozDroge[playerid] == 1)
    if(IsPlayerInRangeOfPoint(playerid,7.0,-176.7016, 358.8314, 12.2813))
    {
    DisablePlayerCheckpoint(playerid);
    PrevozDroge[playerid] = 0;
    DajIgracuNovac( playerid, 20000 );
    Info(playerid, "Dostavili ste paket brasna ,i dobili ste '20.000$'.");
    PostaviWanted( playerid, "Ilegalni prevoz droge", "Nepoznati", 1 );
    }
    }[/pawn]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):
Poslednja Izmena: Avgust 01, 2020, 13:26:55 POSLE PODNE od slash dev

Moras prvo da definises aktore u skripti.

Mozes da mi ispises sta trebam sve da napravim kad napravim actora new actor1; i posle stavim sa tim nickom actor izadje mi neki error ako ti nije problem mozes ti da mi ispises?

[pawn]new jobActor[MAX_PLAYERS]; // Koliko je ovo kancer bez container-a haha

CMD:prevozidrogu(playerid,params[])
{
   if(!IsPlayerInRangeOfPoint(playerid, 7.0, 1486.6311, -1725.8000, 6.7086))
      return GRESKA(playerid, "Niste kod mesta za pokrentanja ovog posla.");

   if( !IsPlayerInAnyVehicle( playerid ) ) return GRESKA( playerid, "Ne mozete pokrenuti ovaj posao u koliko niste u vozilu." );
   if( PrevozDrogeTimer[ playerid ] > 0 ) return GRESKA( playerid, "Morate cekati 30 minuta pre ponovog prevoza droge!");

   SetPlayerCheckpoint(playerid, -176.7016, 358.8314, 12.2813, 5.0);

   if(IsValidActor(jobActor[playerid])) {
      DestroyActor(jobActor[playerid]);
      jobActor[playerid] = INVALID_ACTOR_ID;
   }
   CreateActor(modelid, x, y, z, rotation);

   PrevozDroge[playerid] = 1;

   Info(playerid, "Pokrenuli ste prevoz paketa brasna,idite do mesta oznaceno na mapi te dajte drogu coveku.");
    PrevozDrogeTimer[ playerid ] = 1800; // ovo je retardirano
    return 1;
}

if(PrevozDroge[playerid] == 1)
{
   if(IsPlayerInRangeOfPoint(playerid,7.0,-176.7016, 358.8314, 12.2813))
   {
      DisablePlayerCheckpoint(playerid);
      PrevozDroge[playerid] = 0;
      DajIgracuNovac( playerid, 20000 );
      Info(playerid, "Dostavili ste paket brasna ,i dobili ste `20.000$`.");
      PostaviWanted( playerid, "Ilegalni prevoz droge", "Nepoznati", 1 );
      if(IsValidActor(jobActor[playerid])) {
         DestroyActor(jobActor[playerid]);
         jobActor[playerid] = INVALID_ACTOR_ID;
      }
   }
}[/pawn]

Sad kad dodjem na CP ne desi se nista

Citat: slash dev poslato Avgust 01, 2020, 14:00:34 POSLE PODNE
Sad kad dodjem na CP ne desi se nista
Citat: slash dev poslato Avgust 01, 2020, 14:00:34 POSLE PODNE
Sad kad dodjem na CP ne desi se nista
Mozes da kreiras aktora i posle da mu samo setas poziciju tu i tu i to je to :D

Citat: slash dev poslato Avgust 01, 2020, 14:00:34 POSLE PODNE
Sad kad dodjem na CP ne desi se nista

Zato što kad ga je kreirao, nije dao vrijednost varijabli, možda je zaboravio:


Ovo:
[pawn]if(IsValidActor(jobActor[playerid])) {
      DestroyActor(jobActor[playerid]);
      jobActor[playerid] = INVALID_ACTOR_ID;
}
CreateActor(modelid, x, y, z, rotation);[/pawn]

Zamjeni sa:
[pawn]if(IsValidActor(jobActor[playerid])) {
      DestroyActor(jobActor[playerid]);
      jobActor[playerid] = INVALID_ACTOR_ID;
}
jobActor[playerid] = CreateActor(modelid, x, y, z, rotation);[/pawn]

Također, ovaj kod plasiraj u OnPlayerDeath/Disconnect, kada igrač napusti server, da mu uništi aktora:
[pawn]if(IsValidActor(jobActor[playerid])) {
      DestroyActor(jobActor[playerid]);
      jobActor[playerid] = INVALID_ACTOR_ID;
}[/pawn]
Poslednja Izmena: Avgust 01, 2020, 14:15:43 POSLE PODNE od Slade




Citat: Slade poslato Avgust 01, 2020, 14:14:31 POSLE PODNE
Zato što kad ga je kreirao, nije dao vrijednost varijabli, možda je zaboravio:


Ovo:
[pawn]if(IsValidActor(jobActor[playerid])) {
      DestroyActor(jobActor[playerid]);
      jobActor[playerid] = INVALID_ACTOR_ID;
}
CreateActor(modelid, x, y, z, rotation);[/pawn]

Zamjeni sa:
[pawn]if(IsValidActor(jobActor[playerid])) {
      DestroyActor(jobActor[playerid]);
      jobActor[playerid] = INVALID_ACTOR_ID;
}
jobActor[playerid] = CreateActor(modelid, x, y, z, rotation);[/pawn]

Također, ovaj kod plasiraj u OnPlayerDeath/Disconnect, kada igrač napusti server, da mu uništi aktora:
[pawn]if(IsValidActor(jobActor[playerid])) {
      DestroyActor(jobActor[playerid]);
      jobActor[playerid] = INVALID_ACTOR_ID;
}[/pawn]
Dap, slučajno, svakako nema veze sa tim (CP) jer ovako bi CP trebao da radi