Trinkautomaten

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

  • new Float:Automaten[][] ={
    {X,Y,Z}, // zeile 0
    {X1,Y1,Z1], /*Zeile 1*/ }


    DrinkAtAutomat(playerid,Float:hp)
    {
    new Float:x,Float:y,Float:Z;
    if(IsAtAutomat(playerid))
    {
    GetPlayerPos(playerid,x,y,z);
    PlayerPlaySound(playerid,1054, x,y,z);
    ApplyAnimation(playerid,"INT_OFFICE","OFF_Sit_Drink",4.1,1,1,1,1,1);
    GivePlayerHealth(playerid,hp);
    }
    return 1;
    }


    stock IsAtAutomat(playerid)
    {
    if(IsPlayerInRangeOfPoint(playerid,2.0,Automaten[0][0],Automaten[0][1],Automaten[0][2])) return 1;
    if(IsPlayerInRangeOfPoint(playerid,2.0,Automaten[1][0],Automaten[1][1],Automaten[1][2])) return 1;
    else return 0;
    }


    unter : OnPlayerKeyStateChange das hier einfügen :



    if (newkeys & KEY_ACTION)
    {
    DrinkAtAutomat(playerid,15.0);
    }


    LG



    €dit::


    Kein Support per PN..
    Um Automaten hinzuzufügen oben in der array eine weitere Zeile anfangen oder die anderen editien,

    Zitat

    if(IsPlayerInRangeOfPoint(playerid,2.0,Automaten[1][0],Automaten[1][1],Automaten[1][2])) return 1;


    Und diese if abfrage hinzfügen sprich das rotr halt editen ;)


    Wenn du vor einen Automaten stehst den du eingetragen hast einfach F oder Enter drücken :)


    Einmal editiert, zuletzt von Guest- ()

  • Ich würde zwei sachen verändern


    Zum ersten: Maximal 100Hp sonst saufen die sich bis auf 1000 Hp hoch und sind fast unsterblich



    new Float:playerhealth;
    GetPlayerHealth(playerid,playerhealth);
    if(playerhealth + hp <= 100)
    {
    GivePlayerHealth(playerid,hp);
    }
    else
    {
    SetPlayerHealth(playerid,100.0);
    }



    Zum zweiten die Positionsabfrage mit einer Schleife lösen


    stock IsAtAutomat(playerid)
    {
    for(new i = 0;i<sizeof(Automaten);i++)
    {
    if(IsPlayerInRangeOfPoint(playerid,2.0,Automaten[i][0],Automaten[i][1],Automaten[i][2])) return 1;
    }
    else
    {
    return 0;
    }
    }


    @dit: den stock GivePlayerHealth brauch er noch, da es die Funktion in samp nicht gibt


    stock giveplayerhealth(playerid,Float:hp);
    {
    new Float:phealth;
    GetPlayerHealth(playerid,phealth);
    SetPlayerHealth(playerid,phealth+hp);
    }