stimmt mach ich mal
//edit: Es liegt nicht an der Version
Ich benutze die Spawninfo und habe sie ein wenig erweitert. Hier mal meine Spawninfo:
enum spInfo
{
Inter,
Virt,
Float:spHp,
Float:spArm,
bool:Parachute
}
new SpawnInfo[MAX_PLAYERS][spInfo];
public OnPlayerSpawn(playerid)
{
if(IsPlayerNPC(playerid))
{
StopAudioStreamForPlayer(playerid);
if(!strcmp(PlayerName(playerid), "Intro", true))
{
SetPlayerSkin(playerid,255);
SetPlayerVirtualWorld(playerid,100);
return PutPlayerInVehicle(playerid, Botcar, 0);
}
if(!strcmp(PlayerName(playerid), "GodMode_Tester", true))
{
SetPlayerSkin(playerid,217);
SetPlayerVirtualWorld(playerid,100);
SetPlayerInterior(playerid,1);
GivePlayerWeapon(playerid, 38, 99999);
return SetPlayerArmedWeapon(playerid,38);
}
}
if(pregister[playerid]) //dort wird er in den Zug gesteckt
{
PutPlayerInVehicle(playerid, Botcar, 1);
p_TogglePlayerControllable(playerid,0);
tuttimer[playerid] = SetTimerEx("tutorial", 5000, 0, "i", playerid);
return CreateIntroBox(playerid);
}
if(!login[playerid])
{
SetPlayerPos(playerid, 0.0, 0.0, 0.0);
SetPlayerFacingAngle(playerid, 0.0);
TogglePlayerControllable(playerid,0);
return SetPlayerVirtualWorld(playerid,100);
}
SetPlayerInterior(playerid, SpawnInfo[playerid][Inter]);
SetPlayerVirtualWorld(playerid, SpawnInfo[playerid][Virt]);
SetPlayerHealth(playerid, SpawnInfo[playerid][spHp]);
SetPlayerArmour(playerid, SpawnInfo[playerid][spArm]);
if(SpawnInfo[playerid][Parachute]) GivePlayerWeapon(playerid, 46, 1);
return 1;
}
public tutorial(playerid)
{
if(Spieler[playerid][Intro] > 0)
{
Spieler[playerid][Intro]--;
if(Spieler[playerid][Intro] == 10)
{
TextDrawHideForPlayer(playerid,gTextDraw[IntroText1]);
TextDrawShowForPlayer(playerid,gTextDraw[IntroText2]);
tuttimer[playerid] = SetTimerEx("tutorial", 7000, 0, "i", playerid);
}
else if(Spieler[playerid][Intro] == 9)
{
TextDrawHideForPlayer(playerid,gTextDraw[IntroText1]);
TextDrawHideForPlayer(playerid,gTextDraw[IntroText2]);
TextDrawShowForPlayer(playerid,gTextDraw[IntroText3]);
tuttimer[playerid] = SetTimerEx("tutorial", 4500, 0, "i", playerid);
}
else if(Spieler[playerid][Intro] == 8)
{
ShowPlayerDialog(playerid, Dialog_Zugbot,DIALOG_STYLE_LIST,"{0000FF}Neue Heimatstadt?","Los Santos\nSan Fierro\nLas Venturas", "Weiter", "");
}
else if(Spieler[playerid][Intro] == 7)
{
TextDrawHideForPlayer(playerid,gTextDraw[IntroText1]);
TextDrawHideForPlayer(playerid,gTextDraw[IntroText2]);
TextDrawHideForPlayer(playerid,gTextDraw[IntroText3]);
TextDrawShowForPlayer(playerid,gTextDraw[IntroText4]);
tuttimer[playerid] = SetTimerEx("tutorial", 5000, 0, "i", playerid);
}
else if(Spieler[playerid][Intro] == 6) ShowPlayerDialog(playerid,Dialog_Sex,DIALOG_STYLE_MSGBOX,"{0000FF}Geschlecht","Sind Sie Männlich oder Weiblich?","Männlich","Weiblich");
else if(Spieler[playerid][Intro] == 5)
{
TextDrawHideForPlayer(playerid,gTextDraw[IntroText1]);
TextDrawHideForPlayer(playerid,gTextDraw[IntroText2]);
TextDrawHideForPlayer(playerid,gTextDraw[IntroText3]);
TextDrawHideForPlayer(playerid,gTextDraw[IntroText4]);
TextDrawShowForPlayer(playerid,gTextDraw[IntroText5]);
tuttimer[playerid] = SetTimerEx("tutorial", 4500, 0, "i", playerid);
}
else if(Spieler[playerid][Intro] == 4)
{
ShowPlayerDialog(playerid,Dialog_Alter,DIALOG_STYLE_INPUT,"{0000FF}Alter","Wie alt sind Sie eigentlich?\nBitte geben Sie Ihr Geburtsdatum ein\n\nFormat: dd.mm.jjjjj","Weiter","Zurück");
}
else if(Spieler[playerid][Intro] == 3)
{
TextDrawHideForPlayer(playerid,gTextDraw[IntroText1]);
TextDrawHideForPlayer(playerid,gTextDraw[IntroText2]);
TextDrawHideForPlayer(playerid,gTextDraw[IntroText3]);
TextDrawHideForPlayer(playerid,gTextDraw[IntroText4]);
TextDrawHideForPlayer(playerid,gTextDraw[IntroText5]);
TextDrawShowForPlayer(playerid,gTextDraw[IntroText6]);
tuttimer[playerid] = SetTimerEx("tutorial", 5000, 0, "i", playerid);
}
else if(Spieler[playerid][Intro] == 2)
{
for(new i = 0; i < 30; i++) SendClientMessage(playerid,0x000000FF,"");
new Float:vx, Float:vy, Float:vz;
GetVehiclePos(Botcar,vx,vy,vz);
SetPlayerCameraPos(playerid,vx,vy,vz);
SetPlayerCameraLookAt(playerid,vx,vy,vz, CAMERA_MOVE);
TextDrawHideForPlayer(playerid,gTextDraw[IntroText1]);
TextDrawHideForPlayer(playerid,gTextDraw[IntroText2]);
TextDrawHideForPlayer(playerid,gTextDraw[IntroText3]);
TextDrawHideForPlayer(playerid,gTextDraw[IntroText4]);
TextDrawHideForPlayer(playerid,gTextDraw[IntroText5]);
TextDrawHideForPlayer(playerid,gTextDraw[IntroText6]);
TextDrawShowForPlayer(playerid,gTextDraw[blackscreen]);
tuttimer[playerid] = SetTimerEx("tutorial", 7500, 0, "i", playerid);
SendClientMessage(playerid,0xFFFFFFFF,"Einige Stunden später.....");
for(new i = 0; i < 9; i++) SendClientMessage(playerid,0x000000FF,"");
}
else
{
RemovePlayerFromVehicle(playerid);
tutCP[playerid][0] = p_CreateDynamicCP(Stadthallen[Spieler[playerid][Stadt]-1][posx],Stadthallen[Spieler[playerid][Stadt]-1][posy],Stadthallen[Spieler[playerid][Stadt]-1][posz],3.0,-1, -1, playerid, 10000);
Spieler[playerid][Intro] = 0;
pregister[playerid] = false; //HIer wird die Variable auf false gestellt, sie OnPlayerSpawn > Damit er nicht in den Zug gesteckt wird
firstspawn[playerid] = false; //Ist nicht mehr der erste spawn
Spieler[playerid][pregistriert] = true; //er ist registriert
Spieler[playerid][Tutorial] = 1; //Tutorial
p_ChangeSpawnInfo(playerid); //Hier wird die Spawninfo gesetzt
TextDrawHideForPlayer(playerid,gTextDraw[IntroText1]);
TextDrawHideForPlayer(playerid,gTextDraw[IntroText2]);
TextDrawHideForPlayer(playerid,gTextDraw[IntroText3]);
TextDrawHideForPlayer(playerid,gTextDraw[IntroText4]);
TextDrawHideForPlayer(playerid,gTextDraw[IntroText5]);
TextDrawHideForPlayer(playerid,gTextDraw[IntroText6]); //Textdraws gesetzt
SpawnPlayer(playerid); //er wird gespawnt > siehe OnPlayerSpawn
SendClientMessage(playerid,0xFFFFFFFF,"Willkommen auf {FF0000}BLUBB{FFFFFF}.");
}
}
return 1;
}
stock p_ChangeSpawnInfo(playerid)
{
//Es wird geschaut obs 1. spawn ist, wenn ja dann wird geguckt ob er nen relogg gemacht hat (15 Minuten nach logout)
new day,month,year,second,minute,hour, spSkin;
if(firstspawn[playerid])
{
new bool:relogtimer = false;
getdate(year,month,day);
gettime(hour,minute,second);
if(month == Spieler[playerid][LastMonth] && day == Spieler[playerid][LastDay] && year == Spieler[playerid][LastYear])
{
if(hour-Spieler[playerid][LastHour] == 0)
{
if(minute - Spieler[playerid][LastMinute] <= 15 || Spieler[playerid][LastMinute] == minute) relogtimer = true; //Er hat relog gemacht
}
else if(hour-Spieler[playerid][LastHour] == 1)
{
if(Spieler[playerid][LastMinute] > 45)
{
if(minute-Spieler[playerid][LastMinute] >= -59 && minute-Spieler[playerid][LastMinute] <= -45) relogtimer = true;
}
}
}
else if(month == Spieler[playerid][LastMonth] && year == Spieler[playerid][LastYear])
{
if(CheckDateDifference(Spieler[playerid][LastDay],Spieler[playerid][LastMonth],Spieler[playerid][LastYear],day,month,year,0) == 1)
{
if(Spieler[playerid][LastHour] == 23 && hour == 0 && Spieler[playerid][LastMinute] > 45 && minute < 15)
{
if(minute-Spieler[playerid][LastMinute] >= -59 && minute-Spieler[playerid][LastMinute] <= -45) relogtimer = true;
}
}
}
if(relogtimer) //wenn er relog gemacht hat
{
new bool:needpara = false;
if(Spieler[playerid][Duty] == 1) spSkin = Spieler[playerid][Fraktionsskin];
else if(Spieler[playerid][Duty] == 2 && Spieler[playerid][Ziviljob] > 0) spSkin = Nebenjobs[Spieler[playerid][Ziviljob]][jSkin];
else if(Spieler[playerid][Duty] == 2 && Spieler[playerid][Fraktionsjob] > 0) spSkin = Nebenjobs[Spieler[playerid][Fraktionsjob]][jSkin];
else spSkin = Spieler[playerid][Zivilskin];
if(Spieler[playerid][ZPos] >= 75.0) needpara = true;
return p_SetSpawnInfo(playerid, spSkin, Spieler[playerid][XPos],Spieler[playerid][YPos],Spieler[playerid][ZPos], Spieler[playerid][APos], Spieler[playerid][Interior],Spieler[playerid][Virtualworld], Spieler[playerid][PlayerHealth], Spieler[playerid][PlayerArmour], needpara); //Spawninfo wird gesetzt
}
else
{
Spieler[playerid][Duty] = 0;
Spieler[playerid][Spawnchange] = -1;
}
}
if(IsAGang(GetPlayerFrak(playerid)) && Spieler[playerid][Duty] <= 1) Spieler[playerid][Duty] = 1;
if(Spieler[playerid][Duty] == 1) spSkin = Spieler[playerid][Fraktionsskin];
else if(Spieler[playerid][Duty] == 2 && Spieler[playerid][Ziviljob] > 0) spSkin = Nebenjobs[Spieler[playerid][Ziviljob]][jSkin];
else if(Spieler[playerid][Duty] == 2 && Spieler[playerid][Fraktionsjob] > 0) spSkin = Nebenjobs[Spieler[playerid][Fraktionsjob]][jSkin];
else spSkin = Spieler[playerid][Zivilskin];
if(Spieler[playerid][Spawnchange] >= 0) return p_SetSpawnInfo(playerid, spSkin, Fraktionen[Spieler[playerid][Spawnchange]][pickx],Fraktionen[Spieler[playerid][Spawnchange]][picky],Fraktionen[Spieler[playerid][Spawnchange]][pickz],Fraktionen[Spieler[playerid][Spawnchange]][picka],Fraktionen[Spieler[playerid][Spawnchange]][pickinter], Fraktionen[Spieler[playerid][Spawnchange]][pickvirt]);
if(Spieler[playerid][Hotelzimmer] >= 0) return p_SetSpawnInfo(playerid,spSkin, pHotelzimmer[Spieler[playerid][Hotelzimmer]][hzx2],pHotelzimmer[Spieler[playerid][Hotelzimmer]][hzy2],pHotelzimmer[Spieler[playerid][Hotelzimmer]][hzz2],pHotelzimmer[Spieler[playerid][Hotelzimmer]][hza2],pHotelzimmer[Spieler[playerid][Hotelzimmer]][inter2],pHotelzimmer[Spieler[playerid][Hotelzimmer]][virt2]);
if(Spieler[playerid][Haus] >= 0) return p_SetSpawnInfo(playerid, spSkin, Haeuser[Spieler[playerid][Haus]][pick2x],Haeuser[Spieler[playerid][Haus]][pick2y],Haeuser[Spieler[playerid][Haus]][pick2z],Haeuser[Spieler[playerid][Haus]][pick2a],Haeuser[Spieler[playerid][Haus]][inter],Haeuser[Spieler[playerid][Haus]][virt]);
if(Spieler[playerid][Stadt] == 1) p_SetSpawnInfo(playerid, spSkin, 823.9938,-1361.9373,-0.5078, 314.8367);
else if(Spieler[playerid][Stadt] == 2) p_SetSpawnInfo(playerid, spSkin, -1964.9036,137.8082,27.6875,89.5713);
else if(Spieler[playerid][Stadt] == 3) p_SetSpawnInfo(playerid, spSkin, 1433.6573,2620.4934,11.3926, 180.1021);
else p_SetSpawnInfo(playerid, spSkin, 823.9938,-1361.9373,-0.5078, 314.8367);
return 1;
}
stock p_SetSpawnInfo(playerid, skin, Float:x, Float:y, Float:z, Float:a, interior = 0, virtualworld = 0, Float:spHealth = 100.0, Float:spArmour = 0.0, bool:spPara = false)
{
SetSpawnInfo(playerid, 0, skin, x, y, z, a, 0, 0, 0, 0, 0, 0);
SpawnInfo[playerid][Inter] = interior;
SpawnInfo[playerid][Virt] = virtualworld;
SpawnInfo[playerid][spHp] = spHealth;
SpawnInfo[playerid][spArm] = spArmour;
SpawnInfo[playerid][Parachute] = spPara;
return 1;
}
Ich weiß nicht ob ihr dort etwas erkennt..