Metin2 Hungarian Forum

Metin2 => Segítség => Szerver készítés => Privát szerverek => Archívum => A témát indította: 5310pati Dátum 2013-06-09, 14:37:55

Cím: PvP/PvM rendszer szintkorlátozás (K)
Írta: 5310pati Dátum 2013-06-09, 14:37:55
Írtam 1 PvP/PvM rendszert, de szeretnék bele rakni szintkorlátozást.
Ez alatt azt értem, hogy pl egy lvl 50-es player csak 30-70lvl közötti player/mobért kapjon pontot.
kérdezgettem már pár embert és annyi segítséget kaptam, hogy elv le kéne kérdeznem az ID-t a mobnak (npc.get_race()) és ez alapján a szintjét is le tudom, de ennyire sajnos nem értek LUA-hoz.
Cím: Re:PvP/PvM rendszer szintkorlátozás
Írta: Morpheus Dátum 2013-06-10, 17:33:20
Esetleg így?

Szerintem ez nem annyira egyszerű.

De talán megoldható, igaz picit necces.


local mob_level = mobszint
local player_level = pc.get_level()
         if player_level-10 <= mob_level and player_level+10 >= mob_level then


Ez elméletileg csak 1 mobra szól, igaz. de így legalább nem minden mob droppol, csak -10/+10 szinten
Cím: Re:PvP/PvM rendszer szintkorlátozás
Írta: Akria Dátum 2013-06-10, 17:43:18
Volt már itt a fórumon egy ilyen quest.


quest vmi  begin
state start begin
when login begin
--Globális adatok lekérése
if MOB_LEVEL==nil then
local _in=mysql_query("SELECT vnum, level FROM player.mob_proto WHERE vnum > 0 AND vnum < 9000 ORDER BY vnum;")
MOB_LEVEL={}--NEM LOCAL!!!!!!
for i=1,table.getn(_in) do
table.insert(MOB_LEVEL, _in[i][1], _in[i][2])
end
test_chat(string.format("Mob table is loaded in with %d pcs. mobs!",table.getn(MOB_LEVEL)))
end
--Globális adatok lekérése
end
when kill with not npc.is_pc() begin
if MOB_LEVEL~=nil and MOB_LEVEL[npc.get_race()]~=nil then
test_chat(string.format("Mob's Level: %d", MOB_LEVEL[npc.get_race()]))
if pc.get_level()-15 <= MOB_LEVEL[npc.get_race()] and pc.get_level()+15 >= MOB_LEVEL[npc.get_race()] then
local n=number(1,1500)
if n <= 5 then
pc.give_item2(50024, 1)
end
end
end
end
end
end


Talán P3ng3r írta, de nem vagyok benne biztos.
Cím: Re:PvP/PvM rendszer szintkorlátozás
Írta: 5310pati Dátum 2013-06-10, 17:50:11
rendben, köszi közbe már megoldódott :)
de am most nézegettem a questet és találtam benne 1 hibát
if pc.get_level()-15 <= MOB_LEVEL[npc.get_race()] and pc.get_level()+15 >= MOB_LEVEL[npc.get_race()] then
és ez akkor teljesül hogy ha a játékos és mob közötti szintkülönbség nagyobb mint 15 de ez baromság mivel mind2 nem teljesülhet
el lett rontva, oda nem "and" kell hanem "or"(ha valaki használni akarja) de m1 már megoldottam, azért köszi és megy a "+"
EhPortal 1.39 © 2025, WebDev