Как выглядит bypass teleport go to village?

space2pacman

Прославленный
Местный
Сообщения
384
Розыгрыши
0
Репутация
252
Реакции
279
Баллы
1 483
Как выглядит структура и 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, "", "", "");
    }
}
 

Как выглядит структура и 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, "", "", "");
    }
}
Вроде немного напутанно из того что вы написали. По коду, когда байпас "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".

Стандартов как таковых нет. Нужно смотреть как вы обрабатываете байпасы, и какую вам нужно информацию обратно послать на сервере что-бы достичь определенной функциональности. Вот и все.
 
Вроде немного напутанно из того что вы написали. По коду, когда байпас "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 то появляется список из мест куда можно телепортоваться. После нажатия на место происходит телепорт и списание адены.

В моем примере нет этого промежуточного звена(html) потому то она формируется динамически.

Мне нужно так как сделано в PTS.
 
Когда в игре нажимаем Go to another village то появляется список из мест куда можно телепортоваться. После нажатия на место происходит телепорт и списание адены.
Прекрасно. Но тут ничего динамического может не быть. Просто показываеться другая страница с переченем телепортов.

А если вам нужно самому генерить HTML то в чем то вопрос? Берем куски HTML и сшиваем их с нужной нам информацией.
Возможно будет вопрос откуда телепорты берутся, как и их цена. Но динамически создать HTML с определенными значениями как и байпасами это уже будет зависить от того как ваш сервер работает.
 
Прекрасно. Но тут ничего динамического может не быть. Просто показываеться другая страница с переченем телепортов.

А если вам нужно самому генерить HTML то в чем то вопрос? Берем куски HTML и сшиваем их с нужной нам информацией.
Мне нужно как в PTS а не самому клеить html. Я знаю как сделать свой html. Свой мне не нужен.
 
Оверпостинг
То есть вопрос как та функция Teleport(talker, Position, ShopName, "", "", ""); работает?
Нет
Вопрос
Как выглядит структура и bypass динамично формирующегося html для телепорта?

То есть вопрос как та функция Teleport(talker, Position, ShopName, "", "", ""); работает?
В PTS сервере при нажатии игроком на "Go to another village" в Талкине а так же у любого другого телепорта выдается список куда ты можешь переместиться. Название и цена. Уже после нажатия на ссылку игрок телепортируется.

Именно этот html мне и нужен. Он формируется динамически в зависимости от количества данных в AI телепорта.

У rapunzel это 1 ссылка
Код:
class rapunzel : teleporter
{
property:
    TelPosList Position = {
        {1010004; -80749; 149834; -3043; 18000; 0}    // 1010004 - "The Village of Gludin"
    };
}

У clavier - 4
Код:
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. C1-C6. Где обычные ссылки

Вот этот HTML

pre_1502823144__shot000165_-_.webp
 
Последнее редактирование модератором:
Можно почитать тут как вот такая HTML делаеться :

Это на Яве. У себя я тоже подобное сделал:
 
ну так это так же обычная, собираемая на лету на стороне сервера хтмлка с сгенеренными по данными из TelPosList байпассами.
Все совершенно так же как и на яве делается.

Как в птс выглядят эти сгенеренные байпассы не помню к сожалению, но как вариант - это menu_selected с ask/reply в виде ид списка и ид позиции в нем.
 
Последнее редактирование:
ну так это так же обычная, собираемая на лету на стороне сервера хтмлка с сгенеренными по данными из TelPosList байпассами.
Все совершенно так же как и на яве делается.

Как в птс выглядят эти сгенеренные байпассы не помню к сожалению, но как вариант - это menu_selected с ask/reply в виде ид списка и ид позиции в нем.
Только в АИ нет обработчиков у телепортеров menu_selected. В магазинах есть. В других местах есть.
 
Ну значит другого вида байпасс, который обрабатывается в экзешнике как вариант.
Посмотри значит каким нибудь пакетником содержимое данной хтмл - так проще всего будет понять как выглядят там байпассы.
 
I think you're looking for this
Код:
    EventHandler TELEPORT_REQUESTED(talker)
    {
        TeleportFStr(talker, Position, ShopName, "", "", "",@adena,1000308,"","","","","");
    }
 
смотри 50 стороку.
 
ну это тоже не из воздуха взято )
 
Назад
Сверху