Abfragen ob er es schon hat?????HILFE

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
  • Hi Leute wie frage ich ab ob der Spieler das schon hat bsp ich möchte das er einmal Springt und Geld bekommt und dan nicht mehr wenn ich es aber mache kriegt er immer noch.Wie mache ich das???? danke im voraus!

  • Währrend er springt oder er gesprungen ist,
    deklarierst Du einfach eine Variable, die bsp.
    auf true gesetzt wird und vorher auf false war.

    nach dem Sprung


    SetPVarInt(playerid, "sprungCount", 1);
    dann in der Abfrage


    if(GetPVarInt(playerid, "sprungCount"))
    {
    // der Spieler ist bereits gesprungen
    return 1;
    }

  • Mit einer Variable.


    Z.B.:


    new Vari[MAX_PLAYERS];


    if(Vari[playerid] == 1)
    {
    //Deine Aktion
    Vari[playerid] = 0;
    return 1;
    }
    else if(Vari[playerid] == 0)
    {
    //Deine Aktion
    Vari[playerid] = 1;
    return 1;
    }


    So vom Prinzip her. Musst du halt anpassen.

  • i



    aso danke


  • Die unsauberen Methoden zur PAWN-Programmierung könnten
    nun allmälig eigentlich verblassen... Oder nicht?


    Seit dem es die Spieler Variablen gibt, die den Server "schonen",
    muss ich den Leuten nicht mehr empfehlen, veraltete Varianten
    zu verwenden.


    Nur mal so als kleiner Tipp.


  • eine frage wenn man if(Vari[playerid] == 1) macht ist es wenn er das erste mal springt? und wenn ich es bei 1 mache und springe kriege ich immer und immer wieder Geld!

  • Erstmal würde dein so auch nicht gehen


    Zitat

    if(GetPVarInt(playerid, "sprungCount"))
    {
    // der Spieler ist bereits gesprungen
    return 1;
    }


    Müsste so sein:


    if(GetPVarInt(playerid,"sprungCount")==1)
    {
    // der Spieler ist bereits gesprungen
    return 1;
    }


    Aber egal. Zu dem anderen Thema:


    Ich dachte immer das man eher nicht so viele PVar's verwenden soll da sie Ressourcen fressen.
    Ist das wirklich besser PVar's zu benutzen? :o

  • Es muss nicht so.


    du kannst auch nur ein if verwenden ist sozusagen '> 0' wenn du weißt, was ich meine.

  • Es muss nicht so.


    du kannst auch nur ein if verwenden ist sozusagen '> 0' wenn du weißt, was ich meine.


    if(GetPVarInt(playerid,"sprungCount")==1)
    {
    // der Spieler ist bereits gesprungen
    return 1;
    }
    if(GetPVarInt(playerid,"sprungCount")==0)
    {
    SendClientMessage(playerid,COLOR_GRÜN,"Herausforderung erhalten.");
    GivePlayerMoney(playerid,1000000);
    return 1;
    }


    geht nicht krieg immer und immer wieder Geld!
    hab es auch mit Variablen gemacht krieg immer noch geld!


  • Also so einen Quatsch habe ich auch noch nicht gelesen.


    Ich erklär Dir mal, einfachstes Programmierwissen.



    Ist eine Variable mit 1 definiert, also true, kannst Du
    diese in der Anweisung auch einfach so abfragen:


    Code
    if(variable)
    
    
    ENSPRICHT EXAKT
    
    
    if(varialbe == 1)


    Ist diese Variable nicht definiert, also false, kannst Du
    diese durch ein Ausrufezeichen "!" abfragen:


    Code
    if(!variable)
    
    
    ENTPRICHT EXAKT
    
    
    if(varialbe == 0)


    ZUM NACHLESEN aller Operatoren: SAMP -WIKI



    Nun aber Schluss, das gehört nicht zum Thema!