Dynamischen /Setspawn Befehl

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 Liebe Scripting Profis,
    ich wollte nachfragen ob es möglich ist ein dynamischen /setspawn Befehl zumachen.
    Der Befehl soll für die Serverleiter nur sein,damit die die Spawns,aller Spieler,varieren können
    Ist das möglich?

  • Hallo Liebe Scripting Profis,
    ich wollte nachfragen ob es möglich ist ein dynamischen /setspawn Befehl zumachen.
    Der Befehl soll für die Serverleiter nur sein,damit die die Spawns,aller Spieler,varieren können
    Ist das möglich?


    Versteh die Frage nicht so ganz?
    Willst du das man mit einem Befehl per InGame den Allgemeinen Spielerspawn ändern kann?



    Grüße


  • Genau sprich der Serverleiter gibt /Setspawn ein und beim nächsten Login von den SPielern sollen die auch da spawnen

    Also, Serverleiter gibt /setspawn ein. Und alle Neulinge die sage ich mal noch in KEINER Fraktion sind. Sollen dann am neuen Neulingspawn Spawnen, richtig?
    Klar sowas wäre möglich ^^


  • Genau :)
    Und wie wäre sowas möglich? :D Erklärung bitte :D

    Komm ich bin wirklich mal so nett und Schreibe dir das mal eben hier.
    Gleich werden die Ersten Leute schreiben, öhh warum kaust du den, denn alles vor öhh .. Lasst mich doch?^^



    So hier mal der Code:




    enum DSInfo
    {
    DSInterior,
    Float:SpawnX,
    Float:SpawnY,
    Float:SpawnZ,
    }
    #define MAX_SPAWN 1
    new DynamicSpawnInfo[MAX_SPAWN][DSInfo];



    ocmd:setspawn(playerid, params[])
    {
    new cmd[15], ID, ExistsFrak[20], ExistsFrakCars[20];
    if(sscanf(params,"s[15]", ID))return SendClientMessage(playerid,ORANGE,"Benutzung: /setspawn [Playerspawn]");
    if(strcmp(cmd,"Playerspawn",true) == 0)
    {
    new IntID = GetPlayerInterior(playerid);
    new Float:x,Float:y,Float:z, string[120];
    GetPlayerPos(playerid,x,y,z);
    PlayerSpawn(x,y,z, IntID);
    }
    return 1;
    }


    stock SpawnsSpeichern(spawnid)
    {
    new SDatei[64];
    format(SDatei,50,"/Spawns/%d.ini",spawnid);
    dini_FloatSet(SDatei,"SpawnX",DynamicSpawnInfo[spawnid][SpawnX]);
    dini_FloatSet(SDatei,"SpawnY",DynamicSpawnInfo[spawnid][SpawnY]);
    dini_FloatSet(SDatei,"SpawnZ",DynamicSpawnInfo[spawnid][SpawnZ]);
    dini_IntSet(SDatei,"DSInterior",DynamicSpawnInfo[spawnid][DSInterior]);
    return 1;
    }


    stock PlayerSpawn(Float:x,Float:y,Float:z, IntID)
    {
    new SDatei[64];
    for(new spawnid=1;spawnid<MAX_SPAWN;spawnid++)
    {
    format(FDatei,50,"/Spawns/%d.ini",spawnid);
    if(!fexist(SDatei))
    {
    dini_Create(FDatei);
    dini_FloatSet(FDatei,"SpawnX",x);
    dini_FloatSet(FDatei,"SpawnY",y);
    dini_FloatSet(FDatei,"SpawnZ",z);
    dini_IntSet(FDatei,"DSInterior", IntID);
    return LoadSpawn(spawnid);
    }
    }
    return 1;
    }


    stock LoadSpawn(spawnid)
    {
    new SDatei[64];
    format(SDatei,50,"/Spawns/%d.ini",spawnid);
    if(!fexist(SDatei))return 0;
    {
    DynamicSpawnInfo[spawnid][SpawnX] = dini_Float(SDatei,"SpawnX");
    DynamicSpawnInfo[spawnid][SpawnY] = dini_Float(SDatei,"SpawnY");
    DynamicSpawnInfo[spawnid][SpawnZ] = dini_Float(SDatei,"SpawnZ");
    DynamicSpawnInfo[spawnid][DSInterior] = dini_Int(SDatei,"DSInterior");
    }
    return 1;
    }
    ´


    // DAS unter OnPlayerSpawn packen
    switch(PlayerDaten[playerid][pSelectSpawn]) // Diese Abfrage halt anpassen, hauptsache es gibt eine Globale Variable die Werte Speichert/Lädt. Bekommt der Spieler den Wert 0 zugewiesen Startet er an den Neulingspawn den du mit /setspawn festgelegt hast.
    {
    case 0:
    {
    for(new spawnid=1;spawnid<MAX_SPAWN;spawnid++)
    {
    SetPlayerInterior(playerid, DynamicSpawnInfo[spawnid][DSInterior]);
    SetPlayerVirtualWorld(playerid, 0);
    SetPlayerPos(playerid, DynamicSpawnInfo[spawnid][SpawnX],DynamicSpawnInfo[spawnid][SpawnX],DynamicSpawnInfo[spawnid][SpawnX]=;
    SetPlayerFacingAngle(playerid, 0);
    }
    }
    case 1:
    {
    // Hier dann Rein wenn er 'pSelectSpawn' auf 1 hat. Könnte also z.B dann eine Fraktion sein.
    }
    }



    Ich hab es nicht getestet aber versuch es mal so, müsstest da nur einige Abfragen anpassen ^^



    Grüße