|
|
Модератор форума: Dimitro |
Форум TrinityCore [TrinityCore] Help Ошибка в скрипте! |
Ошибка в скрипте! |
std::string getPlayerStatus(uint32 guid)
{ Player *player = sObjectAccessor->FindPlayer(guid); <------- Ошибка,не существует подходящего конструктора для преобразования из "uint32" в "ObjectGuid" if(!player) return "Offline"; if(player->isAFK()) return "Online, <AFK> " + player->isAFK; if(player->isDND()) return "Online, <Busy> " + player->isDND; return "Online"; }
Продажа сервера wow blood-fire (WoW 3.3.5a + Lua engine) 6500 руб
---->https://vk.com/jimteck<----
Сообщение # 1 написано 15.06.2015 в 00:32
|
Это для топов арены как я понел,
У меня отлично прошло, Цитата std::string getPlayerStatus(uint32 guid) { Player *player = sObjectAccessor->FindPlayer(guid); if(!player) return "Оффлайн"; if(player->isAFK()) return "Онлайн, <АФК> " + player->afkMsg; if(player->isDND()) return "Онлайн, <Занят> " + player->dndMsg; return "Онлайн"; } |
Потому что у r0m1ntik более старая версия ядра, где ObjectGuid еще не использовался.
Моя версия, к сожалению, тоже старее этого нововведения, так что, без знания того, чем ObjectGuid является, я не смогу сказать, какое преобразование (или получение) здесь необходимо выполнить.
Сообщение # 3 написано 15.06.2015 в 12:54
|
Исходя из описания изменений, uint полностью заменили, так передавать в функцию нужно именно ObjectGuid.
|
HollyMaN, вот только от uint32 в качестве guid'а нет никакого, потому что
Код explicit ObjectGuid(uint32 const&) = delete; // no implementation, used to catch wrong type assignment dimakpro, выбирай понравившийся конструктор: Код explicit ObjectGuid(uint64 guid) : _guid(guid) { } ObjectGuid(HighGuid hi, uint32 entry, LowType counter) : _guid(counter ? uint64(counter) | (uint64(entry) << 24) | (uint64(hi) << 48) : 0) { } ObjectGuid(HighGuid hi, LowType counter) : _guid(counter ? uint64(counter) | (uint64(hi) << 48) : 0) { }
Сообщение # 6 написано 15.06.2015 в 14:39
|
Мне вообще кажется, что там из объекта Player получают гуид и передают его, что бы опять найти Player
Хотя вероятнее там ополчение из базы, так что: Код // где то там uint64 guid = fields[n].GetUInt64(); // .. ObjectGuid oGuid = new ObjectGuid(guid); std:string status = getPlayerStatus(oGuid); delete oGuid; |
| |||
| |||