Szerző Téma: public OnPlayerGiveDamage( playerid, damagedid, Float:amount, weaponid )  (Megtekintve 2421 alkalommal)

Nem elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
+1 Show voters
OnPlayerGiveDamage
Ez az eljárás akkor hívódik meg, amikor egy játékos sérülést okoz egy másik játékosnak
Paraméterek:
 
( playerid, issuerid, Float:amount, weaponid )

 
playerid        - Annak a játékosnak az azonosítója, aki megsérült.
damagedid      - Annak a játékosnak az azonosítója, akinek sérülést okozott
Float:amount         - Az élet + páncél értéke egyben, amennyit sérült.
weaponid        - A fegyver azonosítója ( vagy a sérülés oka ), ami által megsérült. Ez ugyanúgy mûködik, mint az OnPlayerDeath-nál a reason.
Visszatérés     Ez az eljárás nem kezeli a visszatéréseket.
Példa:
[pawn]
public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid)
{
    if(damagedid != INVALID_PLAYER_ID)
    {
        new string[128], victim[MAX_PLAYER_NAME], attacker[MAX_PLAYER_NAME];
        new weaponname[24];
        GetPlayerName(playerid, attacker, sizeof (attacker));
        GetPlayerName(damagedid, victim, sizeof (victim));
        GetWeaponName(weaponid, weaponname, sizeof (weaponname));
        format(string, sizeof(string), \"%s sérülést okozott ( %.0f ) %s nevû játékosnak, fegyver: %s\", attacker, amount, victim, weaponname);
        SendClientMessageToAll(0xFFFFFFFF, string);
    }
    return 1;
}
[/pawn]
Megjegyzés:
TakeDamage és GiveDamage nem egyezik teljesen, ez az eljárás azonnal meghívódik, ahogy egy játékos meglõ egy másik játékost. Tehát a másik játékosnak még le se ment az élete, de a GiveDamage már meghívódott.
GiveDamage segítségével le tudod kérni, ha valaki sérülést okozott egy játékosnak, de a másik játékos nem vesztett semmit az életébõl.
Tehát csak rálõtt, de nem ment le egyáltalán az élete.
Ha a két játékos egy csapatban van, (SetPlayerTeam()-el egy csapatba vannak rakva) ez akkor is meghívódik, elõbb leírtam, hogy miért.
Így mostmár nagyon könnyû azt megoldani, ha valaki rálõ a csapattársára, akkor kiírni neki, hogy ne lõdd a csapattársad!
Ha azzal a játékossal akarsz foglalkozni, aki megsérült, akkor mindenképp a TakeDamage használata az ajánlott!
Eredeti téma: http://wiki.sa-mp.com/wiki/OnPlayerGiveDamage
« Utoljára szerkesztve: 2011. december 04. - 14:10:39 írta kurta999 »

Gang[St]e[R]

  • Vendég
public OnPlayerGiveDamage( playerid, damagedid, Float:amount, weaponid )
« Válasz #1 Dátum: 2012. január 25. - 19:00:59 »
0 Show voters
Sajnos NPC-ken nem mûködik :(

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal