Problem mit meinem Deathmatch Script

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
  • Guten Morgen,


    Mein Server laggt irgendwie nach paar Sekunden wegen einem Timer... Ich habe auch sehr viel gesucht aber habe nichts gefunden. Deswegen wollt ich euch mein Problem zeigen. :)


    Hier der Bereich im Script:


    bei Ongamemodeinit:


    SetTimer("Timer", 1017, 1);


    hier ein forward:


    forward Timer(playerid);


    Und unten:


    public Timer(playerid)
    {
    new score[100];
    format(score,sizeof(score),"~r~Terrorist:%d ~b~Counter Terrorist:%d", Terroristscore,Countertscore);
    scores = TextDrawCreate(530.000000,98.000000,score);
    TextDrawTextSize(scores,200.000000,0.000000);
    TextDrawHideForAll(Text:scores);
    TextDrawSetOutline(scores,1);
    TextDrawSetShadow(scores,1);
    TextDrawShowForAll(Text:scores);
    if (Countertscore >= 30)
    {
    Countertscore = 0;
    Terroristscore = 0;
    GameTextForAll("~b~Counter Terroristen haben Gewonnen",6000,5);
    GangZoneStopFlashForAll(Gangfightzone);
    SetPlayerPos(playerid,1281.3184,-813.7778,83.6658);
    }
    if (Terroristscore >= 30)
    {
    Countertscore = 0;
    Terroristscore = 0;
    GameTextForAll("~r~ Terroristen haben Gewonnen",6000,5);
    GangZoneStopFlashForAll(Gangfightzone);
    SetPlayerPos(playerid,1125.2770,-2036.8662,69.8818);
    }
    return 1;
    }


    freue mich auf eure Antworten :)


    MfG
    Pro_Killer

  • scores = TextDrawCreate(530.000000,98.000000,score);
    TextDrawTextSize(scores,200.000000,0.000000);
    TextDrawHideForAll(Text:scores);
    TextDrawSetOutline(scores,1);
    TextDrawSetShadow(scores,1);


    Das kannste in OnGameModeInit reinpacken,
    da du eingestellt hast, dass er jede Sekunde die Textdraws neu erstellt, brauchst
    du aber nicht, wenn du sie 1 mal im GameMode erstellt hast


    Und die Score Abfrage kannst du besser unter OnPlayerDeath packen,
    da er dort nicht jede Sekunde abfragt was passiert, sondern nur dann,
    wenn jemand stirbt :)



    Edit: Was hinzugefügt

  • Danke für deine Antwort :)


    Ich hab es jetzt so gemacht aber es kommt ein Error:


    C:\Program Files (x86)\Rockstar Games\Deathmatch - Script\gamemodes\dm.pwn(1007) : error 017: undefined symbol "score"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.


    Hier der Bereich:


    scores = TextDrawCreate(530.000000,98.000000,score);


    MfG

  • public Timer(playerid)
    {
    new score[100];
    format(score,sizeof(score),"~r~Terrorist:%d ~b~Counter Terrorist:%d", Terroristscore,Countertscore);
    score = TextDrawCreate(530.000000,98.000000,score);
    TextDrawTextSize(scores,200.000000,0.000000);
    TextDrawHideForAll(Text:score);
    TextDrawSetOutline(scores,1);
    TextDrawSetShadow(scores,1);
    TextDrawShowForAll(Text:score);
    if (Countertscore >= 30)
    {
    Countertscore = 0;
    Terroristscore = 0;
    GameTextForAll("~b~Counter Terroristen haben Gewonnen",6000,5);
    GangZoneStopFlashForAll(Gangfightzone);
    SetPlayerPos(playerid,1281.3184,-813.7778,83.6658);
    }
    if (Terroristscore >= 30)
    {
    Countertscore = 0;
    Terroristscore = 0;
    GameTextForAll("~r~ Terroristen haben Gewonnen",6000,5);
    GangZoneStopFlashForAll(Gangfightzone);
    SetPlayerPos(playerid,1125.2770,-2036.8662,69.8818);
    }
    return 1;
    }


    Du hast "score" definiert aber sagst dann das "scores =" es ist.
    Nimm doch mal das "s" weg.


    M.F.G


    Timo

  • Unten bei den Public musst du die Team Variablen anpassen..
    // oben bei den defines#undef MAX_PLAYERS#define MAX_PLAYERS 30 // DEINEUSERZAHL


    // OnGameModeInitSetTimer("Timer", 1017, 1);scores = TextDrawCreate(530.000000,98.000000," ");TextDrawTextSize(scores,200.000000,0.000000);TextDrawHideForAll(Text:scores);TextDrawSetOutline(scores,1);TextDrawSetShadow(scores,1);TextDrawShowForAll(Text:scores);


    // Public Timerpublic Timer(){ new score[50]; format(score,sizeof(score),"~r~Terrorist:%d ~b~Counter Terrorist:%d", Terroristscore,Countertscore); TextDrawSetString(scores,score); if (Countertscore >= 30) { Countertscore = 0;Terroristscore = 0; GameTextForAll("~b~Counter Terroristen haben Gewonnen",6000,5); GangZoneStopFlashForAll(Gangfightzone); for(new s=0;s<MAX_PLAYERS;s++) { if(IsPlayerConnected(s)&& CounterTeamVariable) { SetPlayerPos(s,1281.3184,-813.7778,83.6658); } } } if (Terroristscore >= 30) { Countertscore = 0;Terroristscore = 0; GameTextForAll("~r~ Terroristen haben Gewonnen",6000,5); GangZoneStopFlashForAll(Gangfightzone); for(new s=0;s<MAX_PLAYERS;s++) { if(IsPlayerConnected(s)&& TerrorTeamVariable) { SetPlayerPos(s,1125.2770,-2036.8662,69.8818); } } } return 1;}