Вопросы

Как сделать так что бы игрок после смерти появлялся в определенной точке? Помогите пожалуйста)

 

Поделиться сообщением


Ссылка на сообщение

4 ответа на этот вопрос

  • 0

OnPlayerDeath: 

SetPVarInt(playerid, "death", 1); 

В OnPlayerSpawn: 

if(GetPVarInt(playerid, "death")) 
{
	нужные действия
	DeletePVar(playerid, "death"); 
}

Ну или вместо пваров использовать переменную, как угодно. 

Поделиться сообщением


Ссылка на сообщение
  • 0

В OnPlayerSpawn
 

Спойлер

if(PlayerInfo[playerid][Проверка] > 0)
{

SetPlayerPos(playerid,x,z,y);
}

 

Поделиться сообщением


Ссылка на сообщение
  • 0

При смерте OnPlayerDeat создавай пвар и давай значение 1 
а при спавне OnPlayerSpawn проверяй если пвар равен 1 то спавнь где хочешь и потом либо обнуляй либо удаляй пвар

Поделиться сообщением


Ссылка на сообщение
  • 0

Мое первое сообщение O.o

Если уж делать нуля без всяких лишних перебросов игрока по координатам, персонаж игрока должен знать где появиться еще до 

OnPlayerSpawn

В этом обратном вызове лучше обработать выдачу оружия (если надо выдать больше 3 единиц)

Камеру, анимации текстдравы и так далее.

По уму желательно вызывать SetSpawnInfo в вызовах OnPlayerDeath и OnPlayerRequestSpawn и тогда игрок появися на нужных координатах без всяких перебросов.

Если делать присваивание координат в OnPlayerSpawn игрок сначала появится на спавн координатах (в ранее примененных AddPlayerClass или SetSpawnInfo) и лишь потом в нужных.

 

 

Для ленивцев следующая конструкция

public OnPlayerRequestSpawn(playerid){
   if(/*проверка на допуск к появлению*/){
       return false;
   }
   OnPlayerSetupSpawn(playerid);
   return true;
}

public OnPlayerDeath(playerid, killerid, reason){
    OnPlayerSetupSpawn(playerid);
    return true;
}

public OnPlayerSpawn(playerid){
   // сделать далее действия
    return true;
}

stock OnPlayerSetupSpawn(playerid){
   new team = GetPlayerTeam(playerid);
   new skin = GetPlayerSkin(playerid);
   new Float:s[4]; // это будут ваши спавн координаты
   new wa[3][2];// = {{4,1}, {25, 10}, {30, 50}}; // оружие 
    SetSpawnInfo(playerid, team, skin, s[0], s[1], s[2], s[3], wa[0][0], wa[0][1], wa[1][0], wa[1][1], wa[2][0], wa[2][1]);
}

 

Так же используя SetSpawnInfo можно и вовсе отказаться от кучи AddPlayerClass в GameModeInit оставив всего 3 для определения кнопки которую игрок нажимает ^_^

 

Заметка от DEST , создано

На будущее, для читабельности, берите код в тег "Код" и скрывайте спойлером.
Как это сделать? (кликабельно)

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Redmondd
      От Redmondd
      При запуске сервера в консоли пишет: Started server on port: 7777, with maxplayers: 500 lanmode is OFF.
      И когда захожу на сервер пишет server didnt respond
       
      ---------- Loaded log file: "server_log.txt". ---------- SA-MP Dedicated Server ---------------------- v0.3.7-R2, (C)2005-2015 SA-MP Team filterscripts = ""  (string) Server Plugins --------------  Loading plugin: mysql   > MySQL plugin R7-2 successfully loaded.   Loaded.  Loading plugin: sscanf  ===============================       sscanf plugin loaded.          Version:  2.8.1    (c) 2012 Alex "Y_Less" Cole  ===============================   Loaded.  Loading plugin: dc_cmd   Daniel's CMD plugin v2.8     (c) 2014 Daniel_Cortez         www.pro-pawn.ru   Loaded.  Loading plugin: streamer *** Streamer Plugin v2.7.9 by Incognito loaded ***   Loaded.  Loaded 4 plugins. Started server on port: 7777, with maxplayers: 500 lanmode is OFF. Filterscripts ---------------   Loaded 0 filterscripts. Подключение к базе данных MYSQL успешно ---------------------------------- --------Redmond RP 01-------- ---------------------------------- Number of vehicle models: 5 Склады загружены успешно Дома (15 шт) загружены успешно