Pokusavam da napravim kada upucam actora da mi iskoci dialog za dm arenu,ali nikako nece,ako moze neko da pomogne bilo bi super
KOD IZ SKRIPTER:
[pawn]
new Actor_DM;
Actor_DM = CreateDynamicActor(230, 1728.7434,-1655.4818,20.2484,93.0006);
public OnPlayerGiveDamageActor(playerid, damaged_actorid, Float:amount, weaponid, bodypart)
{
if(IsValidActor(Actor_DM))
{
new string[1560];
format(string, sizeof(string), "Lokacija:\tIgraca:\n"PPLAVA"[1]: "BELA"DeathMatch - Ghost Town\t[%d]\n"PPLAVA"[2]: "BELA"DeathMatch - Interior 1\t[%d]\n"PPLAVA"[3]: "BELA"DeathMatch - Police Dept.\t[%d]\n"PPLAVA"[4]: "BELA"Spawn\tn/a",
IgracaUDMZoni_GhostTown, IgracaUDMZoni_Interior1, IgracaUDMZoni_PoliceDept);
SPD(playerid, DIALOG_TELEPORT, DSTH, D_NASLOV, string, D_POTVRDI, D_ZATVORI);
}
return 1;
}[/pawn]
Zato što si napravio 2 greške:
1. Praviš dinamičnog aktora, a koristiš callback za obične:
zamjeni
[pawn]public OnPlayerGiveDamageActor(playerid, damaged_actorid, Float:amount, weaponid, bodypart)[/pawn]
sa
[pawn]public OnPlayerGiveDamageDynamicActor(playerid, actorid, Float:amount, weaponid, bodypart)[/pawn]
2. Nije ti dobra provjera, moraš provjeriti actor id, ne da li je validan, odnosno u tom slučaju, bilo kojeg dinamičkog aktora da neki igrač opuca, ukoliko je DM aktor validan (bez obzira što njega nije upucao), tebi će se dialog pojaviti.
zamjeni
[pawn]if(IsValidActor(Actor_DM))[/pawn]
sa
[pawn]if(actorid == Actor_DM)[/pawn]
Mozes i ovako nesto, koristeci obicne :
[pawn]new NekiActor;
public OnGameModeInit() {
NekiActor = CreateActor(skinID, X, Y, Z, Rot);
SetActorInvulnerable(NekiActor, 0);
return 1;
}
public OnPlayerGiveDamageActor(playerid, damaged_actorid, Float:amount, weaponid, bodypart) {
if(damaged_actorid == NekiActor) {
SendClientMesssage(playerid, -1, "Actor Upucan!");
return 1;
}
return 1;
}[/pawn]
Mozes i dinamicke, potpuno je na tebi, u tom slucaju samo koristis :
[pawn]OnPlayerGiveDamageDynamicActor(playerid, STREAMER_TAG_ACTOR actorid, Float:amount, weaponid, bodypart)[/pawn]
Umesto ovoga :
[pawn]OnPlayerGiveDamageActor(playerid, damaged_actorid, Float:amount, weaponid, bodypart)[/pawn]
Mislim da je Slade sve objasnio, ne treba da se ponavljaš.
Ja sam stavio ovako sve,ali opet kad ga upucam ne izadje mi taj dialog,nzm do cega je problem
KOD IZ SKRIPTE:
[pawn]
new Actor_DM;
ovo je u ongamemodeinit
Actor_DM = CreateActor(230, 1728.7434,-1655.4818,20.2484,93.0006);
SetActorInvulnerable(Actor_DM, 0);
public OnPlayerGiveDamageActor(playerid, damaged_actorid, Float:amount, weaponid, bodypart)
{
if(damaged_actorid == Actor_DM)
{
new string[1560];
format(string, sizeof(string), "Lokacija:\tIgraca:\n"PPLAVA"[1]: "BELA"DeathMatch - Ghost Town\t[%d]\n"PPLAVA"[2]: "BELA"DeathMatch - Interior 1\t[%d]\n"PPLAVA"[3]: "BELA"DeathMatch - Police Dept.\t[%d]\n"PPLAVA"[4]: "BELA"Spawn\tn/a",
IgracaUDMZoni_GhostTown, IgracaUDMZoni_Interior1, IgracaUDMZoni_PoliceDept);
SPD(playerid, DIALOG_TELEPORT, DSTH, D_NASLOV, string, D_POTVRDI, D_ZATVORI);
return 1;
}
return 1;
}
[/pawn]
Pokušao sam i praznu sktiptu VO1D-ov kod,ali opet je isto ja pucam actora ali ne izlazi dialog
Daj kod iz te prazne skripte
Evo ovako sam stavio
[pawn]
new NekiAktor;
ovo je u OnGameModeInit
NekiAktor = CreateActor(294, 1728.7434,-1655.4818,20.2484,93.0006);
SetActorInvulnerable(NekiAktor, 0);
public OnPlayerGiveDamageActor(playerid, damaged_actorid, Float:amount, weaponid, bodypart)
{
if(damaged_actorid == NekiAktor)
{
SCM(playerid, -1, "VO1D pomaze da fixam");
return 1;
}
return 1;
}
[/pawn]
Zašto jednostavno nisi uradio kako sam ti ja napisao?
Pa i kad sam uradio ka sto si mi ti rekao nije opet radilo
Pošalji hajde kako si uradio sa mojim kodom,kako je on izgledao kompletan?
Jesi ti retardiran lik ti je napisao da si kreirao dynamic aktora i koristis callback za obicne i ti kazes da su uradio kao sto ti je poslao ?
Osnove dečkooooooo
@Slade evo sad cu da stavim kao ti,pa cu ds vidim,ako ne radi saljem kod :)
Evo sad sam radio kao sto si mi ti reko,sad mi reci sta treba radim
[pawn]
Actor_DM = CreateDynamicActor(230, 1728.7434,-1655.4818,20.2484,93.0006);
public OnPlayerGiveDamageDynamicActor(playerid, actorid, Float:amount, weaponid, bodypart)
{
if(actorid == Actor_DM)
{
SCM(playerid, -1, "Ne pucaj seljaku boli me");
return 1;
}
return 1;
}
[/pawn]
Citat: _ᴍᴀxʏ.ᴘᴡɴ poslato Septembar 27, 2020, 16:02:31 POSLE PODNE
Evo sad sam radio kao sto si mi ti reko,sad mi reci sta treba radim
[pawn]
Actor_DM = CreateDynamicActor(230, 1728.7434,-1655.4818,20.2484,93.0006);
public OnPlayerGiveDamageDynamicActor(playerid, actorid, Float:amount, weaponid, bodypart)
{
if(actorid == Actor_DM)
{
SCM(playerid, -1, "Ne pucaj seljaku boli me");
return 1;
}
return 1;
}
[/pawn]
Nemoj raditi DP!!
[pawn]SetDynamicActorInvulnerable(Actor_DM, 0); //Ovo u OnGameModeInit nakon sto si ga kreirao[/pawn]
Sry nisam hteo to,hteo sam da editam prosli odgovor
Hvala VO1D radi sada sve,takodje hvala i tebi
@Slade
Lock Reseno