Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: V01D poslato Septembar 23, 2020, 10:14:53 PRE PODNE

Naslov: Skripta ne detektuje OnPlayerGiveDamageActor
Poruka od: V01D poslato Septembar 23, 2020, 10:14:53 PRE PODNE
Problem(error/warning): Skripta ne detektuje kada igrac upuca actora
Deo skripte: [pawn]new EnemyActor1;

public OnGameModeInit() {

   EnemyActor1 = CreateActor(287, X, Y, Z, Rot);
   SetActorInvulnerable(EnemyActor1, 0);

   return 1;
}

public OnPlayerGiveDamageActor(playerid, damaged_actorid, Float:amount, weaponid, bodypart) {

   if(damaged_actorid == EnemyActor1) {
      
      SendClientMessage(playerid, -1, "Upucao si actora!");
      return 1;
   }
}[/pawn]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): Nepotrebno
Slika/video ingame problema(obavezno ako je ingame problem): Nepotrebno
Naslov: Odg: Skripta ne detektuje OnPlayerGiveDamageActor
Poruka od: Ciger poslato Septembar 23, 2020, 11:25:10 PRE PODNE
https://wiki.sa-mp.com/wiki/OnPlayerGiveDamageActor
Naslov: Odg: Skripta ne detektuje OnPlayerGiveDamageActor
Poruka od: Galardo poslato Septembar 23, 2020, 12:57:28 POSLE PODNE
Javi mi se večeras na fb pa ću ti reći.
Naslov: Odg: Skripta ne detektuje OnPlayerGiveDamageActor
Poruka od: V01D poslato Septembar 23, 2020, 12:59:34 POSLE PODNE
Mozete li biti malo specificniji??
Naslov: Odg: Skripta ne detektuje OnPlayerGiveDamageActor
Poruka od: pokerface poslato Septembar 23, 2020, 13:14:12 POSLE PODNE
Moraš mu dodati health vrijednost, kao i provjeru IsValidActor
Naslov: Odg: Skripta ne detektuje OnPlayerGiveDamageActor
Poruka od: XACK poslato Septembar 23, 2020, 13:18:51 POSLE PODNE
Da li si ovo uzeo u obzir?
(https://i.imgur.com/aZVDmf4.png)

Takodje, da nisi slucajno kreirao dinamicnog aktora pa pokusavas dobiti rezultat preko default callbacka?
Naslov: Odg: Skripta ne detektuje OnPlayerGiveDamageActor
Poruka od: XACK poslato Septembar 23, 2020, 13:36:27 POSLE PODNE
Nisam video da si sve to odradio u OGMI.

Ako koristis streamer onda bi problem mogao biti do toga tako da bi mozda bilo pametnije koristiti dinamicne aktore.
Koliko se secam verzije posle 2.9.2 su imale problem sa pozivanjem ovog callbacka iz nekog razloga.

Pokusaj isti taj kod pozvati u nekoj filterskripti koja ce se nadovezivati na mod.

Pokusaj da resinhronizujes aktore povremeno, resetaj im pozicije i apply-aj idle animaciju.

Mozda je cak bug do samp-a posto postoje tako odredjeni callbackovi koji se dosta redje koriste, a ne pozivaju se npr. u gamemode-u vec izricito moze iz fs-a ili uopste ne moze.
Naslov: Odg: Skripta ne detektuje OnPlayerGiveDamageActor
Poruka od: V01D poslato Septembar 23, 2020, 13:41:45 POSLE PODNE
Vec sam sve to probao, nista ne pomaze, ne poziva se ni za dinamicne actore ( OnPlayerGiveDamageDynamicActor )

Naslov: Odg: Skripta ne detektuje OnPlayerGiveDamageActor
Poruka od: XACK poslato Septembar 23, 2020, 13:59:21 POSLE PODNE
Upravo sam uradio benchmark i dobio sledece rezultate:

OnPlayerGiveDamageDynamicActor bez streamera: detektuje hit

OnPlayerGiveDamageDynamicActor  sa streamerom bez koriscenja funkcija iz streamera: detektuje hit

Takodje i callback za dinamicne aktore funkcionise.

Test je uradjen na Windows 10 operativnom sistemu uz streamer plugin 2.9.4 na blank skripti tj. samo delovima koje si ti dao u prvom postu.

Ono sto bih ja pokusao jeste: skinuti nove server fajlove, samp i pawn stdlib update, streamer update ako vec nije, proveriti da li su VCRT-ovi update-ani i korektni.
Naslov: Odg: Skripta ne detektuje OnPlayerGiveDamageActor
Poruka od: V01D poslato Septembar 23, 2020, 17:07:21 POSLE PODNE
Fixano, trebao sam [pawn]return 1;[/pawn] na kraju svake provere za actora posto sam imao vise, glupi ja :'(