gelöscht

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
  • Beitrag von Bananenstaude ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • Beitrag von Bananenstaude ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • Beitrag von Bananenstaude ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • Beitrag von Bananenstaude ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • Beitrag von Bananenstaude ()

    Dieser Beitrag wurde vom Autor gelöscht ().

  • ocmd:versorgen(playerid,params[])
    {
    new pID, preis[64], string[128];
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(playerid, X, Y, Z);
    if(IsPlayerInRangeOfPoint(pID, 5.0, X,Y,Z))
    {
    if(!istSpielerFraktion(playerid,3))return SendClientMessage(playerid,ROT,"[ERROR] Du bist kein Arzt!");
    if(sscanf(params,"ui",pID,preis))return SendClientMessage(playerid,ROT,"[ERROR] Eingeben: /versorgen [ID] [PREIS]");
    format(string,sizeof(string),"[Arzt] Du wurdest vom Arzt %s für %i$ geheilt. Bleib gesund!",SpielerName(playerid),preis);
    SendClientMessage(pID,BLAU,string);
    new preismoney = strval(preis);
    GivePlayerMoney(pID,-preismoney);
    SetPlayerHealth(pID,100);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,ROT,"[ERROR] Du bist nicht in der nähe der Person.");
    return 1;
    }
    }

  • Beitrag von Bananenstaude ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • Kann da Goldkiller nur Recht geben:
    Du liest einen Integer aus (in der sscanf Zeile).
    Preis ist somit ein Integer, du hast diesen oben aber anders definiert. Richtig wäre dann so:
    new pID, preis/*Der Part hier ist weggefallen*/, string[128];


    Dadurch fällt jetzt auch die Zeile mit dem "preismoney und strval weg! :

    new preismoney = strval(preis);
    GivePlayerMoney(pID,-preismoney);


    wird zu :



    GivePlayerMoney(pID,-preis);//Warum du vorher extra eine zweite Variable definiert hast, versteh ich nicht..


    Da der Medic wohl auch das Geld erhalten soll, schieben wir ihm das auch noch, nett wie wir sind ;), eben zu.
    Insgesamt sieht das dann wie folgt aus:



    ocmd:versorgen(playerid,params[])
    {
    new pID, preis, string[128];
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(playerid, X, Y, Z);
    if(IsPlayerInRangeOfPoint(pID, 5.0, X,Y,Z))//Hier ist das Spaltprodukt! Das ist aber doch noch garnicht definiert!!
    {
    if(!istSpielerFraktion(playerid,3))return SendClientMessage(playerid,ROT,"[ERROR] Du bist kein Arzt!");
    if(sscanf(params,"ui",pID,preis))return SendClientMessage(playerid,ROT,"[ERROR] Eingeben: /versorgen [ID] [PREIS]");/*Hier liegt jetzt aber der Fehler.
    Du spaltest die params auf, arbeitest aber vorher schon mit dem Spaltproduk?!*/
    format(string,sizeof(string),"[Arzt] Du wurdest vom Arzt %s für %i$ geheilt. Bleib gesund!",SpielerName(playerid),preis);
    SendClientMessage(pID,BLAU,string);
    GivePlayerMoney(pID,-preis);//Wir entnehmen dem Einen das Geld
    GivePlayerMoney(playerid,preis);//Und geben dem Anderen den Betrag
    SetPlayerHealth(pID,100);
    SendClientMessage(playerid,BLAU,"Du hast einen Spieler erfolgreich geheilt!");//Wir senden noch eine kleine Bestätigungsmessage.
    return 1;
    }
    else
    {
    SendClientMessage(playerid,ROT,"[ERROR] Du bist nicht in der nähe der Person.");
    return 1;
    }
    }



    Fazit: Bitte baue die Aufspaltung der Params bereits vor die Range-Abfrage (Distanzabfrage zwischen den Spielern), da du "pID" bereits dort verwenden musst.



    Hinweis: Keinen Kontakt über TeamViewer oder Skype !
    Grüßt den Fehlerklärbär von mir.
    Coming soon: Pawn-Café ( Concept-Sharing | Scripting-First-Aid )

    Einmal editiert, zuletzt von FACE ()

  • Beitrag von Bananenstaude ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • Bananenstaude

    Hat den Titel des Themas von „Was ist falsch?“ zu „gelöscht“ geändert.