Вопрос начинающего =)))

 
UA MorbidAngel #20.12.2006 15:08
+
-
edit
 

MorbidAngel

разработчик L2J Fortress
★★★
Пример из вики: "Призыв клана лидером"
Сама пользовательская команда .km-all-to-me

[code forth] :user_km-all-to-me
clan-leader? 0 < if "You are not clan leader" show exit then
km_change adena_pay drop \ проверка и выплаты денег
loc@ coords>s \ получаем текущие координаты лидера и преобразуем их в строку
player@ "ClanId" p@ 2 >list \ получаем ID клана и все упаковываем в список
"km_clan_teleport" p-do-players \ выполняем команду для всех игроков онлайн
;[/code forth]

и реализация у всего онлайна
[code forth]
: km_clan_teleport
list> drop \ раскроем список и уберем лишнее
...
;[/code forth]

Внимание вопрос. каким образом вершина стека у КМ помещается на вершину стека всех пользователей?

Мои соображения:
Стек общий для всех и инициая вызова слова "km_clan_teleport" у всех пользователей блокирует общий поток обработки скриптов, но тогда каким образом "list>" в ": km_clan_teleport" не изменяет состояние общего стека.
 
UA MorbidAngel #22.12.2006 10:14
+
-
edit
 

MorbidAngel

разработчик L2J Fortress
★★★
Все......сам разобрался....

нарал в датапаке упоменание о том, что
[code forth]
:word (n1 n2 nn --) \то, что в скобках просто комментарий..
[/code forth]

пожалуста поправьте если я не прав!
 
UA MorbidAngel #22.12.2006 12:03
+
-
edit
 

MorbidAngel

разработчик L2J Fortress
★★★
И еше вопрос =)...Есть ли сохраняемые глобальные переменные типа suvalue ??
 
+
-
edit
 

Balancer

администратор
★★★★★
MorbidAngel> И еше вопрос =)...Есть ли сохраняемые глобальные переменные типа suvalue ??

Как можно догадаться из общей идеологии наших названий, это svalue :)

Определено в data/jbforth/l2j/server-vars.f
 
UA MorbidAngel #26.12.2006 10:00
+
-
edit
 

MorbidAngel

разработчик L2J Fortress
★★★
В общем решил я написати ивент....Но сразу столкнулся со сложностями с которыми сам справиться несмог =(. В общем система такая: Игроки должны регистрироваться для участия в нем (как в 7 печатей), и тут я подумал.....а как-же хранить список этих игроков. Списки типа svalue отвалились так как 255 символов - это мало....
создавать табличку в БД - глупо (хотя за недостатком вариантов - сойдет). Есть так-же еще и файлы, но будет ли это правильно? Однако кроме ф-ии fileread (file-name -- data | null) я ненашел ничего в вики....логично что есть ф-я типа filewrite (file-name data) (или наоборот), но хотелось бы поподробнее о ф-ях работы с файлими. Следующая проблема...что хранить в качестве идентификатора игрока?! попытка добавить в список player@ при вела к эксепшины во время сохранения svalue. второй уникальный идентификатор - obj_id, но попытки получить его из player@ "obj_id" p@ увенчались неудачей(пробовал по разному ObjId, ObjectId)....а возможноли это вообще??

В общем надеюсь на вашу помощ и лояльное отношение =))
 
UA MorbidAngel #26.12.2006 12:38
+
-
edit
 

MorbidAngel

разработчик L2J Fortress
★★★
MorbidAngel> obj_id, но попытки получить его из player@ "obj_id" p@ увенчались неудачей(пробовал по разному ObjId, ObjectId)....а возможноли это вообще??

По этому вопросу нашел =)) (всетаки именно "ObjectId" я не пробовал).
 
UA MorbidAngel #26.12.2006 12:51
+
-
edit
 

MorbidAngel

разработчик L2J Fortress
★★★
MorbidAngel> Есть так-же еще и файлы, но будет ли это правильно? Однако кроме ф-ии fileread (file-name -- data | null) я ненашел ничего в вики....логично что есть ф-я типа filewrite (file-name data) (или наоборот), но хотелось бы поподробнее о ф-ях работы с файлими.

Нашел слово file-append (data file-name) оно по логике вещей добавляет в фаил данные, как тогда создать, перезаписать.....
 
UA MorbidAngel #27.12.2006 11:05
+
-
edit
 

MorbidAngel

разработчик L2J Fortress
★★★
Спасибо за внимание......с файлами разобрался сам...
Кому интересно (или незнает):
[code forth]
"1231.txt" "java.io.File" 1 jnew "delete" 0 jexec
[/code forth]

на жаве это выглядит так (если не ошибаюсь..=-)):
[code java]
java.io.File("1231.txt").delete()
[/code java]

З.Ы С удовольствольствием выслушаю советы гуру в вопросе хранения данных ивентов.. (чтоб были устойчивы к рестартам)
 
UA MorbidAngel #28.12.2006 16:08
+
-
edit
 

MorbidAngel

разработчик L2J Fortress
★★★
Хороший монолог получаится.....но всеже спрошу..
['] word xxx npc-die+! срабатывает при смерти неписи ид xxx, а как сделать чтоб срабатывало определенное слово при смерти любого моба?
 
+
-
edit
 

Balancer

администратор
★★★★★
MorbidAngel> ['] word xxx npc-die+! срабатывает при смерти неписи ид xxx, а как сделать чтоб срабатывало определенное слово при смерти любого моба?

xxx - это не только npc_id, но и, по определению, любой mob_id. А также, там может быть object_id игрока или моба.

Сделать слово, которое будет вызываться при смерти абсолютно любого моба можно, но... такое слово быстро повесит любой сервер с приличным онлайном, ибо вызываться будет ОЧЕНЬ часто :)
 
+
-
edit
 
Я бы не сказал - код вызываемый при смерти моба весьма немаленький, и не вешается :)
Пытаясь понять рекурсию, следи за тем, чтобы она не поняла тебя первой...  
UA MorbidAngel #07.01.2007 02:01
+
-
edit
 

MorbidAngel

разработчик L2J Fortress
★★★
MorbidAngel>> ['] word xxx npc-die+! срабатывает при смерти неписи ид xxx, а как сделать чтоб срабатывало определенное слово при смерти любого моба?
Balancer> xxx - это не только npc_id, но и, по определению, любой mob_id. А также, там может быть object_id игрока или моба.
Balancer> Сделать слово, которое будет вызываться при смерти абсолютно любого моба можно, но... такое слово быстро повесит любой сервер с приличным онлайном, ибо вызываться будет ОЧЕНЬ часто :)
Уже написал, использовал в L2Day..... А по другому никак =))...да там и получилоси всегото 6000 слов =))
 
+
-
edit
 

Balancer

администратор
★★★★★
Abaddon> Я бы не сказал - код вызываемый при смерти моба весьма немаленький, и не вешается :)

Если писать Форт-код правильно, то тормоза будут небольшие (напомню, что по сути, это выполнение серии методов для объектов, положенных в массив). Но реально качество большинства стороннего Форт-кода у нас в плане оптимизации не велико :)
 

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