вторник, 30 марта 2010 г.

Злодеи войны и денег. Часть 1, глава 3 "Таверна"

Еще при предыдущим правителе был принят указ о запрете азартных игр на территории города. Тогда же казино "Золотой дракон" переименовали в таверну "Зеленый змий". Кроме названия мало что изменилось. Все так же в любое время суток можно поднять замасленные карты и выиграть сумму равную стоимости небольшого поместья (или проиграть все, включая исподнее, тут уж как повезет).
Я в таверне. Задача на сегодня – создать игру, дождаться противника, и подтвердить, что мы хотим с ним играть.
Ловлю запросы. Сначала нажимаю на ссылку «Создать заявку». Тут все очень просто:
ProcessGetRequest(session,data,L"/tavern.php?form=1");
В ответе мне приходит эта форма:

По моей стратегии, нужно ставить максимально возможную ставку. Чтобы в дальнейшем сформировать нужный запрос – мне нужно посчитать количество элементов в комбобоксе «Ставка». Смотрю html код комбобокса и вижу что просто нужно посчитать количество строк “option” между открвающим и закрывающим тегами.


select name=gold>
option value=0>0 золота/option>
option value=1>40 золота/option>
/select>

Максимальную ставку получили – теперь надо делать запрос на создание игры. Тип запроса GET, параметры:
timeout – максимальное время на ход (всегда буду ставить 30)
ktype=1 – тип игры (всегда будет с одной колодой карт)
gold=1 - количество золота. Вот это как раз и будем изменять
и построю запрос:


wsprintf(request,L"/create_card_game.php?timeout=%d&ktype=%d&gold=%d",timeout,ktype,goldnum);
ProcessGetRequest(session,data,request);


Заявка подана, теперь нужно ждать чтобы кто-нибудь откликнулся. Для этого каждую секунду посылаю запрос для странички "/tavern.php”, пока в буфере не появится строка “acard_game.php?id=”, откуда нужно выдрать значение id.


if (yespos = findstr(data,"acard_game.php?id="))
{
endid = strstr(yespos,"'");
endid[0] = 0;
}
wsprintf(request,L"/acard_game.php?id=%S",yespos);
ProcessGetRequest(session,data,request);


Выполняю и меня перенаправляют на cgame.php?gameid=15568640
Я в игре.

Комментариев нет:

Отправить комментарий