Hey Breadfisher,
Ich habe mir für mein Script ne handvoll Actor erstellt und lasse sie über folgenden Codeschnipsel deklarieren & initialisieren:
enum ActorInfos
{
ac_name[128],
Float:ac_x,
Float:ac_y,
Float:ac_z,
Float:ac_a,
ac_skin
}
new acInfo[][ActorInfos] = {
{"Manfred",1580.2587,-1634.2482,13.5624,2.5657,281},
{"Walter",1084.1152,-1733.1531,13.9940,93.2694,187},
{"Mr. Proper",1759.4100,-1695.9329,13.4570,91.6363,46},
{"Mr. Fisher",361.0420,-2085.5820,7.8359,269.7024,259},
{"Uman - Car Thief",2796.8269,-1416.2595,16.2500,202.4690,66},
{"Machete - Gun Dealer",2793.2759,-1415.7928,16.2500,175.8121,242},
{"El Contrabando - Materials Salesman",2801.9304,-1416.2172,16.2500,172.9686,30},
{"Cid - Thief",2787.7561,-1417.3113,16.2500,224.0425,29}
};
Unter OnGameModeInit:
for(new i = 0; i<sizeof(acInfo); ++i)
{
CreateActor(acInfo[i][ac_skin],acInfo[i][ac_x],acInfo[i][ac_y],acInfo[i][ac_z],acInfo[i][ac_a]);
Create3DTextLabel(acInfo[i][ac_name],COLOR_GOLD,acInfo[i][ac_x],acInfo[i][ac_y],acInfo[i][ac_z]+1.0,15,0,1);
}
Was zur Hölle läuft da falsch? Der Code ist fehlerfrei, keine Probleme beim kompilieren. Wenn ich den Server hier und da neustarte stehen sie mal richtig, dann mal falsch, dann steht die Hälfte richtig, die andere Hälfte dafür falsch.
Kommt der Server damit nicht klar das so viele Actor gespawned werden? Sollte ich sie ohne Schleife vom Script initialisieren, oder soll ich nach dem Motto "Doppelt hält besser" noch die SetActorPos in die Schleife hauen, obwohl das völliger unsinn wäre?
Habt ihr damit auch Erfahrung gemacht, das sie mal je nach restart mal richtig oder falsch stehen?
//EDIT
Habe die Erstellung der Actor unter OnPlayerConnect gelegt, dann war der Fehler jedoch immernoch nicht beseitigt. Derzeitige Lösung dafür: Die Position der Actor in einer seperaten Schleife setzen.
An sich ist das Problem zwar jetzt weg, jedoch will ich doch wissen ob euch das auch schon passiert ist, oder wie ihr es gelöst habt.