[HILFE] /stats + Geld Bug ?!

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
  • Schönen Abend/Guten Morgen,


    wie die Überschrift schon sagt habe ich 2 Probleme, und zwar, das erste Problem.


    1.Problem:


    Ich habe in der Datenbank (MySQL) eingetragen, das ich eigentlich in der Hand, 5.000€ haben sollte, aber es kommt nichts in meine Hand, aber in den /stats steht es?! Was könnte das Problem sein?
    Screen/Beweis: Klick Hier!


    _________________________________________________________

    2.Problem:


    Ich möchte mein /stats -Befehl verschönern: uns zwar so:


    ------------------>> Die Statistiken von %s <<--------------------------------
    Name: Level: Geld:
    ( Abkürzung Jede Reihe immer 3 Stück ! Wäre sehr nice! )


    Hier der Befehl/Script:



    if(strcmp(cmdtext,"/stats",true,10) == 0) { new string[128]; format(string, sizeof(string),"Geld: %d\nAdminlevel: %d\nLevel: %d",SpielerInfo[playerid][pGeld], SpielerInfo[playerid][pAdminlevel], SpielerInfo[playerid][pLevel]); SendClientMessage(playerid,BLAU,string); return 1; }


    ________________________________________________________


    3. Problem:


    Ich habe ein Problem an meinem BSN, ich habe ein PickUp erstellt und es klappt alles gut, nur es wird irgendwie kein Geld abgezogen aber wieso?


    Befehl:

    if(GetPlayerMoney(playerid)<2)return SendClientMessage(playerid,0xFFFFFFFF, "Du hast nicht genügend Geld um dir das zu kaufen!");
    GivePlayerMoney(playerid,-2);
    new Float: Healthp;
    GetPlayerHealth(playerid,Healthp);
    if(Healthp < 55)return SetPlayerHealth(playerid,Healthp+45);
    SetPlayerHealth(playerid,100.0);
    return SendClientMessage(playerid,0xFFFFFFFF, "Du hast dir für 2€ einen Hamburger gekauft. Guten Appetit!");

  • Du hast wahrscheinlich nur SpielerInfo[playerid][pGeld] auf 5000 gesetzt ab gibst dem Spieler das Geld nicht...
    z.B unter OnPlayerUpdate


    Code
    public OnPlayerUpdate(playerid)
    {
         ResetPlayerMoney(playerid);
     	GivePlayerMoney(playerid, SpielerInfo[playerid][pGeld]);
     	return 1;
    }
  • Zu deinem 1. Problem:
    Hast du auch GivePlayerMoney verwendet?
    GivePlayerMoney(playerid,SpielerInfo[playerid][pGeld]); //Gegenfalls abändern!


    Zu deinem 2. Problem:
    Du möchstest deinen Stats Befehl verschönern? Tus doch einfach :D Hast ja schon mit den benötigten Funktionen gearbeitet:
    if(strcmp(cmdtext,"/stats",true,10) == 0) {
    new string[128];
    format(string,sizeof(string),"------------------>> Die Statistiken von %s <<--------------------------------",SpielerInfo[playerid][pName]); SendClientMessage(playerid,BLAU,string);
    format(string, sizeof(string),"Geld: %d\nAdminlevel: %d\nLevel: %d",SpielerInfo[playerid][pGeld], SpielerInfo[playerid][pAdminlevel], SpielerInfo[playerid][pLevel]); SendClientMessage(playerid,BLAU,string);
    return 1; }

    Nova-eSports Supporter 2012 - 2016


  • Wenn du ein Pickup erstellt hast, kannst du mit OnPlayerPickUpPickup abfragen, ob der Spieler in einem Pickup steht:
    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == BSN)
    {
    //Restlicher Code
    }
    }
    Dein Befehl macht garkeinen Sinn :D Du hast rein return und führst danach noch ganz normal Code aus. Kann garnich gehn :)
    if(GetPlayerMoney(playerid)<2)return SendClientMessage(playerid,0xFFFFFFFF, "Du hast nicht genügend Geld um dir das zu kaufen!");
    GivePlayerMoney(playerid,-2);
    SetPlayerHealth(playerid,100.0);
    SendClientMessage(playerid,0xFFFFFFFF, "Du hast dir für 2€ einen Hamburger gekauft. Guten Appetit!");
    return 1;


    So bin dann mal offline. Gute nacht und viel Spaß noch ^^

    Nova-eSports Supporter 2012 - 2016