Ein kleines 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
    ich abe ein kleines problem bei meine neuen script.
    Ich habe wieder irgend wie meine timer alle gefreeze also eingefrohen weis aber nicht wie
    ist wieder aus gesiter hand passiert.
    ich habe alles auskommentiert was ich neu gemacht habe und immer noch der bug jetzt weis ich auch net mehr wieter um en bug zu finden der halbe gm ist schon auskommentiert.
    sagt mir welche cods ihr braucht ich poste sie euch. Will den bug weg haben
    Kennt den bug keiner?
    weis den keinner wo ran das leigen kannn?

    Einmal editiert, zuletzt von HoneyKing ()

  • wenn ich w+üste was ihr braucht könnte ich es ja posten
    Sag mir mal bescheid was ihr braucht? also welchen code!

    Einmal editiert, zuletzt von HoneyKing ()

  • Sind die Funktionen die du mit deinen Timern aufrufst publics bzw geforwarded?
    Oder hast du vielleicht die Funktionen in den Timern falsch geschrieben.
    DAs wäre so das was mir noch einfallen würde

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Ahm Ich abe sie in Public und geforwardet habe ich die auch. Die Timer gingen ja alle bis vorkurzen.

  • ja auf dem backup ist der bug auch schon drauf habe ihn zu spät gemerkt :(

  • sind das denn alle timer? oder nur einer?


    Sonst pack ma in die aufgerufenen Funktionen ein Debug bzw print und kurz bevor du die Timer Ausführst

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • das sind alle timer auser die ich mit befehlen starte
    tutorialtimer = SetTimer("TutorialZeit",TUTORIALZEIT,1);
    SetTimer("SetPayDay",SETPAYDAY,1);
    SetTimer("RealHealth",REALHEALTH,1);
    SetTimer("FriedhofTimer",FRIEDHOFTIMER,1);
    SetTimer("TOTTimer",TOTTIMER,1);
    SetTimer("WetterChange",WETTERCHANGE,1);
    SetTimer("Deathrespawn",DEATHRESPAWN,1);
    unjailtimer = SetTimer("SetPlayerUnjail", UNJAIL, 1);
    SetTimer("atmmessage",ATMMESSAGE,1);
    die gehen alle nicht aber
    SetTimer("Blitzer_Timer", BLITZER_TIMER_INTERVALL, 1);
    SetTimer("TachoTimer",TACHOTIMER,1);
    gehen nnoch
    SO hier mal die funktionen der einzlnen timer
    public SetPayDay(i)
    {
    new string[124];
    new checks = pDaten[i][Gehalt];
    new lohn = pDaten[i][fLohn];
    if(pDaten[i][PayDay] >= 1)
    {
    pDaten[i][PayDay] -= 1;
    }
    else if(pDaten[i][PayDay] <= 0)
    {
    SendClientMessage(i,0xFFFF00FF,"Payday!");
    PlayerPlaySound(i, 1068, 0.0, 0.0, 0.0);
    GivePlayerMoney(i,2000);
    pDaten[i][PayDay] = 3600;
    SetTimer("StopPlayerMusic", 5000, false);
    }
    }
    public RealHealth(playerid)
    {
    new Float:oldheal;
    GetPlayerHealth(playerid,oldheal);
    new Float:newheal;
    newheal= oldheal-1;
    SetPlayerHealth(playerid,newheal);
    return 1;
    }
    public FriedhofTimer(playerid)
    {
    if(pDaten[playerid][Friedhof] >= 2)
    {
    pDaten[playerid][Friedhof] -= 1;
    }
    if(pDaten[playerid][Friedhof] == 1)
    {
    SpawnPlayer(playerid);
    SetPlayerWeather(playerid, Wetter);
    pDaten[playerid][IsTotxD] = 0;
    pDaten[playerid][Friedhof] = 0;
    }

    }
    public TOTTimer()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(pDaten[i][pTot] == 1)
    {
    pIstTot[i] += 1;
    }
    if(pDaten[i][pTot] == 1 && pIstTot[i] == 3)//die 3 ändern in die anzahl der minuten die ihr im KH sein wollt
    {
    pDaten[i][pTot] = 0;
    pDaten[i][IsTotxD] = 0;
    pIstTot[i] = 0;
    SetPlayerVirtualWorld(i,0);
    SetPlayerSpawn(i);
    SpawnPlayer(i);
    TogglePlayerControllable(i,1);
    SendClientMessage(i, COLOR_LIGHTGREEN, "Du bist aus dem Krankenhaus entlassen!");
    DestroyPickup(TotenKopf[i][0]);
    }
    }
    }
    }
    public WetterChange()
    {
    new rand = random(sizeof(WetterRandom));
    new stringw[16];
    wetterid = WetterRandom[rand][0];
    format(stringw, sizeof(stringw), "weather %d", wetterid);
    SendRconCommand(stringw);
    printf("[PsychoSys]Wetter ID: %d", wetterid);
    Wetter = wetterid;
    return 1;
    }
    public Deathrespawn(playerid)
    {
    if(pDaten[playerid][Friedhof] >= 1)
    {
    if(!IsPlayerInArea(playerid,801.9307,-1134.5814,955.5819,-1051.9934))
    {
    SetPlayerPos(playerid, 826.6697,-1102.7621,25.3906);
    }
    }
    }
    public SetPlayerUnjail(i)
    {
    if(pDaten[i][Jailed] == 1)
    {
    pDaten[i][Jailtime] -= 1;
    if(pDaten[i][Jailtime] == 0)
    {
    pDaten[i][Jailed] = 0;
    SetPlayerInterior(i, 0);
    SetPlayerPos(i,1546.8324,-1675.1418,13.5631);
    KillTimer(unjailtimer);
    }
    }
    }
    public atmmessage(playerid)
    {
    new string[128];
    for(new i=0;i<15;i++)
    {
    if(IsPlayerInRangeOfPoint(playerid,3.0,Atms[i][0],Atms[i][1],Atms[i][2]))
    {
    format(string,sizeof(string),"~n~~n~~n~~n~~n~~n~~n~~w~Schreibe ~g~/atm ~w~um den Automaten zu bedienen.");
    GameTextForPlayer(playerid,string,3500,3);
    return 1;
    }
    }
    return 1;
    }
    so das wars glaube ich
    ich hoffe ihr könnt mir helfen
    nach eine debug sollten alle timer laufen. der gibt alles wieder nach der zeit die angegeben ist nur der führt die dannn nicht aus die befehle früher gings
    public SetPlayerUnjail(i)
    {
    print("Unjail");//der ja
    if(pDaten[i][Jailed] == 1)//hier vermutlich fehler
    {
    pDaten[i][Jailtime] -= 1;
    print("Unjail1");//der wird nicht mehr ausgeführt
    if(pDaten[i][Jailtime] == 0)
    {
    pDaten[i][Jailed] = 0;
    SetPlayerInterior(i, 0);
    SetPlayerPos(i,1546.8324,-1675.1418,13.5631);
    KillTimer(unjailtimer);
    }
    }
    }

    4 Mal editiert, zuletzt von HoneyKing ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Meinste du as der spieler gefreezt ist? oder wie das hat doch an sich glaube ich nicht mit dem timer zu tun

    3 Mal editiert, zuletzt von HoneyKing ()

  • das wort Wait gibt es nicht in meien GM :D Okay was soll ich suchen?

    Einmal editiert, zuletzt von HoneyKing ()

  • Es kann sein das irgendwo in nem Timer das steht:
    FreezPlayer
    oder
    ToglePlayerControlable
    Such das mal im Script.
    Wenns in nem Timer steht weiste woran es lag ;D
    zudem er meinte such nach dem Wort Wait oder Warte falls es iwas mit nem Buydialog zu tun hat.
    mfg


    Bewerte mich und meine Transaktionen als Mittelsmann

  • Hm ja habe ich in 3 timer weil man dort gefreezt oder unfreezed wird wo soll ich das den machen
    public TutorialZeit(i)
    {
    if(TutTime[i] >= 1)
    {
    pDaten[i][Tut] = 1;
    TutTime[i] += 1;
    TogglePlayerControllable(i,0);
    if(TutTime[i] ==6) //DASTUTORIAL
    {
    TextDrawShowForPlayer(i, pDaten[i][LetterboxTop]);
    TextDrawShowForPlayer(i, pDaten[i][LetterboxBottom]);
    ClearChatbox(i, 10);
    }
    if(TutTime[i] == 8)
    {
    SetPlayerPos(i,1137.1897,-1455.0825,15.7969);
    SetPlayerCameraPos(i, 1137.1897,-1455.0825,15.7969);
    SetPlayerCameraLookAt(i, 1127.6664,-1483.0823,22.7690);
    SetPlayerInterior(i, 0);
    SetPlayerVirtualWorld(i, 0);


    SendClientMessage(i, COLOR_GOLD, "|=================| Einleitung in 120 Sekunden |=================|");
    ...........
    else if(TutTime[i] == 120)
    {
    TextDrawHideForPlayer(i, pDaten[i][LetterboxTop]);
    TextDrawHideForPlayer(i, pDaten[i][LetterboxBottom]);
    ClearChatbox(i, 10);
    SendClientMessage(i, COLOR_GREEN, "Herzlich Willkommen in San Andreas.");
    SendClientMessage(i, COLOR_LIGHTRED, "Ohne einen Führerschein kannst du wohl nur mit einem Roller oder einem Fahrrad fahren.");
    SendClientMessage(i, COLOR_LIGHTRED, "Wenn du Hilfe brauchst schreib einmal /report und schreib deine Frage in das geöffnete Fenster.");
    TutTime[i] = 0; pDaten[i][Tut] = 2;
    TogglePlayerControllable(i,1);
    SetCameraBehindPlayer(i);
    SpawnPlayer(i);
    GivePlayerMoney(i,10000);
    ShowPlayerDialog(i,StartGeldDialog,DIALOG_STYLE_LIST,"Start Bonus","50000$\n20000$ + Motoradschein\n20000$ + Level 5\n 20000$ + Führerschein","Auswählen", "Auswählen");
    }
    }
    }
    oderpublic RespawnAfterKrankenhaus(playerid)
    {
    SetPlayerPos(playerid,1999.7947,-1453.1426,13.5547);
    SetPlayerFacingAngle(playerid,113.4541);
    SetPlayerInterior(playerid,0);
    SetCameraBehindPlayer(playerid);
    TogglePlayerControllable(playerid,0);
    new rand = random(3);
    if(rand == 0)
    {
    GameTextForPlayer(playerid,"~y~GEHEILT!~n~~g~Du hattest eine leichte Verletzung",5000,3);
    SetPlayerHealth(playerid,90.0);
    }
    else if(rand == 1)
    {
    GameTextForPlayer(playerid,"~y~GEHEILT!~n~~g~Du hattest eine mittlere Verletzung",5000,3);
    SetPlayerHealth(playerid,60.0);
    }
    else if(rand == 2)
    {
    GameTextForPlayer(playerid,"~y~GEHEILT!~n~~g~Du hattest eine schwere Verletzung",5000,3);
    SetPlayerHealth(playerid,20.0);
    }
    return 1;
    }
    public TOTTimer()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(pDaten[i][pTot] == 1)
    {
    pIstTot[i] += 1;
    }
    if(pDaten[i][pTot] == 1 && pIstTot[i] == 3)//die 3 ändern in die anzahl der minuten die ihr im KH sein wollt
    {
    pDaten[i][pTot] = 0;
    pDaten[i][IsTotxD] = 0;
    pIstTot[i] = 0;
    SetPlayerVirtualWorld(i,0);
    SetPlayerSpawn(i);
    SpawnPlayer(i);
    TogglePlayerControllable(i,1);
    SendClientMessage(i, COLOR_LIGHTGREEN, "Du bist aus dem Krankenhaus entlassen!");
    DestroyPickup(TotenKopf[i][0]);
    }
    }
    }
    }
    public SetPlayerSpawn(playerid)
    {
    if(IsPlayerConnected(playerid))
    {
    if (pDaten[playerid][pTot] == 1)
    {
    SetPlayerPos(playerid, 1172.2982,-1323.7545,15.4039 ); // Warp the player
    SetPlayerInterior(playerid,0);
    TogglePlayerControllable(playerid,0);
    return 1;
    }
    }
    return 1;
    } wie soll ich das sonst machen????
    wie soll ich das machen soll ich da ein extra public oder stock erstellen oder wie?

    6 Mal editiert, zuletzt von HoneyKing ()

  • OMG du versuchst nicht mal an deine Funktionen die du mit den Timer aufrufst werte/variablen zu übergeben, das geht nur mit SetTimerEx


    Ein Beispiel
    wenn du so versuchst SetTimer("SetPayDay",SETPAYDAY,1); diese Funktion aufzurufen public SetPayDay(i) kann das zwar funktionieren, aber alle Abfragen, die du mit der Variable i machst werden 0 returnen da in 'i' nix steht bzw 'i' 0 ist


    Du müsstest es dann so machen SetTimerEx("SetPayDay",SETPAYDAY,1,"i",deinevariable); amsinnvollsten wäre das einzusetzen in OnPlayerConnect

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • ah Jetzt hab ichs gecheckt danke es geht habe nur noch ein bug mit meine login das sagt immer das jedes pw richtig ist