А здорово бы сделать команду для игроков аналог on-npc-XXX-die!...

 
+
-
edit
 

chukcha

разработчик l2j-сервера
Дайте помечтать... :)
Яесли кто знает, то намекните как.


"Вот бы жизнь тогда настала-
Знай гуляй и отдыхай.
Тут и мама б перестала
Говорить, что я лентяй!"
Russian Mafia TEAM (RMT) Lineage 2 C3 Server (L2J Fortress) http://www.la2c3.ru НИЧТО НЕ СЛИШКОМ.  

Styx

разработчик l2j-сервера
Рискну предположить:

code text
  1.   if(this instanceof L2PcInstance)
  2.   {
  3.       String word = "on-player-"+this.getName()+"-die";
  4.       if(JBForth.word_exists(word))
  5.       {
  6.         JBForth jbf = new JBForth(this);
  7.         jbf.st.push(killer);
  8.         jbf.st.push(this);
  9.         jbf.execp("to self to killer "+word);
  10.       }
  11.  
  12.       if(Config.DEBUG)
  13.         System.out.println("Handler for player die - "+getName();
  14.   }

вставить в функцию doDie() в model/L2Character.java
...and what better way to say goodbye than to kill everyone in sight? © Syntari  
+
-
edit
 

chukcha

разработчик l2j-сервера
Я в яве, как свинья в апельсинах. Но с удовольствием попробую. Сипасибо. Доложусь об исполнении.
Russian Mafia TEAM (RMT) Lineage 2 C3 Server (L2J Fortress) http://www.la2c3.ru НИЧТО НЕ СЛИШКОМ.  
AD Реклама Google — средство выживания форумов :)
+
-
edit
 

Balancer

администратор
★★★★★
Styx> Рискну предположить:

Нет, так нельзя :)

1. От прямых вызовов слов по именам в критических мастах мы отказываемся, так как это снижает скорость.

2. Механизм уже реализован.

Пример из той же тюрьмы:
code forth
  1. : npc-die+!  ( 'word npc_id# -- )
  2.  Append word to execute on kill npc with npc_id
  3.  
  4.     >r
  5.     npc-die-map@ r@ m@      ( 'w list R: id )
  6.  
  7.     ?dup null? if
  8.         new-list
  9.     then
  10.     tuck
  11.     list+
  12.     npc-die-map@ r> m!
  13. ;
  14.  
  15. ' jail-check 653 npc-die+!
  16. ' jail-check 172 npc-die+!


Так вот, нынешний движок одинаково вызывает нужные слова, заданные адресом, как по npc_id, так и по object_id. Т.е. нужно будет что-то вроде
code forth
  1. ' die-check  player@ "ObjectId" p@  npc-die+!


Слово npc-die+! нужно будет из тюрьмы в основные библиотеки перекинуть. Ну и в Wiki это дело описать :)
 

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru