|
|
Модератор форума: Dimitro |
Форум TrinityCore [TrinityCore] Help Помогите исправить ошибку |
Помогите исправить ошибку |
При компиляции выдаёт ошибку:
Код /home/River/src/server/scripts/Custom/level.cpp: In member function 'virtual bool npc_levelup::OnGossipSelect(Player*, Creature*, uint32, uint32)': /home/River/src/server/scripts/Custom/level.cpp:32:77: error: invalid conversion from 'uint64 {aka long unsigned int}' to 'const Player*' [-fpermissive] _creature->MonsterWhisper(MSG_ERR_INCOMBAT, player->GetGUID()); ^ compilation terminated due to -Wfatal-errors. make[2]: *** [src/server/scripts/CMakeFiles/scripts.dir/Custom/level.cpp.o] Error 1 Пытался накатить этот патч http://wowjp.net/forum/189-248754-1
Сообщение # 1 написано 26.12.2015 в 21:51
|
Конечно же не поможет. Ошибка заключается в том, что функции, принимающей вторым параметром const Player*, передают unsigned long. Компилятор пытается выполнить неявное приведение типов, но не может, ибо стандартным способом такое преобразование выполнить невозможно.
Замените на: Код _creature->MonsterWhisper(MSG_ERR_INCOMBAT, player);
Сообщение # 3 написано 27.12.2015 в 14:01
|
Код /home/River/src/server/scripts/Custom/level.cpp: In member function 'virtual bool npc_levelup::OnGossipSelect(Player*, Creature*, uint32, uint32)': /home/River/src/server/scripts/Custom/level.cpp:47:23: error: no matching function for call to 'ChatHandler::ChatHandler(Player*&)' ChatHandler(player).PSendSysMessage("Рэнд шепчет: У вас недостаточно эмблем"); ^ compilation terminated due to -Wfatal-errors. make[2]: *** [src/server/scripts/CMakeFiles/scripts.dir/Custom/level.cpp.o] Error 1 make[1]: *** [src/server/scripts/CMakeFiles/scripts.dir/all] Error 2 make: *** [all]Error 2 теперь вот такая ошибка
Сообщение # 4 написано 27.12.2015 в 16:29
|
На этот раз компилятор не обнаруживает версию конструктора класса ChatHandler, принимающую аргумент типа Player*, либо неявно приводимый к нему. Насколько я помню, он конструируется по сессии, так что заменяйте это на: Код ChatHandler(player->GetSession()).PSendSysMessage("Рэнд шепчет: У вас недостаточно эмблем"); И Вы определенно зря полезли в ядро, если не имеете ни единого представления о языке, на котором оно написано.
Сообщение # 5 написано 27.12.2015 в 16:36
|
| |||
| |||