Problem(error/warning): OnPlayerGiveDamageActor ne radi uopce
Dio skripte:
[pawn]
public OnPlayerGiveDamageActor(playerid, damaged_actorid, Float: amount, weaponid, bodypart)
{
print("aktor upucan");
for(new gZone__ID; gZone__ID < sizeof(gZoneInfo); gZone__ID++) {
if(damaged_actorid == gZoneInfo[ gZone__ID ][ gZoneActor ][ 0 ] && gZoneInfo[ gZone__ID ][ ActorAlive ][ 0 ] ||
damaged_actorid == gZoneInfo[ gZone__ID ][ gZoneActor ][ 1 ] && gZoneInfo[ gZone__ID ][ ActorAlive ][ 1 ] ||
damaged_actorid == gZoneInfo[ gZone__ID ][ gZoneActor ][ 2 ] && gZoneInfo[ gZone__ID ][ ActorAlive ][ 2 ])
{
if( PlayerInfo[ playerid ][ xZauzimanjeVreme ] != 0 || !gZoneInfo[ gZone__ID ][ gZoneTakeable ]
|| PlayerInfo[ playerid ][ xClan ] == gZoneInfo[ gZone__ID ][ gZoneGangID ]
|| gZoneInfo[ gZone__ID ][ gZoneTime ] != 0
|| (GetFactionType( playerid ) == ORG_TIP_BANDA && GetFactionType( playerid ) == ORG_TIP_MAFIJA)) return 1;
//Animacije dodaj u if-ove.
if(damaged_actorid == gZoneInfo[ gZone__ID ][ gZoneActor ][ 0 ]) {
gZoneInfo[ gZone__ID ][ ActorAlive ][ 0 ] = false;
SCM( playerid, NARACRVENA, "Srusio si jednog od cuvara teritorija, srusi ih sve da zapocnes zauzimanje." );
ApplyActorAnimation(gZoneActor, "SMOKING", "M_smklean_loop", 4.1, 1, 0, 0, 0, 0);
}
else if(damaged_actorid == gZoneInfo[ gZone__ID ][ gZoneActor ][ 1 ]) {
gZoneInfo[ gZone__ID ][ ActorAlive ][ 1 ] = false;
SCM( playerid, NARACRVENA, "Srusio si jednog od cuvara teritorija, srusi ih sve da zapocnes zauzimanje." );
ApplyActorAnimation(gZoneActor, "SMOKING", "M_smklean_loop", 4.1, 1, 0, 0, 0, 0);
}
else if(damaged_actorid == gZoneInfo[ gZone__ID ][ gZoneActor ][ 2 ]) {
gZoneInfo[ gZone__ID ][ ActorAlive ][ 2 ] = false;
SCM( playerid, NARACRVENA, "Srusio si jednog od cuvara teritorija, srusi ih sve da zapocnes zauzimanje." );
ApplyActorAnimation(gZoneActor, "SMOKING", "M_smklean_loop", 4.1, 1, 0, 0, 0, 0);
}
if(!gZoneInfo[ gZone__ID ][ ActorAlive ][ 0 ]
&& !gZoneInfo[ gZone__ID ][ ActorAlive ][ 1 ]
&& !gZoneInfo[ gZone__ID ][ ActorAlive ][ 2 ])
{
new Orga = 0, Protiv = 0, hour, minute, seconds;
gettimeEx( hour, minute, seconds );
FixHour( hour );
hour = shifthour;
foreach( Player, i ) {
if( gZoneInfo[ gZone__ID ][ gZoneGangID ] != -1 ) {
if( PlayerInfo[ i ][ xClan ] == gZoneInfo[ gZone__ID ][ gZoneGangID ] ) Protiv++;
}
if( PlayerInfo[ i ][ xClan ] == PlayerInfo[ playerid ][ xClan ] ) Orga++;
}
if( weaponid >= 22 && weaponid <= 40) {
if( ( hour >= 09 ) && ( hour <= 23 ) ) {
if( gZoneInfo[ gZone__ID ][ gZoneGangID ] != -1 ) {
OrgPoruka( gZoneInfo[ gZone__ID ][ gZoneGangID ], 0x95b4a2FF, "[TERITORIJA] Druga banda pokusava da zauzme vasu teritoriju." );
}
new stringic[ 24 ];
format( stringic, sizeof( stringic ), "0x%s99", org_info[ PlayerInfo[ playerid ][ xClan ] ][ oColor ] );
GangZoneFlashForAll( gZoneInfo[ gZone__ID ][ gZoneID ], HexToInt( stringic ) );
SCM( playerid, NARACRVENA, "SRUSIO SI SVE CUVARE, ZAUZIMANJE ZAPOCETO." );
SCM( playerid, NARACRVENA, "Moras ostati ziv sledecih 5 minuta kako bi je osvojio." );
SCM( playerid, NARACRVENA, "Ne smes se previse udaljiti od mesta zauzimanja, jer ce zauzimanje biti prekinuto.");
gZoneInfo[ gZone__ID ][ gZoneTime ] = 30;
gZone_gID[ playerid ] = gZone__ID;
gZone_Time[ playerid ] = 300;
gZone_Timer[ playerid ] = SetTimerEx( "ZonaZauzmi", 1000, true, "i", playerid );
PlayerInfo[ playerid ][ xZauzimanjeVreme ] = 30;
OrgPoruka( PlayerInfo[ playerid ][ xClan ], 0x95b4a2FF, "[TERITORIJA] Clan vase organizacije pokusava da zauzme tudju teritoriju." );
}
}
}
}
}
return true;
}
[/pawn]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): /
Slika/video ingame problema(obavezno ako je ingame problem): /
znaci, nisam radio ovaj sistem tako da nisam nesto ni upucen sto ne radi i sl..
radi se o tome kada covjek upuca sva 3 aktora na zoni (ta 3 aktora se kreiraju in game sa zonama), trebalo bi se pokrenut zauzimanje. aktori se stvore na svakoj zoni ali kad ih probam upucat ne radi sistem (niti se u consoli ispise ono "aktor upucan").
Haha, vjerovao ili ne ja sam ga radio, to je moj kod u callbacku, sad nisam siguran dal sam to radio za tebe ili je taj mod došao tebi u ruke, ali znam i naravno primjetim po pisanju koda, inače kad sam ja testirao sve je okej radilo haha
Riješenje kod pozivanja callbacka je da skineš actoru invulnerable (vjerovatno je na true), a budući da sistem radi da se aktor rani, a ne ubije, umjesto toga koristi SetActorHealth.
https://wiki.sa-mp.com/wiki/SetActorHealth
Citat: Slade poslato Novembar 29, 2019, 17:46:42 POSLE PODNE
Haha, vjerovao ili ne ja sam ga radio, to je moj kod u callbacku, sad nisam siguran dal sam to radio za tebe ili je taj mod došao tebi u ruke, ali znam i naravno primjetim po pisanju koda, inače kad sam ja testirao sve je okej radilo haha
Riješenje kod pozivanja callbacka je da skineš actoru invulnerable (vjerovatno je na true), a budući da sistem radi da se aktor rani, a ne ubije, umjesto toga koristi SetActorHealth.
https://wiki.sa-mp.com/wiki/SetActorHealth
@Slade da pricao mi je miki da si ti radio taj sistem, ja sam kupio enwhile poslje :)
fora je sto je SetActorInvulnerable vec na false. to sam prvo i provjerio
Citat: Slade poslato Novembar 29, 2019, 17:46:42 POSLE PODNE
Haha, vjerovao ili ne ja sam ga radio, to je moj kod u callbacku, sad nisam siguran dal sam to radio za tebe ili je taj mod došao tebi u ruke, ali znam i naravno primjetim po pisanju koda, inače kad sam ja testirao sve je okej radilo haha
Riješenje kod pozivanja callbacka je da skineš actoru invulnerable (vjerovatno je na true), a budući da sistem radi da se aktor rani, a ne ubije, umjesto toga koristi SetActorHealth.
https://wiki.sa-mp.com/wiki/SetActorHealth
A i ovo je tvoj nacin ist ko na Gheto xD
https://github.com/samp-incognito/samp-streamer-plugin/wiki/Natives-(Actors)
https://github.com/samp-incognito/samp-streamer-plugin/wiki/Callbacks
Probaj prebaciti u Dynamic, i možda kreiraš dynamic actora pa koristi callback od gore
I nemoj koristiti SCM ( Sečem Curi Muda ) jebem ti sunce
Pošalji gdje kreiraš aktora, takodjer izvodivo je i na drugi način, key fire u kombinaciji sa aktorom kojeg nišani, ali budući da je to loš način, samo u slučaju nužde
rjeseno. hvala svima na pomoci. lock.