|
You last visited: Today at 01:50
Advertisement
[SERVICE] Die Questkontrolle
Discussion on [SERVICE] Die Questkontrolle within the Metin2 Private Server forum part of the Metin2 category.
05/07/2015, 01:32
|
#11461
|
elite*gold: 345
Join Date: Mar 2014
Posts: 71
Received Thanks: 21
|
hey.
Hey ich hätt mal ne Frage ...
Code:
when 8033.kill with testsdsad.is_dragon_run() begin
d.setf("stone_count", d.getf("stone_count") - 1)
if d.getf("stone_count") <= 0 then
d.notice("Alle Metins wurden gekillt der Drache spawnt nun ..")
d.spawn_mob(2493, 182, 173)
end
end
Wie mache ich eine verzögerung(wait)vor dem ' d.spawn_mob ' das es 1-2 sekunden wartet bevor er den mob spawnt
Danke schonmal
mfg Basti
|
|
|
05/07/2015, 13:48
|
#11462
|
elite*gold: 5
Join Date: Mar 2015
Posts: 499
Received Thanks: 376
|
Quote:
Originally Posted by bastüh33
Hey ich hätt mal ne Frage ...
Code:
when 8033.kill with testsdsad.is_dragon_run() begin
d.setf("stone_count", d.getf("stone_count") - 1)
if d.getf("stone_count") <= 0 then
d.notice("Alle Metins wurden gekillt der Drache spawnt nun ..")
d.spawn_mob(2493, 182, 173)
end
end
Wie mache ich eine verzögerung(wait)vor dem ' d.spawn_mob ' das es 1-2 sekunden wartet bevor er den mob spawnt
Danke schonmal
mfg Basti 
|
timer setzen?
|
|
|
05/07/2015, 13:57
|
#11463
|
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
|
Quote:
Originally Posted by DYSKaito
timer setzen?
|
wurde schon per pn geklärt
Code:
when kill with npc.get_race() == 8033 and testsdsad.is_dragon_run() begin
d.setf("stone_count", d.getf("stone_count") - 1)
if d.getf("stone_count") <= 0 then
d.notice("Alle Metins wurden gekillt der Drache spawnt nun ..")
timer("spawn_dragon", 5)
end
end
when spawn_dragon.timer begin
d.spawn_mob(2493, 182, 173)
end
|
|
|
05/07/2015, 14:02
|
#11464
|
elite*gold: 5
Join Date: Mar 2015
Posts: 499
Received Thanks: 376
|
Quote:
Originally Posted by usr.setVnum(1093)
wurde schon per pn geklärt
Code:
when kill with npc.get_race() == 8033 and testsdsad.is_dragon_run() begin
d.setf("stone_count", d.getf("stone_count") - 1)
if d.getf("stone_count") <= 0 then
d.notice("Alle Metins wurden gekillt der Drache spawnt nun ..")
timer("spawn_dragon", 5)
end
end
when spawn_dragon.timer begin
d.spawn_mob(2493, 182, 173)
end
|
okay.
|
|
|
05/07/2015, 14:32
|
#11465
|
elite*gold: 3
Join Date: Mar 2015
Posts: 439
Received Thanks: 615
|
Quote:
Originally Posted by #Zephir
Code:
quest exp_storage begin
state start begin
when 20023.chat."Erfahrungslager" begin
say_title("Erfahrungslager")
say("")
say_red("Das Erfahrungslager ist nur bis Level 89 verfügbar !")
say_green("Ab Level 90 ist es komplett für diesen Char deaktiviert.")
say_green("Nach Level 89 hast du keinen Zugriff mehr auf deine")
say_green("gelagerte Erfahrung und diese wird in keinem Fall")
say_green("zurück erstattet.")
say("")
say_reward("Viel Spaß wünscht euch Zephir")
say("")
wait()
say_title("Erfahrungslager")
say("")
say_red("Damit das Verschicken von Erfahrung funktioniert")
say_green("Müssen beide Spieler das Erfahrungslager Lager")
say_green("geöffnet haben und nahe bei Soon sein.")
say("")
say_red("Wir werden für nichts haften !")
say("")
say_white("Das System wurde getestet und ist Fehlerfrei!")
say("")
local ddd = select("Ja", "Nein")
if ddd == 1 and pc.get_level()<= 89 then
setskin(NOWINDOW)
cmdchat("SetEXPSafeboxQI "..q.getcurrentquestindex())
cmdchat("SetEXPSafeboxExp "..pc.getqf("current_exp"))
cmdchat("ShowEXPSafebox")
elseif ddd == 1 and pc.get_level()>= 89 then
say_title("Erfahrungslager")
say("")
say_red("Du bist über level 89 das Erfahrungslager ist")
say_red("für dich leider deaktiviert !")
say("")
elseif ddd == 2 then
return
end
end
when button or info begin
setskin(NOWINDOW)
local data = split(input(), ",")
local curEXP = pc.getqf("current_exp")
local new_exp = curEXP
for i = 1, table.getn(data) do
chat(data[i])
end
if table.getn(data) >= 2 then
local input_exp = tonumber(data[2])
chat(input_exp)
if input_exp <= 0 then
return
end
if data[1] == "donate" then
if pc.get_exp() < input_exp or input_exp + curEXP >= 2000000000 then
syschat("Du kannst nicht soviel Erfahrung spenden.")
return
end
pc.give_exp2(-input_exp)
chat(input_exp * (-1))
new_exp = curEXP + input_exp
elseif data[1] == "give" then
if table.getn(data) >= 3 then
local mylevel = pc.get_level()
local find_vid = find_pc_by_name(data[3])
if find_vid != 0 then
if pc.is_near_vid(find_vid, 10) then
if input_exp > curEXP then
input_exp = curEXP
end
new_exp = curEXP - input_exp
local me = pc.select(find_vid)
local other_exp = pc.getqf("current_exp") + input_exp
local other_name = pc.get_name()
local other_level = pc.get_level()
if mylevel-5 > other_level or mylevel+5 < other_level then
pc.select(me)
syschat("Dieser Spieler ist nicht in deinem Levelbereich.")
syschat("Nur Spieler die 5 Level über oder unter deinem Level sind")
return
end
pc.setqf("current_exp", other_exp)
cmdchat("SetEXPSafeboxExp "..other_exp)
syschat("Du hast "..input_exp.." Erfahrungspunkte im Lager erhalten.")
pc.select(me)
syschat("Du hast "..input_exp.." Erfahrungspunkte an "..other_name.." gegeben.")
else
syschat("Der Spieler muss in der Nähe sein.")
end
else
syschat("Der Spieler muss online sein.")
end
end
elseif data[1] == "take" then
if input_exp > curEXP then
input_exp = curEXP
end
pc.give_exp2(input_exp)
new_exp = curEXP - input_exp
end
end
if new_exp != curEXP then
pc.setqf("current_exp", new_exp)
cmdchat("SetEXPSafeboxExp "..new_exp)
end
end
end
end
explager
Wenn ich exp einzahle bekomme ich unmenegen an erfahrung und etliche lvl ups
|

|
|
|
05/07/2015, 18:16
|
#11466
|
elite*gold: 0
Join Date: Jan 2012
Posts: 42
Received Thanks: 7
|
Code:
quest ukol_kopani begin
state start begin
when levelup with pc.get_level() >= 30 begin
set_state( information )
end
end
state information begin
when letter begin
local v = find_npc_by_vnum(20015)
if v != 0 then
target.vid("__TARGET__", v, "Najdi Dřevorubce.")
end
end
when __TARGET__.target.click or
20015.chat."Těžení Rud " with pc.level >= 30 begin
target.delete("__TARGET__")
say_title("Dřevorubec:")
say("")
----"123456789012345678901234567890123456789012345678901234567890"|
say("Hele ty!... Jo ty!... pojd ke mě. ")
say("")
say("Vidím že jsi našel tuto oblast zde tu projde málo lidí ")
say("ale mám pro tebe lákavou nabídku. ")
say("")
say("Nechtěl by jsi mi pomoc? ")
say("")
say("")
wait()
say_title("Dřevorubec:")
say("")
----"123456789012345678901234567890123456789012345678901234567890"|
say("Já ti vyrobím oblek kopáče ")
say("ale chci aby jsi mi na to přinesl nějaký material.")
say("")
say("Já nejsem moc dobrý v kopání já spíše kácím stromy.")
say("A určitě ti to půjde lépe než mě. ")
say("")
wait()
say_title("Dřevorubec :")
say("")
----"123456789012345678901234567890123456789012345678901234567890"|
say("Na kostým potřebuji 10x Měď a 10x Nefrit")
say("a 10x Diamant.")
say("")
say("Popravdě ti chci říci že potřebuji jen 5kusů od každého")
say("ale rád bych z toho také něco měl když už si stím dám tu práci.")
say("ease.")
say("")
say("Je to velice těžký úkol.")
say("Přeješ si ho přijmout?!")
say("")
local s=select("Ano chci","Ne nechci")
if 2==s then
say_title("Dřevorubec:")
say("")
say("Opravdu nechceš přijmout tento úkol?")
say("možnost nepujde vrátit...")
local a=select("Ano","Ne")
if 2==a then
say_title("Dřevorubec:")
say("")
say("Nemusíš se bát!")
say("")
say("Můžeš se ke mě kdykoliv vrátit.")
say("")
return
end
say_title("Dřevorubec:")
say("")
say("Jak chceš....")
say("ta námaha by za to opravdu stála..")
say("srabe..")
say("")
set_state(__GIVEUP__)
return
end
say_title("Dřevorubec:")
say("")
say("Ano vážně!?")
say("")
say("Díky ti kamaráde. :) ")
say("")
set_state(to_gain_material)
end
end
state to_gain_material begin
when letter begin
send_letter("Těžení Rud")
local gold=pc.count_item(50627)
local silver=pc.count_item(50621)
local ebony=pc.count_item(50624)
if gold>=10 and silver>=10 and ebony>=10 then
local v = find_npc_by_vnum(20015)
if v != 0 then
target.vid("__TARGET__", v, "Dřevorubec")
end
return
end
end
when info or button begin
local gold=pc.count_item(50627)
local silver=pc.count_item(50621)
local ebony=pc.count_item(50624)
if gold>=10 and silver>=10 and ebony>=10 then
say_title("Mám všechen material na oblek!")
say("")
----"123456789012345678901234567890123456789012345678901234567890"|
say("Mám všechen material pro výrobu")
say("toho obleku.")
say("")
say("Měl bych mu to přinést!")
say("")
return
end
say_title("Dát material!")
say("")
----"123456789012345678901234567890123456789012345678901234567890"|
say("Dřevorubec potřebuje pro výrobu obleku.")
say("")
say("10x Měd , 10x Diamant , 10x Nefrit ")
say("")
say("")
say("Potřebné věci seženeš vytavením z rud.")
say("u alchemistů! ")
say("")
say("")
say("")
say("")
end
when __TARGET__.target.click or
20015.chat."Oblek kopáče." begin
target.delete("__TARGET__")
local gold = pc.count_item(50627)
local silver = pc.count_item(50621)
local ebony = pc.count_item(50624)
if gold<10 or silver<10 or ebony<10 then
say_title("Dřevorubec:")
say("")
say("Nemáš toho dostatek!!")
say("")
local s=select("Zkusím to znovu","Kašlu na to")
if 2==s then
say_title("Dřevorubec")
say("")
say("Opravdu chceš úkol ukončit?")
say("")
local a=select("Ano","Ne")
if 2==a then
say_title("Dřevorubec")
say("")
----"123456789012345678901234567890123456789012345678901234567890"|
say("Asi je to pro tebe velice těžký úkol.")
say("")
say("Když uvažuješ o ukončení ")
return
end
say_title(":")
say("")
----"123456789012345678901234567890123456789012345678901234567890"|
say("Bude to chviličku trvat...")
say("")
say("It was a breakthrough idea... A true shame.")
say("")
set_state(__GIVEUP__)
return
end
say_title("Dřevorubec:")
say("")
----"123456789012345678901234567890123456789012345678901234567890"|
say("Přesně tak nevzdávej to!")
say("")
say("Hodně štěstít kamaráde")
say("")
return
end
if gold>=10 and silver>=10 and ebony>=10 then
say_title("Dřevorubec:")
say("")
----"123456789012345678901234567890123456789012345678901234567890"|
say("Ty máš opravdu všechen material?!")
say("")
say("Nějaký(á) rychlý(á)...,")
say("Dej mi ho a nestůj tam tak.")
say("")
wait()
say_title("Dřevorubec:")
say("")
----"123456789012345678901234567890123456789012345678901234567890"|
say("Velice ti děkuji!")
say("")
say("Tak zde máš svůj oblek.")
say("")
say("Snad se ti bude líbit..")
say("")
pc.remove_item(50627,10)
pc.remove_item(50621,10)
pc.remove_item(50624,10)
say_reward("Zde máš 3.000.000 BZK")
pc.give_exp2(3000000)
say_reward("a zde 20.000.000 Yang.")
pc.change_money(20000000)
if pc.get_sex == 0 then
pc.give_item2(({55248, 55249})[pc.get_sex()+1], 1)
elseif pc.get_sex == 1 then
pc.give_item2(({55246, 55247})[pc.get_sex()+1], 1)
say_reward("a zde máš svůj kostým ")
end
say("")
clear_letter()
set_state(__COMPLETE__)
end
end
end
state __GIVEUP__ begin
end
state __COMPLETE__ begin
when enter begin
end
end
end
This task should have a reward costume for boys or girls. Unfortunately it does not know what's wrong please?
(0 then boy / 1 then girl)
|
|
|
05/07/2015, 18:40
|
#11467
|
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
|
You dont have to do this if statement:
Code:
if pc.get_sex() == 0 then
...
elseif pc.get_sex() == 1 then
...
end
This:
Code:
pc.give_item2(({55246, 55247})[pc.get_sex()+1], 1)
is everything you need
|
|
|
05/07/2015, 20:19
|
#11468
|
elite*gold: 0
Join Date: Jan 2012
Posts: 42
Received Thanks: 7
|
Quote:
Originally Posted by usr.setVnum(1093)
You dont have to do this if statement:
Code:
if pc.get_sex() == 0 then
...
elseif pc.get_sex() == 1 then
...
end
This:
Code:
pc.give_item2(({55246, 55247})[pc.get_sex()+1], 1)
is everything you need
|
----"1234567890123456789012345678901234567890123456789 01234567890"|
say("Velice ti děkuji!")
say("")
say("Tak zde máš svůj oblek.")
say("")
say("Snad se ti bude líbit..")
say("")
pc.remove_item(50627,10)
pc.remove_item(50621,10)
pc.remove_item(50624,10)
say_reward("Zde máš 3.000.000 BZK")
pc.give_exp2(3000000)
say_reward("a zde 20.000.000 Yang.")
pc.change_money(20000000)
pc.give_item2(({55246, 55247})[pc.get_sex()+1], 1)
pc.give_item2(({55248, 55249})[pc.get_sex()+1], 0)
say_reward("a zde máš svůj kostým ")
end
say("")
clear_letter()
set_state(__COMPLETE__)
end
end
end
state __GIVEUP__ begin
end
state __COMPLETE__ begin
when enter begin
end
end
end
should i use it like this? because sorry, i dont get it
|
|
|
05/07/2015, 21:06
|
#11469
|
elite*gold: 5
Join Date: Mar 2015
Posts: 499
Received Thanks: 376
|
Quote:
Originally Posted by stenlykkk
----"1234567890123456789012345678901234567890123456789 01234567890"|
say("Velice ti děkuji!")
say("")
say("Tak zde máš svůj oblek.")
say("")
say("Snad se ti bude líbit..")
say("")
pc.remove_item(50627,10)
pc.remove_item(50621,10)
pc.remove_item(50624,10)
say_reward("Zde máš 3.000.000 BZK")
pc.give_exp2(3000000)
say_reward("a zde 20.000.000 Yang.")
pc.change_money(20000000)
pc.give_item2(({55246, 55247})[pc.get_sex()+1], 1)
pc.give_item2(({55248, 55249})[pc.get_sex()+1], 0)
say_reward("a zde máš svůj kostým ")
end
say("")
clear_letter()
set_state(__COMPLETE__)
end
end
end
state __GIVEUP__ begin
end
state __COMPLETE__ begin
when enter begin
end
end
end
should i use it like this? because sorry, i dont get it 
|
u dont need pc.give_item2(({55248, 55249})[pc.get_sex()+1], 0) this.
|
|
|
05/07/2015, 22:24
|
#11470
|
elite*gold: 0
Join Date: Jan 2012
Posts: 42
Received Thanks: 7
|
Quote:
Originally Posted by DYSKaito
u dont need pc.give_item2(({55248, 55249})[pc.get_sex()+1], 0) this.
|
ok, thanx, and if i wanna give hairstyle and costume, its how?
male, female
pc.give_item2(({55246, 55248})[pc.get_sex()+1], 0) <--Hair
pc.give_item2(({55247, 55249})[pc.get_sex()+1], 0) <---Costume
|
|
|
05/07/2015, 22:45
|
#11471
|
elite*gold: 5
Join Date: Mar 2015
Posts: 499
Received Thanks: 376
|
Quote:
Originally Posted by stenlykkk
ok, thanx, and if i wanna give hairstyle and costume, its how?
male, female
pc.give_item2(({55246, 55248})[pc.get_sex()+1], 0) <--Hair
pc.give_item2(({55247, 55249})[pc.get_sex()+1], 0) <---Costume
|
u cant just do ,0 because u dont give something. u must do pc.give_item2(({55246, 55248})[pc.get_sex()+1], 1)
pc.give_item2(({55247, 55249})[pc.get_sex()+1], 1)
|
|
|
05/08/2015, 09:19
|
#11472
|
elite*gold: 0
Join Date: Jan 2012
Posts: 42
Received Thanks: 7
|
Quote:
Originally Posted by DYSKaito
u cant just do ,0 because u dont give something. u must do pc.give_item2(({55246, 55248})[pc.get_sex()+1], 1)
pc.give_item2(({55247, 55249})[pc.get_sex()+1], 1)
|
pc.change_money(20000000)
pc.give_item2(({55246, 55248})[pc.get_sex()+1], 1)
pc.give_item2(({55247, 55249})[pc.get_sex()+1], 1)
say_reward("a zde máš svůj kostým ")
Nice work . Thank you :O
|
|
|
05/08/2015, 13:25
|
#11473
|
elite*gold: 3
Join Date: Mar 2015
Posts: 439
Received Thanks: 615
|
Quote:
Originally Posted by #Zephir
Code:
quest exp_storage begin
state start begin
when 20023.chat."Erfahrungslager" begin
say_title("Erfahrungslager")
say("")
say_red("Das Erfahrungslager ist nur bis Level 89 verfügbar !")
say_green("Ab Level 90 ist es komplett für diesen Char deaktiviert.")
say_green("Nach Level 89 hast du keinen Zugriff mehr auf deine")
say_green("gelagerte Erfahrung und diese wird in keinem Fall")
say_green("zurück erstattet.")
say("")
say_reward("Viel Spaß wünscht euch Zephir")
say("")
wait()
say_title("Erfahrungslager")
say("")
say_red("Damit das Verschicken von Erfahrung funktioniert")
say_green("Müssen beide Spieler das Erfahrungslager Lager")
say_green("geöffnet haben und nahe bei Soon sein.")
say("")
say_red("Wir werden für nichts haften !")
say("")
say_white("Das System wurde getestet und ist Fehlerfrei!")
say("")
local ddd = select("Ja", "Nein")
if ddd == 1 and pc.get_level()<= 89 then
setskin(NOWINDOW)
cmdchat("SetEXPSafeboxQI "..q.getcurrentquestindex())
cmdchat("SetEXPSafeboxExp "..pc.getqf("current_exp"))
cmdchat("ShowEXPSafebox")
elseif ddd == 1 and pc.get_level()>= 89 then
say_title("Erfahrungslager")
say("")
say_red("Du bist über level 89 das Erfahrungslager ist")
say_red("für dich leider deaktiviert !")
say("")
elseif ddd == 2 then
return
end
end
when button or info begin
setskin(NOWINDOW)
local data = split(input(), ",")
local curEXP = pc.getqf("current_exp")
local new_exp = curEXP
for i = 1, table.getn(data) do
chat(data[i])
end
if table.getn(data) >= 2 then
local input_exp = tonumber(data[2])
chat(input_exp)
if input_exp <= 0 then
return
end
if data[1] == "donate" then
if pc.get_exp() < input_exp or input_exp + curEXP >= 2000000000 then
syschat("Du kannst nicht soviel Erfahrung spenden.")
return
end
pc.give_exp2(-input_exp)
chat(input_exp * (-1))
new_exp = curEXP + input_exp
elseif data[1] == "give" then
if table.getn(data) >= 3 then
local mylevel = pc.get_level()
local find_vid = find_pc_by_name(data[3])
if find_vid != 0 then
if pc.is_near_vid(find_vid, 10) then
if input_exp > curEXP then
input_exp = curEXP
end
new_exp = curEXP - input_exp
local me = pc.select(find_vid)
local other_exp = pc.getqf("current_exp") + input_exp
local other_name = pc.get_name()
local other_level = pc.get_level()
if mylevel-5 > other_level or mylevel+5 < other_level then
pc.select(me)
syschat("Dieser Spieler ist nicht in deinem Levelbereich.")
syschat("Nur Spieler die 5 Level über oder unter deinem Level sind")
return
end
pc.setqf("current_exp", other_exp)
cmdchat("SetEXPSafeboxExp "..other_exp)
syschat("Du hast "..input_exp.." Erfahrungspunkte im Lager erhalten.")
pc.select(me)
syschat("Du hast "..input_exp.." Erfahrungspunkte an "..other_name.." gegeben.")
else
syschat("Der Spieler muss in der Nähe sein.")
end
else
syschat("Der Spieler muss online sein.")
end
end
elseif data[1] == "take" then
if input_exp > curEXP then
input_exp = curEXP
end
pc.give_exp2(input_exp)
new_exp = curEXP - input_exp
end
end
if new_exp != curEXP then
pc.setqf("current_exp", new_exp)
cmdchat("SetEXPSafeboxExp "..new_exp)
end
end
end
end
explager
Wenn ich exp einzahle bekomme ich unmenegen an erfahrung und etliche lvl ups
|
keiner ne idee?
|
|
|
05/08/2015, 14:22
|
#11474
|
elite*gold: 0
Join Date: Jan 2015
Posts: 239
Received Thanks: 585
|
Quote:
Originally Posted by usr.setVnum(1093)
You dont have to do this if statement:
Code:
if pc.get_sex() == 0 then
...
elseif pc.get_sex() == 1 then
...
end
This:
Code:
pc.give_item2(({55246, 55247})[pc.get_sex()+1], 1)
is everything you need
|
The ,1 he doesn't need too.
|
|
|
05/09/2015, 07:41
|
#11475
|
elite*gold: 345
Join Date: Mar 2014
Posts: 71
Received Thanks: 21
|
..
Code:
quest exp_ringe begin
state start begin
when 72001.use or 72002.use or 72003.use begin
local data = {6,12,24}
local id = item.vnum - 72000
if get_time() < pc.getqf("expring") then
return syschat("Du hast bereits einen Erfahrungsring aktiviert")
end
mysql_query("update account.account set silver_expire = ADDDATE(NOW(), INTERVAL ".. data[id] .." hour) where id = ".. pc.get_account_id() ..";")
pc.setqf("expring", get_time() + data[id]*60)
item.remove()
syschat("Du hast einen ".. data[id] .." Stunden Erfahrungsring aktiviert")
end
end
end
Wie baue ich eine Sperre ein das andere Char´s auf dem Acc den Ring, wenn er aktiv ist NICHT auch nochmal aktivieren können?
|
|
|
All times are GMT +1. The time now is 01:51.
|
|