Quest pc.set_level hiba

Indította FloodX, 2017-07-29, 22:48:19

Sziasztok!

Volt egy ilyen questem a szint túlcsordulás miatt.

quest drop begin
state start begin
when 11505.kill with pc.get_level() <= 245 begin
pc.give_item2(82000, 4)
pc.give_item2(82001, 4)
pc.give_item2(82002, 4)
pc.set_level2(pc.get_level() + 5)
end
when 11505.kill with pc.get_level() == 246 begin
pc.give_item2(82000, 4)
pc.give_item2(82001, 4)
pc.give_item2(82002, 4)
pc.set_level2(pc.get_level() + 4)
end
when 11505.kill with pc.get_level() == 247 begin
pc.give_item2(82000, 4)
pc.give_item2(82001, 4)
pc.give_item2(82002, 4)
pc.set_level2(pc.get_level() + 3)
end
when 11505.kill with pc.get_level() == 248 begin
pc.give_item2(82000, 4)
pc.give_item2(82001, 4)
pc.give_item2(82002, 4)
pc.set_level2(pc.get_level() + 2)
end
when 11505.kill with pc.get_level() == 249 begin
pc.give_item2(82000, 4)
pc.give_item2(82001, 4)
pc.give_item2(82002, 4)
pc.set_level2(pc.get_level() + 1)
end
when 11505.kill with pc.get_level() == 250 begin
pc.give_item2(82000, 4)
pc.give_item2(82001, 4)
pc.give_item2(82002, 4)
end
end
end

Tudom, hogy rövidebben is meg lehet oldani, hogy a 250-vonja ki a jelenlegi szintet, de úgysem jó.
Azért pc.set_level2, mert a forrásban már van egy pc.set_level, azzal sem megy, ezért a régi fajtát módosítottam így:

function pc.set_level2(szint)
while pc.get_level() < szint do
pc.give_exp2(pc.get_next_exp()-pc.get_exp())
end
end

Átírtam 2-re a végét, és a functions-ba is bent van: pc.set_level2

Segítséget előre is köszönöm.

Kivonni nem fogod tudni.

Nem is szeretném. Nekem ez a quest kell, hogy tudjanak fejlődni, de nem ad szintet.

így nem fog szintet adni:

pc.set_level2(pc.get_level() + 1)


Mivel a funkciót át kell írni, hogy így használhasd.


Eredetileg így használhatod:

when 11505.kill begin
if pc.get_level() == 245 then
pc.set_level2(250)
elseif pc.get_level() == 246 then
pc.set_level2(250)
.
.
.
end
end

kérd ki előtte egy változóba
ujszint = pc.get_level() + 1
pc.set_level(ujszint)

C++ programmer at Gameloft