Szerző Téma: Fair Harc  (Megtekintve 738 alkalommal)

Nem elérhető Olie

  • 892
  • Roleplay Õrült
    • Profil megtekintése
Fair Harc
« Dátum: 2012. szeptember 26. - 07:57:37 »
0 Show voters
Sziasztok!
Ezt a scriptet tegnap publikálták hiv. fórumon, és szerintem sok ember hasznosnak találja majd.
Sok fordítani-való nem volt rajta, csak a mûködési elve, de az is hasznos lehet.
A Script eredeti neve \"Fair Fight illetve \"Anti 2v1 3v1 etc...\"
Lényegében ez a kis apróság megakadályozza, hogy 2v1 vagy 3v1 (vagy 50v1...) csaták alakuljanak ki.
Gyengébbek kedvéért a másik oldalról: Csak 1v1 harcok lehetnek.
Ha már harcolsz valakivel, és egy másik emberke megtámad, akkor nem fog sebezni téged, illetve rögtön stoppolja a támadását egy üzenettel, hogy téged már megtámadott xy.
Eredeti készítõ: Gryphus One
Eredeti téma: Klikk
Magyarra fordította: Olie
Magyar szkript letöltése: http://www.solidfiles.com/d/8ed843963f/
 

#if defined Credits
________________________________________________________________________-
Eredeti készítõ: Gryphus One
Eredeti téma: forum.sa-mp.com/showthread.php?t=380551
Magyarra fordította: Olie
Kérlek a Credits mezõt ne távolítsd el!
________________________________________________________________________-
#endif
#include <a_samp>
#define TIMEBETWEENATTACKS 20
// Ha egy játékos megtámadta, ennyi idõnek kell eltelnie, hogy egy másik megtámadhassa. (Másodperc)
new LastAttacker[MAX_PLAYERS];
new TimeOfLastAttack[MAX_PLAYERS];
forward PlayerIsNotAttacking(playerid);
// A Játékos nem lesz megjelölve, mint az utolsó támadója bármelyik játékosnak.
public PlayerIsNotAttacking(playerid)
{
    new count;
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if(LastAttacker == playerid)
        {
            LastAttacker = INVALID_PLAYER_ID;
            count++;
        }
    }
    return count;
}
forward CheckIfDifferentAttacker(victim, attacker);
public CheckIfDifferentAttacker(victim, attacker)
{
    if( (attacker != INVALID_PLAYER_ID) && (attacker != victim) )
    // Az áldozat minden bizonnyal meg lett támadva egy másik játékos által
    {
        if( (attacker != LastAttacker[victim]) && (LastAttacker[victim] != INVALID_PLAYER_ID) && (LastAttacker[victim] != victim) )
        // A Jelenlegi támadó nem az elõzõ támadó
        {
            if( (GetTickCount() - TimeOfLastAttack[victim]) < (TIMEBETWEENATTACKS * 1000) )
            // Nem telt el elég idõ
            {
                if( IsPlayerStreamedIn(LastAttacker[victim], victim) )
                {
                    return 1;
                }
            }
        }
       
        TimeOfLastAttack[victim] = GetTickCount();
        LastAttacker[victim] = attacker;
    }
    return 0;
}
public OnFilterScriptInit()
{
    print(\"\\n--------------------------------------\");
    print(\"Fair Harc Filterscript\");
    print(\"--------------------------------------\\n\");
    return 1;
}
public OnPlayerConnect(playerid)
{
    PlayerIsNotAttacking(playerid);
    LastAttacker[playerid] = INVALID_PLAYER_ID;
    return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
    PlayerIsNotAttacking(playerid);
    // Ha a játékos megtámadja az áldozatot, és az áldozat meghal, akkod
    //  egy másik játékos megtámadhatja, hiszen az elõzõ csatának vége.
    return 1;
}
public OnPlayerSpawn(playerid)
{
    LastAttacker[playerid] = INVALID_PLAYER_ID;
    return 1;
}
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
{
    if(CheckIfDifferentAttacker(playerid, issuerid) == 1)
    {
        new Float:health, Float:armour;
        GetPlayerHealth(playerid, health);
        GetPlayerArmour(playerid, armour);
        // Ezzel lekérem az életét, és a kevlárját MIELÕTT sebzést szenvedne el.
        SetPlayerHealth(playerid, health);
        SetPlayerArmour(playerid, armour);
        // És most visszaadom amit elszenvedett, így a sebzés, amit rámértek 0.
        SetPlayerArmedWeapon(issuerid, 0);
        // Ezzel lestoppolom a fegyveres ember támadását.
        new victimname[MAX_PLAYER_NAME + 1], attackername[MAX_PLAYER_NAME + 1], string[128];
        GetPlayerName( playerid, victimname, sizeof(victimname) );
        GetPlayerName( LastAttacker[playerid], attackername, sizeof(attackername) );
        format(string, sizeof(string), \"~r~Nem bánthatod %s-t Mert õt más %s megtámadta!\", victimname, attackername);
        GameTextForPlayer(issuerid, string, 2000, 4);
    }
    return 1;
}

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal