PHP в L2F.

 
+
-
edit
 

Balancer

администратор
★★★★★
Вчера к Fortress прикрутил PHP в порядке эксперимента. Пока только в одностороннем порядке - доступ из PHP ко всей системе.

Кому-то интересно или забить нафиг? :)

Очевидное применение - это встроить в web-сервер, тогда можно полноценную систему разворачивать с полным доступом к данным сервера.

Менее очевидное - квесты и прочие скрипты на PHP. Но тут надо делать универсальную систему хуков.
… чтобы понять рекурсию, нужно сперва понять рекурсию …  
UA SoulKeeper #04.09.2007 11:16
+
-
edit
 

SoulKeeper

разработчик L2J Fortress

Rhino (javascript) рулит :) Тем более что в 1.6 оно встроеное и можно использовать как скриптовой движок.

Кто-то там маршруторизатор доделать обещал :D
Разыскивается десятка с два датапакеров :) http://la2.wrk.ru/forum/viewtopic.php?id=50882  
RU Balancer #04.09.2007 12:26  @SoulKeeper#04.09.2007 11:16
+
-
edit
 

Balancer

администратор
★★★★★
SoulKeeper> Кто-то там маршруторизатор доделать обещал :D

Маршрутизатор работает отлично (хотя профайлинг так и не делал ещё). Там всё плохо с синхронизацией перемещений у клиента и у сервера. Ибо малейшая несинхронность срывает башню у клиента при огибании острых углов.
… чтобы понять рекурсию, нужно сперва понять рекурсию …  
+
-
edit
 
UA SoulKeeper #05.09.2007 18:27
+
-
edit
 

SoulKeeper

разработчик L2J Fortress

Еше бы было кому писать на PHP\JavaScript :) Прикруть то на морозе можно :D
Разыскивается десятка с два датапакеров :) http://la2.wrk.ru/forum/viewtopic.php?id=50882  
RU Diаmond #06.09.2007 09:12  @Balancer#04.09.2007 12:26
+
-
edit
 

Diаmond

втянувшийся

SoulKeeper>> Кто-то там маршруторизатор доделать обещал :D
Balancer> Маршрутизатор работает отлично (хотя профайлинг так и не делал ещё). Там всё плохо с синхронизацией перемещений у клиента и у сервера. Ибо малейшая несинхронность срывает башню у клиента при огибании острых углов.
Либо делать большие паузы на поворотах либо маленькие но часто будет срезать углы. Эту проблему полностью не решить, если клиент подтормозил - угол все равно срежет, со стороны сервера не определишь. Можно только полностью запретить доверие клиентским (что я у себя и сделал, вырезал даже эту опцию) но и тут есть свои минусы...
Непонятно, при каком диффе посылать CharMoveToLocation и при каком ValidateLocation. Офф вроде бы при маленьких различиях посылает одно, при больших другое.

Кстати, поиск пути и геодата у меня используют только обычные массивы, без всяких списков :)

Php для вэбсервера это хорошо. Только памяти сожрет наверное...

SoulKeeper: javascript фтопку.
 
Это сообщение редактировалось 06.09.2007 в 09:20
+
-
edit
 

Balancer

администратор
★★★★★
На самом деле мысли по обхождению этой проблемы есть, но решения пока, в первом приближении, выходят громоздкими (подстройка скорости перемещения чара на сервере под клиента).

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

Пользоваться только координатами сервера - тоже не выйдет удачно, у нас слишком различаются алгоритмы перемещений по пересечённой местности, начинаются постоянные рассинхронизации, незаметно убирать которые нереально.

В общем, тут думать и думать ещё надо... :)
… чтобы понять рекурсию, нужно сперва понять рекурсию …  
UA SoulKeeper #06.09.2007 10:12  @Diаmond#06.09.2007 09:12
+
-
edit
 

SoulKeeper

разработчик L2J Fortress

Diаmond> SoulKeeper: javascript фтопку.

Ыыыыы... Странно, но Sun считает по другому раз всвтроили ее ПО УМОЛЧАНИЮ КАК СКРИПТОВОЙ ДВИЖОК (1.6). А я склонен доверять профессионалам :)
Разыскивается десятка с два датапакеров :) http://la2.wrk.ru/forum/viewtopic.php?id=50882  
RU Diаmond #06.09.2007 10:43  @SoulKeeper#06.09.2007 10:12
+
-
edit
 

Diаmond

втянувшийся

Diаmond>> SoulKeeper: javascript фтопку.
SoulKeeper> Ыыыыы... Странно, но Sun считает по другому раз всвтроили ее ПО УМОЛЧАНИЮ КАК СКРИПТОВОЙ ДВИЖОК (1.6). А я склонен доверять профессионалам :)
Например - Sun считает свою IDE лучшей, однако все считают по-другому :)
 
+
-
edit
 

Balancer

администратор
★★★★★
:)

Computer Language Benchmarks Game

Compare the performance of ~24 programming languages using ~12 simple benchmarks and ~1100 programs. Contribute faster more elegant programs.

// shootout.alioth.debian.org
 
… чтобы понять рекурсию, нужно сперва понять рекурсию …  
UA SoulKeeper #06.09.2007 11:34  @Diаmond#06.09.2007 10:43
+
-
edit
 

SoulKeeper

разработчик L2J Fortress

Diаmond>>> SoulKeeper: javascript фтопку.
SoulKeeper>> Ыыыыы... Странно, но Sun считает по другому раз всвтроили ее ПО УМОЛЧАНИЮ КАК СКРИПТОВОЙ ДВИЖОК (1.6). А я склонен доверять профессионалам :)
Diаmond> Например - Sun считает свою IDE лучшей, однако все считают по-другому :)

Я не сказал что оно лутшее, я сказал что оно имеет право быть :) А интеграция очень даже удобная, успел уже оценить. Хотя есть вещи и поудобнее.
Разыскивается десятка с два датапакеров :) http://la2.wrk.ru/forum/viewtopic.php?id=50882  
UA SoulKeeper #06.09.2007 11:36  @Balancer#06.09.2007 11:06
+
-
edit
 

SoulKeeper

разработчик L2J Fortress

Balancer> :)
Balancer> Computer Language Benchmarks Game


Не мне тебе объяснять что основная нагрузка приходится на 3-5% кода и что скриптовые движки не предназначены для написания таких вещей как AI :D

Хотя если оно будет прогружатся один раз, то это не существенно.
Разыскивается десятка с два датапакеров :) http://la2.wrk.ru/forum/viewtopic.php?id=50882  
RU Shadowrunner #06.09.2007 13:15
+
-
edit
 
Не, лучше чем чистая ява ничего не придумаешь :)
 
UA SoulKeeper #06.09.2007 13:34  @Shadowrunner#06.09.2007 13:15
+
-
edit
 

SoulKeeper

разработчик L2J Fortress

Shadowrunner> Не, лучше чем чистая ява ничего не придумаешь :)

Ты тут кардинально не прав.

Прелесть скрипта в том что оно не зависит от других компонентов. Кинул себе в папочку и оно при обращении к нему увидилось.
Разыскивается десятка с два датапакеров :) http://la2.wrk.ru/forum/viewtopic.php?id=50882  
RU Shadowrunner #06.09.2007 16:58
+
-
edit
 
А кто сказал что нельзя использовать яву в качестве скриптового языка?
 
UA SoulKeeper #06.09.2007 17:20
+
-
edit
 

SoulKeeper

разработчик L2J Fortress

Можно, не не удобно... Ява крайне чуствительна к таким "мелочам" как тип объекта или расположение импортов. А паковать все в Object - бред. А тот же js к этому более либерален :)

Да и с нормальной "onFly" компиляцией проблемы.Попробуй как-то при каждом обращении заново перекомпилировать файл и тыкать его в класспатх. Удобно?

А если объект старого класа засел в где-то в массиве и не обновился? В общем скрипты скриптами, код кодом :) Эти понятия нужно разделять.
Разыскивается десятка с два датапакеров :) http://la2.wrk.ru/forum/viewtopic.php?id=50882  
RU Diаmond #06.09.2007 18:08  @SoulKeeper#06.09.2007 17:20
+
-
edit
 

Diаmond

втянувшийся

SoulKeeper> Можно, не не удобно... Ява крайне чуствительна к таким "мелочам" как тип объекта или расположение импортов. А паковать все в Object - бред. А тот же js к этому более либерален :)
SoulKeeper> Да и с нормальной "onFly" компиляцией проблемы.Попробуй как-то при каждом обращении заново перекомпилировать файл и тыкать его в класспатх. Удобно?
SoulKeeper> А если объект старого класа засел в где-то в массиве и не обновился? В общем скрипты скриптами, код кодом :) Эти понятия нужно разделять.
У нас же в проекте успешно использована ява как скриптовый. Проблем пока не вижу, все очень удобно и всем нравится. Компиляция на лету успешно используется, обновил файл - перекомпилил, и все работает. Как иначе я по твоему арену отлаживал? :)
 
UA SoulKeeper #06.09.2007 18:30
+
-
edit
 

SoulKeeper

разработчик L2J Fortress

Ну это пока... Пока оно не используется "где попало". Хотя вот уже начали инстансы нпц пихать. Как результат - спавн не поменяет свой инстанс при перезагрузке. Вывод - не путать грешное с праведным :)
Разыскивается десятка с два датапакеров :) http://la2.wrk.ru/forum/viewtopic.php?id=50882  
RU Shadowrunner #06.09.2007 23:31
+
-
edit
 
Зато работает со скоростью нативной явы, что на порядки быстрее скриптов :)

И вообще, менять инстанс существующего обьекта некошерно с точки зрения ООП.
 
UA SoulKeeper #07.09.2007 11:50
+
-
edit
 

SoulKeeper

разработчик L2J Fortress

А какой смысл тогда в перезагрузке если эффект будет после пересоздания объекта?
Разыскивается десятка с два датапакеров :) http://la2.wrk.ru/forum/viewtopic.php?id=50882  
RU Shadowrunner #07.09.2007 12:22
+
-
edit
 
А смотря что перезагружать, например квесты, хендлеры итп не имеют инстансов.
 
UA SoulKeeper #07.09.2007 13:40
+
-
edit
 

SoulKeeper

разработчик L2J Fortress

Имеют, но заменяются... Не путай :)

А вот npc - тут лажа.
Разыскивается десятка с два датапакеров :) http://la2.wrk.ru/forum/viewtopic.php?id=50882  
RU Shadowrunner #07.09.2007 21:08
+
-
edit
 
Если это абстрактный класс то не имеют :) Либо это абстрактный же инстанс, который не хранит никакой ценной информации.
 

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