Question

Здарова народ, знаю, что много тем есть по этому поводу, много чего перепробовал... Но хотелось бы от вас услышать, есть у кого-то реально рабочий способ без костылей, или с минимальным их количеством? А то у меня какой бы способ не юзал, при спавне не появляется HUD и курсор мыши, а стрелок нет. Хотя спектр убираю

Share this post


Link to post

1 answer to this question

  • 0

Решил проблему. Во-первых, не появлялся худ - очевидно, SelectTextDraw активен, я об этом думал, но был уверен в своём коде 100% и только спустя 5 часов решил строчку немного изменить..

Во-вторых, нашёл более-менее рабочий вариант от ziggi (при наличии инклуда fixes):

stock SpawnPlayerEx(playerid, skin, Float:x, Float:y, Float:z, Float:rotation) // мне он понадобился только, когда скин при регистрации выбирать нужно было, а спектр я выключаю сам при загрузке аккаунта
{
    SetSpawnInfo(playerid, 0, skin, x, y, z, rotation, 0, 0, 0, 0, 0, 0);
    TogglePlayerSpectating(playerid, 0);
}

forward SetClassCameraPos(playerid); // это тоже можете переделать под себя
public SetClassCameraPos(playerid)
{
    SetPlayerCameraPos(playerid, ...);
    SetPlayerCameraLookAt(playerid, ...);
}

public OnPlayerRequestClass(playerid, classid)
{
    // если игрок нажал F4 и умер, то просто спавним его
    if (IsPlayerLogin(playerid)) {
        TogglePlayerSpectating(playerid, 1);
      
        SetSpawnInfo(playerid, 0, 0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0);
      	SpawnPlayer(playerid); // Это уже я дописал, чтобы игрок спавнился где нужно, без верхней строчки будет такой ужас

        TogglePlayerSpectating(playerid, 0);
        return false;
    }

    // скрыть кнопки
    TogglePlayerSpectating(playerid, 1);

    // установить позицию камеры (без задержки после TogglePlayerSpectating не работает)
    SetTimerEx("SetClassCameraPos", 200, 0, "i", playerid);

    #if defined Spawn_OnPlayerRequestClass
        return Spawn_OnPlayerRequestClass(playerid, classid);
    #else
        return 1;
    #endif
}
#if defined _ALS_OnPlayerRequestClass
    #undef OnPlayerRequestClass
#else
    #define _ALS_OnPlayerRequestClass
#endif
 
#define OnPlayerRequestClass Spawn_OnPlayerRequestClass
#if defined Spawn_OnPlayerRequestClass
    forward Spawn_OnPlayerRequestClass(playerid, classid);
#endif 

 

Share this post


Link to post
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Antoxa39
      By Antoxa39
      Дратути) Я хочу поделится с новичками одной штучкой,с помощью которой можно сделать спидометр.
       
      Объявляем глобальные переменные.
      new Text:speedtest; В public OnPlayerConnect добавляем следующее.
      speedtest = TextDrawCreate(506.599884, 394.742156, "500 KM/H");// создаем текстдрав при подключении игрока (он не будет отображатся) В конце мода создаем новую функцию.
      forward getsp(playerid); public getsp(playerid) {     new Float:cord[3];     GetVehicleVelocity(GetPlayerVehicleID(playerid),cord[0], cord[1], cord[2]);     new Float:veloc = floatsqroot(floatpower(floatabs(cord[0]), 2.0) + floatpower(floatabs(cord[1]), 2.0) + floatpower(floatabs(cord[2]), 2.0)) * 181.3;     new str[25];     format(str,sizeof(str),"KM/H %d",floatround(veloc));     TextDrawSetString(speedtest,str);     return 1; } Переходим в OnPlayerStateChange и добавляем следующее.
      if(newstate == PLAYER_STATE_DRIVER) {     TextDrawShowForPlayer(playerid,speedtest);     SetTimerEx("getsp", 1, true, "%f", playerid); } if(newstate == PLAYER_STATE_ONFOOT) {     TextDrawHideForPlayer(playerid,speedtest); } ВСЁ!) Мы создали спидометр. Удачи вам в скриптинге!)
    • R0m4ik
      By R0m4ik
      Всем привет, возникла маленькая проблема я хочу сделать команду /fakecmd(написать команду от другого игрока)
      У меня уже есть исходник данный команды осталось знать.
      На что надо заменить это?
      zcmd_OnPlayerCommandText(targetid, params);