heal befehl verfeinern

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,


    also ich möchte das bei dem healbefehl nicht mehr die menge des heals angegeben werde muss sondern immer gleich beim befehl 100% gehealt wird... heir mein befehl:



    kann mir einer dabei helfen?
    danke schon mal im vorraus^^

    Mein Selfmade:

    1.Haussytem [99/100%]
    2.Handysystem [95/100%]
    3.Payday [95/100%]
    4.Autosystem [100/100%]
    5. kleinigkeiten, wo ich noch bugs habe^^ [75/100%]
    Wer mir helfen möchte und vorallem Lust oder Zeit hat, darf sich natürlich bei mir melden. :D


    >> ¡Einfach PN an mich! <<

    Marco

  • Da du sscanf benutzt, musst du einfach die anzahl an parametern bei sscanf ändern.


    sscanf nimmt einen string, in deinen fall den mit den parametern des befehls (alles was nach dem befehl selbst, also /heal, kommt sind die parameter. z.b bei dir [ID] [Heal] = 2 parameter) und teilt diese. Weil du ja einmal [ID] und einmal [Heal] hast, werden als parameter "ud" angegeben.
    u steht für die ID eines Spielers, oder den namen eines spielers.
    d steht für eine ganze zahl, wie z.b 100 oder 1 oder 0 oder 12312532452345245.
    Danach kommen die variablen, an die die parameter übergeben werden damit du sie dann im befehl verwenden kannst. u wird an pID übegeben, und d an heal.
    Sollte der befehl nicht diese anzahl an parametern enthalten, lso z.b /heal 0 test (0 ist richtig, aber der zweite parameter ist keine zahl) oder /heal 1.5 100 (1,5 ist falsch, weil es weder eine spielerid sein kann noch ein name) wird true zurück gegeben. So weisst du, das wenn sscanf true zurück gibt, der jenige der den befehl eingegeben hat nicht die richtige anzahl an parametern eingegeben hat und du die fehlermeldung "Benutze: /heal [ID] [Heal]" zurück geben kannst.


    Wenn du jetzt nicht mehr die anzahl an leben angeben möchtest, sondern nur noch die id des spielers, machst du aus "ud" einfach nur "u" (weil wir dann ja nur noch spielerid/spielername brauchen), und nimmst die variable für den heal wert raus. Also:
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,COLOR_BLAU,"Benutze: /heal [ID]");//Die Meldung wird natürlich auch dementsprechend geändert^^
    nun änderst du noch den wert der bei SetPlayerHealth gegeben wird. Vorher war der wert ja als heal angegeben, was die variable war in der wir den angegeben wert gespeichert hatten bei /heal [ID] [Heal]. Da du möchtest das der Spieler direkt wieder volles leben hat, änderst du das einfach auf 100.0, also:
    SetPlayerHealth(pID,100.0);
    Und zu guter letzt nimmst du noch die heal variable raus.
    Am ende sollte das dann ungefähr so aussehen:
    ocmd:heal(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,6)) return SendClientMessage(playerid,COLOR_ROT,"Du bist kein Arzt!");
    new pID, string[128];
    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,COLOR_BLAU,"Benutze: /heal [ID]");
    SetPlayerHealth(pID,100.0);
    format(string,sizeof string,"Arzt %s hat dich Erfolgreich geheilt.",SpielerName(playerid));
    SendClientMessage(pID,COLOR_GRÜN1,string);
    format(string, sizeof string,"Du hast Patient %s Erfolgreich geheilt!",SpielerName(pID));
    SendClientMessage(playerid,COLOR_GRÜN1,string);
    return 1;
    }


    Und feritg :)

    The fact is, I am right. And if you think I'm wrong, you are wrong.

  • beides funktioniert ja...maddin wie kann man es ändern das mehrere fraktionen den befehl nutzen können zB. 6, 7 und 8 aber wenn man nicht in eine der fraktionen ist, trotzdem der text erscheint, das sie kein arzt sind?


    danke für eure hilfen^^

    Mein Selfmade:

    1.Haussytem [99/100%]
    2.Handysystem [95/100%]
    3.Payday [95/100%]
    4.Autosystem [100/100%]
    5. kleinigkeiten, wo ich noch bugs habe^^ [75/100%]
    Wer mir helfen möchte und vorallem Lust oder Zeit hat, darf sich natürlich bei mir melden. :D


    >> ¡Einfach PN an mich! <<

    Marco