наложение скила

 

Murkt

Pythoneer

ща, 5 минут напишу ориентировку. Выловишь баги и будет работать
[team Їжачки - сумні падлюки]  
NL iLyK Necrom@ncer #21.02.2006 20:26
+
-
edit
 

iLyK Necrom@ncer

новичок
такое чувство, что руки у меня не оттуда растут =))

написал на форте:
code text
  1. : bypass_buff-me
  2.         1243 1 player@ "SkillTable.getInstance().getInfo" { int.class int.class } jexec
  3.         player@
  4.         swap
  5.         player@ "useSkill" jexec
  6. ;


а оно мне:
code text
  1. Exception in word 'bypass_buff-me' defined in file 'datajbforthnpcbuff.f' whi
  2. le execute word '<noname>'
  3. Input:
  4. === cut ===
  5. >| bypass_buff-me |<
  6. === cut ===
  7. Return stack trace:
  8.     : bypass_buff-me   1243 1 <noname> "net.sf.l2j.gameserver.SkillTable.getInst
  9. ance().getInfo" <noname> <noname> <noname> <noname> <noname> <noname> <noname> <
  10. noname> "useSkill"  >| <noname> |<  <noname> ;
  11. java.lang.ClassCastException: java.lang.String
  12.         at ru.balancer.jbforth.words.Java$jexec.exec(Java.java:244)
  13.         at ru.balancer.jbforth.Word.exec(Word.java:67)
  14.         at ru.balancer.JBForth.do_word(JBForth.java:338)
  15.         at ru.balancer.JBForth.do_code(JBForth.java:203)
  16.         at ru.balancer.JBForth.do_code(JBForth.java:180)
  17.         at ru.balancer.JBForth.exec(JBForth.java:113)
  18.         at ru.balancer.JBForth.execp(JBForth.java:120)
  19.         at net.sf.l2j.gameserver.clientpackets.RequestBypassToServer.runImpl(Req
  20. uestBypassToServer.java:118)
  21.         at net.sf.l2j.gameserver.clientpackets.ClientBasePacket.run(ClientBasePa
  22. cket.java:55)
  23.         at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
  24.         at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
  25.         at java.util.concurrent.FutureTask.run(Unknown Source)
  26.         at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
  27. access$301(Unknown Source)
  28.         at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
  29. run(Unknown Source)
  30.         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source
  31. )
  32.         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
  33.         at java.lang.Thread.run(Unknown Source)
 
NL iLyK Necrom@ncer #21.02.2006 20:27
+
-
edit
 

iLyK Necrom@ncer

новичок
Murkt> ща, 5 минут напишу ориентировку. Выловишь баги и будет работать

жду ;)
 

Murkt

Pythoneer

надо только уточнить
code text
  1. : skill@ (skillId skillLevel -- L2Skill)
  2.   "net.sf.l2j.gameserver.SkillTable" class "getInstance" 0 jget "getInfo" { int.class int.class} jget
  3. ;


не забудь указать skill id, skill level :D

code text
  1. skill@ dup >r self@ swap "getTargetList" { L2Character } jget
  2. self@ swap r> "useSkill" 2 jexec


вроде должно работать.
[team Їжачки - сумні падлюки]  
NL iLyK Necrom@ncer #21.02.2006 20:40
+
-
edit
 

iLyK Necrom@ncer

новичок
Murkt> вроде должно работать.

спс.... проверю позже.... время пришло на работу идти =))
 
NL iLyK Necrom@ncer #26.02.2006 16:38
+
-
edit
 

iLyK Necrom@ncer

новичок
при вызове из форта
player@ "net.sf.l2j.gameserver.model.L2Skill" class "getTargetList" { L2Character.class } jget

выкидывает:
java.lang.IllegalArgumentException: object is not an instance of declaring class

вопрос: почему? объясните, плз ;)
 
+
-
edit
 

Balancer

администратор
★★★★★
Потому что getTargetList - это не статическая функция. Её нужно вызывать от конкретного объекта.
 
NL iLyK Necrom@ncer #26.02.2006 16:58
+
-
edit
 

iLyK Necrom@ncer

новичок
ок... это я понял! но тогда объясни еще плиз ;)
code text
  1. player@ 1243 1 skill@ dup  player@ swap "getTargetList" { L2Character.class } jget .s
  2.         "useSkill" 3 jexec

....skill@ описан Murkt'ом чуть выше....

выкидывает:

java.lang.ArrayIndexOutOfBoundsException: -1

пожалуйста, бал... пытаюсь-таки разбирться с фортом и с явой =)
 
NL iLyK Necrom@ncer #27.02.2006 05:26
+
-
edit
 

iLyK Necrom@ncer

новичок
последний вопрос - проехали ;)

вопрос теперь стоит другой:
есть код на форте
code text
  1. : skill@ ( skillId skillLevel -- L2Skill )
  2.         "net.sf.l2j.gameserver.SkillTable" class "getInstance" 0 jget "getInfo" { int.class int.class } jget
  3. ;
  4.  
  5. : bypass_buff-me
  6.         1 skill@ player@ swap player@ target@ "makeBuffForAdena" { L2PcInstance.class L2Skill.class } jexec
  7. ;
  8.  
  9. : npc-8230-dialog-append
  10.         '<a action="bypass -h jbf_buff-me 1243">Bless Shield</a>' .
  11. ;


он не хочет воспринимать переданные параметры. т.е. выдает java.lang.IllegalArgumentException ...
в чем могут быть проблемы? ;)
 
NL iLyK Necrom@ncer #01.03.2006 00:17
+
-
edit
 
+
-
edit
 

masterXL

разработчик OpenWorlds
lang.IllegalArgumentException судя по всему нет количества аргументов
Трудно быть богом... Не веришь? Спроси любого админа! можешь спросить у меня 175506816 ServerIP=193.41.172.19 Перенос доступен  
NL iLyK Necrom@ncer #25.03.2006 15:37
+
-
edit
 

iLyK Necrom@ncer

новичок
lang.IllegalArgumentException судя по всему нет количества аргументов
 

это конечно же понятно... но почему я из диалога не могу передать 2 значения на стек, а затем в яву? вот в чем вопрос..... :)
 
+
-
edit
 

Balancer

администратор
★★★★★
это конечно же понятно... но почему я из диалога не могу передать 2 значения на стек, а затем в яву? вот в чем вопрос..... :)
 


Можешь. Главное, чтобы пробелов не содержали (это уже ограничение клиента - параметры разделяются только параметрами). Все аргументы передаются на вход bypass-слова одной строкой. Порезать её на N операндов можно словом "N args". Т.е. "2 args" преобразует строку на два аргумента (если был только один, второй будет null).
 

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