[Bug/SRV 0.3.7] Actor dies of Molotov,flamethrower
#6

Quote:
Originally Posted by long76
Посмотреть сообщение
after created actor use SetActorInvulnerable(actorid, true);. it should work.
pawn Код:
public OnPlayerGiveDamageActor(playerid, damaged_actorid, Float: amount, weaponid, bodypart)
{
    new string[128], attacker[MAX_PLAYER_NAME];
    new weaponname[24];
    GetPlayerName(playerid, attacker, sizeof (attacker));
    GetWeaponName(weaponid, weaponname, sizeof (weaponname));
 
    format(string, sizeof(string), "%s has made %.0f damage to actor id %d, weapon: %s", attacker, amount, damaged_actorid, weaponname);
    SendClientMessageToAll(0xFFFFFFFF, string);
        new Float:health;
        GetActorHealth(damaged_actorid, health); //Get current health
        if(weaponid==37)amount=9;
        SetActorHealth(damaged_actorid, health-amount); //Apply damage, set new health
    return 1;
}
You checked his example?

When enabled SetActorInvulnerable (actorid, true);
Stop working OnPlayerGiveDamageActor(playerid, damaged_actorid, Float: amount, weaponid, bodypart);

If SetActorInvulnerable (actorid, true);
OnPlayerGiveDamageActor (playerid, damaged_actorid, Float: amount, weaponid, bodypart) does not work

My script:
PHP код:
/**
 * GAMEMODE : game (lite version)
 * revision : 0.1 @9 may 2015
 * author   : fERO aka Logofero
 **/
#define GAMEMODE_NAME "game (lite version)"
#include <a_samp>
#include <a_actor>
#define MAX_MSG_SIZE (256)
#define COLOR_DEFAULT (0xAAAAAAFF)
main()
{
    print(
"\n----------------------------------");
    
printf(" Gamemode '%s' loaded",GAMEMODE_NAME);
    print(
"----------------------------------\n");
}
public 
OnGameModeInit()
{
    
SetGameModeText(GAMEMODE_NAME);
    
AddPlayerClass(00.0,0.0,5.00.0000000);
    return 
1;
}
public 
OnGameModeExit()
{
    return 
1;
}
public 
OnPlayerRequestClass(playeridclassid)
{
    return 
1;
}
public 
OnPlayerConnect(playerid)
{
    return 
1;
}
public 
OnPlayerDisconnect(playeridreason)
{
    return 
1;
}
public 
OnPlayerSpawn(playerid)
{
    return 
1;
}
public 
OnPlayerDeath(playeridkilleridreason)
{
     return 
1;
}
public 
OnVehicleSpawn(vehicleid)
{
    return 
1;
}
public 
OnVehicleDeath(vehicleidkillerid)
{
    return 
1;
}
public 
OnPlayerText(playeridtext[])
{
    return 
1;
}
public 
OnPlayerUpdate(playerid)
{
    return 
1;
}
public 
OnPlayerCommandText(playeridcmdtext[])
{
    if (
strcmp("/kill"cmdtexttrue10) == 0)
    {
          
SetPlayerHealth(playerid0);
        return 
1;
    }
    
    if (
strcmp("/mbot"cmdtexttrue10) == 0)
    {
        new 
Float:xFloat:yFloat:zFloat:a;
        
GetPlayerPos(playeridx,y,z);
        
GetPlayerFacingAngle(playerida);
    
        new 
id CreateActor(random(299), x,y,za);
        
//SetActorHealth(id, 100.0);
        //ApplyActorAnimation(id, "PED", "WALK_drunk", 4.1, 1, 1, 1, 1, 0);
        //ApplyActorAnimation(id, "CHAINSAW", "CSAW_1", 4.1, 1, 1, 1, 1, 0);
        
SetActorInvulnerable(idtrue); // <- Enabled!
        
return 1;
    }
    
    if (
strcmp("/dbot"cmdtexttrue10) == 0)
    {
        for(new 
iMAX_ACTORSi++) {
            if(
IsValidActor(i)) DestroyActor(i);
        }
        return 
1;
    }
    if (
strcmp("/hbot"cmdtexttrue10) == 0)
    {
        for(new 
iMAX_ACTORSi++) {
            if(
IsValidActor(i)) SetActorHealth(i0.0);
        }
        return 
1;
    }
    if (
strcmp("/h2bot"cmdtexttrue10) == 0)
    {
        for(new 
iMAX_ACTORSi++) {
            if(
IsValidActor(i)) SetActorHealth(i100.0);
        }
        return 
1;
    }
    if (
strcmp("/abot"cmdtexttrue10) == 0)
    {
        for(new 
iMAX_ACTORSi++) {
            if(
IsValidActor(i)) {
                new 
msg[MAX_MSG_SIZE];
                new 
Float:a;
                
                
GetActorFacingAngle(ia);
                
format(msgMAX_MSG_SIZE"GetActorFacingAngle actor %d current_angle %.1f"ia);
                
SendClientMessage(playeridCOLOR_DEFAULTmsg);
                
                
SetActorFacingAngle(i180.0);
                
                
GetActorFacingAngle(ia);
                
format(msgMAX_MSG_SIZE"SetActorFacingAngle actor %d set 180.0 current_angle %.1f"ia);
                
SendClientMessage(playeridCOLOR_DEFAULTmsg);
            }
        }
        return 
1;
    }
    return 
0;
}
public 
OnPlayerGiveDamage(playeriddamagedidFloat:amountweaponidbodypart) {
    return 
1;
}
public 
OnPlayerGiveDamageActor(playeriddamaged_actoridFloat:amountweaponidbodypart) { //does not work!
new string[128], attacker[MAX_PLAYER_NAME];
    new 
weaponname[24];
    
GetPlayerName(playeridattackersizeof (attacker));
    
GetWeaponName(weaponidweaponnamesizeof (weaponname));
    
format(stringsizeof(string), "%s has made %.0f damage to actor id %d, weapon: %s"attackeramountdamaged_actoridweaponname);
    
SendClientMessageToAll(0xFFFFFFFFstring);
    new 
Float:health;
    
GetActorHealth(damaged_actoridhealth); //Get current health
    
if(weaponid==37)amount=9;
    
SetActorHealth(damaged_actoridhealth-amount); //Apply damage, set new health
    
return 1;

Add:

if SetActorInvulnerable (actorid,false);
OnPlayerGiveDamageActor (playerid, damaged_actorid, Float: amount, weaponid, bodypart); work!
Reply


Messages In This Thread
[Bug/SRV 0.3.7] Actor dies of Molotov,flamethrower - by Logofero - 08.05.2015, 07:34
Re: [Bug/SRV 0.3.7] Actor dies of Molotov,flamethrower - by long76 - 08.05.2015, 11:34
Re: [Bug/SRV 0.3.7] Actor dies of Molotov,flamethrower - by Logofero - 08.05.2015, 18:49
Re: [Bug/SRV 0.3.7] Actor dies of Molotov,flamethrower - by Logofero - 09.05.2015, 01:11
Re: [Bug/SRV 0.3.7] Actor dies of Molotov,flamethrower - by long76 - 09.05.2015, 06:07
Re: [Bug/SRV 0.3.7] Actor dies of Molotov,flamethrower - by Logofero - 09.05.2015, 08:42

Forum Jump:


Users browsing this thread: 2 Guest(s)