Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Пожертвовать Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Int To Handle
serm Дата: Четверг, 10.07.2014, 17:55:11 | Сообщение # 1
Сообщений: 137
Репутация: 7 [ +/- ]
Здравствуйте
Подскажите как можно конвертировать обычное int число в handle ?


Сообщение отредактировал serm - Четверг, 10.07.2014, 18:18:06
 
_wS_ Дата: Четверг, 10.07.2014, 18:22:06 | Сообщение # 2
new x = 5;
new Handle:h = Handle:x;
 
serm Дата: Четверг, 10.07.2014, 20:17:18 | Сообщение # 3
Сообщений: 137
Репутация: 7 [ +/- ]
Цитата _wS_ ()
new x = 5;
new Handle:h = Handle:x;

Спасибо , но мне нужно немного другое

Я использую вот эту функцию для просмотра анимаций клиента
Код

public Action:OnPlayerAnimEvent(const String:te_name[], const Players[], numClients, Float:delay)
{
      new client    = TE_ReadNum("m_hPlayer");
      new event    = TE_ReadNum("m_iEvent");
      new data    = TE_ReadNum("m_nData");
        
      PrintToChatAll("AnimEvent: Player: %i, Event: %i, Data: %i", client, event, data);
}

Для установки анимации мне нужно знать m_hPlayer клиента которому хочу ее установить .

Код

      TE_Start("PlayerAnimEvent");

      TE_WriteNum("m_hPlayer", entityHandle); // entityHandle - Handle клиента   
      TE_WriteNum("m_iEvent", 4);
      TE_WriteNum("m_nData", entityHandle);
        
      TE_SendToAll();


Так вот как можно узнать этот Handle имея его client id ?

Добавлено (10.07.2014, 20:17:18)
---------------------------------------------
Выручайте люди grust



Сообщение отредактировал serm - Четверг, 10.07.2014, 20:09:13
 
_wS_ Дата: Пятница, 11.07.2014, 16:32:26 | Сообщение # 4
В этом случае не нужно конвертировать client в Handle, просто укажи int (client).
 
serm Дата: Пятница, 11.07.2014, 16:44:57 | Сообщение # 5
Сообщений: 137
Репутация: 7 [ +/- ]
Цитата _wS_ ()
В этом случае не нужно конвертировать client в Handle, просто укажи int (client).

Смотри в чем проблема мне нужно знать именно m_hPlayer ! Проверяя на сервере мне возвращает из уже конвертированную (Гдето в sm или движке игры) переменную , мне нужно было узнать id игрока кому принадлежит эта переменная .
Я уже перепробовал варианты
Код

new entityHandle = EntIndexToEntRef(entityIndex) & 0x7FFF;   
new entityIndex = EntRefToEntIndex(entityHandle | ~0x7FFF);   

Указанные на форума AM и скопированные на форуме hl .
У меня сработала только одна функция , но я думаю что это просто совпадение т.к. стоит игроку пере зайти и ничего работать не будет .

Я пробовал узнать этот самый hPlayer через hOwner оружия в руках клиента , но это не удалось .

Я думаю что всеравно есть скрипт или функция которая поможет узнать эту переменную (hPlayer) .
Я уже думал хитростью вытащить , принудительно создавать event который выдает переменную игрока , но это тоже увенчалось провалом .

Вот я и обратился к вам у вас опыта больше может вы чем то поможете .
 
_wS_ Дата: Пятница, 11.07.2014, 17:27:58 | Сообщение # 6
Я когда с EventScripts переходил на SM, тоже где-то спрашивал на форуме AM как конвертировать индекс игрока в Handle, но сказали что в этом нет необходимости, можно просто использовать индекс игрока и я больше об этом и не думал. Попробуй еще спросить на форуме AM, дай им такую ссылку http://www.eventscripts.com/pages/Es_createplayerlist и скажи что-то вроде:

"как мне получить это:"

Код
"handle"  "85504001"

Я так понял оно ж тебе и нужно. Позже попробую порыть еще на эту тему.

Цитата serm ()
У меня сработала только одна функция , но я думаю что это просто совпадение т.к. стоит игроку пере зайти и ничего работать не будет.

Какая?
 
serm Дата: Пятница, 11.07.2014, 18:01:04 | Сообщение # 7
Сообщений: 137
Репутация: 7 [ +/- ]
Цитата _wS_ ()
Я когда с EventScripts переходил на SM, тоже где-то спрашивал на форуме AM как конвертировать индекс игрока в Handle, но сказали что в этом нет необходимости, можно просто использовать индекс игрока и я больше об этом и не думал. Попробуй еще спросить на форуме AM, дай им такую ссылку http://www.eventscripts.com/pages/Es_createplayerlist и скажи что-то вроде:

"как мне получить это:"

Код
"handle"  "85504001"

Я так понял оно ж тебе и нужно. Позже попробую порыть еще на эту тему.

Цитата serm писал(а):
У меня сработала только одна функция , но я думаю что это просто совпадение т.к. стоит игроку пере зайти и ничего работать не будет.

Какая?


Спасибо Ws за ответ , на форуме AM ничего толкового не ответили , да и нужно в совершенстве знать анг. язык иначе они не понимаю что именно нужно мне .
Я использовал функцию MakeCompatEntRef(Handle)

Она возвращала id игрока на 1 меньше (Мой id 2 она возвращала 1) , но когда игрок перезаходил она ничего не возвращала !

Я решил проблему более длинным путем и наверное более не разумным но результат я получил . Спасибо за ответ , ты единственный кто хотябы попробовал помочь из трех больших форумов .

Удачи klas
 
  • Страница 1 из 1
  • 1
Поиск: