problem mit /serverinfo mit Textdraw problem

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 Leute,ich habe einen textdraw erstellt mit "usebox" und wollte dann ein befehl erstellen /serverinfo
    und wenn ich das zweite mal den befehl eingebe sollte sich das hiden,aber es klappt nicht.
    Der Befehl:


    ocmd:serverinfo(playerid,params[])
    {
    if (Info == 0)
    {
    TextDrawShowForPlayer(playerid,Info[1]); TextDrawShowForPlayer(playerid,Info[2]); TextDrawShowForPlayer(playerid,Info[3]); TextDrawShowForPlayer(playerid,Info[4]);
    }
    else TextDrawHideForPlayer(playerid,Info[1]); TextDrawHideForPlayer(playerid,Info[2]); TextDrawHideForPlayer(playerid,Info[3]); TextDrawHideForPlayer(playerid,Info[4]);
    return 1;
    }


    Error's:


    C:\Users\kev\Desktop\test\gamemodes\test.pwn(384) : error 033: array must be indexed (variable "Info")
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.


    Danke im voraus :)

  • new Info[MAX_PLAYERS];


    ocmd:serverinfo(playerid,params[])
    {
    if(!Info[playerid])return Info[playerid]=1,TextDrawShowForPlayer(playerid,Info[1]),TextDrawShowForPlayer(playerid,Info[2]),TextDrawShowForPlayer(playerid,Info[3]),TextDrawShowForPlayer(playerid,Info[4]);
    return Info[playerid]=0,TextDrawHideForPlayer(playerid,Info[1]),TextDrawHideForPlayer(playerid,Info[2]),TextDrawHideForPlayer(playerid,Info[3]),TextDrawHideForPlayer(playerid,Info[4]);
    }


    So ;)
    Die Variable "Info" musst du für jeden Spieler (MAX_PLAYERS) erstellen, da jeder Spieler das öffnen könnte.
    Wenn es 2 Spieler gibt die /serverinfo machen und sich das anschauen, dann steht die Variable auf 1.
    Wenn dann einer von den beiden das schließt steht bei beiden Spielern die Variable auf 0 ;)
    Also mit MAX_PLAYERS ;)


    Grüße,
    PAWN

  • new Info[MAX_PLAYERS];


    ocmd:serverinfo(playerid,params[])
    {
    if(!Info[playerid])return Info[playerid]=1,TextDrawShowForPlayer(playerid,Info[1]),TextDrawShowForPlayer(playerid,Info[2]),TextDrawShowForPlayer(playerid,Info[3]),TextDrawShowForPlayer(playerid,Info[4]);
    return Info[playerid]=0,TextDrawHideForPlayer(playerid,Info[1]),TextDrawHideForPlayer(playerid,Info[2]),TextDrawHideForPlayer(playerid,Info[3]),TextDrawHideForPlayer(playerid,Info[4]);
    }


    C:\Users\kev\Desktop\test\gamemodes\test.pwn(386) : warning 213: tag mismatch
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Warning.




    new info[MAX_PLAYERS];


    ocmd:serverinfo(playerid,params[])
    {
    if(!info[playerid])return Info[playerid]=1,TextDrawShowForPlayer(playerid,Info[1]),TextDrawShowForPlayer(playerid,Info[2]),TextDrawShowForPlayer(playerid,Info[3]),TextDrawShowForPlayer(playerid,Info[4]);
    return info[playerid]=0,TextDrawHideForPlayer(playerid,Info[1]),TextDrawHideForPlayer(playerid,Info[2]),TextDrawHideForPlayer(playerid,Info[3]),TextDrawHideForPlayer(playerid,Info[4]);
    }

  • Magst du mir verraten wo bei dir der Fehler angezeigt wird, also die Zeile :whistling:

  • Magst du mir verraten wo bei dir der Fehler angezeigt wird, also die Zeile :whistling:

    sry haha :D
    if(!info[playerid])return Info[playerid]=1,TextDrawShowForPlayer(playerid,Info[1]),TextDrawShowForPlayer(playerid,Info[2]),TextDrawShowForPlayer(playerid,Info[3]),TextDrawShowForPlayer(playerid,Info[4]);

  • Ach jetzt sehe ich den Fehler ;)


    Mach das mal so ;)
    new SInfo[MAX_PLAYERS];


    ocmd:serverinfo(playerid,params[])
    {
    if(!SInfo[playerid])return SInfo[playerid]=1,TextDrawShowForPlayer(playerid,Info[1]),TextDrawShowForPlayer(playerid,Info[2]),TextDrawShowForPlayer(playerid,Info[3]),TextDrawShowForPlayer(playerid,Info[4]);
    return SInfo[playerid]=0,TextDrawHideForPlayer(playerid,Info[1]),TextDrawHideForPlayer(playerid,Info[2]),TextDrawHideForPlayer(playerid,Info[3]),TextDrawHideForPlayer(playerid,Info[4]);
    }


    Dein TextDraw und die Variable hießen beide gleich ;)



    Grüße,
    PAWN