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
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;
}

Deo kada stize na checkpoint
    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 );
    }
    }

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?

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;
		}
	}
}

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:
if(IsValidActor(jobActor[playerid])) {
		DestroyActor(jobActor[playerid]);
		jobActor[playerid] = INVALID_ACTOR_ID;
}
CreateActor(modelid, x, y, z, rotation);


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


Također, ovaj kod plasiraj u OnPlayerDeath/Disconnect, kada igrač napusti server, da mu uništi aktora:
if(IsValidActor(jobActor[playerid])) {
		DestroyActor(jobActor[playerid]);
		jobActor[playerid] = INVALID_ACTOR_ID;
}
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:
if(IsValidActor(jobActor[playerid])) {
		DestroyActor(jobActor[playerid]);
		jobActor[playerid] = INVALID_ACTOR_ID;
}
CreateActor(modelid, x, y, z, rotation);


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


Također, ovaj kod plasiraj u OnPlayerDeath/Disconnect, kada igrač napusti server, da mu uništi aktora:
if(IsValidActor(jobActor[playerid])) {
		DestroyActor(jobActor[playerid]);
		jobActor[playerid] = INVALID_ACTOR_ID;
}

Dap, slučajno, svakako nema veze sa tim (CP) jer ovako bi CP trebao da radi