Metin2 Hungarian Forum

Metin2 => Szerver készítés => Privát szerverek => Segítség => A témát indította: TheSLESH Dátum 2017-01-29, 15:47:19

Cím: Új quest funkció segítség
Írta: TheSLESH Dátum 2017-01-29, 15:47:19
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
Cím: Re:Új quest funkció segítség
Írta: 5310pati Dátum 2017-01-29, 15:53:51
É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?
Cím: Re:Új quest funkció segítség
Írta: TheSLESH Dátum 2017-01-29, 15:54:59
Nem tudom, nem sürün csináltam még tömböt, csak próbáltam össze hozni.
Cím: Re:Új quest funkció segítség
Írta: 5310pati Dátum 2017-01-29, 16:05:26
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.
Cím: Re:Új quest funkció segítség
Írta: TheSLESH Dátum 2017-01-29, 16:13:14
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.
Cím: Re:Új quest funkció segítség
Írta: DonNodus Dátum 2017-01-30, 15:24:59
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
Cím: Re:Új quest funkció segítség
Írta: TheSLESH Dátum 2017-01-30, 17:22:05
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
Cím: Re:Új quest funkció segítség
Írta: [VIP]P3NG3R Dátum 2017-01-30, 22:01:44
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)

Cím: Re:Új quest funkció segítség
Írta: DonNodus Dátum 2017-01-31, 02:50:35
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
Cím: Re:Új quest funkció segítség
Írta: TheSLESH Dátum 2017-01-31, 13:37:34
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.
Cím: Re:Új quest funkció segítség
Írta: [VIP]P3NG3R Dátum 2017-01-31, 15:19:56
Mondjuk elosztod 100-zal? ???
print(string.format("%.2f", 993/100))


Csakhogy 993-nak a 99.3 nem század része :D
Cím: Re:Új quest funkció segítség
Írta: Step Dátum 2017-01-31, 15:21:37
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.
Cím: Re:Új quest funkció segítség
Írta: [VIP]P3NG3R Dátum 2017-01-31, 15:26:06
É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?".
EhPortal 1.39 © 2025, WebDev