PDA

Просмотр полной версии : Outdoor


BloodWarrior
10.04.2011, 18:54
Попытался тут аутдур пвп на мзеро приплести, тот, что Xfurry на базе сд сделал.

Изначально начал накатывать ручками и до изменений скажем в SpellAura.cpp с target на m_target собственно говоря сам допер, первоначально не читая тему, ну просто открыв пастбин с изменениями в ядро и сд, и начал воять.

Вроде и делал все корректно, но в итоге словил:


Error 1 error LNK2019: unresolved external symbol "void cdecl AddSC_outdoor_pvp_silithus(void)" (?AddSC_outdoor_pvp_silithus@@YAXXZ) referenced in function "void cdecl AddScripts(void)" (?AddScripts@@YAXXZ) F:\zero mmaps\mangos_out\src\bindings\scriptdevzero\VC100\ ScriptLoader.obj ScriptDev2

Error 2 error LNK2019: unresolved external symbol "void cdecl AddSC_outdoor_pvp_eastern_plaguelands(void)" (?AddSC_outdoor_pvp_eastern_plaguelands@@YAXXZ) referenced in function "void cdecl AddScripts(void)" (?AddScripts@@YAXXZ) F:\zero mmaps\mangos_out\src\bindings\scriptdevzero\VC100\ ScriptLoader.obj ScriptDev2


Поболтал на гитхабе со Salja одним из разрабов зеродб, он отпостил мол я на ScriptLoader.cpp не накатал ап. Ну и отписал в теме на форуме сд.

Однако каким бы крабуэ не был, но там все на месте ручками было вогнано.


//battlegrounds
extern void AddSC_battleground();

// outdoor pvp
extern void AddSC_outdoor_pvp_silithus();
extern void AddSC_outdoor_pvp_eastern_plaguelands();

//custom
extern void AddSC_custom_scripts();
extern void AddSC_zero_scripts();

//world
...

void AddScripts()
{
//battlegrounds
AddSC_battleground();

//outdoor pvp
AddSC_outdoor_pvp_silithus();
AddSC_outdoor_pvp_eastern_plaguelands();

//custom
AddSC_zero_scripts();

//world
..


Вот сижу и туплю, в чем моя проблема.
Камрады - помогите, кто что по поводу этой ошибки может сказать?

Lordronn
10.04.2011, 19:39
Код покажи. У тебя функции точно такие, как ты указал в лоадере?

BloodWarrior
10.04.2011, 20:03
Ядро http://paste2.org/p/1301003
СД http://paste2.org/p/1326348

MaxXx2021
10.04.2011, 21:06
Ядро http://paste2.org/p/1301003
СД http://paste2.org/p/1326348

А вы добавили файлы в проект VC100 ?

BloodWarrior
11.04.2011, 05:19
Спасибо. Мой затуп)

Словил еще 2 ошибки

Error 1 error C2660: 'Player::RewardHonor' : function does not take 3 arguments F:\zero mmaps\mangos_out\src\bindings\scriptdevzero\script s\outdoor_pvp\outdoor_pvp_silithus.cpp 216 1 ScriptDev2

Error 2 error C2660: 'Player::RewardHonor' : function does not take 3 arguments F:\zero mmaps\mangos_out\src\bindings\scriptdevzero\script s\outdoor_pvp\outdoor_pvp_silithus.cpp 234 1 ScriptDev2

KiriX
11.04.2011, 08:31
Спасибо. Мой затуп)

Словил еще 2 ошибки

Error 1 error C2660: 'Player::RewardHonor' : function does not take 3 arguments F:\zero mmaps\mangos_out\src\bindings\scriptdevzero\script s\outdoor_pvp\outdoor_pvp_silithus.cpp 216 1 ScriptDev2

Error 2 error C2660: 'Player::RewardHonor' : function does not take 3 arguments F:\zero mmaps\mangos_out\src\bindings\scriptdevzero\script s\outdoor_pvp\outdoor_pvp_silithus.cpp 234 1 ScriptDev2

Смотри функцию Player::RewardHonor (кажется в player.cpp) у тебя она в скобках имеет 3 переменные, а должно быть или меньше или больше - надо править.
Скажу даже больше. Надо заменить:
pPlayer->RewardHonor(NULL, 1, HONOR_REWARD_SILITHYST);
и
pPlayer->RewardHonor(NULL, 1, HONOR_REWARD_SILITHYST);
из http://paste2.org/p/1326348
на
pPlayer->RewardHonor(NULL, 1);
и
pPlayer->RewardHonor(NULL, 1);
Строку
HONOR_REWARD_SILITHYST = 19,
таким образом можно вообще удалить.

BloodWarrior
11.04.2011, 11:55
В любом случае, я закаментил эту строку до того как прочел этот пост, но думал оно таки будет работать) Как отписывались люди на зеро и на ван - что вроде работает, но толку ноль, силитиды не дают ауру, насильно наложенную не сдать, да и захват башен в чумных не стартует))

Видимо я настолько крабуэ что все что мог - закосячил XD

Так пришел с работы, залез в код.
Посмотрел функцию Player::RewardHonor в Player.ccp
Эта функция обработки хонора за хоноркилл по сути.

Но насколько я понимаю из данного патча - на аутдор.
То автор пытался реализовать жесткую привязку количества хонора к функции сим действием.

При сдаче силитиста в 'пункт приема' выдается 19 хонор поинтов и 20 реп поинтов с кругом кенария.
Причем функция на репу - уже была закоммичена изначально.

А если модифицировать по предложенному способу, то после сдачи никаких хонор поинтов и не будет.
Что закоммитить что нет - разницы ноль в данном аспекте.


ПЫСЫ - еще бы они сдавались.

------


Посмотрел плеер ццп в зеро и в свежем мастер ветке 3.3.5


z - bool Player::RewardHonor(Unit *uVictim,uint32 groupsize)

m - bool Player::RewardHonor(Unit *uVictim, uint32 groupsize, float honor)


Ну и дальше тоже по мелочам думаю, пока еще не глядел, одновременно кушаю и роюсь.

------

Первые штришки начинают выходить.
Хотя в принципе захват башен не осуществляется, а жаль, но замер орда\алу попер в истерн плеглендсах.

С силитусом пока сложнее, при использовании гейзера выдает мол - выполняется другое действие, а даже если бафф насильно наложить, то его не сдать в приемник.