Spezieller Baustellentimer erstellen

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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
  • Hi Leuts.
    Also hatte da so ne Idee und wollte fragen ob das möglich ist und wenn ja wie. Bitte keine dummen antworten wie <<...Jo schau halt tut an oda so>>> hilft mir nix weiter ;)
    Oky meine Vorstellung zum Scriptwunsch: Ich Mappe jetzt Ganz viele einzelne Baustellen ins Game und Speichere sie einzeln ab. hoffe soweit ok ^^
    Gud weiter: nun hätte ich gerne, das diese gemappten Baustellen zufällig um eine zufällige zeit im zeitramen von 30-60min erscheinen und eine kleine meldung kommt z.b : Achtung Achtung die strecke Los santos San fierro wird behindert durch eine baustelle bitte vorsicht :. und eine kleine meldung wann sie wieder weg ist z.b: die strecke Los Santos San fierro ist wieder ohne Probleme befahrbar:. sie sollten ned um die selbe zeit erscheinen sondern etwa so: eine da, später die andere dort, die dritte noch später und dazwischen verschwindet die erste wida , oda so in etwa :. also so zur unterschiedlicher zeit an unterschiedlichen Orten.
    Ich hoffe mir kann da einer so ein Beispielscript oda einen Tip schreiben Währe echt toll von dir wen du mir helfen könntest :thumbup: ich hoffe ich verlange nicht zuviel und hoffe es ist verständlich geschrieben :thumbup:


    MFG: Bubibalönli :thumbup:

  • Ist schon ne ganze Menge.


    Du brauchst eine Variable für alle Baustellen. Ich empfehle dir ein Array mit Define, wieviele Baustellen es gibt:

    #define MAX_BAUSTELLEN 5
    new IsBaustelleUsed[MAX_BAUSTELLEN];



    Am leichtesten wäre es dann, wenn du dir ne Funktion CreateBaustelle(baustellenid) bastelst:


    stock CreateBaustelle(baustellenid)
    {
    switch (baustellenid)
    {
    case 0;
    {
    CreateObject
    CreateObject
    CreateObject
    .....
    SendClientMessageToAll(COLOR_RED,"Auf dem Highway in LS ist eine Baustelle!"); //Nachricht an alle Spieler, dass es eine gibt
    IsBaustelleUsed[baustellenid]=1;//sagt dem Script, dass die Baustelle exisitiert

    Ich hoffe, du erkennst das Prinzip. ;) Das führst du jetzt für jede Baustelle durch.
    Dann erstellst du einen Timer mit deinem Zeitbereich, der dauerhaft ausgeführt wird. In die Timerprozedur kommt, dass eine Zufallszahl mit random(MAX_BAUSTELLEN) erstellt wird, welche deine baustellenid ist. Dann überprüfst du, ob IsBaustelleUsed[baustellenid] = 0 ist. Ist das der Fall, rufst du die Funktion CreateBaustelle(baustellenid) auf, wenn nicht machst du die Prozedur mit der Zufallszahl nochmal. (Timerfunktion einfach nochmal aufrufen).


    Fürs Löschen zeigst du etwas Eigeninitiative und kriegst das selbst hin. ;)

  • Sry Sir. Aba ich brauche ein bisschen mehr Input, bin zwar ein guter Scripter aba noch nicht soweit das ich Eigenmodelle entwinkeln kann ich habe bisher nur immer nach Scriptbruchteilen hier im Forum rausgesucht, passend abgeändert und eingefügt, bitte um Verständnis :).

    Einmal editiert, zuletzt von Delete ()

  • #defined MAX_BAUSTELLEN 2


    SetTimer("CreateBaustelle", 1800000, 1);


    public CreateBaustelle()
    {
    new Baustelle, rand = random(sizeof(MAX_BAUSTELLEN));
    Baustelle = rand;
    if(Baustelle == 0)
    {
    // Objekte
    SendClientMessageToAll(0x0099CCFF, "Narichten: Baustelle am Flughafen in San Fierro");
    }
    if(Baustelle == 1)
    {
    // Objekte
    SendClientMessageToAll(0x0099CCFF, "Narichten: Baustelle am Burger Shot Nord in Los Santos");
    }
    if(Baustelle == 2)
    {
    // Objekte
    SendClientMessageToAll(0x0099CCFF, "Narichten: Baustelle am Otto's Autohaus in San Fierro");
    }
    }


    Ungetestet! Sollte aber funktionieren