befehl ohne "/"

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 würde gerne eine Art Befehl machen, ohne das man da ein "/" vor machen soll.. und zwar wenn man in eine fraktion eingeladen wird, oder von sich aus in den binco geht, kann man skins durchswitchen...
    mit "/weiter" geht man ein skin weiter, mit "/fertig" bekommt man den skin und wird gespawnt. nun möchte ich das ganze aber ohne "/" machen. da habe ich mir gedacht das ich das einfach unter OnPlayerText packe und abfrage ob der text "weiter" oder "fertig" ist. nun würde ich gerne die abfrage wissen, wenn das überhaupt geht, oder kennt jemand ne einfachere lösung.


    MfG Simon

  • ja okay werde es mal testen, danke
    paar errors:


    public OnPlayerText(playerid, text[])
    {
    if(Spieler[playerid][Spawn] == 0)
    {
    return 0;
    }
    SetPlayerChatBubble(playerid, text, 0xFF0000FF, 70.0, 10000);



    if(kleidung[playerid] == 1)
    {
    new idx;
    tmp = strtok(text, idx);
    if ((strcmp("Weiter", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("Weiter")))
    {


    if(Spieler[playerid][Member] == 0)
    {
    if(bskin[playerid] == 0)
    {
    SetPlayerSkin(playerid,0);
    bskin[playerid]++;
    Spieler[playerid][Skin] = 0;
    }
    else if(bskin[playerid] == 1)
    {
    SetPlayerSkin(playerid,60);
    bskin[playerid]++;
    Spieler[playerid][Skin] = 60;
    }
    else if(bskin[playerid] == 2)
    {
    SetPlayerSkin(playerid,193);
    bskin[playerid]++;
    Spieler[playerid][Skin] = 193;
    }
    else if(bskin[playerid] == 3)
    {
    SetPlayerSkin(playerid,195);
    bskin[playerid] = 0;
    Spieler[playerid][Skin] = 195;
    }
    }
    if(Spieler[playerid][Member] == 1)
    {
    if(bskin[playerid] == 0)
    {
    SetPlayerSkin(playerid,106);
    bskin[playerid]++;
    Spieler[playerid][Skin] = 106;
    }
    else if(bskin[playerid] == 1)
    {
    SetPlayerSkin(playerid,107);
    bskin[playerid]++;
    Spieler[playerid][Skin] = 107;
    }
    else if(bskin[playerid] == 2)
    {
    SetPlayerSkin(playerid,269);
    bskin[playerid]++;
    Spieler[playerid][Skin] = 269;
    }
    else if(bskin[playerid] == 3)
    {
    SetPlayerSkin(playerid,271);
    bskin[playerid]++;
    Spieler[playerid][Skin] = 271;
    }
    else if(bskin[playerid] == 4)
    {
    SetPlayerSkin(playerid,56);
    bskin[playerid]++;
    Spieler[playerid][Skin] = 56;
    }
    else if(bskin[playerid] == 5)
    {
    SetPlayerSkin(playerid,105);
    bskin[playerid] = 0;
    Spieler[playerid][Skin] = 105;
    }
    }
    }
    }
    return 1;
    }


    C:\Users\Simon Siggelkow\Desktop\Reallife\gamemodes\RL.pwn(1212) : error 017: undefined symbol "tmp"
    C:\Users\Simon Siggelkow\Desktop\Reallife\gamemodes\RL.pwn(1212) : error 017: undefined symbol "strtok"
    C:\Users\Simon Siggelkow\Desktop\Reallife\gamemodes\RL.pwn(1213) : error 017: undefined symbol "tmp"
    C:\Users\Simon Siggelkow\Desktop\Reallife\gamemodes\RL.pwn(1211) : warning 203: symbol is never used: "idx"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    3 Errors.

    Einmal editiert, zuletzt von Simon ()

  • 1.


    new tmp[256];


    2.


    stock strtok(str[], &index, delimiter = ' ')
    {
    new ret_str[20],
    pos = strfind(str[index + 1], char2str(delimiter)) + index + 1;


    if(pos == index)
    pos = strlen(str);


    strmid(ret_str, str, index, pos);
    index = pos + 1;
    return ret_str;
    }


    3.
    Variable "idx" löschen auf zeile 1211

  • wenn ich idx weg mache, ist es nicht definiert :D und 1 error und 1 warning treten beim stock auf:


    stock strtok(str[], &index, delimiter = ' ')
    {
    new ret_str[20],
    pos = strfind(str[index + 1], char2str(delimiter)) + index + 1;


    if(pos == index)
    pos = strlen(str);


    strmid(ret_str, str, index, pos);
    index = pos + 1;
    return ret_str;
    }


    C:\Users\Simon Siggelkow\Desktop\Reallife\gamemodes\RL.pwn(3842) : error 017: undefined symbol "char2str"
    C:\Users\Simon Siggelkow\Desktop\Reallife\gamemodes\RL.pwn(3839) : warning 203: symbol is never used: "delimiter"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.

  • #Ups ist ja meine Edit version, Sry!


    Hier die geht:
    stock strtok(const string[], &index,seperator=' ')
    {
    new length = strlen(string);
    new offset = index;
    new result[MAX_STRING];
    while ((index < length) && (string[index] != seperator) && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }

    result[index - offset] = EOS;
    if ((index < length) && (string[index] == seperator))
    {
    index++;
    }
    return result;
    }