Суть мода:
Создается таблица, в которой хранится гуид, игрока ид морфа и размер (.mod scale) и, при входе игрока, данные берутся из этой таблицы.
Данные пока заносятся вручную.
Будьте осторожны со значениями.
Мод не тестил, ибо видуха сгорела.
Просьба протестить.
Подсоединяется к скрипт системе как обычный скрипт.
В планах:
Добавить дополнительных проверок, имплементировать вкл/выкл мода через конфиг, реализовать занесение данных в таблицу при использовании, собственно команд .mod morph и .mod scale.
При репосте куда либо, просьба указывать автора патча.
А то я смотрю на AC-WEB мои скрипты репостят от своего имени...
Собственно код с запросом в базу characters:
Code
#include "ScriptPCH.h"
/*
create table `character_morphs`(
`guid` int(10) UNSIGNED NOT NULL COMMENT 'Character guid' DEFAULT '0',
`morph` int(5) UNSIGNED NOT NULL COMMENT 'Character morph' DEFAULT '0',
`scale` float(2) UNSIGNED NOT NULL COMMENT 'Character scale' DEFAULT '1',
PRIMARY KEY (`guid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT 'Charaster morphs';
*/
class morphing_on_login : public PlayerScript
{
public:
morphing_on_login() : PlayerScript("morphing_on_login") {}
void OnLogin(Player* player)
{
int64 pguid = player->GetGUID();
QueryResult morph = CharacterDatabase.PQuery("SELECT morph from character_morphs WHERE guid = '%u'", pguid);
QueryResult scale = CharacterDatabase.PQuery("SELECT scale from character_morphs WHERE guid = '%u'", pguid);
if (morph)
player->SetDisplayId(morph->Fetch()->GetUInt32());
if (scale)
player->SetFloatValue(OBJECT_FIELD_SCALE_X, scale->Fetch()->GetFloat());
}
};
void AddSC_morphing_on_login()
{
new morphing_on_login();
}