Ein paar Befehle für einen priv. Mod Test Server

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 mir gerade einen Hamachi Server erstellt, um dort Mods zu testen usw.
    Da ich selber keine Ahnung vom Scripten habe, brauche ich eure hilfe :3
    Ich brauche für den Server folgende Befehle:

    • /skin [SkinID]
    • /v [CarID]
    • /weapons (Deagle, Shotgun, Mp5, M4 , Sniper)
    • /weapons2 (Ak47, Rifle)


    Ich hoffe jemand nimmt sich kurz die Zeit und macht das für mich.
    Achja, wenn ihr Codes schickt, muss ich auch wissen wo was hin kommt. Kann damit sonst nichts anfangen.


    Dankee :love:

  • Den befehl gibste hier ein:
    public OnPlayerCommandText(playerid, cmdtext[])

    {
    Unter public OnPlayerCommandText(playerid, cmdtext[]) das:


    new cmd[32],idx,giveplayerid,tmp[256],string[256]; //Brauchst nur einmal unter OnPlayerCommandText
    cmd = strtok(cmdtext,idx); //Brauchst nur einmal unter OnPlayerCommandText


    if(strcmp(cmd, "/weapons", true) == 0) //Somit erstellen wir den Befehl, d.h. wir machen, das man ihn benutzen kann.
    { // Befehl öffnen.
    if(IsPlayerConnected(playerid)) //Wenn der Spieler Coneccted (Online) ist.
    {
    GivePlayerWeapon(playerid, 24, 1337); // Giveplayerweapon: Die Waffe geben , playerid: Dem Spieler, der den Code eingibt, 24: Waffe (Deagle), 1337: Muni
    GivePlayerWeapon(playerid, 25, 1337);
    GivePlayerWeapon(playerid, 29, 1337);
    GivePlayerWeapon(playerid, 31, 1337);
    GivePlayerWeapon(playerid, 34, 1337);
    return 1;
    } //} Befehl "Schließen"
    } //} Befehl "Schließen"


    //MFG, T.O.N.I


    Den Weapons2 befehl dürftest du jetzt eigentlich selbst machen können :)


    MFG


  • Ernsthaft?
    Du verschwendest so viele Zeilen ....


    Was du benötigst:

    Spoiler anzeigen

    • Sscanf
    • OCMD


    Wie der Code aussieht:

    Spoiler anzeigen


    ocmd:weapons(playerid,params[]){
    new wid, muni;
    if(sscanf(params,"ii",wid,muni))return SendClientMessage(playerid,-1,"Benutze /weapons [WaffenID] [Munition]");
    return GivePlayerWeapon(playerid,wid,muni), SendClientMessage(playerid,-1,"Da hast du deine Waffen"), 1;}

  • Jungs, ich kan keine Ahnung von PAWN.
    Nochmal für unerfahrene bitte. :thumbup:


    Kannste haben:


    > OCMD = Command-Prozessor
    > SScanf = ein Plugin
    > GivePlayerWeapon = gibt dem Spieler eine Waffe | Spielerid,Waffenid,Munition
    > return = beendet einen Befehl/Public/etc.
    > variablen = Zum setzen der Ids und ausgeben der Werte
    > SendClientMessage = Gibt eine Nachricht aus

  • Kann damit sonst nichts anfangen.

    Na klar, wir sind hier auch das Wunschkonzert. Informieren oder Scripts downloaden...


    > OCMD = Command-Prozessor
    > SScanf = ein Plugin
    > GivePlayerWeapon = gibt dem Spieler eine Waffe | Spielerid,Waffenid,Munition
    > return = beendet einen Befehl/Public/etc.
    > variablen = Zum setzen der Ids und ausgeben der Werte
    > SendClientMessage = Gibt eine Nachricht aus

    Wenn Du etwas erklärst, dann schmeiß doch bitte nicht so einen Schrott hin.

    • OCMD: Die Beschreibung ist akzeptabel
    • SSCANF: Das ist ein Plugin, dass Dir dabei hilft, Strings besser zu verwalten. Wir oft bei Command Parametern verwendet.
    • GivePlayerWeapon: Akzeptabel
    • Return: Return kann einen Wert zurückgeben. Return wird bei Funktionsaufrufen verwendet, wenn man über eine Funktion einen Rückgabewert zurückgeben will. Mit dem Rückgabewert kann man dann im eigentlichen Script weiterarbeiten. Zudem wird auch gleich eine Funktion beendet und das was unter dem Return steht, wird nicht mehr mitgelesen.
    • Variablen: Das sind eine Art Speicher/Platzhalter, denen Du einen Wert zuweisen kannst und diese dann später an verschiedenen Stellen wieder verwenden und überschreiben kannst. Jede Variable hat eine eigene Speicheradresse. Eine Variable hat auch unterschiedliche Typen (z.B. int, float, double etc.)
    • SendClientMessage: Sendet eine Nachricht an einen bestimmten Spieler. Farben können verwendet werden.

    ___
    [AR]T.O.N.I: Es gibt hier einen Syntax Highlighter. Wie wärs, wenn Du diesen verwendest und nicht versuchst Deinen eigenen Syntax zu "highlighten"?

  • Habe dir im Callback OnPlayerCommandText die Befehle zusammen geschrieben.
    Jetzt fehlt dir noch ein Plugin: sscanf2
    Lad dir das runter, füg die .inc im Include Ordner (pawno -> includes), und das Plugin unter Plugins (plugins Ordner)
    Oben im Script das schreiben:
    #include <sscanf2>


    Den Code im Script mit OnPlayerCommandText ersetzen.
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(!strcmp("/skin",cmdtext,true,5)){
    new skinid;
    if(sscanf(params,"i",skinid))return SendClientMessage(playerid,-1,"Benutze: /skin [Skin-ID]");
    if(skinid<0||skinid>299)return SendClientMessage(playerid,-1,"SkinID muss zwischen 0 & 299 sein!");
    return SetPlayerSkin(playerid,skinid);
    }
    if(!strcmp("/v",cmdtext,true,2)){
    new carid,Float:x,Float:y,Float:z;GetPlayerPos(playerid,x,y,z);
    if(sscanf(params,"i",carid))return SendClientMessage(playerid,-1,"Benutze: /v [Car-ID]");
    if(carid<400||carid>611)return SendClientMessage(playerid,-1,"CarID muss zwischen 400 & 611 sein!");
    return CreateVehicle(carid,x,y,z,0,0,0,0);
    }
    if(!strcmp("/weapons",cmdtext,true,8)){return GivePlayerWeapon(playerid,24,500),GivePlayerWeapon(playerid,25,500),GivePlayerWeapon(playerid,29,500),GivePlayerWeapon(playerid,31,500),GivePlayerWeapon(playerid,34,500);}
    if(!strcmp("/weapons",cmdtext,true,9)){return GivePlayerWeapon(playerid,30,500),GivePlayerWeapon(playerid,33,500);}
    return 0;
    }

  • Spoiler anzeigen

    Na klar, wir sind hier auch das Wunschkonzert. Informieren oder Scripts downloaden...


    Wenn Du etwas erklärst, dann schmeiß doch bitte nicht so einen Schrott hin.

    • OCMD: Die Beschreibung ist akzeptabel
    • SSCANF: Das ist ein Plugin, dass Dir dabei hilft, Strings besser zu verwalten. Wir oft bei Command Parametern verwendet.
    • GivePlayerWeapon: Akzeptabel
    • Return: Return kann einen Wert zurückgeben. Return wird bei Funktionsaufrufen verwendet, wenn man über eine Funktion einen Rückgabewert zurückgeben will. Mit dem Rückgabewert kann man dann im eigentlichen Script weiterarbeiten. Zudem wird auch gleich eine Funktion beendet und das was unter dem Return steht, wird nicht mehr mitgelesen.
    • Variablen: Das sind eine Art Speicher/Platzhalter, denen Du einen Wert zuweisen kannst und diese dann später an verschiedenen Stellen wieder verwenden und überschreiben kannst. Jede Variable hat eine eigene Speicheradresse. Eine Variable hat auch unterschiedliche Typen (z.B. int, float, double etc.)
    • SendClientMessage: Sendet eine Nachricht an einen bestimmten Spieler. Farben können verwendet werden.

    ___
    [AR]T.O.N.I: Es gibt hier einen Syntax Highlighter. Wie wärs, wenn Du diesen verwendest und nicht versuchst Deinen eigenen Syntax zu "highlighten"?


    Was war an meinen Beschreibungen bitte falsch?
    Ich habe ledeglich die Grundfunktion des Befehls beschrieben, um Freemedia erste Eindrücke zu hinterlegen.