6 Fehler im Script

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
  • Hallo!


    Ich hatte 26 Fehler im Script, dann habe ich das eingefügt:



    new ReturnUser;


    Jetzt sind es nur noch 6 Fehler:

    C:\Users\Lars (Admin)\Desktop\Server\gamemodes\Release.pwn(17282) : warning 219: local variable "string" shadows a variable at a preceding level
    C:\Users\Lars (Admin)\Desktop\Server\gamemodes\Release.pwn(17290) : warning 219: local variable "string" shadows a variable at a preceding level
    C:\Users\Lars (Admin)\Desktop\Server\gamemodes\Release.pwn(17850) : error 021: symbol already defined: "strtok"
    C:\Users\Lars (Admin)\Desktop\Server\gamemodes\Release.pwn(17865) : error 047: array sizes do not match, or destination array is too small
    C:\Users\Lars (Admin)\Desktop\Server\gamemodes\Release.pwn(19643) : error 012: invalid function call, not a valid address
    C:\Users\Lars (Admin)\Desktop\Server\gamemodes\Release.pwn(19643) : warning 215: expression has no effect
    C:\Users\Lars (Admin)\Desktop\Server\gamemodes\Release.pwn(19643) : error 001: expected token: ";", but found ")"
    C:\Users\Lars (Admin)\Desktop\Server\gamemodes\Release.pwn(19643) : error 029: invalid expression, assumed zero
    C:\Users\Lars (Admin)\Desktop\Server\gamemodes\Release.pwn(19643) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    6 Errors.


    Kann mir jemand helfen?

  • Suche im Script nach "strtok" und Klammer es aus.


    In der Zeile 19643 Fehlt am Ende des Commands/Befehles ein ; (Semikolon oder so)


    Und stat new Returnuser Dashier ins Script setzen:


    IsNumeric(const string[])
    {
    for (new i = 0, j = strlen(string); i < j; i++)
    {
    if (string[i] > '9' || string[i] < '0') return 0;
    }
    return 1;
    }


    ReturnUser(text[], playerid = INVALID_PLAYER_ID)
    {
    new pos = 0;
    while (text[pos] < 0x21) // Strip out leading spaces
    {
    if (text[pos] == 0) return INVALID_PLAYER_ID; // No passed text
    pos++;
    }
    new userid = INVALID_PLAYER_ID;
    if (IsNumeric(text[pos])) // Check whole passed string
    {
    // If they have a numeric name you have a problem (although names are checked on id failure)
    userid = strval(text[pos]);
    if (userid >=0 && userid < MAX_PLAYERS)
    {
    if(!IsPlayerConnected(userid))
    {
    /*if (playerid != INVALID_PLAYER_ID)
    {
    SendClientMessage(playerid, 0xFF0000AA, "User not connected");
    }*/
    userid = INVALID_PLAYER_ID;
    }
    else
    {
    return userid; // A player was found
    }
    }
    /*else
    {
    if (playerid != INVALID_PLAYER_ID)
    {
    SendClientMessage(playerid, 0xFF0000AA, "Invalid user ID");
    }
    userid = INVALID_PLAYER_ID;
    }
    return userid;*/
    // Removed for fallthrough code
    }
    // They entered [part of] a name or the id search failed (check names just incase)
    new len = strlen(text[pos]);
    new count = 0;
    new name[MAX_PLAYER_NAME];
    for (new i = 0; i < MAX_PLAYERS; i++)
    {
    if (IsPlayerConnected(i))
    {
    GetPlayerName(i, name, sizeof (name));
    if (strcmp(name, text[pos], true, len) == 0) // Check segment of name
    {
    if (len == strlen(name)) // Exact match
    {
    return i; // Return the exact player on an exact match
    // Otherwise if there are two players:
    // Me and MeYou any time you entered Me it would find both
    // And never be able to return just Me's id
    }
    else // Partial match
    {
    count++;
    userid = i;
    }
    }
    }
    }
    if (count != 1)
    {
    if (playerid != INVALID_PLAYER_ID)
    {
    if (count)
    {
    SendClientMessage(playerid, 0xFF0000AA, "Multiple users found, please narrow earch");
    }
    else
    {
    SendClientMessage(playerid, 0xFF0000AA, "No matching user found");
    }
    }
    userid = INVALID_PLAYER_ID;
    }
    return userid; // INVALID_USER_ID for bad return
    }


    xSpiderx

    Stehe Jederzeit für Fragen zur Verfügung




    Video entfernt

    (Ab 27 Sekunden hören)


  • Ich bekomme es nicht hin :(


    Hast du Skype?


    Kenne mich bei PAWN leider kaum aus :(


    giveplayerid = ReturnUser(tmp);


    Da ist ein ;

    Einmal editiert, zuletzt von BigGinHD ()

  • Schauen wir mal auf dein ersten Error.
    Dort steht symbol already defined: strtok



    Wenn du dich mit Visual Basic auskennst, solltest du doch wissen das es heißt das du dein strtok bereits Definiert hast oder?




    Das heißt, du musst eins von den beiden entfernen..

  • Mir ist Pawn leider zu unübersichtlich ich finde nie was ich Suche.


    Bewundere Leute die Pawn beherrschen :(

  • Und ich bewundere LEute die mit VB klar kommen^^


    Aber ein ; musst du dir wie die Zeilenumbrüche in VB vorstellen


    VB:
    Anweisung
    Anweisung


    PAWN:
    Anweisung;
    Anweisung;

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Ich bekomme es nicht hin.


    Immer wenn es richtig scheint kommen mehr Fehler.


    Kannst du die Stelle posten und rot makieren?


    Währe sehr nett.


    Einen schönen Abend noch.

  • returnuser ist einfach eine sache die in der include utils definirt ist #include <utils> ;) sommit sollte der erste fehler weg sein und giveplayerid machst du so
    new giveplayerid;
    so sollte es gehen also bei mir gings ;)



    //EDIT

  • Es geht!


    Folgendes habe ich gemacht:


    Source von "xspider" eingefüt.


    Diese Codestelle gelöscht:



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


    "New GivePlayerID;" gelöscht


    Habe folgende warnings:


    C:\Users\Lars (Admin)\Desktop\Server\gamemodes\nyl.pwn(17376) : warning 219: local variable "string" shadows a variable at a preceding level
    C:\Users\Lars (Admin)\Desktop\Server\gamemodes\nyl.pwn(17384) : warning 219: local variable "string" shadows a variable at a preceding level
    C:\Users\Lars (Admin)\Desktop\Server\gamemodes\nyl.pwn(25003) : warning 219: local variable "mod" shadows a variable at a preceding level
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


    Header size: 13652 bytes
    Code size: 2778752 bytes
    Data size: 6016816 bytes
    Stack/heap size: 32768 bytes; estimated max. usage: unknown, due to recursion
    Total requirements: 8841988 bytes


    3 Warnings.



    Ist das so ok? Bin unsicher wegen dem gelöschten Code...

    Einmal editiert, zuletzt von BigGinHD ()

  • Solltest das Script nicht nehmen, ich hab mal drüber geschaut und es sah nicht gut gescriptet aus...


    Außerdem, wenn du diese eher einfachen Error's & Warning's nicht beheben kannst dann solltest du nicht an dem 57 Tausend Zeilen großen GameMode scripten.
    Ist kein Anfänger GameMode...

  • Solltest das Script nicht nehmen, ich hab mal drüber geschaut und es sah nicht gut gescriptet aus...


    Außerdem, wenn du diese eher einfachen Error's & Warning's nicht beheben kannst dann solltest du nicht an dem 57 Tausend Zeilen großen GameMode scripten.
    Ist kein Anfänger GameMode...


    Ich kann mir leider kein 300€ Selfmade leisten. Mein Script ist außerdem im Urlaub :D


    Bitte schaue dir mein Edit in dem Post vor deinem an.