Beiträge von Meta

    des


    Deutsch bitte ^^


    Der Fehler ist einfach, dass du vergessen hast (?), sscanf zu definieren, heißt, du hast die Funktion nirgends.


    Muss vorhanden sein, wenn du sie verwenden willst, füg sie im Script ein, wo Platz ist (natürlich außerhalb von anderen Funktionen):


    /*----------------------------------------------------------------------------*-
    Function:
    sscanf
    Params:
    string[] - String to extract parameters from.
    format[] - Parameter types to get.
    {Float,_}:... - Data return variables.
    Return:
    0 - Successful, not 0 - fail.
    Notes:
    A fail is either insufficient variables to store the data or insufficient
    data for the format string - excess data is disgarded.

    A string in the middle of the input data is extracted as a single word, a
    string at the end of the data collects all remaining text.

    The format codes are:

    c - A character.
    d, i - An integer.
    h, x - A hex number (e.g. a colour).
    f - A float.
    s - A string.
    z - An optional string.
    pX - An additional delimiter where X is another character.
    '' - Encloses a litteral string to locate.
    u - User, takes a name, part of a name or an id and returns the id if they're connected.

    Now has IsNumeric integrated into the code.

    Added additional delimiters in the form of all whitespace and an
    optioanlly specified one in the format string.
    -*----------------------------------------------------------------------------*/

    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;
    }


    Und dann zur Funktionalität noch das !, das mein Vorposter erwähnte :)


    //EDIT
    hab den Error gefunden!
    Hab sccanf geschrieben heißt aber sscanf!


    Oh xD

    Hallo Ich denke einfach mal das du das RCON Password in der " Server CFG " nicht Geändert hast und das es deswegen nicht Klappt

    Dann stünde

    Code
    Error: Your password must be changed from the default password, please change it.

    dran


    Ja, ob das jetzt in main() oder OnGameModeInit() oder OnFilterScriptModeInit() (je nach dem, ob es ein Filterscript oder Gamemode ist) steht, ist eigentlich egal (wobei main() nach On...Init() aufgerufen wird.)

    Hast du irgendwo "GameModeExit();" stehen?


    Das print zeug gehört darüber hin soweit ich weiss ....

    Nicht unbedingt. Bzw mit "drüber" meinst du bestimmt zu den defines, was dann falsch wäre.


    So ziemlich jeder Server benötigt streamer.
    Außerdem wenn es dann nicht weiterlädt muss es ja einen Fehler haben




    // 1000. Post ;)

    1. Ist ein Streamer kein Muss.
    2. Gäbe es ne Fehlermeldung, wenn ein Plugin fehlt:

    Code
    Script[ScriptnameUndPfad)]: Run time error 19: "File or function is not found"


    giresunboystyle: Zeig doch mal deine OnFilterScriptInit Funktion.


    Er kann die Plugins nicht laden, deshalb startet der Server nicht.

    Er hat auch keine eingetragen, weil er wahrscheinlich keine braucht.


    öffne mal die server.cfg und schreib

    Code
    plugins streamer


    rein

    Woher willst du wissen, ob er den Streamer überhaupt hat oder braucht?


    du must die datei kopieren dan klapt das warr bei mir auch so


    Oder du hast bei deinen Gamemodes nur die .pwn eingefügt du musst aber die .amx einfügen oder gleich beides....
    Und das was die anderen hie rmit den plugins sagen ist Quatsch sonst würde er ja die Fliterscripte auch nicht laden können... er lädt nur keine plugins steht dort. Kopier die .amx Datei bei dir in den Gamemod Ordner!

    Dann stünde

    Zitat

    I couldn't load any gamemode scripts. Please verify your server.cfg
    It needs a gamemode0 line at the very least.

    dran.



    Es sieht eher so aus, als würde der Gamemode sich entweder selbst beenden oder crashen.

    Schon allein wegen dem Namen wird dich keiner nehmen, "schnitzel". Sorry für die harte Aussage, ist aber so!


    Hat nix mit dem namen zu tun. Ich heiß auch in manchen Foren bzw Chats Schnitzel. Und jetzt? Heißt das, wenn man Bockwurst heißt ist das auch schlecht? Oder Brotfisch?

    Außerdem hast du deinen Burger im Januar erstellt. Warum machst du dann jetzt erst Werbung? D:
    Zudem man für die anderen Burger garnicht mehr abstimmen kann ...

    ich glaube ich bin einfach zu blöd dazu wenn der server selbst jetz ein feuer legen soll wo muss ich das dann einfügen? also bei welchem public


    Du musst dann in deinem Script da AddFire verwenden, wo eben auch das Feuer erstellt werden soll. z.B. Bei OnPlayerConnect.


    //Edit: Warinig gefunden: C:\Users\Florian\Desktop\WoS 3.0.3\pawno\ExtFire.pwn(66) : error 017: undefined symbol "AllowFireCMD"


    Du hast ne alte Inlucde. Lad dir die neue.