Eigene Zähleinheit

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
  • Joar,
    habe da mal ein Wunsch / Frage.
    Wie erstell ich sogesehen eigenes "Geld/Pointz" was per Textdraw gezählt wird.
    Ich habe mir es so gedacht das ich es mit Stock mache.
    Das ich nur noch unter der "Funktion", GibGeld(playerid, BETRAG/Punkte) machen brauch und es wird dann ebend immer auf das Textdraw zugezählt.


    Also wenn mir jemand etwas Starthilfe gibt, bzw. sagt was ich alles dafür brauche, wäre ich sehr Dankbar ;)
    z.B Wie ich das Geld ins Textdraw umwandele, Textdrawsetstring schön und gut aber hmm ^^


    MfG
    Pusher

  • TexdrawSetString, variable die das geld zählt


    ..


    new geld[MAX_PLAYERS];





    geld[playerid] = 1000;
    TextdrawSetString(lalal,geld[playerid]);


    so müsste das gehen

  • Also ich habe das jetzt so nech

    stock NewGeldd(playerid, Betrag)
    {
    new NewGeld[MAX_PLAYERS];
    //GetPlayerMoney(playerid) = GetPlayerMoney(playerid) + Betrag;
    TextdrawSetString(Textdraw,NewGeld[playerid]);
    return 1;
    }
    Gibt zumindest keine Warnings bzw. Errors ^^
    Ich erstelle zwar dann "NewGeld" aber wie mache ich das da in die "GeldAbfrage" rein. (komentierte Zeile)
    Weil er soll es mir ja nicht auf "Normal Geld" + rechnen sondern auf der Textdraw Anzeige ;)


    MfG
    Pusher

  • TextdrawSetString(Textdraw,GetPlayerMoney(playerid) + Betrag);

  • TextdrawSetString(Textdraw,GetPlayerMoney(playerid) + Betrag);
    Für das ist ja das NewGeld da.
    Ausserdem funzt es ja net aber Danke :)


    Nun gut,
    wie mache ich das nun mit der Abfrage ^^
    Zumindest allgemein mit dem Stock da oO
    Danke schonmal für die bisherigen Antworten.


    BlackFoX hättest auch mehr hierlassen können xD *Idee* *pfeif*


    MfG
    Pusher

  • forward GiveMoneyTD(playerid,betrag);
    public GiveMoneyTD(playerid,betrag) // das TD steht für Textdraw
    {
    GivePlayerMoney(playerid,betrag);
    new str[10]; format(str,sizeof str,"%d Euro",GetPlayerMoney(playerid)); // Euro oder Dollar oder €oder $ :D
    TextDrawSetString(Textdraw,str);
    }

  • Bis auf 1Problem geht alles ^^
    Das Problem ist, das es an dem Geld angepasst wird, ist ja auch logisch wenn man sich den Code anguckt ^^
    Ich will es so hinbekommen, das es eine eigene Zähleinheit ist also z.B E-Pointz.
    Beispiel [Aufgabe] gelöst > man bekommt 1000$ + 2 Score + 5 E - Pointz,
    Geld wird ja sowieso gezählt,
    Score kann man mit Tab einsehen,
    und E - Pointz soll man mit einem Extra Textdraw einsehen ;)
    Hoffe habe es nun besser erklärt.
    Danke schonmal bis hierher, wäre Dankbar wenn mir jemand den Rest auch etwas erklären könnte!


    MfG
    Pusher


    EDIT:
    Nun bin ich auf die "gute" Idee gekommen sowas wie GetPlayerMoney eben für die Pointz/Neue Einheit zumachen.
    Aber wie frage ich die Einheit nun ab ?
    Edit2: Keiner ne Idee?

  • Maxi eigentlich nicht nur ich weiß nicht grad wie ich es umsetzen soll.
    -------------------------------------
    Weiß denn keiner wie ich das mit der Abfrage hinbekomme ?


    MfG
    Pusher


    EDIT:
    Weiß denn keiner zur Hölle wie das geht xD
    Oder alle faul ?
    Ps. 3Tage waren vorbei und keine Antwort -.-

  • Also man soll sogesehen eine komplett neue Zähleinheit haben.
    Das heißt man soll es so machen können:
    GiveEPointz(playerid,Punkte);
    GetEPointz(playerid);
    Die Neue Zähleinheit soll in einem Textdraw angezeigt werden, damit man immer weiß wie viele E-Pointz man zur Zeit hat.
    Das wars mehr nicht.


    Was ich bis jetzt habe:
    forward GiveEPointz(playerid,betrag);
    public GiveEPointz(playerid,betrag)
    {
    GivePlayerMoney(playerid,betrag);//Die Funktion brauch ich eigentlich gar nicht, das sollte eben durch die neue Funtkion irgendwie ersetzt werden
    new str[10]; format(str,sizeof str,"%d Euro",GetPlayerMoney(playerid)); //GetPlayerMoney soll hier eben durch GetEPointz ersetzt werden
    TextDrawSetString(Textdraw,str);
    }


    Ich hoffe nun ist es besser erklärt.
    Also
    GiveEPointz um Punkte auf dem Textdraw hinzuzufügen
    GetEPointz um abzufragen wie viel EPointz der Spieler gerade hat


    Sowie es zur Zeit ist wird das Geld ebend gezählt auf dem Textdraw, also wie viel man zur zeit hat.


    MfG
    Pusher

  • Erstelle doch einfach eine Variable für den Spieler, die die Zahl enthält die der
    Einheit entspricht die du erschaffen möchtest , diese Einheit rufst du dann einfach ab,



    neue Funktion in Gestalt eines Timers ;)
    forward geteZ();
    public geteZ(){
    new getmyEpoints[64];
    for(new i = 0;i<MAX_PLAYERS;i++){
    if(!IsPlayerConnected(i) || IsPlayerNPC(i))continue;
    format(getmyEpoints,sizeof getmyEpoints,"EPointz : %i",GetPVarInt(i,"EPointz"));
    TextDrawSetString(textdrawid,getmyEpoints);
    }
    return 1;
    }



    Unter OnGameModeInit...

    SetTimer("geteZ",1000,1);




    GiveEPointz(playerid,pointz)return SetPVarInt(playerid,"EPointz",GetPVarInt(playerid,"EPointz")+pointz);


    Nur als Beispiel

    Mfg. BlackFoX_UD_ alias [BFX]Explosion