Screen Fade + Timer

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 versuche einen kleinen Screen Fader zu scripten, wenn ein Spieler stirbt, habe aber ein paar kleinere Problemchen.
    Die Errors stehen ganz unten.


    Erstellung der Textdraws
    new PlayerText:DeathFadeTD[MAX_PLAYERS];


    DeathFadeTD[playerid] = CreatePlayerTextDraw(playerid, -7.000000, 0.000000, "samaps:map");
    PlayerTextDrawLetterSize(playerid, DeathFadeTD[playerid], 0.500000, 1.000000);
    PlayerTextDrawColor(playerid, DeathFadeTD[playerid], 0xFF0000C8);
    PlayerTextDrawSetOutline(playerid, DeathFadeTD[playerid], 0);
    PlayerTextDrawSetProportional(playerid, DeathFadeTD[playerid], 1);
    PlayerTextDrawSetShadow(playerid, DeathFadeTD[playerid], 1);
    PlayerTextDrawUseBox(playerid, DeathFadeTD[playerid], 1);
    PlayerTextDrawBoxColor(playerid, DeathFadeTD[playerid], 0xFF0000C8);
    PlayerTextDrawTextSize(playerid, DeathFadeTD[playerid], 650.000000, 450.000000);


    Callbacks
    new DeathFadeTimer[MAX_PLAYERS];


    public OnPlayerDeath(playerid, killerid, reason)
    {
    TextDrawShowForPlayer(playerid, DeathFade[playerid]);
    DeathFaderTimer[playerid] = SetTimerEx("DeathFader", 500/20, true, "i", playerid);
    }


    forward DeathFader(playerid);
    public DeathFader(playerid)
    {
    new state; //Zeile 35
    state++; //Zeile 36
    switch(state) //Zeile 37
    {
    case 1: PlayerTextDrawColor(playerid, DeathFadeTD[playerid], 0xFF0000BE);
    case 2: PlayerTextDrawColor(playerid, DeathFadeTD[playerid], 0xFF0000B4);
    case 3: PlayerTextDrawColor(playerid, DeathFadeTD[playerid], 0xFF0000AA);
    case 4: PlayerTextDrawColor(playerid, DeathFadeTD[playerid], 0xFF0000A0);
    case 5: PlayerTextDrawColor(playerid, DeathFadeTD[playerid], 0xFF000096);
    case 6: PlayerTextDrawColor(playerid, DeathFadeTD[playerid], 0xFF00008C);
    case 7: PlayerTextDrawColor(playerid, DeathFadeTD[playerid], 0xFF000082);
    case 8: PlayerTextDrawColor(playerid, DeathFadeTD[playerid], 0xFF000078);
    case 9: PlayerTextDrawColor(playerid, DeathFadeTD[playerid], 0xFF00006E);
    case 10: PlayerTextDrawColor(playerid, DeathFadeTD[playerid], 0xFF000064);
    case 11: PlayerTextDrawColor(playerid, DeathFadeTD[playerid], 0xFF00005A);
    case 12: PlayerTextDrawColor(playerid, DeathFadeTD[playerid], 0xFF000050);
    case 13: PlayerTextDrawColor(playerid, DeathFadeTD[playerid], 0xFF000046);
    case 14: PlayerTextDrawColor(playerid, DeathFadeTD[playerid], 0xFF00003C);
    case 15: PlayerTextDrawColor(playerid, DeathFadeTD[playerid], 0xFF000032);
    case 16: PlayerTextDrawColor(playerid, DeathFadeTD[playerid], 0xFF000028);
    case 17: PlayerTextDrawColor(playerid, DeathFadeTD[playerid], 0xFF00001E);
    case 18: PlayerTextDrawColor(playerid, DeathFadeTD[playerid], 0xFF000014);
    case 19: PlayerTextDrawColor(playerid, DeathFadeTD[playerid], 0xFF00000A);
    case 20:
    {
    PlayerTextDrawShow(playerid, DeathFadeTD[playerid]);
    KillTimer(DeathFader[playerid]);
    }
    }
    return 1;
    }


    Errors
    Timer.inc(35) : error 001: expected token: "-identifier-", but found "state"
    Timer.inc(36) : error 001: expected token: "-identifier-", but found "++"
    Timer.inc(36) : error 029: invalid expression, assumed zero
    Timer.inc(36 -- 37) : error 022: must be lvalue (non-constant)
    Timer.inc(36 -- 37) : fatal error 107: too many error messages on one line

  • Ich hab "state" nun mal zu "i" geändert.


    Timer.inc(61) : error 028: invalid subscript (not an array or too many subscripts): "DeathFader"
    Timer.inc(61) : warning 215: expression has no effect
    Timer.inc(61) : error 001: expected token: ";", but found "]"
    Timer.inc(61) : error 029: invalid expression, assumed zero
    Timer.inc(61) : fatal error 107: too many error messages on one line


    ____________________________________________________________________________________


    GELÖST!


    Hatte die falsche Bezeichnung beim killen vom Timer eingegeben.

    Einmal editiert, zuletzt von Manyula ()

  • Dein Code macht so aber auch keinen Sinn. Jedes mal wenn DeathFader aufgerufen wird, wird die Variable state erstellt, und +1 gerechnet. Das heisst du würdest nie über 1 hinaus kommen, weil eben bei jedem Aufruf das ganze wieder bei 0 anfängt. Du must den aktuellen Status also in eine globalen Variable speichern, beispielsweise per pvar, und diese dann Abfragen.


    PS: Wenn du Du kansnt Quellcode per

    Code
    [pwn=33]public DeathFader(playerid)
    {
    	new state; //Zeile 35
    	state++; //Zeile 36
    	switch(state) //Zeile 37
    	usw...[/pwn]

    Angeben, dann fängt der mit der angegebenen Zeilennummer an. Das vereinfacht das nachvollziehen der Fehlermeldungen:
    [pwn=33]public DeathFader(playerid)
    {
    new state; //Zeile 35
    state++; //Zeile 36
    switch(state) //Zeile 37
    usw...[/pwn]

    The fact is, I am right. And if you think I'm wrong, you are wrong.