Schutzweste abfragen & anziehen

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 bin fleißig am scripten, jedoch hänge ich gerade bei einer Funktion.
    Ich möchte abfragen, ob der Spieler eine volle Schutzweste hat.
    Wenn er sie hat, und den Befehl /schutzweste eingibt, soll er eine
    Schutzweste (das Objekt angezogen bekommen).
    Ich hänge bei der Schutzwesten-Abfrage, ich bekomme diese
    Warnings:


    C:\Dokumente und Einstellungen\Robin\Desktop\NeL - Selfmade\gamemodes\NeL.pwn(24417) : warning 202: number of arguments does not match definition
    C:\Dokumente und Einstellungen\Robin\Desktop\NeL - Selfmade\gamemodes\NeL.pwn(24417) : warning 213: tag mismatch



    COMMAND:schutzweste(playerid)
    {
    if(!GetPlayerArmour(playerid) >= 99)return SendClientMessage(playerid,GRAU,"Du benötigst eine volle Schutzweste.");
    return 1;
    }


    Und nun zum Schutzwesten-Objekt am Körper:
    Ich denke, dass man es mit der Funktion SetPlayerAttachedObject machen muss (bin mir nicht sicher).
    Jedoch verstehe ich diese Funktion nicht, auch im SAMP Wiki nicht wirklich.
    Ich hoffe, jemand kann mir diese Funktion scripten. (Objekt ID: 373)

    Mit freundlichen Grüßen,
    John_Newman


  • Der Wert von der Armor ist eine Float - Variable.
    Diese musst du natürlich auch abfragen


    new Float:ar;
    if(GetPlayerArmour(playerid,ar)<=99)return SendClientMessage(playerid,farbe,string);


    Würde so glaube ich auch nicht gehen..
    So sollte es normalerweise sein:
    new Float:ar;
    GetPlayerArmour(playerid,ar);
    if(ar <= 99)return SendClientMessage(playerid,farbe,string);


    Falls ich mich irre, tut mir leid ;)


  • Passt so schon.


    John_Newman:


    Such dich nach einem AttachObject Editor um, dann musste nicht alle Werte von Hand schreiben.

  • Die Methode von Pinguin funktioniert auch.


    Achso, okay ..
    Weil bei mir hat es so nicht geklappt, oder ich habe es anders gemacht, weiß ich nicht so recht..
    Dann hatte ich es so versucht und es klappte..
    Naja, wenn seine Methode funktioniert, ist ja gut ;)

  • Ich habe dir mal was geschreiben. Habe es getestet so klapt es auch ohne Probleme ;)



    new ssweste;


    ocmd:schutzwestean(playerid,params[])
    {
    new Float:armour;
    GetPlayerArmour(playerid, armour);
    if(ssweste == 0)
    {
    if(armour >= 1)
    {
    SendClientMessage(playerid,SORBLAU,"* Du trägst nun einen Schutzweste *");
    SetPlayerAttachedObject(playerid,3,1242,1, 0.019999, 0.039999, 0.000000, 2.459999, 89.699989, -3.100000, 1.710000, 2.119999, 1.719999);
    ssweste = 1;
    return 1;
    }
    else {
    SendClientMessage(playerid,SORBLAU,"* Du hast dir keine Schutzweste gekauft *");
    return 1;
    }
    }
    else {
    SendClientMessage(playerid,SORBLAU,"* Du hast die Schutzweste abgenommen. *");
    RemovePlayerAttachedObject(playerid,3);
    ssweste = 0;
    return 1;
    }
    }

    99d057dce7152cf39d725a88f18be823b1cd9873.png

    Forum : https://dsz-roleplay.de/

    Meine Game Server :

    GTA Server IP : dsz-rl.de
    Teamspeak IP :dsz-rl.de:2010
    Ark Server : dsz-rl.de
    Mincaft Server : dsz-rl.de

    Einmal editiert, zuletzt von [D.S.Z]Infinity ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Ich habs dir mal ein wenig leichter & wahrscheinlich auch schneller geschrieben ^^


    COMMAND:schutzweste(playerid,params[])
    {
    new Float:weste,bool:westean;
    GetPlayerArmour(playerid,weste);
    if(weste < 1)return SendClientMessage(playerid,Farbe,"Du hast keine Schutzweste!");
    if(westean==false)
    {
    westean = true;
    //Hier zieht er die Weste an
    }
    else
    {
    // Hier zieht er sie aus..
    }
    return 1;
    }