• Страница 1 из 1
  • 1
Модератор форума: Dimitro  
Помогите исправить ошибку
startdevs
Скаут
При компиляции выдаёт ошибку:
Код
/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
r0m1ntik
Центурион
startdevs

Попробуйте изменить: на 32 строке

_creature-&>MonsterWhisper(MSG_ERR_INCOMBAT, player->GetGUID());

на
 
_creature->MonsterWhisper(MSG_ERR_INCOMBAT, player->GetGUIDLow());

Не уверен что поможет, попытка не пытка:)
Сообщение # 2 написано 27.12.2015 в 13:39
p620
Маршал
Цитата r0m1ntik ()
Не уверен что поможет, попытка не пытка:)
Конечно же не поможет. Ошибка заключается в том, что функции, принимающей вторым параметром const Player*, передают unsigned long. Компилятор пытается выполнить неявное приведение типов, но не может, ибо стандартным способом такое преобразование выполнить невозможно.
Замените на:
Код
_creature->MonsterWhisper(MSG_ERR_INCOMBAT, player);
Сообщение # 3 написано 27.12.2015 в 14:01
startdevs
Скаут
Код
/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


теперь вот такая ошибка sad
Сообщение # 4 написано 27.12.2015 в 16:29
p620
Маршал
Цитата startdevs ()
теперь вот такая ошибка

На этот раз компилятор не обнаруживает версию конструктора класса ChatHandler, принимающую аргумент типа Player*, либо неявно приводимый к нему.
Насколько я помню, он конструируется по сессии, так что заменяйте это на:
Код
ChatHandler(player->GetSession()).PSendSysMessage("Рэнд шепчет: У вас недостаточно эмблем");

И Вы определенно зря полезли в ядро, если не имеете ни единого представления о языке, на котором оно написано.
Сообщение # 5 написано 27.12.2015 в 16:36
startdevs
Скаут
p620, огромное спасибо, помогло! Ну пытаюсь учится, надо же с чего то начинать)
Сообщение # 6 написано 27.12.2015 в 16:43
p620
Маршал
Цитата startdevs ()
надо же с чего то начинать
Определенно. Но точно не с серверного ядра.
Сообщение # 7 написано 28.12.2015 в 01:20
  • Страница 1 из 1
  • 1
Поиск: