Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: mattazz poslato Septembar 26, 2020, 13:09:15 POSLE PODNE

Naslov: Pomoc u vezi OnPlayerGiveDamageActor
Poruka od: mattazz poslato Septembar 26, 2020, 13:09:15 POSLE PODNE
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]
Naslov: Odg: Pomoc u vezi OnPlayerGiveDamageActor
Poruka od: Slade poslato Septembar 26, 2020, 13:12:53 POSLE PODNE
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]
Naslov: Odg: Pomoc u vezi OnPlayerGiveDamageActor
Poruka od: V01D poslato Septembar 26, 2020, 14:05:49 POSLE PODNE
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]
Naslov: Odg: Pomoc u vezi OnPlayerGiveDamageActor
Poruka od: pokerface poslato Septembar 26, 2020, 14:15:39 POSLE PODNE
Mislim da je Slade sve objasnio, ne treba da se ponavljaš.
Naslov: Odg: Pomoc u vezi OnPlayerGiveDamageActor
Poruka od: mattazz poslato Septembar 26, 2020, 22:54:57 POSLE PODNE
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]
Naslov: Odg: Pomoc u vezi OnPlayerGiveDamageActor
Poruka od: mattazz poslato Septembar 27, 2020, 09:26:07 PRE PODNE
Pokušao sam i praznu sktiptu VO1D-ov kod,ali opet je isto ja pucam actora ali ne izlazi dialog
Naslov: Odg: Pomoc u vezi OnPlayerGiveDamageActor
Poruka od: V01D poslato Septembar 27, 2020, 10:03:52 PRE PODNE
Daj kod iz te prazne skripte
Naslov: Odg: Pomoc u vezi OnPlayerGiveDamageActor
Poruka od: mattazz poslato Septembar 27, 2020, 11:45:56 PRE PODNE
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]
Naslov: Odg: Pomoc u vezi OnPlayerGiveDamageActor
Poruka od: Slade poslato Septembar 27, 2020, 15:30:52 POSLE PODNE
Zašto jednostavno nisi uradio kako sam ti ja napisao?
Naslov: Odg: Pomoc u vezi OnPlayerGiveDamageActor
Poruka od: mattazz poslato Septembar 27, 2020, 15:33:41 POSLE PODNE
Pa i kad sam uradio ka sto si mi ti rekao nije opet radilo
Naslov: Odg: Pomoc u vezi OnPlayerGiveDamageActor
Poruka od: Slade poslato Septembar 27, 2020, 15:36:22 POSLE PODNE
Pošalji hajde kako si uradio sa mojim kodom,kako je on izgledao kompletan?
Naslov: Odg: Pomoc u vezi OnPlayerGiveDamageActor
Poruka od: __vedran.xyz77 poslato Septembar 27, 2020, 15:38:13 POSLE PODNE
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 ?
Naslov: Odg: Pomoc u vezi OnPlayerGiveDamageActor
Poruka od: skripte iz 2007 godine. ( ͡° ͜ʖ ͡°) poslato Septembar 27, 2020, 15:40:55 POSLE PODNE
Osnove dečkooooooo
Naslov: Odg: Pomoc u vezi OnPlayerGiveDamageActor
Poruka od: mattazz poslato Septembar 27, 2020, 15:49:59 POSLE PODNE
@Slade evo sad cu da stavim kao ti,pa cu ds vidim,ako ne radi saljem kod  :)
Naslov: Odg: Pomoc u vezi OnPlayerGiveDamageActor
Poruka od: mattazz 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]
Naslov: Odg: Pomoc u vezi OnPlayerGiveDamageActor
Poruka od: mattazz poslato Septembar 27, 2020, 16:14:15 POSLE PODNE
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]
Naslov: Odg: Pomoc u vezi OnPlayerGiveDamageActor
Poruka od: V01D poslato Septembar 27, 2020, 16:28:05 POSLE PODNE
Nemoj raditi DP!!

[pawn]SetDynamicActorInvulnerable(Actor_DM, 0); //Ovo u OnGameModeInit nakon sto si ga kreirao[/pawn]
Naslov: Odg: Pomoc u vezi OnPlayerGiveDamageActor
Poruka od: mattazz poslato Septembar 27, 2020, 16:29:04 POSLE PODNE
Sry nisam hteo to,hteo sam da editam prosli odgovor
Naslov: Odg: Pomoc u vezi OnPlayerGiveDamageActor
Poruka od: mattazz poslato Septembar 27, 2020, 16:30:40 POSLE PODNE
Hvala VO1D radi sada sve,takodje hvala i tebi @Slade
Naslov: Odg: Pomoc u vezi OnPlayerGiveDamageActor
Poruka od: V01D poslato Septembar 27, 2020, 16:44:56 POSLE PODNE
Lock Reseno