Beiträge von heyhooo

    Wir können da doch ein ordentliches Spiel draus machen, einfach pro und kontra?


    In meiner Absicht war es eigentlich nicht, dass es in so einer großen Diskussion ausartet.
    B2T: Richtig und da wäre ich auch für.
    Man kann alles lösen und evntl. sogar aus Kontra- Pro-Argumente machen.
    Schließt man ein Thema, kann man es nicht mehr pushen, schon hat sich ein Problem erledigt.


    L.G.

    Schöne Arbeit, vielleicht den Code an manchen Stellen zuviel Eingerückt
    und somit unübersichtlicher.
    Gefällt mir sehr gut, werde es gleich mal testen :)


    L.G.

    Ach komm heyhooo, bitte optimiere mal deinen code, du bist doch kein Anfänger mehr :)


    Wie gesagt die Filespeicherung wird bald komplett optimiert.
    Ansonsten wüsste ich nicht was du meinst.


    /e:
    @BlackAce:
    Brech dir bitte erstmal in dein Essen, :pinch:
    bei dtimer magst du recht haben, werde es auch ändern.
    runcar ist bewusst in der Struktur, da es so möglich ist, 2 Renne gleichzeitig zu erstellen.
    Wofür brauche ich eine STruktur für RaceCars, wenn ich es so genauso gut kann?
    Außerdem fertige ich erst dann Strukturen an, wenn ich es für nötig halte.
    Die Byte Anzahl, die verbraucht wird ist genauso groß.


    Inhalt
    1. Was ist RaceRun?
    2. Einzelne Erklärungen
    3. Videodarstellung
    4. Wieso Trial-Version?
    5. What do you mean?
    6. Downloads
    7. Installation



    Was ist RaceRun?
    RaceRun ist eine Erweiterung vom Script (Filterscript),
    welche sich zu Aufgabe setzt, dynamische Rennen zu erstellen und zu fahren.
    Die optimierten Bediungen machen es dem Benutzer leicht dieses Filterscript zu verwenden.
    Jedoch ist diese Version eine Trial Version und verfügt nicht über alle Features.



    Einzelne Erklärungen
    Mit dem System ist es dir möglich dynamische Rennen zu erstellen, löschen, fahren und stoppen.
    Das Administrationsmenu wird mit dem Befehl '/rrmenu' aufgerufen.


    Wenn du ein Rennen erstellen willst, bleiben dir 2 Möglichkeiten.
    Du kannst es über die Map (Marker) oder über das manuelle Abfahren erstellen.
    Das Ergebnis ist jedoch das gleiche. Beliebig viele Autos können gewählt werden und
    somit letztendlich auch die Slot Anzahl des einzelnen Rennens.
    Die aktuelle Position, wo man /rrmenu eingegeben hat, wird als Startposition verwendet und somit auch als Ziel.
    Hast du alles gemacht ist das Rennen fertig und startbereit.


    Als normaler User kannst du an den Rennen Teil nehmen.
    Wenn ein Event aktiviert wird, erscheint eine Globale Nachricht im Chat mit einem akustischem Signal.
    Mit dem Command '/rrtele' nimmst du am aktuellem Rennen teil.
    Warte bis die Ampel umschaltet. Der Motor startet von selbst!



    Videodarstellung

    Spoiler anzeigen
    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Spoiler anzeigen
    Für unsere Handy-Benutzer: http://youtu.be/JGG1EtFwMxA


    Wieso Trial-Version?
    Diese Version ist unvollständig, jedoch in sich selbst abgeschlossen.
    Die Voll-Version wird ggf. später verkauft.
    Hier kommen neue Features, kostenlose Erweiterungen sowie weitere grafische Umgebungen dazu.



    What do you mean?
    Deine Meinung ist mir sehr wichtig!
    Deswegen schreibe Verbesserungen bezüglich des Inhaltes in dieses Thema.
    Verbesserungen zum Script-technischen bitte an mich per PN!
    Ich weiß, dass die Handhabung mit der Dateiauslesung leichter geht.
    Jedoch habe ich mir als Ziel gesetzt so wenig Includes / Plugins zu verwenden, wie es nur geht.



    Downloads
    direkter Download
    Virustotal
    Pastebin
    Online-Anleitung (Als html-Datei im Paket enthalten)



    Installation
    Settings:
    //====================SETTINGS=====================//
    #define MAX_PLAYERS 50 //Maximale Anzahl an Slots auf dem Server -> Bei Bedarf ändern!
    #define MAX_RACECARS 15 //Maximale Anzahl von Autos bei einem Rennen
    #define MAX_RACES 10 //Maximale Anzahl von Rennen, die erstellt werden können
    #define MAX_CHECKPOINTS 50 //Maximale Anzahl von Checkpoints, die abgefahren werden können.
    #define MAX_LAPS 20 //Maximale Anzahl von Runden, die gefahre werden können.
    #define permissions 0 //Permissions verwenden? -> Ob bestimmte Commands nur berechtigte Leute ausführen können. (Siehe Callback "Permissions")
    #define command "/rrmenu" //Öffnen des Haupt-Dialogs


    #define mcolor 0xFFFFFFFF //Farbe der Chat-Nachrichten
    #define avehicle 411 //AutoID zum erstellen eines Rennen
    #define rvehicle 494 //AutoID für die Spieler zum Rennen fahren
    #define rvcolor1 -1 //Farbe1 für die Autos zum Rennen fahren
    #define rvcolor2 -1 //Farbe2 für die Autos zum Rennen fahren
    //=================SETTINGS-ENDE===================//
    Administrationsrechte (Hierfür muss in den Settings permissions aktiviert sein:
    Du kannst die Admin Befehle sichern, sodass nur berechtigte User Zugriff haben.
    Füge das in dein Script ein, um Spieler die Berechtigung zuzuteilen. (Letzter Parameter: 1=berechtigt / 0=nicht berechtigt)
    CallRemoteFunction("Permissions","ii",playerid, 1/0);

    Danke an meinen Betatester: @Spanky:


    /Edit: Video hinzugefügt

    @SensaTioN:
    Ich bin mit der Entwicklung fast fertig.
    Diese Art wird morgen veröffentlicht, ein Zufall, dass du dir das genauso vorstellst, wie ich es gemacht habe :)
    Bräuchte ggf. noch kurz Beta-Tester, also wenn du Bock hättest.

    Kann es sein, dass man als Beifahrer keine Möglichkeit hat eine Taste zu drücken?


    Klar geht das.
    Du solltest nur darauf achten, dass die Taste im Auto verfügbar ist.
    LSHIFt ist leider nicht verfügbar:


    Deswegen solltest du immer auf Samp-Wiki nachgucken.
    Dann klappt das auch ;)



    Keys


    L.G.


    Ps: Verwende den Binary Operator '&'.

    Und DeleteObject ? :o


    *DestroyObject...
    Aber wofür?
    Du würdest dir damit unnötige Arbeit machen.
    Du Streamst die Objekte ja und somit werden sie für den Spieler erst in einem gewissen Radius erstellt.
    Außerdem wechselst du mit dem Dialog die Virtuelle Welt und somit sind die 'alten' Objekte (die davor waren) nicht mehr sichtbar, sondern nur die neuen.


    Bei Fragen melden...


    L.G.

    Du fügst die Maps so ein, wie du sie haben möchtest.
    Dementsprechend setzt du die worldid auf die Virtuelle Welt.
    Beispiel: (Ich gehe davon aus, dass alle Objekte beim starten des Servers erstellt werden sollen) Callback: OnGameModeInit
    CreateDynamicObject(10000, 1.0, 2.1, 3.0, 4.2, 7.0, 2.0, HIER DIE WELT, -1);
    Wobei die Werte hier jetzt frei erfunden sind.


    Nun machen wir uns ein Command: (Callback: OnPlayerCommandText)
    if(!strcmp("/mycommand", cmdtext, true)) return ShowPlayerDialog(playerid, 2,DIALOG_STYLE_LIST,"Wähle die Map","MAP1\nMap2\nMap3\nusw...","Ok","Abbrechen");


    Callback: OnDialogResponse
    if(dialogid == 2)
    {
    if(!response) return 1;
    new string[20];
    format(string, 20,"%s ausgewählt!",inputtext);
    SetPlayerVirtualWorld(playerid, listitem+1);
    SendClientMessage(playerid, 0xFFFFFFFF,string);
    }


    Du solltest nun alle Objekte von Map1 (name änderbar) auf die Virtuelle Welt 1 stellen. usw...


    L.G.

    Sofern du den Streamer von Incognito nutzt, kannst du mit CreateDynamicObject die Virtuelle Welt bestimmen:
    native CreateDynamicObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = 200.0, Float:drawdistance = 0.0);

    Verwendest du ein Script, was du nicht selber geschrieben hast?
    Es könnte nämlich sein, dass dieses noch von einem Include war.
    Du kannst es ja mal versuchen auszukommentieren. (//)

    Du hast in den betroffenen Zeilen Klammern vergessen bzw. die falschen Operatoren verwendet.
    Ich kann deinem Code leider nicht ganz folgen, da ich das Ziel und den Kontext nicht kenne.

    Ich empfehle dir aber mal kurz die Scripting-Basics durchzulesen, damit du dir selber helfen kannst.
    Hier würden die Bedingungen in Frage kommen.


    L.G.