Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 16
  1. #1
    Аватар для nikvlad
    Пользователь

    Статус
    Оффлайн
    Регистрация
    04.02.2016
    Сообщений
    94
    Репутация:
    2 ±

    По поводу смерти игрока.

    Всем привет, наткнулся на проблемку: когда я умираю первый раз, меня спавнит на рандомных координатах в скине CJ.
      Открыть/закрыть
    Появляются кнопки: <, >, SPAWN. Если я умираю второй раз (третий, четвертый и т.д.) меня спавнит там, где надо.
      Открыть/закрыть


    OnPlayerDeath:
      Открыть/закрыть
    Код:
    public OnPlayerDeath(playerid, killerid, reason)
    {
    	return 1;
    }

    OnPlayerSpawn:
      Открыть/закрыть
    Код:
    public OnPlayerSpawn(playerid)
    {
    	TogglePlayerSpectating(playerid,0);
        if(pData[playerid][pSkin] == 0)
    	{
    		if(pData[playerid][pGender] == 1)
    		{
    			SetPlayerSkin(playerid, MaleSkins[0]);
    		}
    		else
    		{
    		    SetPlayerSkin(playerid, FemaleSkins[0]);
    		}
    		SCM(playerid,COLOR_ORANGE,"Выберите внешность Вашего персонажа!");
    		TogglePlayerControllable(playerid,0);
    		SetPlayerVirtualWorld(playerid,playerid+1);
    		SetPlayerPos(playerid,1575.8920,-1235.2469,151.6970);
    		SetPlayerFacingAngle(playerid,129.8999);
    		SetPlayerCameraPos(playerid,1571.8352,-1239.6108,153.0927);
    		SetPlayerCameraLookAt(playerid,1576.4738,-1234.8547,151.6970);
    		SelectTextDraw(playerid, 0xFFFFFFFF);
    	    return 1;
    	}
    	if(GetPVarInt(playerid, "loggined") == 1)
    	{
    		for(new i = 0; i < 7; i++)
    		{
    			TextDrawHideForPlayer(playerid,Logo[i]),TextDrawShowForPlayer(playerid,Logo[i]);
    		}
    		SetPlayerScore(playerid, pData[playerid][pLevel]);
    		SetPlayerHealth(playerid, 100.0);
    		SetPlayerSkin(playerid,pData[playerid][pSkin]);
     		SetPlayerVirtualWorld(playerid,0);
       		TogglePlayerControllable(playerid,1);
    		if(pData[playerid][pLevel] <= 3)
    		{
    			new spawnls = random(4);
    			if(spawnls == 0)
    			{
    				SetPlayerPos(playerid,1762.3660,-1893.1317,13.5606);
    				SetPlayerFacingAngle(playerid,270.7868);
    			}
    			if(spawnls == 1)
    			{
    				SetPlayerPos(playerid,1154.5562,-1768.4633,16.5938);
    				SetPlayerFacingAngle(playerid,1.7675);
    			}
    			if(spawnls == 2)
    			{
    				SetPlayerPos(playerid,1765.0052,-1903.4672,13.5663);
    				SetPlayerFacingAngle(playerid,270.7868);
    			}
    			if(spawnls == 3)
    			{
    				SetPlayerPos(playerid,1147.7163,-1768.9059,16.5992);
    				SetPlayerFacingAngle(playerid,0.7231);
    			}
    		}
    		if(pData[playerid][pLevel] > 3 && pData[playerid][pLevel] <= 8)
    		{
    			SetPlayerPos(playerid,-1969.0582,159.8374,27.6875);
    			SetPlayerFacingAngle(playerid,177.5901);
    		}
    		if(pData[playerid][pLevel] >= 9)
    		{
    			SetPlayerPos(playerid,2846.0134,1291.2833,11.3906);
    			SetPlayerFacingAngle(playerid,92.5072);
    		}
    		SetCameraBehindPlayer(playerid);
    		SetPlayerColor(playerid,0xFFFFFF11);
    	}
    	return 1;
    }


    В чем может быть проблема?

  2. #2
    Аватар для Skull
    Пользователь

    Статус
    Оффлайн
    Регистрация
    18.07.2016
    Сообщений
    17
    Репутация:
    3 ±
    Если это происходит тогда, когда вы умираете в транспорте, то фиксается вот так:
    PHP код:
        stock __FixedSpawnPlayer(playerid)
        {
            if (
    GetPlayerVehicleID(playerid))
            {
                new 
    Float:x,Float:y,Float:z;
                
    GetVehiclePos(GetPlayerVehicleID(playerid), xyz),
                
    SetPlayerPos(playeridxyz);
            }
            return 
    SpawnPlayer(playerid);
        }
    #if defined _ALS_SpawnPlayer
        #undef SpawnPlayer
    #else
        #define _ALS_SpawnPlayer
    #endif
    #define SpawnPlayer __FixedSpawnPlayer 
    Последний раз редактировалось Skull; 26.07.2016 в 17:43.

  3. #3
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    Цитата Сообщение от Skull Посмотреть сообщение
    Если это происходит тогда, когда вы умираете в транспорте, то фиксается вот так:
    PHP код:
        stock __FixedSpawnPlayer(playerid)
        {
            if (
    GetPlayerVehicleID(playerid))
            {
                new 
    Float:x,Float:y,Float:z;
                
    GetVehiclePos(GetPlayerVehicleID(playerid), xyz),
                
    SetPlayerPos(playeridxyz);
            }
            return 
    SpawnPlayer(playerid);
        }
    #if defined _ALS_SpawnPlayer
        #undef SpawnPlayer
    #else
        #define _ALS_SpawnPlayer
    #endif
    #define SpawnPlayer __FixedSpawnPlayer 
    А не проще будет эту парочку GetPlayerVehicleID(playerid) засунуть в переменную и юзать её потом?
    _____________________________________
    Я так понял сервер RP жанра, тогда вот эта тема для Вас
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

  4. Пользователь сказал cпасибо:
    HarrWe (27.07.2016)
  5. #4
    Аватар для Skull
    Пользователь

    Статус
    Оффлайн
    Регистрация
    18.07.2016
    Сообщений
    17
    Репутация:
    3 ±
    Ну, имхо, лучше напрямую, потому что я использую ее всего-то дважды, использовал бы больше - объявил бы переменную.
    Ну, если очень принципиально, то пожалуйста:
    PHP код:
        stock __FixedSpawnPlayer(playerid)
        {
            new 
    vehicleid GetPlayerVehicleID(playerid);
            if (
    vehicleid)
            {
                new 
    Float:x,Float:y,Float:z;
                
    GetVehiclePos(vehicleidxyz),
                
    SetPlayerPos(playeridxyz);
            }
            return 
    SpawnPlayer(playerid);
        }
    #if defined _ALS_SpawnPlayer
        #undef SpawnPlayer
    #else
        #define _ALS_SpawnPlayer
    #endif
    #define SpawnPlayer __FixedSpawnPlayer 

  6. #5
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    Цитата Сообщение от Skull Посмотреть сообщение
    Ну, имхо, лучше напрямую, потому что я использую ее всего-то дважды, использовал бы больше - объявил бы переменную.
    Ну, если очень принципиально, то пожалуйста:]
    Это не принципиально, это быстродействие на выполнение команды...
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

  7. #6
    Аватар для Skull
    Пользователь

    Статус
    Оффлайн
    Регистрация
    18.07.2016
    Сообщений
    17
    Репутация:
    3 ±
    Надеюсь, тебе помогут выигранные тобой микромикромикросекунды :)

  8. #7
    Аватар для nikvlad
    Пользователь

    Статус
    Оффлайн
    Регистрация
    04.02.2016
    Сообщений
    94
    Репутация:
    2 ±
    Цитата Сообщение от Skull Посмотреть сообщение
    Если это происходит тогда, когда вы умираете в транспорте, то фиксается вот так:
    PHP код:
        stock __FixedSpawnPlayer(playerid)
        {
            if (
    GetPlayerVehicleID(playerid))
            {
                new 
    Float:x,Float:y,Float:z;
                
    GetVehiclePos(GetPlayerVehicleID(playerid), xyz),
                
    SetPlayerPos(playeridxyz);
            }
            return 
    SpawnPlayer(playerid);
        }
    #if defined _ALS_SpawnPlayer
        #undef SpawnPlayer
    #else
        #define _ALS_SpawnPlayer
    #endif
    #define SpawnPlayer __FixedSpawnPlayer 
    Нет, это происходит при любой первой смерти игрока

  9. #8
    Аватар для nikvlad
    Пользователь

    Статус
    Оффлайн
    Регистрация
    04.02.2016
    Сообщений
    94
    Репутация:
    2 ±
    Первый способ Deimos'a сработал, НО я на пару милисекунд все-таки появлялся в скине CJ. Второй способ не работал вообще, спавнюсь в скине CJ, падаю с нулевых координат. Как фиксить?

  10. #9
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    Цитата Сообщение от nikvlad Посмотреть сообщение
    НО я на пару милисекунд все-таки появлялся в скине CJ.
    Ну так не на всю игру уже)) хоть бы и этим 2 секундам спасибо сказал
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

  11. #10
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    AddPlayerClass имеется? Если нет, то попробуй добавить
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •