Hilfe mit pawno :S

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
  • Ich hab mir einen kompilierten mod mit einer gf.pwn runtergeladen und hab dann ein paar Strings vom Tutorial in der .pwn mit pawno editiert. Wenn ich jetzt kompilieren will, bekomme ich folgende Fehlermeldungen:


    Falls es irgendjemandem weiterhilft: Ich musste mir 3 Bibliotheken (utils.inc, morphinc.inc, und midostream.inc) herunterladen. Ich benutze Win7-64Bit.

  • Ganz unten ins Script:
    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
    }


    Dann poste nochmal die Fehler bitte, wenn die Fehler nicht weniger werden hast du irgendwo einen Klammerfehler ;)


    Mit freundlichen Grüßen
    Humen

  • Danke schonmal, Fehler sind weniger geworden. Bin noch neu auf dem Gebiet hier und kenn mich halt damit nicht so aus :). Hatte seit gestern abend nicht genügend Zeit mir das anzueignen :D.

    Code
    \gamemodes\gf.pwn(463) : error 021: symbol already defined: "Time"
    \gamemodes\gf.pwn(16807) : error 017: undefined symbol "Color_WHITE"
    \gamemodes\gf.pwn(27104) : error 017: undefined symbol "IsNumeric"
    Pawn compiler 3.2.3664     Copyright (c) 1997-2006, ITB CompuPhase
    
    
    
    
    3 Errors.


    Also das Time krieg ich denk ich mal alleine weg. Ein bisschen Programmiererfahrung hab ich ja. Das Color_WHITE sollte auch kein Problem sein. Aber was ist mit IsNumeric?
    *edit*
    bleibt der fehler mit isnumeric. Den Rest hab ich behoben.

    Einmal editiert, zuletzt von Felas ()

  • Im Prinzip der gleiche Fehler wie mit ReturnUser und ReturnUser benötigt IsNumeric :D
    stock IsNumeric(string[])
    {
    for (new i = 0, j = strlen(string); i < j; i++)
    if (string[i] > '9' || string[i] < '0')
    return 0;
    return 1;
    }stock IsNumeric(string[])
    {
    for (new i = 0, j = strlen(string); i < j; i++)
    if (string[i] > '9' || string[i] < '0')
    return 0;
    return 1;
    }
    Bitte Sehr :)


    Mit freundlichen Grüßen
    Humen

  • Leute solche Dinge muss man wissen, sonst braucht ihr gar nicht anfangen...
    Guckt euch lieber vorher die wikis durch oder so!

  • Wie gesagt ich habe halt insgesamt Erfahrung, bin aber auch erst seit gestern abend dabei mich in den code reinzulesen. und statt solche kommentare abzulassen hättest du mir ja eig auch helfen können -.-