Beiträge von RFT

    Den Vorschlag finde ich garnicht mal so schlecht.
    Wenn sollte man einen erfahrenen Scripter als Middleman bevorzugen.
    Da es ja viele gibt die ein Pase & Copy Script verkaufen und als eigenes ausgeben was natürlich Betrug ist.


    LG RFT

    Als erstes muss das hier so aussehen:



    new Text:Time, Text:Textate;


    Dann poste uns mal den Code und nicht nur die Error Zeilen ab und zu kann der Fehler auch dadrüber liegen.


    LG RFT

    Da dieser Code so unsauber ist und man im Forum nicht viel erkennt.
    Setze mal nach jeder Abfrage ein debug.


    Beispiel:



    if(............)
    {
    print("1");
    if(..........)
    {
    print("2");


    Dann lässt du das gewünschte Callback einfach vom Script aufrufen und siehst wo er stehen bleibt.


    LG RFT

    Möchtes du SSCanf V2 eigentlich nutzen ? Mit dem Plugin.
    Oder eher das alte was man im Script einkopiert ?




    stock sscanf(string[], format[], {Float,_}:...)
    {
    #if defined isnull
    if (isnull(string))
    #else
    if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
    #endif
    {
    return format[0];
    }
    #pragma tabsize 4
    new
    formatPos = 0,
    stringPos = 0,
    paramPos = 2,
    paramCount = numargs(),
    delim = ' ';
    while (string[stringPos] && string[stringPos] <= ' ')
    {
    stringPos++;
    }
    while (paramPos < paramCount && string[stringPos])
    {
    switch (format[formatPos++])
    {
    case '\0':
    {
    return 0;
    }
    case 'i', 'd':
    {
    new
    neg = 1,
    num = 0,
    ch = string[stringPos];
    if (ch == '-')
    {
    neg = -1;
    ch = string[++stringPos];
    }
    do
    {
    stringPos++;
    if ('0' <= ch <= '9')
    {
    num = (num * 10) + (ch - '0');
    }
    else
    {
    return -1;
    }
    }
    while ((ch = string[stringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num * neg);
    }
    case 'h', 'x':
    {
    new
    num = 0,
    ch = string[stringPos];
    do
    {
    stringPos++;
    switch (ch)
    {
    case 'x', 'X':
    {
    num = 0;
    continue;
    }
    case '0' .. '9':
    {
    num = (num << 4) | (ch - '0');
    }
    case 'a' .. 'f':
    {
    num = (num << 4) | (ch - ('a' - 10));
    }
    case 'A' .. 'F':
    {
    num = (num << 4) | (ch - ('A' - 10));
    }
    default:
    {
    return -1;
    }
    }
    }
    while ((ch = string[stringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num);
    }
    case 'c':
    {
    setarg(paramPos, 0, string[stringPos++]);
    }
    case 'f':
    {

    new changestr[16], changepos = 0, strpos = stringPos;
    while(changepos < 16 && string[strpos] && string[strpos] != delim)
    {
    changestr[changepos++] = string[strpos++];
    }
    changestr[changepos] = '\0';
    setarg(paramPos,0,_:floatstr(changestr));
    }
    case 'p':
    {
    delim = format[formatPos++];
    continue;
    }
    case '\'':
    {
    new
    end = formatPos - 1,
    ch;
    while ((ch = format[++end]) && ch != '\'') {}
    if (!ch)
    {
    return -1;
    }
    format[end] = '\0';
    if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
    {
    if (format[end + 1])
    {
    return -1;
    }
    return 0;
    }
    format[end] = '\'';
    stringPos = ch + (end - formatPos);
    formatPos = end + 1;
    }
    case 'u':
    {
    new
    end = stringPos - 1,
    id = 0,
    bool:num = true,
    ch;
    while ((ch = string[++end]) && ch != delim)
    {
    if (num)
    {
    if ('0' <= ch <= '9')
    {
    id = (id * 10) + (ch - '0');
    }
    else
    {
    num = false;
    }
    }
    }
    if (num && IsPlayerConnected(id))
    {
    setarg(paramPos, 0, id);
    }
    else
    {
    #if !defined foreach
    #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
    #define __SSCANF_FOREACH__
    #endif
    string[end] = '\0';
    num = false;
    new
    name[MAX_PLAYER_NAME];
    id = end - stringPos;
    foreach (Player, playerid)
    {
    GetPlayerName(playerid, name, sizeof (name));
    if (!strcmp(name, string[stringPos], true, id))
    {
    setarg(paramPos, 0, playerid);
    num = true;
    break;
    }
    }
    if (!num)
    {
    setarg(paramPos, 0, INVALID_PLAYER_ID);
    }
    string[end] = ch;
    #if defined __SSCANF_FOREACH__
    #undef foreach
    #undef __SSCANF_FOREACH__
    #endif
    }
    stringPos = end;
    }
    case 's', 'z':
    {
    new
    i = 0,
    ch;
    if (format[formatPos])
    {
    while ((ch = string[stringPos++]) && ch != delim)
    {
    setarg(paramPos, i++, ch);
    }
    if (!i)
    {
    return -1;
    }
    }
    else
    {
    while ((ch = string[stringPos++]))
    {
    setarg(paramPos, i++, ch);
    }
    }
    stringPos--;
    setarg(paramPos, i, '\0');
    }
    default:
    {
    continue;
    }
    }
    while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
    {
    stringPos++;
    }
    while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
    {
    stringPos++;
    }
    paramPos++;
    }
    do
    {
    if ((delim = format[formatPos++]) > ' ')
    {
    if (delim == '\'')
    {
    while ((delim = format[formatPos++]) && delim != '\'') {}
    }
    else if (delim != 'z')
    {
    return delim;
    }
    }
    }
    while (delim > ' ');
    return 0;
    }

    Ungetestet und im Forum umgeschrieben.



    if(strcmp(cmd, "/annehmen", true) == 0)
    {
    new What[64];
    What = strtok(cmdtext, idx);
    if(!What[0])
    {
    SendClientMessage(playerid,COLOR_GREY,"Fehler, '/Annhemen [Was]'");
    SendClientMessage(playerid,COLOR_GREY,"Verfügbar: Einladung");
    return true;
    }


    if(strcmp(What,"Einladung",true)==0)
    {
    if(PlayerInfo[playerid][pInvite])
    {
    PlayerInfo[playerid][pMember] = PlayerInfo[playerid][pInvite];
    PlayerInfo[playerid][pRank] = 1;
    SendClientMessage(playerid,COLOR_YELLOW,"Du bist der Fraktion erfolgreich beigetreten.");
    }
    else
    {
    SendClientMessage(playerid,COLOR_GREY,"Du wurdest nicht eingeladen!");
    }
    }
    else if(strcmp(What,"Beispiel123WTFFUCKXD",true)==0)
    {
    }
    else
    {
    SendClientMessage(playerid,COLOR_GREY,"Fehler, unbekannter parameter.");
    }
    return 1;
    }
    if(strcmp(cmd, "/uninvite", true) == 0)
    {
    if(PlayerInfo[playerid][pLeader])
    {
    new ID;
    tmp = strtok(cmdtext, idx);
    if(!tmp[0])return SendClientMessage(playerid, COLOR_WHITE, "Verwendung: /makeleader [Playerid/Name] [Fraktion]");
    ID = ReturnUser(tmp);
    if(!IsPlayerConnected(ID))return SendClientMessage(playerid, COLOR_YELLOW, "Info: Dieser Spieler ist offline.");


    if(IsPlayerConnected(ID) && gPlayerLogged[ID])
    {
    if(PlayerInfo[ID][pMember] == PlayerInfo[playerid][pLeader])
    {
    PlayerInfo[ID][pMember] = 0;
    PlayerInfo[ID][pRank] = 0;
    new Text[256];
    new tName[2][MAX_PLAYER_NAME];
    GetPlayerName(playerid,tName[0],MAX_PLAYER_NAME);
    GetPlayerName(ID,tName[1],MAX_PLAYER_NAME);
    format(Text,sizeof(Text),"%s hat dich aus seiner Fraktion geworfen.",tName[0]);
    SendClientMessage(ID,COLOR_YELLOW,Text);
    format(Text,sizeof(Text),"Du hats %s aus deiner Fraktion geworfen.",tName[1]);
    SendClientMessage(playerid,COLOR_YELLOW,Text);
    }
    else
    {
    SendClientMessage(playerid,COLOR_GREY,"Der Spieler ist nicht in deiner Fraktion.");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_GREY,"Der gewählte Spieler ist nicht online.");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_GREY,"Du bist kein Leader einer Fraktion!");
    }
    return 1;
    }
    if(strcmp(cmd, "/invite", true) == 0)
    {
    if(PlayerInfo[playerid][pLeader])
    {
    new ID;
    tmp = strtok(cmdtext, idx);
    if(!tmp[0])return SendClientMessage(playerid, COLOR_WHITE, "Verwendung: /makeleader [Playerid/Name] [Fraktion]");
    ID = ReturnUser(tmp);
    if(!IsPlayerConnected(ID))return SendClientMessage(playerid, COLOR_YELLOW, "Info: Dieser Spieler ist offline.");
    if(!PlayerInfo[ID][pMember] && !PlayerInfo[ID][pLeader])
    {
    if(PlayerInfo[ID][pInvite])
    return SendClientMessage(playerid,COLOR_GREY,"Der gewählte Spieler wurde bereits eingeladen!");
    PlayerInfo[ID][pInvite] = PlayerInfo[playerid][pLeader];
    new Text[256];
    new tName[2][MAX_PLAYER_NAME];
    GetPlayerName(playerid,tName[0],MAX_PLAYER_NAME);
    GetPlayerName(ID,tName[1],MAX_PLAYER_NAME);
    format(Text,sizeof(Text),"Chef %s hat dich in seine Fraktion %s eingeladen.",tName[0],berufe[PlayerInfo[playerid][pLeader]]);
    SendClientMessage(ID,COLOR_YELLOW,Text);
    SendClientMessage(ID,COLOR_YELLOW,"Um die Einladung anzunhemen tippe: '/Annehmen Einladung'");
    format(Text,sizeof(Text),"Du hast %s in deine Fraktion eingeladen!",tName[1]);
    SendClientMessage(playerid,COLOR_YELLOW,Text);
    }
    else
    {
    SendClientMessage(playerid,COLOR_GREY,"Der gewählte Spieler ist bereits in einer Fraktion!");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_GREY,"Du bist kein Leader!");
    }
    return 1;
    }
    if(strcmp(cmd, "/makeleader", true) == 0)
    {
    if(PlayerInfo[playerid][pAdmin] > 1)
    {
    new ID,Fraktion;


    tmp = strtok(cmdtext, idx);
    if(!tmp[0])return SendClientMessage(playerid, COLOR_WHITE, "Verwendung: /makeleader [Playerid/Name] [Fraktion]");
    ID = ReturnUser(tmp);
    if(!IsPlayerConnected(ID))return SendClientMessage(playerid, COLOR_YELLOW, "Info: Dieser Spieler ist offline.");


    tmp = strtok(cmdtext, idx);
    if(!tmp[0])return SendClientMessage(playerid, COLOR_WHITE, "Verwendung: /makeleader [Playerid/Name] [Fraktion]");
    Fraktion = strval(tmp);


    if(Fraktion < 0 && Fraktion > sizeof(berufe))return SendClientMessage(playerid,COLOR_GREY,"Falsche Fraktionsid!");


    new Text[255];
    new tName[2][MAX_PLAYER_NAME];
    GetPlayerName(playerid,tName[0],MAX_PLAYER_NAME);
    GetPlayerName(ID,tName[1],MAX_PLAYER_NAME);
    if(Fraktion)
    {
    format(Text,sizeof(Text),"AmdCmd: %s hat dich zum Chef der Fraktion %s ernannt.",tName[0],berufe[Fraktion]);
    SendClientMessage(ID,COLOR_YELLOW,Text);
    format(Text,sizeof(Text),"AmdCmd: Du hast %s zum Chef der Fraktion %s ernannt.",tName[1],berufe[Fraktion]);
    SendClientMessage(playerid,COLOR_YELLOW,Text);
    PlayerInfo[ID][pRank] = 6;
    }
    else if(!Fraktion && PlayerInfo[playerid][pLeader])
    {
    format(Text,sizeof(Text),"AmdCmd: %s hat hat dir die Leitung deiner Fraktion entnommen.",tName[0]);
    SendClientMessage(ID,COLOR_YELLOW,Text);
    format(Text,sizeof(Text),"AmdCmd: Du hast %s die Leaderrechte genommen.",tName[1]);
    SendClientMessage(playerid,COLOR_YELLOW,Text);
    PlayerInfo[ID][pRank] = 0;
    }
    else
    {
    SendClientMessage(playerid,COLOR_GREY,"Der Spieler ist kein Chef einer Fraktion!");
    return 1;
    }
    PlayerInfo[ID][pMember] = 0;
    PlayerInfo[ID][pLeader] = Fraktion;
    }
    else
    {
    SendClientMessage(playerid,COLOR_GREY,"Gewählte Spieler nicht online.");
    }


    }
    else
    {
    SendClientMessage(playerid,COLOR_GREY,"Dies ist ein Adminbefehl!");
    }
    return 1;
    }