Include in Pawno bearbeiten

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
  • Hey Leute,


    ich habe bisher meine Includes allesamt im Visual Studio geschrieben (kein Syntax Highlighting, hat mich besser aber nicht großartig gestört). Nun habe ich mal Pawno als Standardprogramm zur Öffnung der .inc files festgelegt. Wenn ich nun aber kompiliere, werden mir immer Errors angezeigt. Im Folgenden ein Beispiel:


    Include Code
    public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart)
    {
    if(issuerid != INVALID_PLAYER_ID && weaponid == SNIPER_RIFLE && COUNTRY_RIFLE && DESERT_EAGLE && bodypart == BODY_PART_HEAD)
    {
    SetPlayerHealth(playerid, 0);
    GameTextForPlayer(playerid, "HEADSHOT", 2000, 4);
    }
    return BP_OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart);
    }


    forward BP_OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart);
    #if defined _ALS_OnPlayerTakeDamage
    #undef OnPlayerTakeDamage
    #else
    #define _ALS_OnPlayerTakeDamage
    #endif
    #define OnPlayerTakeDamage BP_OnPlayerTakeDamage


    Error Messages
    warning 235: public function lacks forward declaration (symbol "OnPlayerTakeDamage")
    error 017: undefined symbol "INVALID_PLAYER_ID"
    error 017: undefined symbol "SetPlayerHealth"
    error 017: undefined symbol "GameTextForPlayer"
    error 004: function "BP_OnPlayerTakeDamage" is not implemented


    Wenn ich allerdings im Hauptscript kompiliere, spuckt der Compiler keine Fehlermeldungen aus, NUR wenn ich die .inc file an sich kompilieren möchte.

  • Nicht nur normalerweise, sondern man macht es gar nicht.


    Warum?
    Ganz einfach. Du führst die Include ja nicht aus, sondern baust sie in einen Gamemode oder einen Filterscript ein, und den kompilierst du dann. Eine .amx von einer Include hat keinen Sinn.


    Wieso die Errors?
    a_samp.inc ist nicht in der Include inkludiert. Warum das nicht? => Sonst wäre es doppelt inkludiert, wenn du die Include in einem GM/FS hast, der auch a_samp.inc als Include nutzt.


    Wenn du eine Include auf Syntax-Fehler prüfen willst, dann musst du den .pwn Code kompilieren, in dem die Include inkludiert ist.

  • Ich dachte mir, dass das Kompilieren eines Quellcodes immer die letzte Instanz zur Fehlerüberprüfubg wär, egal ob bei .pwn oder .inc files. Also kompiliert man im Endeffekt nur das "Hauptscript" um zu sehen, ob in der Include ein Fehler ist? Ich finde das ein wenig arg umständlich.