/ID 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 Leute!


    Ich würde gerne ein /id Befehl/System erstellen. Ich bin Scriptanfänger, und würde mich daher freuen, wenn ihr nicht einfach nur das Script hinschreibt, sondern ein bisschen was dazu erklärt. Warum habt ihr dass so gemacht usw. ^^.


    Mann soll eingeben /ID [ID] oder [Name]
    Wenn man nur /id eingibt soll da stehen ( /ID [ID] oder [NAME] )
    Wenn man erfolgreich ID oder Name eingegeben hat sollte im Text folgendes stehen:
    ID: [SEINE ID]
    Name: [SEIN NAME]
    FPS: [FPS ANZAHL]


    Danke schonmal! :)


  • Meep Meep, Geronimo ist zur stelle ;)



    Also:


    Erst einmal musst du natürlich festlegen mit was du deinen Befehl schreibst(hier mal mit strcmp):


    if(strcmp(cmd, "/id", true) == 0)
    {
    }


    Dann musst du natürlich überprüfen, ob der Spieler eingeloggt ist das kann man mit IsPlayerConnected(playerid):


    if(IsPlayerConnected(playerid))
    {
    }
    return 1;


    Dann musst du die Parameter festlegen und natürlich überprüfen, ob der Spieler nur /ID ohne Parameter eingibt und wann mit:


    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "[Hemeles]: NUTZUNG: /id [Spieler ID]"); //Hier überprüft er die erstellte Variable TMP auf strtok(cmdtext, idx); D.H. Er guckt ob der Spieler keine Parameter benutzt!
    return 1;
    }
    new target; //Erstellung eines Ziels(Target)
    target = ReturnUser(tmp); // Target wird eingestellt in das was eingegeben wird von dem Parameter
    new sstring[256];//Neuer String
    if(IsPlayerConnected(target))//Er guckt ob Target Online ist ;D
    {
    if(target != INVALID_PLAYER_ID)
    {
    GetPlayerName(target, giveplayer, sizeof(giveplayer));
    format(sstring, sizeof(sstring), "Name: %s, ID: %d, Level: %d",giveplayer,target,PlayerInfo[target][pLevel]); //Hier wird der neue String benutzt und formatiert in Name: %s ID: %d und Level: %d ;)
    SendClientMessage(playerid, COLOR_GRAD1, sstring);
    }
    }


    Ich hoffe ich konnte dir helfen und wünsche noch einen guten Abend und Rutsch ins neue Jahr 2013


    MfG
    Geronimo

  • Hi!


    Erstmal großes Danke, dass du mir weiterhilfst. Jedenfalls, ich bin totaler Neuling, und weiß garnicht wo zB. das IsPlayerConnected hin kommt, oder der "strtok".


    Gruß.

  • Hi!


    Erstmal großes Danke, dass du mir weiterhilfst. Jedenfalls, ich bin totaler Neuling, und weiß garnicht wo zB. das IsPlayerConnected hin kommt, oder der "strtok".


    Gruß.


    Deswegen habe ich dir auch alles in der Reihenfolge aufgeschrieben ich poste dir hier den Befehl ganz ok? :D



    if(strcmp(cmd, "/id", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "[Hemeles]: NUTZUNG: /id [Spieler ID]");
    return 1;
    }
    new target;
    target = ReturnUser(tmp);
    new sstring[256];
    if(IsPlayerConnected(target))
    {
    if(target != INVALID_PLAYER_ID)
    {
    GetPlayerName(target, giveplayer, sizeof(giveplayer));
    format(sstring, sizeof(sstring), "Name: %s, ID: %d, Level: %d",giveplayer,target,PlayerInfo[target][pLevel]); // Das musst du noch anpassen d.h. das was nach ", steht sind die Variablen wovon es ausgelesen wird ;)
    SendClientMessage(playerid, COLOR_GRAD1, sstring);
    }
    }
    }
    return 1;
    }

  • Wenn du totaler Neuling bist würde ich dir ans Herzlegen lerne das Scripten gleich mit OCMD das ist für dich als Neuling einfacher zu verstehen.



    Wenn du möchtest kann ich dich auch gerne mal selber Unterstützen und dir was in OCMD beibringen.


    MFG


    OCMD:


    ocmd:id(playerid,params[]){new pID,string[128];if(sscanf(params,"u",pID))return SendClientMessagen(playerid,FARBE,"Tipp: /ID [ID]");if(!IsPlayerConnected(pID))return SendClientMessage(playerid,FARBE,"Der Spieler ist nicht Online");format(string,sizeof(string),"[Name: %s] [ID: %d] ",SpielerName(playerid),pID); SendClientMessage(playerid,FARBE,string);return 1;}



    So sieht das in ocmd aus wie man sieht viel platz sparender.


    Für genau erklärung stehe ich bereit

  • C:\Users\J**t\Desktop\Max\SAMP Server\gamemodes\germanfunlife.pwn(188) : error 017: undefined symbol "cmd"
    C:\Users\J****\Desktop\Max\SAMP Server\gamemodes\germanfunlife.pwn(192) : error 017: undefined symbol "tmp"
    C:\Users\J*****t\Desktop\Max\SAMP Server\gamemodes\germanfunlife.pwn(192) : error 017: undefined symbol "strtok"
    C:\Users\******t\Desktop\Max\SAMP Server\gamemodes\germanfunlife.pwn(193) : error 017: undefined symbol "tmp"
    C:\Users\******\Desktop\Max\SAMP Server\gamemodes\germanfunlife.pwn(199) : error 017: undefined symbol "ReturnUser"
    C:\Users\********\Desktop\Max\SAMP Server\gamemodes\germanfunlife.pwn(205) : error 017: undefined symbol "giveplayer"
    C:\Users\********t\Desktop\Max\SAMP Server\gamemodes\germanfunlife.pwn(205) : error 017: undefined symbol "giveplayer"
    C:\Users\********t\Desktop\Max\SAMP Server\gamemodes\germanfunlife.pwn(205) : error 029: invalid expression, assumed zero
    C:\Users\******t\Desktop\Max\SAMP Server\gamemodes\germanfunlife.pwn(205) : fatal error 107: too many error messages on one line


    Tja. Weiß auch nicht was falsch ist ^^. Bitte nochmals um deine Hilfe :D
    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    9 Errors.