[BUG] Mount hiba

Indította Rock, 2018-04-19, 17:16:04

Sziasztok!

Adott egy quest. A mountokat úgy csináltam meg, hogy amikor a leltáradban van a hívójuk, akkor is megadják a bónuszt. A probléma viszont az, hogyha már nincs a leltáradban a mount, mert eladtad/eldobtad, a bónusz akkor is megmarad.

A quest:
Idézquest kiskutya_hivo begin
   state start begin
      when login begin
         if pc.count_item(18555)>=1 then
            affect.add_collect(apply.ATT_BONUS_TO_MONSTER, 30, 60*60*24*365*60)
         else
            affect.remove_collect(apply.ATT_BONUS_TO_MONSTER, 30, 60*60*24*365*60)
         end
      end
      when 18555.use begin
         if pc.is_polymorphed() then
            say("Átváltozva nem lovagolhatsz!")
            elseif pc.is_mount() then
            say("Te már ülsz egy állaton, először szállj le!")
            else
            pc.mount(8851, 3600)
         end
      end
   end
end

Valakinek esetleg lenne rá ötlete, hogyan módosítsam?

Nagyon szívesen írok rá neked c++ ban egy normális kódot ami nem luás és folyton leellenőrzi, hogy nálad van e a tárgy :)

“Majdnem minden tudásunkért nem azoknak tartozunk, akik egyetértettek, hanem azoknak, akik nem.”

Idézetet írta: Meli Dátum 2018-04-19, 18:37:19
Nagyon szívesen írok rá neked c++ ban egy normális kódot ami nem luás és folyton leellenőrzi, hogy nálad van e a tárgy :)

Nagyon megköszönném, mert így össze-vissza buggol...:(

egyszerű ebben is, csak bővíteni kell


quest kiskutya_hivo begin
   state start begin
      when login begin
        loop_timer("kutya", 10)
     end
        when kutya.timer begin
         if pc.count_item(18555)>=1 then
            affect.add_collect(apply.ATT_BONUS_TO_MONSTER, 30, 60*60*24*365*60)
         else
            affect.remove_collect(apply.ATT_BONUS_TO_MONSTER, 30, 60*60*24*365*60)
         end
      end
      when 18555.use begin
         if pc.is_polymorphed() then
            say("Átváltozva nem lovagolhatsz!")
            elseif pc.is_mount() then
            say("Te már ülsz egy állaton, először szállj le!")
            else
            pc.mount(8851, 3600)
         end
      end
   end
end


nem biztos hogy így lefut, mert nem néztem hogy az egész quest műkdöik e, de ez alapján meg tudod írni.

érdemes egy quest / timerbe tenni az összes mountot, kicsit megnézed akkor rájösz hogyan.

mivel csak mob elleni erővel csinálod, ezért tök könnyen megoldható:
char_battle.cpp-ben a Damage függvény elejére írd bele
if(!IsPC() && pAttacker->IsPC() && pAttacker->CountSpecifyItem(18555) > 0) dam += dam/100*30;

C++ programmer at Gameloft

Idézetet írta: Distraught Dátum 2018-04-20, 14:47:59
mivel csak mob elleni erővel csinálod, ezért tök könnyen megoldható:
char_battle.cpp-ben a Damage függvény elejére írd bele
if(!IsPC() && pAttacker->IsPC() && pAttacker->CountSpecifyItem(18555) > 0) dam += dam/100*30;

Igen, de neki mesteres szerverbe kellene ez.
Szóval ez is jó, csak ő még + bónuszt akar hozzá adni.

“Majdnem minden tudásunkért nem azoknak tartozunk, akik egyetértettek, hanem azoknak, akik nem.”