PDA

Просмотр полной версии : [Вопрос] Автоматический спавн!



HarrWe
13.06.2016, 13:25
Hello, help plz, не работает автоматический спавн, ладно меньше слов больше кода:
Паблик спавна

public OnPlayerSpawn(playerid)
{
SetPlayerSpawn(playerid);
return true;
}
Сток спавна

stock SetPlayerSpawn(playerid)
{
SetPlayerSkin(playerid, Player[playerid][pSkin]);
SetPlayerScore(playerid, Player[playerid][pLevel]);
ClistColor(playerid);
if(Player[playerid][pLevel] > 0)
{
SetPlayerPos(playerid, 1153.9601,-1768.5813,16.5938);
SetPlayerFacingAngle(playerid, 2.4830);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
SetCameraBehindPlayer(playerid);
}
if(Player[playerid][pMember] > 0)
{
SetPlayerSkin(playerid, Player[playerid][pModel]);
switch(Player[playerid][pMember])
{
case 1://LSPD
{
SetPlayerPos(playerid, 1153.9601,-1768.5813,16.5938);
SetPlayerVirtualWorld(playerid, 0);
SetCameraBehindPlayer(playerid);
}
}
}
for(new i = 0; i < MAX_PLAYERS; i++) ShowPlayerNameTagForPlayer(playerid, i, true);
KillTimer(TimerAuto[playerid]);
}
Паблик логина

ppublic FoundInTable(i)
{
new rows,rows2,string[200];
cache_get_data(rows, rows2);
if(rows)
{
cache_get_field_content(0, "Pass", Player[i][pPass], 1, 30);
cache_get_field_content(0, "Mail", Player[i][pMail], 1, 60);
cache_get_field_content(0, "Regip", Player[i][pRegip], 1, 16);
cache_get_field_content(0, "Datareg", Player[i][pDatareg], 1, 15);
Player[i][pLevel] = cache_get_field_content_int(0, "Level");
Player[i][pSkin] = cache_get_field_content_int(0, "Skin");
Player[i][pSex] = cache_get_field_content_int(0, "Sex");
Player[i][pMoney] = cache_get_field_content_int(0, "Money");
Player[i][pGame] = cache_get_field_content_int(0, "Game");
Player[i][pAdmin] = cache_get_field_content_int(0, "Admin");
Player[i][pMember] = cache_get_field_content_int(0, "Member");
Player[i][pRank] = cache_get_field_content_int(0, "Rank");
Player[i][pModel] = cache_get_field_content_int(0, "Model");
Login[i] = true;
SpawnPlayer(i);
}
else
{
switch(Passsword[i])
{
case 0:
{
f("{FFFFFF}Вы ввели неверный пароль\nУ вас осталось {009CFF}3{FFFFFF} попытки\n\nВведи пароль повторно:", GN(i));
SPD(i, 0, DSP, "{009CFF}Авторизация", string, "Далее", "Выход");
Passsword[i] = 1;
}
case 1:
{
f("{FFFFFF}Вы ввели неверный пароль\nУ вас осталось {009CFF}2{FFFFFF} попытки\n\nВведи пароль повторно:", GN(i));
SPD(i, 0, DSP, "{009CFF}Авторизация", string, "Далее", "Выход");
Passsword[i] = 2;
}
case 2:
{
f("{FFFFFF}Вы ввели неверный пароль\nУ вас осталось {009CFF}1{FFFFFF} попытки\n\nВведи пароль повторно:", GN(i));
SPD(i, 0, DSP, "{009CFF}Авторизация", string, "Далее", "Выход");
Passsword[i] = 3;
}
case 3:
{
f("{FFFFFF}У вас не осталось попыток\nЧто бы выйти пропишите {009CFF}/q", GN(i));
SPD(i, 0, DSM, "{009CFF}Авторизация", string, "Выход", "");
fkick(i);
}
}
}
return true;
}
При авторизации он то работает то нет, иногда сам спавнит иногда приходится нажимаить, а при регестрации всё прекрасно работает!

vovandolg
13.06.2016, 16:34
if(Player[playerid][pLevel] > 0) // уверен все выше нуля)))0)
{
SetPlayerPos(playerid, 1153.9601,-1768.5813,16.5938); //заспавнюсь разочек
SetPlayerFacingAngle(playerid, 2.4830);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
SetCameraBehindPlayer(playerid);
}
if(Player[playerid][pMember] > 0) //допустим кто то стал на тёмную сторону и прошёл эту проверку))
{
SetPlayerSkin(playerid, Player[playerid][pModel]);
switch(Player[playerid][pMember])
{
case 1://LSPD
{
SetPlayerPos(playerid, 1153.9601,-1768.5813,16.5938); //ах нет, ещё разочек пожалуй, что? персодрочь? =D
SetPlayerVirtualWorld(playerid, 0);
SetCameraBehindPlayer(playerid);
}
}
}

HarrWe
13.06.2016, 19:16
if(Player[playerid][pLevel] > 0) // уверен все выше нуля)))0)
{
SetPlayerPos(playerid, 1153.9601,-1768.5813,16.5938); //заспавнюсь разочек
SetPlayerFacingAngle(playerid, 2.4830);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
SetCameraBehindPlayer(playerid);
}
if(Player[playerid][pMember] > 0) //допустим кто то стал на тёмную сторону и прошёл эту проверку))
{
SetPlayerSkin(playerid, Player[playerid][pModel]);
switch(Player[playerid][pMember])
{
case 1://LSPD
{
SetPlayerPos(playerid, 1153.9601,-1768.5813,16.5938); //ах нет, ещё разочек пожалуй, что? персодрочь? =D
SetPlayerVirtualWorld(playerid, 0);
SetCameraBehindPlayer(playerid);
}
}
}

По проверке на LVL это что бы до регистрации (логина) не могли заспавниться
Удалил пока проверку на фракцию, но всё равно, при 1 коннекте спавнит, а при перезаходе с помощью собейта (Shift + 0) приходится сначало на стрелку нажимать что бы сиджеем не стать а потом Spawn

Роуди.
13.06.2016, 23:21
А где, собственно, сама функция SpawnPlayer?

HarrWe
14.06.2016, 08:55
А где, собственно, сама функция SpawnPlayer?

В OnPlayerSpawn, невидно что ли?

Роуди.
14.06.2016, 15:13
В OnPlayerSpawn, невидно что ли?

Сначала нужно заcпавнить, затем указать позицию. (SetPlayerPos (https://wiki.sa-mp.com/wiki/SetPlayerPos_RU) & SpawnPlayer (https://wiki.sa-mp.com/wiki/SpawnPlayer_RU))

А Вы только указываете позицию, но не спавните.

HarrWe
14.06.2016, 18:15
Close решил

Роуди.
14.06.2016, 19:22
Close решил

Решением может поделитесь, если не жалко? :)

HarrWe
14.06.2016, 19:39
Решением может поделитесь, если не жалко? :)
TogglePlayerSpectating) Полный код скинуть?

vovandolg
14.06.2016, 21:24
TogglePlayerSpectating) Полный код скинуть?

Вангую при коннекте вошёл в слежку и не вышел)) тогда персонаж в яичко сворачивается и летит бесконечно:rofl:

HarrWe
15.06.2016, 13:59
Вангую при коннекте вошёл в слежку и не вышел)) тогда персонаж в яичко сворачивается и летит бесконечно:rofl:
До этого я не юзал слежку.