Egy új quest funkciót próbáltam írni, amivel tömben gyüjthetem össze, a szörnyek álltal adott exp-t.
Ne kelljen minden szörnyre külön-külön megírni, hanem tömböl olvassa ki.
itt van a próbálkozásom:
function xpadas(mobnev,mobid,kapottexp)
local mobok = {
{"Főork", 691, 3},
{"Sötét vezető", 791, 3},
{"Sötét szellem-vezető", 792, 3},
{"Lykos", 191, 1},
{"Scrofa", 192, 1},
}
local mobnev = mobok[1]
local mobid = mobok[2]
local kapottexp = mobok[3]
say("Sikeresen megölted "..mobnev.." szörnyet!")
say("Kaptál 0."..kapottexp.."% exp-t!")
end
when mobid.kill begin
boss_fejl.xpadas("mobnev ",mobid,kapottexp)
chat("teszt"..mobid..""..kapottexp.."")
end
Én erre azt mondanám h halott mint h több sebből vérzik ;D
function xpadas(mobnev,mobid,kapottexp)
Minek van paraméter ha nem használod őket?
local mobnev = mobok[1]
local mobid = mobok[2]
local kapottexp = mobok[3]
Ez mi? Nem egydimenziós tömbről van szó ??? másrészt miért a paraméterek neveit használod itt?
Nem tudom, nem sürün csináltam még tömböt, csak próbáltam össze hozni.
function xpadas(mob_id)
local mobok = {
{"Főork", 691, 3},
{"Sötét vezető", 791, 3},
{"Sötét szellem-vezető", 792, 3},
{"Lykos", 191, 1},
{"Scrofa", 192, 1},
}
i = 1
while ((mobok[i][2] ~= mob_id) and (i < table.getn(mobok))) do
i = i+1
end
local mob_nev = mobok[i][1]
local mob_exp = mobok[i][3]
say("Sikeresen megölted "..mob_nev.." szörnyet!")
say("Kaptál 0."..mob_exp.."% exp-t!")
end
when mob_id.kill begin
boss_fejl.xpadas(mob_id)
end
Esetleg így, ha nem írtam el semmit.
sajnos nem jó, ha a quest tetejére teszem, nem fut le, ha a legajára teszem, le fut a quest, de hiába ölök meg egy főorkot semmi sem történik.
Közben próbáltam még így is:
unction xpadas(mobnev,mobid,kapottexp)
local mobname = npc.get_name()
local mobok = {
[691] = {"Főork", 3},
[791] = {"Sötét vezető", 3},
[792] = {"Sötét szellem-vezető", 3},
[191] = {"Lykos", 1},
[192] = {"Scrofa", 1},
}
local mob_id = mobok[mobname][1]
local kapottexp = mobok[mobname][2]
end
Üzenet összefésülés: 2017-01-29, 16:16:47
state start begin alá teszem, nem fut le az ez alatt lévő többi dolog. Ha a többi dolog alá teszem, akkor pedig lefutnak, de nem történik semmi ha megölöm.
quest bossexp begin
state start begin
function bossexp.give_exp(mobvnum)
local mobok = {
[691] = 3,
[791] = 3,
[792] = 3,
[191] = 1,
[192] = 1
}
chat("Kapsz EXP-t: "..mobok[mobvnum].." Mer megölted: "..mob_name(mobvnum))
end
when 691.kill or 791.kill or 792.kill or 191.kill or 192.kill begin
bossexp.give_exp(mob.get_vnum())
end
end
end
Mingyárt kiprobálom a te változatod is, és köszönöm. Meg egy olyan kérdésem lenne ,hogy string formatban
Hogyan lehet tizedest kiiratni? Tudom ,hogy 0.2f-el de sajnos nem bírom egybe rakni nem csináltam soha meg.
Tehát van egy qf, ami mondjuk 1000ig megy, de a 993 az 99.3 lenne.
Üzenet összefésülés: 2017-01-30, 17:38:49
mob.get_vnum-t nem ismeri fel.
Üzenet összefésülés: 2017-01-30, 17:49:50
Don-ét kicsit átalakítottam, és az eredmény az lett, hogy a chat("3") már nem fut le, de az 1 és a 2 igen.
ez a sor kikementelésével, lefut az egész.
local mob_exp = mobok[mob_vnum(mobvnum)][2]
pc.setqf("bossszint", pc.getqf("bossszint") + mob_exp)
de pont ez lenne a lényeg.
function xp_adas(mobvnum)
local mobok = {
[691] = 3,
[791] = 3,
[792] = 3,
[191] = 1,
[192] = 1
}
chat("1")
--chat("Kapsz EXP-t: "..mobok[mobvnum].." Mer megölted: "..mob_name(mobvnum))
chat("Gratulálok!")
local mob_exp = mobok[mob_vnum(mobvnum)][2]
pc.setqf("bossszint", pc.getqf("bossszint") + mob_exp)
end
when 691.kill or 791.kill or 792.kill or 191.kill or 192.kill begin
chat("2")
boss_fejl.xp_adas(mob_vnum(mobvnum))
chat("3")
end
Üzenet összefésülés: 2017-01-30, 17:56:04
chat("Gratulálok! MOBID: "..mob_vnum(mobvnum).."")
igy pedig, azt irja ki hogy mobid :0
Idézetet írta: TheSLESH Dátum 2017-01-30, 17:22:05
Mingyárt... nem bírom
boss_fejl.xp_adas(mob_vnum(mobvnum))
chat("Gratulálok! MOBID: "..mob_vnum(mobvnum).."")
(https://iamprogrammer.life/wp-content/uploads/2017/01/Angry-Break-Computer-Fit-Mad-Rage-Raging-Smash-GIF1.gif)
xp_adas(mobvnum)
local mobok = {
[691] = 3,
[791] = 3,
[792] = 3,
[191] = 1,
[192] = 1
}
chat("2")
--chat("Kapsz EXP-t: "..mobok[mobvnum].." Mer megölted: "..mob_name(mobvnum))
chat("Gratulálok!")
local mob_exp = mobok[mobvnum]
pc.setqf("bossszint", pc.getqf("bossszint") + mob_exp)
end
when 691.kill or 791.kill or 792.kill or 191.kill or 192.kill begin
chat("1")
boss_fejl.xp_adas(npc.get_race())
chat("3")
end
Köszönöm nodus, tökéletes! Már csak annyi kérdése lenne, hogy string.formattal, hogy lehet a mob_exp nevű quest flagot kiiratni úgy, hogy a 100-ad részét írja? Tehát ha a questflag 993 mondjuk, akkor 99.3-at írjon.
Mondjuk elosztod 100-zal? ???
print(string.format("%.2f", 993/100))
Csakhogy 993-nak a 99.3 nem század része :D
Ha a 993-at 100-al osztod az 9.93 lesz. :'(
Ő a tized részére kíváncsi szerintem.
Tehát 10-el oszd el és JÁRJ BE MATEKRA.
Észrevettem ám, mikor már elküldtem :)
Idézetet írta: TheSLESH Dátum 2017-01-31, 13:37:34
hogy lehet a mob_exp nevű quest flagot kiiratni úgy, hogy a 100-ad részét írja?
Ez ilyen "jobbó' vagy balbó kéred a lángos?".