HP/AP vor DM speichern, und nach Cancel wieder setzen

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Ich stecke bei etwas so trivialem fest, dass es schon zu trivial ist.


    #define MAX_HP_AND_AP 100


    new Float:PlayerHPandAP[MAX_PLAYERS][MAX_HP_AND_AP];


    stock SavePlayerHPandAP(playerid)
    {
    new Float:health,
    Float:armour;
    GetPlayerHealth(playerid, PlayerHPandAP[playerid][health]);
    GetPlayerArmour(playerid, PlayerHPandAP[playerid][armour]);
    return 1;
    }


    stock ReturnPlayerHPandAP(playerid)
    {
    new Float:health,
    Float:armour;
    SetPlayerHealth(playerid, PlayerHPandAP[playerid][health]);
    SetPlayerArmour(playerid, PlayerHPandAP[playerid][armour]);
    return 1;
    }


    Ich realisiere, dass der Code kompletter Nonsense ist. Ich stehe gerade echt auf dem Schlauch.^^


    EDIT: Code update.

    Einmal editiert, zuletzt von Manyula ()

  • Du hast den Sinn eines Arrays nicht verstanden ;)
    Das Array müsste so aussehen:
    new Float:ArrayName[Maximaler Index 1][Maximaler Index 2];


    Jetzt setzt Du Index 1 auf die Anzahl der Maximalen Spieler und Index setzt Du auf die Anzahl der Werte, die Du zwischenspeichern möchtest.
    Dannach könntest Du es folgendermaßen verwenden:


    new HP = ArrayName[playerid][0];
    new Armor = ArrayName[playerid][1];

  • enum handp {
    health,
    armour
    }
    new Float:PlayerHPandAP[MAX_PLAYERS][handp];


    stock SavePlayerHPandAP(playerid)
    {
    GetPlayerHealth(playerid, PlayerHPandAP[playerid][health]);
    GetPlayerArmour(playerid, PlayerHPandAP[playerid][armour]);
    return 1;
    }


    stock ReturnPlayerHPandAP(playerid)
    {
    SetPlayerHealth(playerid, PlayerHPandAP[playerid][health]);
    SetPlayerArmour(playerid, PlayerHPandAP[playerid][armour]);
    return 1;
    }


    Mach es mit einem enum. Fertig.

  • enum HPandAP
    {
    health,
    armour
    }


    new Float:PlayerHPandAP[MAX_PLAYERS][HPandAP];


    stock SavePlayerHPandAP(playerid)
    {
    GetPlayerHealth(playerid, PlayerHPandAP[playerid][health]); //Tag Mismatch
    GetPlayerArmour(playerid, PlayerHPandAP[playerid][armour]); //Tag Mismatch
    return 1;
    }


    stock ReturnPlayerHPandAP(playerid)
    {
    SetPlayerHealth(playerid, PlayerHPandAP[playerid][health]);
    SetPlayerArmour(playerid, PlayerHPandAP[playerid][armour]);
    return 1;
    }


    Habe es nun mit einem enum gemacht. Mir wird aber noch ein Tag Mismatch angezeigt.