Brauche Hilfe.

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 bräuchte mal ein bisschen hilfe...ich bin ja noch ein "großer noob" im scripten


    undzwar möchte ich wissen wenn ich /eventstart eingebe objekte spawne und, dass die User den befehl /joinevent eingeben und zum event gespawnt werden.
    beim beenden des events /eventende und alle objekte verschwinden und die User können nicht mehr Joinen.


    Danke!


    admin system hab ich also dass mit den befehl if(!isPlayerAnAdmin(playerid,5))


    ich arbeite mit ocmd

  • Hallo DJ,
    Also das ist zwar ein bisschen schreibarbeit aber das kriegst du schon hin. Ich habe dir mal etwas gemacht:


    Das kommt ganz oben ins Script unter deinen Includes:
    enum EventINFO
    {
    NameDesEvents[50],
    Float:Spawnx,
    Float:Spawny,
    Float:Spawnz
    }


    new Event[1][EventINFO] = {
    {"Name des Events",10.0, 20.0, 30.0} // Die Coordianten des Evnets kannst du ändern (Wo halt dein Event stadtfindet) und den namen halt auch
    };


    new eventstartet = 0;
    new Objekt[3]; // Die 3 steht für die Anzahl deiner Objekte. Musste halt je nach Menge deiner Objekte genau anpassen


    Jetzt haben wir alle Variablen die wir erst einmal Brauchen
    als nächstes kommen die Befehle damit das Event starten, Es wieder Endet und die User Joinen können:


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/eventstart", cmdtext, true, 10) == 0)
    {
    if(IsPlayerAnAdmin(playerid))
    {
    if(eventstartet == 0)
    {
    ObjekteSpawnen(); //Aufrufen der Funktion "ObjekteSpawnen"
    new string[500];
    format(string, sizeof(string),"%s hat soebend begonnen! Alle die mitmachen wollen /eventjoin eingeben",Event[0][NameDesEvents]);
    SendClientMessageToAll(0x00E1FFFF,string);
    eventstartet = 1;
    }
    else
    {
    SendClientMessage(playerid,0xFF0A00FF,"Das Event hat schon gestartet");
    }
    }
    else
    {
    SendClientMessage(playerid,0xFF0A00FF,"Du bist kein Admin");
    }
    return 1;
    }
    if (strcmp("/eventjoin", cmdtext, true, 10) == 0)
    {
    if(eventstartet == 1) // Abfrage ob das Event schon gestartet hat
    {
    SetPlayerPos(playerid,Event[0][Spawnx], Event[0][Spawny], Event[0][Spawnz]); // Teleportiert den Spieler zum Event
    }
    else
    {
    SendClientMessage(playerid,0xFF0A00FF,"Das Event hat noch nicht gestartet");
    }
    return 1;
    }
    if (strcmp("/eventende", cmdtext, true, 10) == 0)
    {
    if(IsPlayerAnAdmin(playerid))
    {
    if(eventstartet == 1)
    {
    eventstartet = 0;
    ObjekteVerschwinden();
    new string[500];
    format(string, sizeof(string),"%s ist zuende. Es kann niemand mehr kommen",Event[0][NameDesEvents]);
    SendClientMessageToAll(0x00E1FFFF,string);
    }
    else
    {
    SendClientMessage(playerid,0xFF0A00FF,"Das Event hat noch nicht gestartet");
    }
    }
    else
    {
    SendClientMessage(playerid,0xFF0A00FF,"Du bist kein Admin");
    }
    }

    return 0;
    }


    Die Befehle sind dann auch drinne. Jetzt müssen wir noch die Objekte Spawnen lassen
    das kannste ganz unten ins Script einfügen:


    stock ObjekteVerschwinden()
    {
    for(new i=0; i < sizeof(Objekt); i++)
    {
    DestroyObject(Objekt[i]); // Alle Objekte werden gelöscht
    }
    }
    stock ObjekteSpawnen()
    {


    Objekt[0] = CreateObject(111, 10.0, 10.0, 10.0, 0, 0, 0); //Objekt wird erstellt. Ersetze das CreateObject(..) durch dein Objekt
    Objekt[1] = CreateObject(222, 20.0, 20.0, 20.0, 0, 0, 0); // 2. Objekt wird erstellt. Ersetze das CreateObject(..) durch dein Objekt
    Objekt[2] = CreateObject(333, 30.0, 30.0, 30.0, 0, 0, 0); // 3. Objekt wird erstellt. Ersetze das CreateObject(..) durch dein Objekt
    // Objekt[3] = CreateObjekt(.....
    // und so weiter....
    return 1;
    }


    So ich hoffe ich habe dir damit geholfen :). Melde dich einfach wenn du Fragen oder Probleme hast