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