<html><head><body>
Gatekeeper Roxxy:
<br>
Greetings. I am the Gatekeeper Roxxy, dispatched from the Ivory Tower. I am very happy to be working here in my homeland. Have you, by chance, been to Einhovant's School of Wizardry? Grand Sorcerer Gallint used to be my beloved teacher. So then, what can I do for you?
<br>
<a action="link rapunzel001t.htm">Ask about the Ivory Tower</a>
<br>
<a action="bypass -h teleport_request">Go to another village</a>
<br>
<a action="bypass -h talk_select">Quest</a>
</body></html>
class teleporter : default_npc
{
parameter:
string ShopName = "";
string fnHi = "thi.htm";
string fnYouAreChaotic = "tcm.htm";
property:
TelPosList Position = {
{1010001; -84169; 244693; -3729; 100000; 0} // 1010001 - "Talking Island Village"
};
handler:
EventHandler TALKED(talker)
{
if (talker.karma > 0)
{
ShowPage(talker, fnYouAreChaotic);
}
else
{
ShowPage(talker, fnHi);
}
}
EventHandler TELEPORT_REQUESTED(talker)
{
Teleport(talker, Position, ShopName, "", "", "");
}
}
Вроде немного напутанно из того что вы написали. По коду, когда байпас "teleport_request" отправлен на сервер, сервер телепортирует игрока в определенную позицию. Вот и все. Цена не показывается в примере HTML.Как выглядит структура и bypass динамично формирующегося html для телепорта?
Клиент делает bypass -h teleport_request
В ответ получает html с "Talking Island Village - 18 000 адены"
HTML
HTML:<html><head><body> Gatekeeper Roxxy: <br> Greetings. I am the Gatekeeper Roxxy, dispatched from the Ivory Tower. I am very happy to be working here in my homeland. Have you, by chance, been to Einhovant's School of Wizardry? Grand Sorcerer Gallint used to be my beloved teacher. So then, what can I do for you? <br> <a action="link rapunzel001t.htm">Ask about the Ivory Tower</a> <br> <a action="bypass -h teleport_request">Go to another village</a> <br> <a action="bypass -h talk_select">Quest</a> </body></html>
AI
Код:class teleporter : default_npc { parameter: string ShopName = ""; string fnHi = "thi.htm"; string fnYouAreChaotic = "tcm.htm"; property: TelPosList Position = { {1010001; -84169; 244693; -3729; 100000; 0} // 1010001 - "Talking Island Village" }; handler: EventHandler TALKED(talker) { if (talker.karma > 0) { ShowPage(talker, fnYouAreChaotic); } else { ShowPage(talker, fnHi); } } EventHandler TELEPORT_REQUESTED(talker) { Teleport(talker, Position, ShopName, "", "", ""); } }
Когда в игре нажимаем Go to another village то появляется список из мест куда можно телепортоваться. После нажатия на место происходит телепорт и списание адены.Вроде немного напутанно из того что вы написали. По коду, когда байпас "teleport_request" отправлен на сервер, сервер телепортирует игрока в определенную позицию. Вот и все. Цена не показывается в примере HTML.
Но если вопрос о том КАК это сделать, то тут достаточно все свободно. Например можно сделать так что-бы каждая опция для телепорта (в принципе каждый байпас) имел какую-то информацию о том как такой телепорт найти в списке на сервере. Это может быть как id телепорта, так и позиция оного в массиве/листе. Либо например имя телепорта, если уж так восхотелось.
Вот примеры байпасов (байпас ведь то представляет собой текстовую строку с информацией):
- teleport-id 111
- teleport-name talkingIsland
- teleport_request 0
- 0
В зависимости от того как вы хотите байпасы обрабатывать, можно вообще ставить толькo ту информацию которая нужна для логики телепорта. Например на моем сервере все байпасы кодированны, то есть вам отсылаеться HTML где все линки и кнопочки имеют байпас по типу "bypass -h xyz123", а на сервере это все дешифруеться в "teleport-type normal" или "teleport-id 1003" или даже "Quest MyLuckyDay teleport black-hole".
Стандартов как таковых нет. Нужно смотреть как вы обрабатываете байпасы, и какую вам нужно информацию обратно послать на сервере что-бы достичь определенной функциональности. Вот и все.
Прекрасно. Но тут ничего динамического может не быть. Просто показываеться другая страница с переченем телепортов.Когда в игре нажимаем Go to another village то появляется список из мест куда можно телепортоваться. После нажатия на место происходит телепорт и списание адены.
Мне нужно как в PTS а не самому клеить html. Я знаю как сделать свой html. Свой мне не нужен.Прекрасно. Но тут ничего динамического может не быть. Просто показываеться другая страница с переченем телепортов.
А если вам нужно самому генерить HTML то в чем то вопрос? Берем куски HTML и сшиваем их с нужной нам информацией.
То есть вопрос как та функция Teleport(talker, Position, ShopName, "", "", ""); работает?Мне нужно как в PTS а не самому клеить html. Я знаю как сделать свой html. Свой мне не нужен.
НетТо есть вопрос как та функция Teleport(talker, Position, ShopName, "", "", ""); работает?
В PTS сервере при нажатии игроком на "Go to another village" в Талкине а так же у любого другого телепорта выдается список куда ты можешь переместиться. Название и цена. Уже после нажатия на ссылку игрок телепортируется.То есть вопрос как та функция Teleport(talker, Position, ShopName, "", "", ""); работает?
class rapunzel : teleporter
{
property:
TelPosList Position = {
{1010004; -80749; 149834; -3043; 18000; 0} // 1010004 - "The Village of Gludin"
};
}
class clavier : teleporter
{
property:
TelPosList Position = {
{1010006; 15671; 142994; -2704; 8100; 2}; // 1010006 - "The Town of Dion"
{1010013; 83011; 53207; -1470; 11000; 4}; // 1010013 - "Oren Castle Town"
{1010020; 117088; 76931; -2670; 9400; 0}; // 1010020 - "Hunter Village"
{1010021; 47935; 186810; -3420; 6300; 0}; // 1010021 - "South Harbour (Entrance to Giran)"
{1010022; 105918; 109759; -3170; 5300; 3} // 1010022 - "Hardin’s Private Academy"
};
}
Можно почитать тут как вот такая HTML делаеться :
ну так это так же обычная, собираемая на лету на стороне сервера хтмлка с сгенеренными по данными из TelPosList байпассами.
Только в АИ нет обработчиков у телепортеров menu_selected. В магазинах есть. В других местах есть.ну так это так же обычная, собираемая на лету на стороне сервера хтмлка с сгенеренными по данными из TelPosList байпассами.
Все совершенно так же как и на яве делается.
Как в птс выглядят эти сгенеренные байпассы не помню к сожалению, но как вариант - это menu_selected с ask/reply в виде ид списка и ид позиции в нем.
Вопрос про PTSВы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрациясмотри 50 стороку.
ObjectId в bypass'ах не указываются. Так делают в java сборках.ну это тоже не из воздуха взято )
Ну почему же вынужденная? Можно ведь без этого всего teleport_goto##objectId# или npc_%objectId%_ в байпасах . Его еще и парсить надо.это была вынужденная мера =)
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?