Vaise
Умник
Всем привет! Не думал, что когда нибудь я обращусь сюда, но сегодня получилось так, что я просто обязан сюда прийти и спросить у вас, дорогие скриптеры. В общем, проблема такая, переписал регистрацию, и после ввода возраста, или входа на сервер я просто появляюсь на Ферме в замороженном виде. Надеюсь на вашу помощь!
колбэк OnPlayerSpawn:
Skype: vlad_krest
колбэк OnPlayerSpawn:
PHP:
public OnPlayerSpawn(playerid)
{
StopAudioStreamForPlayer(playerid);
pTemp[playerid][pAbletoGun] = 2;
SetPlayerColor(playerid,0xFFFFFF11);
pTemp[playerid][pChangingSkin] = false;
HidePlayerClothesTD(playerid);
//pTemp[playerid][pControllable] = true;
TogglePlayerControllable(playerid,0);
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid,x,y,z);
pTemp[playerid][pWork] = 0;
if(!pTemp[playerid][pLogined] || !pTemp[playerid][pJoined]) return 1;
if(!pData[playerid][pSkin]) //Если игрок не выбрал скин
{
/*SetPlayerInterior(playerid,1);
SetPlayerPos(playerid, 1.6953,28.5131,1199.5938);
SetPlayerFacingAngle(playerid,180.0);
SetPlayerCameraPos(playerid,1.6935,24.8664,1200.0);
SetPlayerCameraLookAt(playerid,1.6953,28.5131,1199.5938);
SetPlayerVirtualWorld(playerid,playerid);
TogglePlayerControllable(playerid,0);
pTemp[playerid][pChoosingSkin] = true;
TextDrawShowForPlayer(playerid,TD[tdNextSkin]);
TextDrawShowForPlayer(playerid,TD[tdBackSkin]);
TextDrawShowForPlayer(playerid,TD[tdSelSkin]);
SelectTextDraw(playerid, 0xAFAFAFAA);
SetPVarInt(playerid,"skinid",0);
new cat = 0;
if(pData[playerid][pSex] == 2) cat = 1;
new color = pData[playerid][pColor];
SetPlayerSkin(playerid,gRegSkins[cat][color][0]);
SendClientMessage(playerid,CWHITE,"Следующий скин: {"#cGREEN"}Вправо (по умолчнию)");
SendClientMessage(playerid,CWHITE,"Предыдущий скин: {"#cRED"}Влево (по умолчнию)");
SendClientMessage(playerid,CWHITE,"Выбрать скин: {"#cYELLOW"}Пробел (по умолчнию)");
SelectTextDraw(playerid, 0xFFFFFFFF);*/
pData[playerid][pSkin] = gRegSkins[pData[playerid][pSex]-1][pData[playerid][pColor]][random(3)];
SetPlayerSkin(playerid, pData[playerid][pSkin]);
UpdatePlayerData(playerid,"skin",pData[playerid][pSkin]);
//return 1;
}
if (pData[playerid][pJail])
{
TogglePlayerControllable(playerid,0);
SetTimerEx("Unfreez",2000,false,"i",playerid);
new prison = pData[playerid][pPrison];
new camid = random(3);
SetPlayerVirtualWorld(playerid,prison + 1);
SetPlayerInterior(playerid,6);
SetPlayerPos(playerid,camSpawn[camid][0],camSpawn[camid][1],camSpawn[camid][2],0);
SetPlayerFacingAngle(playerid,camSpawn[camid][3]);
if(pData[playerid][pFraction]) SetPlayerSkin(playerid,pData[playerid][pFractionSkin]);
else SetPlayerSkin(playerid,pData[playerid][pSkin]);
if(pData[playerid][pFraction]) SetPlayerColor(playerid,gFractionColor[pData[playerid][pFraction] - 1]);
}
else if(pTemp[playerid][pDead] || pData[playerid][pHealth] < 10.0)
{
pTemp[playerid][pDead] = false;
new Float:c[4][4] = {
{957.7189,2156.0740,1019.0859,90.0725},//Болькааа
{940.5134,2150.4282,1019.0859,359.0601},//
{936.4810,2166.0544,1019.0859,270.6992},//
{948.9666,2155.1650,1019.0859,88.8192}//
};
new f = RandomEx(0,4);
SetPlayerInterior(playerid,1);
SetPlayerVirtualWorld(playerid,RandomEx(0,3));
pTemp[playerid][pInHospital] = true;
SetPlayerPos(playerid,c[f][0],c[f][1],c[f][2]);
SetPlayerFacingAngle(playerid,c[f][3]);
TogglePlayerControllable(playerid,0);
if(pData[playerid][pFraction]) SetPlayerSkin(playerid,pData[playerid][pFractionSkin]);
else SetPlayerSkin(playerid,pData[playerid][pSkin]);
SetTimerEx("Unfreez",2000,false,"i",playerid);
SetPlayerHealthEx(playerid,1.0);
}
else if(pData[playerid][pHouse])
{
SetPlayerVirtualWorld(playerid,pData[playerid][pHouse]);
new interior, Float:r;
new houseid = pData[playerid][pHouse] - 1;
new hint = gHouses[houseid][houseHint];
if(pData[playerid][pFraction])
{
if(gHouses[houseid][houseImprove][3] && gHouses[houseid][houseOwnerID] == pData[playerid][pMysqlID]) SetPlayerSkin(playerid,pData[playerid][pSkin]);
else SetPlayerSkin(playerid,pData[playerid][pFractionSkin]);
}
else SetPlayerSkin(playerid,pData[playerid][pSkin]);
pTemp[playerid][pSelectedHouseID] = houseid;
x = gHints[hint][hintSX];
y = gHints[hint][hintSY];
z = gHints[hint][hintSZ];
r = gHints[hint][hintSR];
interior = gHints[hint][hintInterior];
SetPlayerInterior(playerid,interior);
SetPlayerPos(playerid,x,y,z);
SetPlayerFacingAngle(playerid,r);
pTemp[playerid][pIsInHouse] = true;
if(pData[playerid][pFraction]) SetPlayerColor(playerid,gFractionColor[pData[playerid][pFraction] - 1]);
}
else if(pData[playerid][pHotel])
{
new hotelid = pData[playerid][pHotel]-1;
new room = pData[playerid][pHotelRoom];
if(gHotelResidents[hotelid][room] != pData[playerid][pMysqlID])
{
SendClientMessage(playerid,CORANGE,"Вы были выселены из отеля за неуплату");
SendClientMessage(playerid,CORANGE,"Если у Вас было т/с, то оно было продано гос-у за 80 процентов от цены на рынке");
pData[playerid][pHotel] = 0;
pData[playerid][pHotelRoom] = 0;
new query[128];
format(query,sizeof(query),"UPDATE `accounts` SET `hotel` = '0', `hotelroom` = '0' WHERE `id` = '%d'",pData[playerid][pMysqlID]);
mysql_query(query);
SpawnPlayer(playerid);
}
else
{
SetPVarInt(playerid,"selectedhotel",hotelid);
if(pData[playerid][pFraction]) SetPlayerSkin(playerid,pData[playerid][pFractionSkin]);
else SetPlayerSkin(playerid,pData[playerid][pSkin]);
SetPlayerVirtualWorld(playerid,hotelid);
SetPlayerInterior(playerid,15);
SetPlayerPos(playerid,gHotelRoomExits[room][0],gHotelRoomExits[room][1],gHotelRoomExits[room][2]);
SetPlayerFacingAngle(playerid,gHotelRoomExits[room][3]);
new remain;
remain = gHotelEndurance[hotelid][room] - gCurDay;
if(remain <= 2) SendClientMessage(playerid,CYELLOW,"ВНИМАНИЕ! У Вас осталось менее 2-х дней до того как Вас Выселят из отеля, если Вы не оплатите за проживание.");
}
}
else if(pData[playerid][pFraction])
{
new fractionid = pData[playerid][pFraction]-1;
if(pData[playerid][pSubfraction])
{
new frid;
frid = GetSubfractionID(fractionid);
new subid = pData[playerid][pSubfraction] - 1;
SetPlayerInterior(playerid,gSubfractionSpawnData[frid][subid][0]);
SetPlayerVirtualWorld(playerid,gSubfractionSpawnData[frid][subid][1]);
SetPlayerPos(playerid,gSubfractionSpawnC[frid][subid][0],gSubfractionSpawnC[frid][subid][1],gSubfractionSpawnC[frid][subid][2]);
SetPlayerFacingAngle(playerid,gSubfractionSpawnC[frid][subid][3]);
if(frid == 1 && subid == 0)
{
TogglePlayerControllable(playerid,0);
SetTimerEx("Unfreez",2000,false,"i",playerid);
}
if(frid == 2 && subid >= 0)
{
TogglePlayerControllable(playerid,0);
SetTimerEx("Unfreez",2000,false,"i",playerid);
}
}
else
{
SetPlayerVirtualWorld(playerid,gFractionSpawnData[fractionid][1]);
SetPlayerInterior(playerid,gFractionSpawnData[fractionid][0]);
SetPlayerPos(playerid,gFractionSpawnC[fractionid][0],gFractionSpawnC[fractionid][1],gFractionSpawnC[fractionid][2]);
}
SetPlayerSkin(playerid,pData[playerid][pFractionSkin]);
SetCameraBehindPlayer(playerid);
SetPlayerColor(playerid,gFractionColor[fractionid]);
if((fractionid >= 0 && fractionid <= 7) || fractionid == 9)
{
if(fractionid == 1) pTemp[playerid][pInHospital] = true;
TogglePlayerControllable(playerid,0);
SetTimerEx("Unfreez",2000,false,"i",playerid);
}
}
else
{
SetPlayerSkin(playerid,pData[playerid][pSkin]);
SetPlayerVirtualWorld(playerid,0);
SetPlayerInterior(playerid,0);
TogglePlayerControllable(playerid,1);
SetPlayerPos(playerid,1293.6625,-1871.2214,13.5859);
SetPlayerFacingAngle(playerid,270.0);
SetCameraBehindPlayer(playerid);
SetPlayerColor(playerid,0xFFFFFF11);
}
if(pData[playerid][pMoney])
{
ResetPlayerMoney(playerid);
GivePlayerMoney(playerid,pData[playerid][pMoney]);
}
//if(pData[playerid][pHealth]) SetPlayerHealthEx(playerid,pData[playerid][pHealth]);
//SetPlayerHealthEx(playerid,100.0);
UpdatePlayerHunger(playerid);
SetPlayerScore(playerid,pData[playerid][pLevel]);
new gun[128];
GetPVarString(playerid,"mysqlgun",gun,128);
DeletePVar(playerid,"mysqlgun");
if(strlen(gun))
{
new guns[6],ammos[6],datas[2][56];
explode(datas,gun,":");
printf("%s:%s",datas[0],datas[1]);
sscanf(datas[0],"p<|>a<i>[6]",guns);
sscanf(datas[1],"p<|>a<i>[6]",ammos);
for(new i;i<6;i++)
{
GivePlayerWeaponEx(playerid,guns[i],ammos[i]);
}
}
if(pTemp[playerid][pSpectating])
{
x = GetPVarFloat(playerid,"oldx");
y = GetPVarFloat(playerid,"oldy");
z = GetPVarFloat(playerid,"oldz");
SetPlayerPos(playerid,x,y,z);
SetPlayerInterior(playerid,GetPVarInt(playerid,"oldint"));
SetPlayerVirtualWorld(playerid,GetPVarInt(playerid,"oldworld"));
pTemp[playerid][pSpectating] = false;
return 1;
}
if(pData[playerid][pWanted])
{
new level = del(pData[playerid][pWanted],WANTED_TIME);
SetPlayerWantedLevel(playerid,level);
AddPlayerInWantedList(playerid);
}
SetPlayerDrunkLevel(playerid, pData[playerid][pDrunk]);
ApplyAnimation(playerid,"BD_FIRE","null",0.0,0,0,0,0,0);
ApplyAnimation(playerid,"BEACH","null",0.0,0,0,0,0,0);
ApplyAnimation(playerid,"benchpress","null",0.0,0,0,0,0,0);
ApplyAnimation(playerid,"BOMBER","null",0.0,0,0,0,0,0);
ApplyAnimation(playerid,"CAR","null",0.0,0,0,0,0,0);
ApplyAnimation(playerid,"COP_AMBIENT","null",0.0,0,0,0,0,0);
ApplyAnimation(playerid,"CRACK","null",0.0,0,0,0,0,0);
ApplyAnimation(playerid,"CARRY","null",0.0,0,0,0,0,0);
ApplyAnimation(playerid,"DANCING","null",0.0,0,0,0,0,0);
ApplyAnimation(playerid,"DEALER","null",0.0,0,0,0,0,0);
ApplyAnimation(playerid,"FAT","null",0.0,0,0,0,0,0);
ApplyAnimation(playerid,"FOOD","null",0.0,0,0,0,0,0);
ApplyAnimation(playerid,"GANGS","null",0.0,0,0,0,0,0);
ApplyAnimation(playerid,"GHANDS","null",0.0,0,0,0,0,0);
ApplyAnimation(playerid,"GRAFFITI","null",0.0,0,0,0,0,0);
ApplyAnimation(playerid,"GRAVEYARD","null",0.0,0,0,0,0,0);
ApplyAnimation(playerid,"MISC","null",0.0,0,0,0,0,0);
ApplyAnimation(playerid,"SNM","null",0.0,0,0,0,0,0);
ApplyAnimation(playerid,"VENDING","null",0.0,0,0,0,0,0);
ApplyAnimation(playerid,"OTB","null",0.0,0,0,0,0,0);
ApplyAnimation(playerid,"SMOKING","null",0.0,0,0,0,0,0);
ApplyAnimation(playerid,"SHOP","null",0.0,0,0,0,0,0);
ApplyAnimation(playerid,"RIOT","null",0.0,0,0,0,0,0);
return 1;
}
Последнее редактирование:
