Energia rendszer hiba(k)

Indította isolator05, 2013-10-13, 19:16:07

2013-10-13, 19:16:07 Utolsó szerkesztés: 2013-10-20, 14:15:22 Szerző: [TMOD]Aceagan
Beraktam ma az energiarendszert a szerverbe, és a quest az jó is lefut qc-val és a játékban tudok is csinálni energia töredéket és energia kristályt. De mikor az energia kristályra kattintok akkor nem történik semmi.
34083-as game fájl van a szerverbe. A questet és a questlib_energye.lua-t az invoice szerverfájlból szedtem ki. Ja a karim szintje 40-es tehát minden feltétel megvan hozzá hogy működjön. Az energia kristály leírás alján ez áll ahol az időt írná: BLEND_POTION_NO_TIME ez mit jelent? Talán ez lehet a baja? A type az 27.
Valaki segítene?
Ha segítettem ne sajnáld a + t.

Type legyen 18 ha .use-os questje van. (De sztem az Invoice ba is .use van, szóval nyugodtan írd át akkor is ha azt használod)

BLEND_POTION_NO_TIME ez az időt írná, de a kliens vagy a szerver nem kezeli, írd át kliensben is a type-ot 18 ra és eltűnik, max az item leírásba írd bele hogy 2 óráig van hatása.

Nos a gf kliens és a quest nem klappol. Átírtam a type-t 18 már bekapcsolt az energia. De a mozgási sebességet -213000 be ment át és a kari megfagyott nem mozdul sehova.
Tehát rossz a gf kliensel eggyütt a quest. Tudna valako olyan energia rendszert ami tökéletes.?
köszönöm
Ha segítettem ne sajnáld a + t.

34083-nál nem 18 a kristály type-ja, hanem "ITEM_BLEND", azaz 27...
Működéséhez pedig szerveren a blend.txt-be kell ilyesmi:

Idéz#├Š▒Ô╚»
section
   item_vnum   51002
   apply_type   ENERGY
   apply_value   1   3   5   7   10
   apply_duration   7200   7200   7200   7200   7200
end

2013-10-13, 23:27:18 #4 Utolsó szerkesztés: 2013-10-20, 14:14:59 Szerző: [TMOD]Aceagan
És Atag szerver részt is tudsz hozzá? Ha nem gond.
De addig is köszi.

Nem értem. Olvasgattam epvp-n és olyat találtam hogy a 34089-es game fájl támogatja az energia systemet.
Tehát akkor nem is kellene az energia rendszerből csak a alkimista quest? Meg akkor törölni kellene a questli.lua-ból az energia részt meg stb......?
Ha segítettem ne sajnáld a + t.

2013-10-14, 00:16:32 #5 Utolsó szerkesztés: 2013-10-14, 00:19:12 Szerző: ATAG
Így van, csak az energy_system.quest kell hozzá (+ a blend.txt).

[spoiler]quest energy_system begin
state start begin
when 20001.chat."Egy új technológia!" begin --alchemist
say_title(mob_name(20001))
say("Megcsináltam!")
say("Végre sikerült kidolgoznom egy teljesen új")
say("technológiát.")
say("Sikerült feldolgoznom a tárgyakat és tiszta")
say("energiát nyerni ki belőlük! Ez teljesen")
say("zseniális!")
wait()
say_title(mob_name(20001))
say("Ha az én új technológiám segítségével semmisítesz")
say("meg egy tárgyat, kapsz egy Energia-töredéket. Ha")
say("egyesítesz 30 ilyen töredéket, kapsz egy")
say("erőteljes Energia-kristályt! Tiszta, szűretlen")
say("energiát egy drágakőbe csomagolva. Ez az energia")
say("átjárja a teljes felszerelésed.")
say("Érdekel?")
wait()
say_title(mob_name(20001))
say("Hozz nekem egy olyan felszerelési tárgyat, mint")
say("fegyverek, ékszerek és ruházat, amiket a")
say("vadászatod során találsz. Átalakítom")
say("Energia-töredékké.")
say("Birodalmunk jövője és reménye van ebben a")
say("technológiában. Legyőzhetetlenek leszünk!")
setstate (can_make)
end
end

state can_make begin
function setting ()
return
{
["prob_acc_table"] =
{
["35to50"] = {30,55,70,80,90,95,97,98,99,100},
["51to70"] = {20,40,60,75,85,91,96,98,99,100},
["upto70"] = {10,25,45,65,80,88,94,97,99,100}
},
["item_num_table"] ={0,1,2,3,4,6,8,10,12,15},
["energy_stone"] = 51001,
["charging_stone"] = 51002,
}
end
function getItemNum ( str, r )
local setting = energy_system.setting()
for i = 1, 10 do
if r < setting.prob_acc_table[str][i] then
return setting.item_num_table[i]
end
end
return 0
end

when 20001.chat."Energia-töredék kinyerése" begin
say_title(mob_name(20001))
say("Működött? Kaptál energia tölteteket?")
say("Hozz több tárgyat és szilánkokra zúzom az alkímia")
say("segítségével. Technológiám még nem teljesen")
say("tökéletes. Ezért soha nem tudom garantálni,")
say("mennyi töredéket fogsz kapni.")
wait()
say_title(mob_name(20001))
say("Egy feltétel van: saját szintednek és a tárgy")
say("szintjének legalább 35-nek kell lennie. Hmm,")
say("lássuk...")
wait()
if pc.get_level() < 35 then
say_title(mob_name(20001))
say("Még nem vagy elég erős! Gyere vissza, ha már")
say("elérted legalább a 35-ös szintet.")
else
say_title(mob_name(20001))
say("Ah, kitűnő! Elég erős és tapasztalt vagy!")
say("Add nekem a tárgyat, amit szeretnéd, hogy")
say("feldolgozzak.")
end
end

when 20001.take begin
if pc.get_level() < 35 then
say_title(mob_name(20001))
say("Még nem vagy elég erős! Gyere vissza, ha már")
say("elérted legalább a 35-ös szintet.")
return
end
local item_vnum = item.vnum
local levelLimit = item.get_level_limit(item_vnum)
local setting = energy_system.setting()
if levelLimit == nil then
say_title(mob_name(20001))
say("Ez a tárgy nem felel meg a technológiámnak.")
say("Hozz valami mást.")
wait()
elseif item.get_type() == ITEM_WEAPON and item.get_sub_type() == WEAPON_ARROW then
say_title(mob_name(20001))
say("Ez a tárgy nem felel meg a technológiámnak.")
say("Hozz valami mást.")
wait()
elseif levelLimit < 35 then
-- kind of impossible condition?
say_title(mob_name(20001))
say("A tárgy szintje nem felel meg a technológiámnak.")
say("Hozz valami mást.")
else
say_title (mob_name(20001))
say("")
say (item_name(item_vnum))
say("Megsemmisíthetem ezt a tárgyat?")
say("")
local s = select ( "Igen!" , "Nem, mégsem!" )
if s == 1 then
item.remove()
local r = number (1, 100)
local n
if levelLimit >= 40 and levelLimit <= 50 then
n = energy_system.getItemNum ("35to50",r)
elseif levelLimit > 50 and levelLimit <= 70 then
n = energy_system.getItemNum ("51to70",r)
else
n = energy_system.getItemNum ("upto70",r)
end
if (n == 0) then
say_title(mob_name(20001))
say("Hibáztam - sajnos nem sikerült Energia töredéket")
say("kinyernem. Következő alkalommal talán")
say("szerencsésebb leszek.")
else
pc.give_item2(setting.energy_stone, n)
say_title(mob_name(20001))
say ( "Csodálatos! Sikerült "..n.." Energia-töredéket" )
say ( "találnom. Tessék." )
end
end
end
end

when 20001.chat."Energia kristály készítése" begin
local setting = energy_system.setting()
local need = 30
say_title(mob_name(20001))
say("Már felhasználtad az összes erőtartalékodat? Nem")
say("kellene olyan keményen dolgoznod és ilyen")
say("gondatlanul elpazarolnod az életed. Szükségem")
say("lesz 30 Energia-töredékre egy Energia-kristály")
say("előállításához")
wait()

if pc.get_level() < 35 then
say_title(mob_name(20001))
say("Még nem vagy elég erős! Gyere vissza, ha már")
say("elérted legalább a 35-ös szintet.")
return
end

if pc.count_item (setting.energy_stone) < need then
say_title(mob_name(20001))
say("Nincs elég Energia-töredéked. Ebből nem tudok")
say("előllítani Energia-kristályt. Gyere vissza, ha")
say("már összegyűjtöttél 30 töredéket")
return
else
say_title(mob_name(20001))
say("Nagyon jó, megszerezted a szükséges 30")
say("Energia töredéket. Ebből elő tudok állítani egy")
say("Energia-kristályt. Kérlek, várj egy percet.")
say("Megpróbálom, de nem tudom garantálni, hogy")
say("működik.")
wait()
end

local charge = 100000
say_title(mob_name(20001))
say("Minden készen áll a töredékek Energia-kristállyá ")
say("olvasztásához. Ugyanakkor nekem is élnem kell")
say("valamiből, és az eszközeim nem az égből")
say("potyognak. Költségeim fedezéséhez szükségem van")
say(charge.." yangra. Hajlandó vagy kifizetni?")
local s = select ("Természetesen!", "Nem, most nem.")
if s == 2 then
say_title(mob_name(20001))
say("Rendben, tiszteletben tartom a döntésed.")
say("Gyere vissza, ha meggondoltad magad és mégis")
say("szükséged van egy Energia-kristályra.")
return
end

if pc.get_gold() < charge then
say_title(mob_name(20001))
say("Nincs elég pénzed. "..charge.." yang alatt")
say("sajnos nem vállalhatom az átalakítást,")
say("nekem is meg kell élnem valamiből.")
return
end

pc.change_gold (-charge)
pc.remove_item (setting.energy_stone, need)

if pc.getqf ("hasExperience") == 0 then
say_title(mob_name(20001))
say("Tudtam! Kiváló a technológiám!")
say("Itt az Energia-kristályod. Kétségtelenül egy szép")
say("példány! Érzed az erejét?")
pc.give_item2 (setting.charging_stone, 1)
pc.setqf ("hasExperience", 1);
return
end

local r = number (1, 100)
if r > 30 then
say_title(mob_name(20001))
say("Sajnos a kísérlet nem sikerült. Nem tudtam")
say("Energia-kristályt előállítani. A technológiám")
say("ragyogó - de a folyamat teli van kockázattal. A")
say("dolgok nem mindig működnek a tervek szerint.")
say("Biztos vagyok benne, hogy következő alkalommal")
say("sikeres leszek!")
return
end
say_title(mob_name(20001))
say("Tudtam! Kiváló a technológiám!")
say("Itt az Energia-kristályod. Kétségtelenül egy szép")
say("példány! Érzed az erejét?")
pc.give_item2 (setting.charging_stone, 1)

-- setskin(NOWINDOW)
-- command("cube open")
end
end
end

[/spoiler]