DCMD Hilfe!

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
  • Guten Tag,


    ich möchte dcmd lernen habe auch ein tut gefunden aber irgendwie funktioniert das ned hier:
    http://weedarr.wikidot.com/dcommand


    Man muss /kill [ID] eingeben habe ich gemacht aber es kommt immer Unkown Command!
    Kann mir jemand dabei helfen hier wo ich was eingefügt habe:


    Ganz unten:
    dcmd_kill(playerid, params[]) // just change "kill" to whatever you put for the first parameter in the onplayercommandtext bit
    {
    #pragma unused params // Just tells the compiler that the params (parameters) is not used, i.e. in a /kill [ID] command you would remove this
    SetPlayerHealth(playerid,0.0); // kills em!
    return 1;
    }


    Unter OnPlayerCommandText:
    {
    dcmd(kill,4, cmdtext);
    return 0;
    }
    über Main()
    #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1


    Danke für eure Hilfe!

    Einmal editiert, zuletzt von Hawkn ()

  • dcmd_killen(playerid,params[]) {
    new
    pID;
    if(sscanf(params, "u",pID)) {
    return SendClientMessage(playerid,COLOR_RED,"Benutzung: /killen [playerid]");
    }
    if(!IsPlayerConnected(pID)) {
    return SendClientMessage(playerid,COLOR_RED,"Kein Spieler mit angegebener ID Online");
    }


    new
    admin[MAX_PLAYER_NAME],
    spieler[MAX_PLAYER_NAME],
    killmessage[128],
    killmessage2[128];


    GetPlayerName(playerid, admin, sizeof(admin));
    GetPlayerName(pID, spieler, sizeof(spieler));
    SetPlayerHealth(pID, 0);
    format(killmessage,sizeof(killmessage),"%s hat dich gekillt",admin);
    SendClientMessage(pID,COLOR_RED, killmessage);
    format(killmessage2,sizeof(killmessage2),"Du hast %s gekillt",spieler);
    SendClientMessage(playerid, COLOR_GREEN, killmessage2);


    return 1;
    }



    Das hier ist ein Killcommand der funzt.
    wie das aufgebaut ist kannst du vllt. hier nachvollziehen:
    [ SCRIPTING ] Commands mit Parametern

  • warum hat der andere Code nicht gefunzt?
    Wenn ich von dem Tutorial diese dcmd Code nehme kommen diese Errors:
    C:\DOKUME~1\SUNNYB~1\Desktop\lernen.pwn(1292) : error 017: undefined symbol "dcmd_kick"
    C:\DOKUME~1\SUNNYB~1\Desktop\lernen.pwn(1295) : warning 225: unreachable code
    C:\DOKUME~1\SUNNYB~1\Desktop\lernen.pwn(1295) : error 017: undefined symbol "dcmd_kick"
    C:\DOKUME~1\SUNNYB~1\Desktop\lernen.pwn(1297) : error 017: undefined symbol "params"
    C:\DOKUME~1\SUNNYB~1\Desktop\lernen.pwn(1301) : error 017: undefined symbol "params"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.


    das habe ich bei OnPlayerCommandText jetzt stehen:
    {
    dcmd(kick,4,cmdtext);
    return 0;
    }
    dcmd_kick(playerid,params[]) {


    if(!strlen(params)) {
    return SendClientMessage(playerid,Rot,"USAGE: /kick [playerid]");
    }
    new
    pID=strval(params);
    if(!IsPlayerConnected(pID)) {
    return SendClientMessage(playerid,Rot,"Kein Spieler mit angegebener ID Online");
    }
    Kick(pID);
    SendClientMessage(playerid,Gruen,"Erfolgreich Spieler vom Server gekickt!");
    return 1;
    }

    2 Mal editiert, zuletzt von Hawkn ()

  • #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 kommt unter den includes - über main

  • hast du das iwo im Script drinne (z-b- ganz unten)?:


    stock IsNumeric(const string[]) { // by DracoBlue
    new length=strlen(string);
    if (length==0) return false;
    for (new i = 0; i < length; i++) {
    if (
    (string[i] > '9' || string[i] < '0' && string[i]!='-' && string[i]!='+') // Not a number,'+' or '-'
    || (string[i]=='-' && i!=0) // A '-' but not at first.
    || (string[i]=='+' && i!=0) // A '+' but not at first.
    ) return false;
    }
    if (length==1 && (string[0]=='-' || string[0]=='+')) return false;
    return true;
    }

    Wenn ich dir geholfen haben sollte, würde ich mich extremst freuen, wenn du dir kurz Zeit nehmen würdest und mir helfen könntest:


    Unterstütze mich bitte hier und vote für mich:


    Ihr müsst nur oben links auf Vote klicken und bestätigen! Vielen Dank dafür

  • dcmd_kick(playerid,params[])
    {
    new pid,s[64];
    if(sscanf(params,"d",pid)) return SendClientMessage(playerid,COLOR_GREY,"Benutze: /kick [PlayerID]");
    if(!IsPlayerConnected(pid)) return SendClientMessage(playerid,COLOR_GREY,"Der Spieler ist nicht Online");
    format(s,sizeof(s),"[KICK] %s wurde von %s gekickt",PlayerName(pid),PlayerName(playerid));
    SendClientMessageToAll(COLOR_GOLD,s);
    Kick(pid);
    return 1;
    }


    Mein KickDCMD,
    wurde halt mit sscanf geschrieben.
    Und dieser klappt auch sehr gut^^

  • stock IsNumeric(const string[]) { // by DracoBlue
    new length=strlen(string);
    if (length==0) return false;
    for (new i = 0; i < length; i++) {
    if (
    (string[i] > '9' || string[i] < '0' && string[i]!='-' && string[i]!='+') // Not a number,'+' or '-'
    || (string[i]=='-' && i!=0) // A '-' but not at first.
    || (string[i]=='+' && i!=0) // A '+' but not at first.
    ) return false;
    }
    if (length==1 && (string[0]=='-' || string[0]=='+')) return false;
    return true;
    }


    da habe ich nicht drinne!

  • Mhh habe da glaube ich was verwechselt, da ich nen anderen dcmd Code benutze:


    //das hier halt in den OnPlayerCommandText
    public OnPlayerCommandText(playerid,cmdtext[])
    {
    dcmd(kick,4,cmdtext);
    return 0;
    }
    //das hier iwo rein (in kein public)
    dcmd_kick(playerid,params[])
    {
    new id=strval(params);
    if(!strlen(params) || !IsNumeric(params))
    {
    return SendClientMessage(playerid,COLOR_RED,"/kick [playerid]");
    }
    else if(!IsPlayerConnected(id)) {
    return SendClientMessage(playerid,COLOR_RED,"Der Spieler ist nicht Online");
    }
    else if(IsPlayerConnected(id))
    {
    //was soll passieren (kick(id);)


    }
    return 1;
    }


    // das hier iwo ganz unten einfügen
    //-----
    stock IsNumeric(const string[]) { // by DracoBlue
    new length=strlen(string);
    if (length==0) return false;
    for (new i = 0; i < length; i++) {
    if (
    (string[i] > '9' || string[i] < '0' && string[i]!='-' && string[i]!='+') // Not a number,'+' or '-'
    || (string[i]=='-' && i!=0) // A '-' but not at first.
    || (string[i]=='+' && i!=0) // A '+' but not at first.
    ) return false;
    }
    if (length==1 && (string[0]=='-' || string[0]=='+')) return false;
    return true;
    }

    Wenn ich dir geholfen haben sollte, würde ich mich extremst freuen, wenn du dir kurz Zeit nehmen würdest und mir helfen könntest:


    Unterstütze mich bitte hier und vote für mich:


    Ihr müsst nur oben links auf Vote klicken und bestätigen! Vielen Dank dafür

  • {
    dcmd(kick,4,cmdtext);
    return 0;
    }
    dcmd_kick(playerid,params[])
    {
    new id=strval(params);
    if(!strlen(params) || !IsNumeric(params))
    {
    return SendClientMessage(playerid,Rot,"/kick [playerid]");
    }
    else if(!IsPlayerConnected(id)) {
    return SendClientMessage(playerid,Rot,"Der Spieler ist nicht Online");
    }
    else if(IsPlayerConnected(id))
    {
    //was soll passieren (kick(id);)


    }
    return 1;
    }


    Das habe ich unter OnPlayerCommandText gemacht und jetzt kommen diese Errors:


    C:\DOKUME~1\SUNNYB~1\Desktop\lernen.pwn(1292) : error 017: undefined symbol "dcmd_kick"
    C:\DOKUME~1\SUNNYB~1\Desktop\lernen.pwn(1295) : warning 225: unreachable code
    C:\DOKUME~1\SUNNYB~1\Desktop\lernen.pwn(1295) : error 017: undefined symbol "dcmd_kick"
    C:\DOKUME~1\SUNNYB~1\Desktop\lernen.pwn(1297) : error 017: undefined symbol "params"
    C:\DOKUME~1\SUNNYB~1\Desktop\lernen.pwn(1298) : error 017: undefined symbol "params"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.

  • HAst du den Code ganz oben auch :
    #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1


    und dann ganz unten iwo, egal wo das hier


    stock IsNumeric(const string[]) { // by DracoBlue
    new length=strlen(string);
    if (length==0) return false;
    for (new i = 0; i < length; i++) {
    if (
    (string[i] > '9' || string[i] < '0' && string[i]!='-' && string[i]!='+') // Not a number,'+' or '-'
    || (string[i]=='-' && i!=0) // A '-' but not at first.
    || (string[i]=='+' && i!=0) // A '+' but not at first.
    ) return false;
    }
    if (length==1 && (string[0]=='-' || string[0]=='+')) return false;
    return true;
    }

    Wenn ich dir geholfen haben sollte, würde ich mich extremst freuen, wenn du dir kurz Zeit nehmen würdest und mir helfen könntest:


    Unterstütze mich bitte hier und vote für mich:


    Ihr müsst nur oben links auf Vote klicken und bestätigen! Vielen Dank dafür

  • Ja!das habe ich hast du icq?


    Ich brauche ein Profi mir haben soviele geholfen aber es kommt immer Unkown Command!!!
    Ich bin am Verzweifeln so geht es einfach nicht.
    Ich hoffe ihr könnt mir helfen!


    MFG
    Dennis

    Einmal editiert, zuletzt von Hawkn ()

  • kann es bestätigen, hab es genauso gemcht wie bei ihm, keine errors aber IG unknown command,


    kann es vll an dem return 0; liegen?

    Wenn ich dir geholfen haben sollte, würde ich mich extremst freuen, wenn du dir kurz Zeit nehmen würdest und mir helfen könntest:


    Unterstütze mich bitte hier und vote für mich:


    Ihr müsst nur oben links auf Vote klicken und bestätigen! Vielen Dank dafür