Sziasztok. A segítségeteket szeretném kérni abban hogy van a név váltó quest. Ezt úgy szeretném megoldani hogy csak játékos tudja használni, vagy is semmilyen GM rangú karakteren ne működjön. Legyen az: LOW_WIZARD, GOD, HIGH_WIZARD, IMPLEMENTOR. Azért akarom ezt így megoldani, mivel ha bent van hogy egy GM ne tudjon kereskedni, de ha nevet vált akkor bárkinek bármit adhat, mert a tiltás eltűnik róla.
Aki tud segíteni, és akar is az írjon nyugodtan. Köszi előre is.
Quest:
quest change_name begin
state start begin
when 71055.use begin
say_title("Név oldata:")
if pc.is_married() or pc.is_engaged() then
say_reward("Nem változtathatod meg a nevedet mert")
say_reward("házasságban élsz!")
say("")
return
end
if pc.is_polymorphed() then
say_reward("Nem változtathatod meg a nevedet mert")
say_reward("át vagy változva!")
say("")
return
end
if pc.has_guild() then
say_reward("Nem változtathatod meg a nevedet mert")
say_reward("egy céh tagja vagy!")
say("")
return
end
if party.is_party() then
say_reward("Nem változtathatod meg a nevedet mert")
say_reward("egy csoportban vagy.")
say("")
return
end
if pc.get_level() < 61 then
say_reward("Nem változtathatod meg a nevedet mert")
say_reward("a szinted nem elegendő!")
say("")
return
end
say("Add meg a kívánt nevet:")
local name = pc.name
local str = input()
if string.len(str) < 3 then
say_title("Név oldata:")
say_reward("A megadott név túl rövid!")
say("")
return
elseif string.len(str) > 12 then
say_title("Név oldata:")
say_reward("A megadott név túl hosszú!")
say("")
return
end
local ret = pc.change_name(str)
say_title("Név oldata:")
if ret == 0 then
say_reward("A név váltás sikeres!")
say_reward("Kérlek jelentkezz ki és újra be.")
say("")
char_log(0, "CHANGE_NAME", "HAVE NOT RE-LOGIN")
elseif ret == 1 then
say_reward("Váratlan hiba lépett fel a tárgy használatakor")
say_reward("a probléma még fenn áll, kérlek próbáld újra!")
say("")
char_log(0, "CHANGE_NAME", "ITEM USE PROBLEM")
elseif ret == 2 then
say_reward("Nem megengedett karakter használat!")
say_reward("A név váltás sikertelen.")
say("")
char_log(0, "CHANGE_NAME", "CAN NOT USE NAME")
elseif ret == 3 then
say_reward("Ez a név már használatban van!")
say_reward("Kérlek adj meg egy másikat.")
say("")
char_log(0, "CHANGE_NAME", "ALREADY USING NAME")
elseif ret == 4 then
say_reward("A név váltás sikeres!")
say_reward("Kérlek jelentkezz ki és újra be.")
say("")
item.remove()
char_log(0, "CHANGE_NAME", "SUCCESS: from "..name.." to "..str)
else
say_title("Név oldata:")
say_reward("Meghatározatlan hiba!")
say_reward("Kérlek lépj kapcsolatba egy Adminisztrátorral!")
say(ret)
char_log(0, "CHANGE_NAME", "UNKNOWN NAME")
end
end
end
end
if pc.is_gm() then
return
else
Sokkal elegánsabb megoldás: https://metin2dev.org/board/index.php?/topic/13215-how-to-gm-absolute-restriction-system/#comment-75621
Idézetet írta: Csedwik Dátum 2017-06-21, 19:08:22
Sokkal elegánsabb megoldás: https://metin2dev.org/board/index.php?/topic/13215-how-to-gm-absolute-restriction-system/#comment-75621
Én ezt beraktam és így kikerülöm az addolás lehetőségét. :D
csak átfutottam, eljutottam odáig hogy GM ne tudjon nevet váltani... de amúgy ami lett írva GM teljes tiltás logikailag együtt kell használni a névváltással, mert:
- Legív annyi cuccot amennyit tud, oké nem tudja átadni
- lehív egy név váltót, nevet vált -> új néven már nem GM rangú
- Átadja a cuccokat
oké logok nézése stb megoldható és tilthatóak a cuccok, karakterek de nem tökéletes ha csak az egyik rendszer kerül berakásra