сервер

Прочность предметов

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

А потому было решено, что старый принцип кодирование предметов/артефактов не является правильным и разумным.

Новые вещи

Дорисовал набор предметов, которые можно найти в сундуке в подвале старейшины.
Это уже известный нож, ржавый доспех и ржавая каска. Т.е. ничего нового найти у старейшины не получится.

Вещи обладают незначительными характеристиками, нож - +5 к наносимому ущербу, каска - +5 к защите, доспех +10 к защите.


ржавый доспех, лабиринты зыби - 7maze.ru   ржавая каска, лабиринты зыби - 7maze.ru

Реализация сундуков

Сделал реализацию открытия сундуков.

На клиенте

var sunduk = _root.maybeOpen(tx,ty);
if (sunduk && dx<=1 && dy<=1)
_root.openChest(tx,ty);

Функция maybeOpen - просто проверяет что на карте в (x,y) находиться сундук (открытый или закрытый), а функция openChest - посылает на сервер сигнал open_chest.

На сервере

Реализация сбора рапаппилы

Начал реализацию сбора рапаппилы, самое просто - завел объект:

#define MAZE_OBJ_RAPAPPILA 0x25
#define MAZE_OBJ_RAPAPPILA_V 0x26

MAZE_OBJ_RAPAPPILA_V - это объект - "выкорчеванная рапаппила", дырка в земле.

А в Flash, соответственно сделал прорисовку этих объектов.
Также в флэшке сделал кнопку сбор рапаппилы, которая появляется если герой стоит на клетке с рапаппилой.
Кнопка становится неактивная если у героя нет с собой сумки.

Работа над ошибками

В чем минус эволюционной разработки?

Эволюционная разработка - работа над проектом волнами, когда один блок заменяется другим. Для более быстрой проверки работоспособности создаются заглушки или код на первое время

Минус в том, что могут появляется ошибки(глюки) на стыке двух модулей, т.е. по отдельности они нормально работают, а вот их объединили - и не работают оба.

В моем случае - появился глюк при исполнении команды retreat. Команда выполнялась в случае гибели персонажа или его победы в лабиринте (выполнения условий).

Загружаемые персонажи

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

Изменения кода checkActiveDemands() -

void checkActiveDemands()
{
time_t now=time(0);
for(vector<int>::iterator i=activeDemands.begin();i<activeDemands.end();i++)
{
TMazeDemand *md = &mazeDemands[*i];
if (!md->close && md->type == TP_ARENA_CITY)
if (now-md->atime >= TIME_FOR_WAIT_DEMAND)
{

Новое

Начал внедрять новые стены в лабиринте - которые состоят не из одного куба - а прорисованы по-разному.
Тут же понял, что мой код содержит кучу ошибок, которые пришлось исправлять налету (сейчас код исправлен) и есть живой пример рисования псевдографикой а-ля DOS (кодировка CP866)

В flash нарисовал такие вот стены:
набросок новых стен для лабиринтов

Ветераны арены

Ветеран арены. 7maze.ru - лабиринты зыбиПодумал и решил сделать для арены - количество игроков не два, а три.
Причем ветераны добавляются автоматически после 30 секундного простоя, после добавления каждого игрока.

Маленькие правки

Добавил в структуру TMazeCreature exp, данный параметр уже присутствует в TMazeCreature, через TCreatureParams, но там он показывает общий опыт полученный персонажем.
А в структуре TMazeCreature будет показывать опыт набранный в текущем лабринте, также его можно будет показывать на страничке после победы - типа "выграл игрок, получил XXX опыта".

Так-же, добавил на странице ожидания арены таймер, который рефрешает страницу каждые 5 секунд, а то до этого нужно было рефрешать ручками.
Примитивный JS-скрипт:

О правильном названии функций

Делаю я арену, и натыкаюсь в одном месте на вызов не существующей функции checkMaze - подумал, нафик я ее поставил, тем более ее еще и нет, есть функция checkMazes - которая в фоне проверяет ходы, крутит таймер и все такое.
Закоментил, с надписью "что не знаю что такое".

RSS-материал