problem mit Befehl..

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
  • Hallo


    ich habe ein problem bei meinem Befehl, und zwar wenn er was einzahlen will also mit /einzahlen SUMME wird das geld zwar eingezahlt aber das Geld was auf der hand bleibt wirdn icht abgezogen, Also sagen wir er macht /einzahlen 50 dann werden ihn 50€ abgezogen, hat er kein Geld soll eine Nachricht kommen. Nur irgend wie will das nicht so wirklich :huh:


    ocmd:einzahlen(playerid ,params[])
    {
    new einzahlsumme,string[128],money;
    if(!IsPlayerInRangeOfPoint(playerid,2.0,926.8448,-1207.1624,17.1237))return SendClientMessage(playerid,DUNKELROT,"Du bist an keinen ATM");
    if(sscanf(params,"i",einzahlsumme))return SendClientMessage(playerid,GRAU,"/einzahlen [Einzahl Summe]");
    if(money > GetPlayerMoney(playerid))return SendClientMessage(playerid,GELB, "Du besitzt kein Geld !");
    else
    {
    SetPVarInt(playerid,"Kontostand",GetPVarInt(playerid,"Kontostand") +einzahlsumme);
    format(string, sizeof(string),"Du hast %i Euro Eingezahlt, Dein neuer Kontostand Beträgt nun: {00FFBE}%i Euro",einzahlsumme, GetPVarInt(playerid,"Kontostand"));
    SendClientMessage(playerid,WEIS,string);
    GivePlayerMoney(playerid,-money);
    SpielerSpeichern(playerid);
    }
    return 1;
    }

  • ok funktioniert, nur habe ich das problem auch wenn er 0$ Hat kann er was einzahlen ? woran liegts ?


    So sieht es jetzt aus.
    ocmd:einzahlen(playerid ,params[])
    {
    new einzahlsumme,string[128];
    if(!IsPlayerInRangeOfPoint(playerid,2.0,926.8448,-1207.1624,17.1237))return SendClientMessage(playerid,DUNKELROT,"Du bist an keinen ATM");
    if(sscanf(params,"i",einzahlsumme))return SendClientMessage(playerid,GRAU,"/einzahlen [Einzahl Summe]");
    if(GetPlayerMoney(playerid) < 0)return SendClientMessage(playerid,GELB,"Du besitzt kein Geld !");
    else
    {
    SetPVarInt(playerid,"Kontostand",GetPVarInt(playerid,"Kontostand") +einzahlsumme);
    format(string, sizeof(string),"Du hast %i Euro Eingezahlt, Dein neuer Kontostand Beträgt nun: {00FFBE}%i Euro",einzahlsumme, GetPVarInt(playerid,"Kontostand"));
    SendClientMessage(playerid,WEIS,string);
    GivePlayerMoney(playerid,-einzahlsumme);
    SpielerSpeichern(playerid);
    }
    return 1;
    }

  • Du hast:



    if(GetPlayerMoney(playerid) < 0)return SendClientMessage(playerid,GELB,"Du besitzt kein Geld !");
    else
    {
    SetPVarInt(playerid,"Kontostand",GetPVarInt(playerid,"Kontostand") +einzahlsumme);
    format(string, sizeof(string),"Du hast %i Euro Eingezahlt, Dein neuer Kontostand Beträgt nun: {00FFBE}%i Euro",einzahlsumme, GetPVarInt(playerid,"Kontostand"));
    SendClientMessage(playerid,WEIS,string);
    GivePlayerMoney(playerid,-einzahlsumme);
    SpielerSpeichern(playerid);
    }
    Also wird Abgefragt ob das Geld weniger als 0 ist und wenn ja wird ihm ein text gesendet.
    Danach müsste eigentlich kommen, was passiert wenn er mehr als 0 hat aber du machst else

    Projektleiter

    Cleared to Land ist in der Script Werkstatt ;)


  • Dann fragst du halt so ab ;D


    if(GetPlayerMoney(playerid) <= einzahlsumme)return SendClientMessage(playerid,GELB,"Du besitzt kein Geld !");


    Bei deinem Befehl hat er nur abgefragt, ob die Zahl kleiner als "0" ist, du musst aber auch abfragen ob die Zahl = "0" oder < "0" ist, deshalb <= :)