Добавляем характеристики

Про сами характеристики я писал уже ранее, сейчас же прикручиваем параметры. Для этого была сделана структура TCreatureParams.
typedef struct
{
short Stamina;
short Strength;
short Dexterity;
short Intellect;
short HP;
} TCreatureParams;

Которая была добавлена в две структуры в TUser и TMazeCreature, потому как игрок может оказаться в лабиринте, а вот существо из лабиринта никогда не попадает в список пользователей.

При переходе в лабиринт, было добавлено копирование структуры params из TUser в структуру TMazeCreature.
TMazeCreature c;
c.Type = 0;
c.Id = userid;
c.x = data[2];
c.y = data[3];
c.Live = true;
c.params = userList[userid].params;
mazeList[mazeid].creatures.push_back(c);

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

Короче только userList[creatureid].params.HP = c->params.HP;

Далее для функций определяющих значений характеристик на основе базовых сделал модуль formuls.cpp. Пока в нем только maxHP и maxTurn – определения значений максимальной жизни и количества ходов.

Затем самое трудное – все это хранить в Flash. Ранее в флэшке, я вообще никак не хранил существ, просто считалось, что есть только игрок и его характеристики (id и координаты) хранились в переменных. Пришел момент исправить (вернее дополнить т.к. переменные heroX и т.п. останутся) сие безобразие. В супер функцию initScene() добавилась строчка creaturesList = new Array;.

А при срабатывании (проигрывании) события insertCreature - выполняется функция getInfoAboutCreature(plid), а также в функции insertCreature было дописано кое-что.
var creature:Object = new Object();
creature.type = -1;
creature.id = plid;
creature.x = sx;
creature.y = sy;
creaturesList.push(creature);

Кто не понял – Flash умеет работать с объектами!

Ну функция getInfoAboutCreature просто отправляет запрос на сервер – при получении ответа срабатывает: function putCreatureInfo(sdata)
{
var act:Array = sdata.split(",");
var cid;
var cname;
var chp;
var cmaxhp;
var ct=-1;
for(var i=0;i
Т.е. сервер передает информацию о существе ввиде строки типа "маркер,значение". i - идентификатор, n - имя и т.д.
Собственно хотел прикрутить полоску HP – но не успел. В следующий раз.

Ну и пользуясь случаем, хочу поздравить с днем рождения хорошего человека – Гриньку, который помогает мне с хостингом для этого сайта.

Комментарии

Спасибо!

Спасибо вам за этот прекрасный ресурс, с нетерпением жду новых публикаций!