[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
  • Beitrag von Global Gamer ()

    Dieser Beitrag wurde von dennismitzwein aus folgendem Grund gelöscht: Spam ().
  • Hi, kann ganz kurz jemand helfen?



    public OnGameModeExit()
    {



    MainTexts[15] = Text:INVALID_TEXT_DRAW; //Error
    FinalRound[19] = Text:INVALID_TEXT_DRAW; //Error



    ArenaTextID = Text:INVALID_TEXT_DRAW;
    Website = Text:INVALID_TEXT_DRAW;
    RoundTime = Text:INVALID_TEXT_DRAW;
    }


    So werden sie erstellt



    new Text:MainTexts[15] = {Text:INVALID_TEXT_DRAW, ...};
    new Text:FinalRound[19] = {Text:INVALID_TEXT_DRAW, ...};



    new Text:ArenaTextID = Text:INVALID_TEXT_DRAW;
    new Text:Website = Text:INVALID_TEXT_DRAW;
    new Text:RoundTime = Text:INVALID_TEXT_DRAW;


    C:\Users\David\Desktop\LnD\gamemodes\main.pwn(832) : error 032: array index out of bounds (variable "MainTexts")
    C:\Users\David\Desktop\LnD\gamemodes\main.pwn(833) : error 032: array index out of bounds (variable "FinalRound")


    Mit freundlichen Grüßen
    JustMe.77 8)

  • C
    new Text:MainTexts[15] = {Text:INVALID_TEXT_DRAW, ...};

    Du hast 15 MainTexts erstellt (0,1,2,3,4,5,6,7,8,9,10,11,12,13,14)
    Hier nutzt du aber den 15. Index, den es gar nicht gibt:
    (bei den anderen Fehler genau so)


    C
    MainTexts[15] = Text:INVALID_TEXT_DRAW; //Error

    Wenn du nämlich 15 reinschreibst, hättest du rein mathematisch 16 Einträge (0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)


    Wenn dann so:


    C
    for(new i;i<sizeof(MainTexts);i++)
    {
         MainTexts[i] = Text:INVALID_TEXT_DRAW
    }

    Wobei das bei OnGameModeExit eh nichts bringt, da dort eh alles wieder zurück auf "0" gesetzt wird. ;)

  • MainTexts[15] = Text:INVALID_TEXT_DRAW; //Error
    FinalRound[19] = Text:INVALID_TEXT_DRAW; //Error

    [15] und [19] existieren nicht...dein Array geht nur von 0-14 und von 0-18.


    Davon mal abgesehen, brauchst du unter OnGameModeExit nichts zurücksetzen, da beim neustarten automatisch die Variablen neu initialisiert werden :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Habe das so geregelt:



    Oben erstellst du dann pMoney.


    In einem Timer schreibst du folgendes:

    C
    new antimoney = GetPlayerMoney(playerid), servermoney = GetMoney(playerid);	
    if(antimoney < servermoney)
    	{
    		new lostmoney = servermoney - antimoney;
    		Spieler[playerid][pMoney] -= lostmoney;
    	}

    Laden lässt du es wie gewohnt beim Login in die Variable pMoney.
    Dann einfach SetMoney(playerid, Spieler[playerid][pMoney]);


    Dein Geld wird auch abgezogen wenn du im PnS etc bist. :)

  • if(dialogid == DIALOG_SCODE)
    {
    if(response)
    {
    new scode[2048];
    format(scode, sizeof(scode), "Bitte gebe unten deinen persönlichen Sicherheitscode ein. \nDieser wird genutzt, um dich zukünftig eindeutig zu identifizieren \n \nDein Sicherheitscode muss zwichen 4 und 10 Zeichen haben, er darf Buchstaben, Zahlen und Sonderzeichen enthalten \nInfo: Du kannst dein Passwort nicht als Sicherheitscode verwenden! \n \n"HTML_ROT"Bitte merke dir dein Sicherheitscode gut!");
    [color=#FF0000] if(strlen(inputtext) < 4 || strlen(inputtext) > 10) return SendClientMessage(playerid, COLOR_ROT, "* Fehler: Dein Sicherheitscode muss zwischen 4 und 10 Zeichen haben!"), ShowPlayerDialog(playerid, DIALOG_SCODE, DIALOG_STYLE_INPUT, ""SERVER_COLOR_HTML"["SERVERTAG"] - Regestration", scode, "Weiter", "Abbruch");[/color]
    format(Player[playerid][pSCode], 10, inputtext);
    }
    else
    {
    ClearChat(playerid);
    KickWithMessage(playerid, COLOR_ROT, "[Kick] "HTML_GELB"Du hast die Regestration abgebrochen!");
    return 1;
    }
    }


    Code
    C:\Users\Marcel\Desktop\Server\gamemodes\Selfmade.pwn(386) : error 036: empty statement
    Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
    
    
    
    
    1 Error.
  • do.de - Domain-Offensive - Domains für alle und zu super Preisen