CMD eingeben---> Server: Unknown Command

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
  • Halluu,


    ich bin grade dabei mein eigenes GM zu scripten.
    Nunja wenn ich da zumbeispiel den Befehl /help eingebe steht die Hilfe da die ich will, aber darunter SERVER:Unknown Command.
    Das kommt bei jedem CMD das ich eingebe aber sie funktionieren alle Fehlerfrei. Woran kann das liegen? (wenn ich scriptschnipsel posten soll, sagt mir welche ^^)
    Bitte um Hilfe


    MFG ViVaLosTiOz

  • public OnPlayerCommandText(playerid, cmdtext[])
    {
    new idx[128];
    new cmd[128];
    cmd = strokt(cmdtext, idx);


    if(strcmp(cmd,"/bla",true,4) == 0) // Statt cmdtext einfach cmd.
    {
    return SendClientMessage(playerid, 0xFF0000FF, "Bla");
    }

  • Zitat

    F:\PROGRA~1\Spiele\GRANDT~1\GAMEMO~1\lsdm.pwn(492) : error 017: undefined symbol "strokt"
    F:\PROGRA~1\Spiele\GRANDT~1\GAMEMO~1\lsdm.pwn(492) : error 033: array must be indexed (variable "cmd")
    F:\PROGRA~1\Spiele\GRANDT~1\GAMEMO~1\lsdm.pwn(495) : warning 217: loose indentation
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.

    public OnPlayerCommandText(playerid, cmdtext[])
    {
    new idx[128];
    new cmd[128];
    cmd = strokt(cmdtext, idx);



    if (strcmp("/kill", cmd, true, 10) == 0)
    {
    SetPlayerScore(playerid, GetPlayerScore(playerid)+-1);
    SetPlayerHealth(playerid,0);
    SendClientMessage(playerid, COLOR_RED, "Du hast Selbstmord begangen!");


    mehr kommt ne raus

  • Ich weiß ne ob ich zu dumm bin aber ich bekomms net hin.
    Ich habe bei JEDEM CMD das cmdtext mit nur cmd ersetzt, ganz oben
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    new idx[128];
    new cmd[128];
    cmd = strokt(cmdtext, idx);



    eingefügt und ganz unten einmal return 1; gemacht.....funzt aber ne

    Kann mir das mal einer per Teamviewer machen?


    ICQ: 369862064
    XFIRE: punker3

  • Hier mal ein Auszug von meinem Script


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    new string[256];
    new string2[256];
    new wantedplayer[MAX_PLAYER_NAME];
    new cmd[256];
    new tmp[256];
    new idx;


    cmd = strtok(cmdtext, idx);


    if(strcmp(cmdtext, "/afk", true) == 0) {
    new str[256], pname[256]; GetPlayerName(playerid, pname, 256);
    format(str, 256, "*%s ist afk!", pname, cmdtext[4]);
    SendClientMessage(playerid, COLOR_BLUE, "Um dich zuruck zumelden, tippe /back ein");
    SendClientMessageToAll(0x4682B4AA, str);
    TogglePlayerControllable(playerid, 0);
    return 1;
    }
    return 0;
    }

  • Zitat

    F:\PROGRA~1\Spiele\GRANDT~1\GAMEMO~1\lsdm.pwn(492) : error 017: undefined symbol "strokt"


    also du musst dieses strtok auch definieren^^


    strtok(const string[], &index)
    {
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
    index++;
    }


    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }
    result[index - offset] = EOS;
    return result;
    }


    das einfach i-wo im script einsetzen


    Zitat

    F:\PROGRA~1\Spiele\GRANDT~1\GAMEMO~1\lsdm.pwn(494) : warning 217: loose indentation
    F:\PROGRA~1\Spiele\GRANDT~1\GAMEMO~1\lsdm.pwn(1249) : warning 217: loose indentation

    das heißt du hast i-wo ne klammer falsch gesetzt


    Zitat

    F:\PROGRA~1\Spiele\GRANDT~1\GAMEMO~1\lsdm.pwn(492) : error 033: array must be indexed (variable "cmd")

    und da bin ich mir nicht ganz sicher aber heißt das nicht cmdtext?


  • So einen Schmarrn hab ich schon lange nicht mehr gehört. :|


    Loose Indentation bedeutet dass der Code falsch eingerückt ist.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • kA hab alles probiert was ihr gepostet habt. Danke schonmal.
    Ich muss dazu sagen ich bin nochnet sooooooo perfekt im scripten, :rolleyes: wäre nett wenn einer der Profis hier mit über teamviewer helfen könnte.


    ICQ: 369862064
    XFIRE: punker3

  • Versuchs mal so


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    new idx[128];
    new cmd[128];
    cmd = strokt(cmdtext, idx);



    if (strcmp(cmd,"/kill", true) == 0)
    {
    SetPlayerScore(playerid, GetPlayerScore(playerid)+-1);
    SetPlayerHealth(playerid,0);
    SendClientMessage(playerid, COLOR_RED, "Du hast Selbstmord begangen!");
    return 1;
    }


  • seid ihr dumm ? Da steht STROKT und nicht STRTOK.. da muss strtok stehen

  • ich hab STRTOK eingesetzt....bin soweit das nur ein error kommt^^


    Zitat

    F:\PROGRA~1\Spiele\GRANDT~1\GAMEMO~1\lsdm.pwn(502) : error 035: argument type mismatch (argument 2)

    public OnPlayerCommandText(playerid, cmdtext[])
    {
    new idx[128];
    new cmd[128];
    cmd = strtok(cmdtext, idx); //Zeile 502



    if (strcmp("/kill", cmd, true, 10) == 0)
    {
    SetPlayerScore(playerid, GetPlayerScore(playerid)+-1);
    SetPlayerHealth(playerid,0);
    SendClientMessage(playerid, COLOR_RED, "Du hast Selbstmord begangen!");

  • public OnPlayerCommandText(playerid, cmdtext[])
    {
    new idx[128];
    new cmd[128];
    cmd = strtok(cmdtext, idx); //Zeile 502
    if (strcmp(cmdtext "/kill", true) == 0)
    {
    SetPlayerScore(playerid, GetPlayerScore(playerid)+-1);
    SetPlayerHealth(playerid,0);
    SendClientMessage(playerid, COLOR_RED, "Du hast Selbstmord begangen!");
    return 1;
    }
    so hats bei mir geklappt

  • ich denk nicht das sich einer die mühe macht und dir das über TeamViewer macht -.-