forked from metin-server/m2dev-server
Merge remote-tracking branch 'upstream/main' into mr-8
This commit is contained in:
@@ -1,10 +1,28 @@
|
||||
import sys
|
||||
import os
|
||||
import builtins
|
||||
|
||||
# --------------------------------------------------
|
||||
# FORCE UTF-8 FOR ALL FILE WRITES
|
||||
# --------------------------------------------------
|
||||
_original_open = builtins.open
|
||||
|
||||
def utf8_open(file, mode="r", buffering=-1, encoding=None,
|
||||
errors=None, newline=None, closefd=True, opener=None):
|
||||
if "w" in mode and encoding is None:
|
||||
encoding = "utf-8"
|
||||
return _original_open(
|
||||
file, mode, buffering, encoding, errors, newline, closefd, opener
|
||||
)
|
||||
|
||||
builtins.open = utf8_open
|
||||
# --------------------------------------------------
|
||||
|
||||
sys.dont_write_bytecode = True
|
||||
|
||||
from pathlib import Path
|
||||
import shutil
|
||||
import subprocess
|
||||
import os
|
||||
import pre_qc
|
||||
|
||||
|
||||
@@ -32,33 +50,29 @@ def main() -> None:
|
||||
pre_qc_dir.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
if os.name != "nt":
|
||||
# 1. Check if the 'quest' group actually exists in FreeBSD
|
||||
group_exists = False
|
||||
try:
|
||||
import grp
|
||||
grp.getgrnam('quest')
|
||||
grp.getgrnam("quest")
|
||||
group_exists = True
|
||||
except KeyError:
|
||||
print("Warning: Group 'quest' not found. Skipping chgrp.")
|
||||
|
||||
if group_exists:
|
||||
try:
|
||||
subprocess.run(["chgrp", "quest", str(object_dir)], check = True)
|
||||
subprocess.run(["chgrp", "quest", str(object_dir)], check=True)
|
||||
except subprocess.CalledProcessError:
|
||||
print("Failed to change group ownership.")
|
||||
|
||||
# 2. Set Permissions (This will work even if chgrp failed)
|
||||
# Using -R inside subprocess is fine
|
||||
subprocess.run(["chmod", "-R", "770", str(object_dir)], check = True)
|
||||
subprocess.run(["chmod", "-R", "770", str(object_dir)], check=True)
|
||||
|
||||
qc_exe = script_dir / ("qc.exe" if os.name == "nt" else "qc")
|
||||
|
||||
locale_list_path = script_dir / "locale_list"
|
||||
|
||||
if not locale_list_path.exists():
|
||||
raise FileNotFoundError(f"locale_list nicht gefunden: {locale_list_path}")
|
||||
|
||||
with locale_list_path.open("r", encoding="utf-8", errors="ignore") as file:
|
||||
with _original_open(locale_list_path, "r", encoding="utf-8", errors="ignore") as file:
|
||||
for raw_line in file:
|
||||
line = raw_line.strip()
|
||||
if not line or line.startswith("#"):
|
||||
@@ -68,12 +82,9 @@ def main() -> None:
|
||||
|
||||
r = pre_qc.run(line)
|
||||
|
||||
if r:
|
||||
filename = pre_qc_dir / line
|
||||
else:
|
||||
filename = script_dir / line
|
||||
|
||||
filename = (pre_qc_dir if r else script_dir) / line
|
||||
subprocess.run([str(qc_exe), str(filename)], check=True)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
@@ -1,6 +1,23 @@
|
||||
quest new_quest_lv7 begin
|
||||
-- Flower items and bouquet
|
||||
define ITEM_FLOWER_RED 30169 -- Red Flower
|
||||
define ITEM_FLOWER_ORANGE 30170 -- Orange Flower
|
||||
define ITEM_FLOWER_YELLOW 30171 -- Yellow Flower
|
||||
define ITEM_BOUQUET 30172 -- Bouquet
|
||||
|
||||
-- Required amounts
|
||||
define NEED_RED 1
|
||||
define NEED_ORANGE 1
|
||||
define NEED_YELLOW 1
|
||||
|
||||
-- Drop chances (percent)
|
||||
define DROP_RED 45
|
||||
define DROP_ORANGE 30
|
||||
define DROP_YELLOW 15
|
||||
|
||||
|
||||
quest new_quest_lv7 begin
|
||||
state start begin
|
||||
-- Function declaration
|
||||
-- Function declaration
|
||||
function reward()
|
||||
local div = number(1,5)
|
||||
local reward = 5000
|
||||
@@ -8,6 +25,7 @@
|
||||
reward = math.floor(reward/div)
|
||||
return reward
|
||||
end
|
||||
|
||||
function reward_exp()
|
||||
local div = number(1,4)
|
||||
local reward_exp = 4000
|
||||
@@ -16,35 +34,37 @@
|
||||
return reward_exp
|
||||
end
|
||||
-- end function declaration
|
||||
|
||||
-- When level 7 target Octavio for new Quest-------------------------------------------------------------
|
||||
when login or levelup with pc.get_level() >= 7 begin
|
||||
local v=find_npc_by_vnum(20008)
|
||||
if 0==v then
|
||||
local v = find_npc_by_vnum(20008)
|
||||
if 0 == v then
|
||||
else
|
||||
target.vid("__TARGET__", v, gameforge.new_quest_lv7._010_target)
|
||||
end
|
||||
end
|
||||
|
||||
when 20008.chat.gameforge.new_quest_lv7._020_say_title begin
|
||||
when 20008.chat.gameforge.new_quest_lv7._020_say_title with pc.get_level() >= 7 begin
|
||||
target.delete("__TARGET__")
|
||||
local empire = pc.get_empire()
|
||||
say_title(gameforge.new_quest_lv7._011_say_title) -- A Daughters Wedding
|
||||
say(gameforge.new_quest_lv7._021_say) -- Octavio has a daughter and she is in love with a guy for a village
|
||||
if empire == 1 then -- = Shinsoo
|
||||
say(gameforge.new_quest_lv7._022_say) -- The guy lives in a village in the Jayang area
|
||||
end
|
||||
if empire == 2 then -- = Chunjo
|
||||
say(gameforge.new_quest_lv7._023_say) -- The guy lives in a village in the Bokjung area
|
||||
end
|
||||
if empire == 3 then -- = Jinno
|
||||
say(gameforge.new_quest_lv7._024_say) -- The guy lives in a village in the Bakra area
|
||||
end
|
||||
if empire == 1 then -- = Shinsoo
|
||||
say(gameforge.new_quest_lv7._022_say) -- The guy lives in a village in the Jayang area
|
||||
end
|
||||
if empire == 2 then -- = Chunjo
|
||||
say(gameforge.new_quest_lv7._023_say) -- The guy lives in a village in the Bokjung area
|
||||
end
|
||||
if empire == 3 then -- = Jinno
|
||||
say(gameforge.new_quest_lv7._024_say) -- The guy lives in a village in the Bakra area
|
||||
end
|
||||
wait() -- next button
|
||||
say_title(gameforge.new_quest_lv7._011_say_title) -- A Daughters Wedding
|
||||
say(gameforge.new_quest_lv7._030_say) -- Octavio heared that she is going to marry him there
|
||||
say(gameforge.new_quest_lv7._031_say) -- Go to the Old Lady and ask her to help with the preperations
|
||||
local doquest = select(gameforge.subquest_06._40_select, gameforge.subquest_12._50_select, gameforge.new_quest_lv75._290_2_select)
|
||||
if doquest == 1 then
|
||||
pc.setqf("soup", 0) -- hard reset flavour flag at quest start
|
||||
set_state(ask_oldwoman) -- Quest approved
|
||||
elseif doquest == 3 then -- abort permantenly
|
||||
say(gameforge.subquest_06._60_say)
|
||||
@@ -63,11 +83,12 @@
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
---- ask altefrau what to do --------------------------------------------------------------------------------
|
||||
state ask_oldwoman begin
|
||||
function get_old_woman_map()
|
||||
local empire = pc.get_empire()
|
||||
if empire == 1 then
|
||||
if empire == 1 then
|
||||
return 1
|
||||
elseif empire == 2 then
|
||||
return 21
|
||||
@@ -75,6 +96,7 @@
|
||||
return 41
|
||||
end
|
||||
end
|
||||
|
||||
function is_my_vil()
|
||||
if pc.get_map_index() == new_quest_lv7.get_old_woman_map() then
|
||||
return true
|
||||
@@ -84,71 +106,64 @@
|
||||
end
|
||||
|
||||
when enter or login begin
|
||||
new_quest_lv7_AmountNeed1 = 1
|
||||
new_quest_lv7_AmountNeed2 = 1
|
||||
new_quest_lv7_AmountNeed3 = 1
|
||||
new_quest_lv7_mob1 = 173 -- kill a 173#Hungriger Alpha-Wolf
|
||||
new_quest_lv7_mob2 = 174 -- kill a 174#Hungriger Blauwolf
|
||||
new_quest_lv7_mob3 = 175 -- kill a 175#Hungriger Alpha-Blauwolf
|
||||
-- Einige deser Mobs werden auch in der Level 7 Aufgabe verwendet, was dazu führt,
|
||||
-- dass diese dort nicht mehr hoch zählen wenn man sie tötet.
|
||||
new_quest_lv7_drop1 = 30169 -- Blutrote Blume
|
||||
new_quest_lv7_drop2 = 30170 -- Orangefarbene Blume
|
||||
new_quest_lv7_drop3 = 30171 -- Duftende gelbe Blume
|
||||
-- Einige deser Mobs werden auch in der Level 7 Aufgabe verwendet, was dazu führt,
|
||||
-- dass diese dort nicht mehr hoch zählen wenn man sie tötet.
|
||||
|
||||
-- BEGIN EDIT added by Arne 18Sept09, according to Mantis 0026063, REASON: No quest letter, no questbook entry
|
||||
send_letter(gameforge.new_quest_lv7._020_say_title) -- A Daughters Wedding
|
||||
q.start()
|
||||
q.set_title(gameforge.new_quest_lv7._020_say_title) -- A Daughters Wedding
|
||||
-- END EDIT
|
||||
|
||||
if new_quest_lv7.is_my_vil() then
|
||||
local v=find_npc_by_vnum(9006) -- Old Lady
|
||||
if 0==v then
|
||||
local v = find_npc_by_vnum(9006) -- Old Lady
|
||||
if 0 == v then
|
||||
else
|
||||
target.vid("__TARGET2__", v, gameforge.new_quest_lv7._040_target ) -- Old Lady
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- BEGIN EDIT added by Arne 18Sept09, according to Mantis 0026063, REASON: No questbook button
|
||||
-- BEGIN EDIT added by Arne 18Sept09, according to Mantis 0026063, REASON: No questbook button
|
||||
when button or info begin
|
||||
say_title(gameforge.new_quest_lv7._020_say_title) -- A Daughters Wedding
|
||||
say(gameforge.new_quest_lv7._041_say) -- goto old lady and ask her to help with the preperations
|
||||
say("")
|
||||
say(string.format(gameforge.new_quest_lv7._042_say, get_map_name_by_number(1))) -- where the old lady can be found
|
||||
-- FIX: correct map name based on player's empire
|
||||
say(string.format(gameforge.new_quest_lv7._042_say, get_map_name_by_number(new_quest_lv7.get_old_woman_map()))) -- where the old lady can be found
|
||||
end
|
||||
--END EDIT
|
||||
--END EDIT
|
||||
|
||||
when 9006.chat.gameforge.new_quest_lv7._020_say_title begin
|
||||
target.delete("__TARGET2__")
|
||||
say_title(gameforge.new_quest_lv7._012_say_title) -- yellow text headline
|
||||
say(gameforge.new_quest_lv7._051_say)
|
||||
wait()
|
||||
wait()
|
||||
say_title(gameforge.new_quest_lv7._012_say_title) -- yellow text headline
|
||||
say(gameforge.new_quest_lv7._052_say)
|
||||
-- "vom Bräutigam an seine Liebste überreicht" versteht das unsere Zielgruppe?
|
||||
wait()
|
||||
-- "vom Bräutigam an seine Liebste überreicht" versteht das unsere Zielgruppe?
|
||||
wait()
|
||||
say(gameforge.new_quest_lv7._054_say)
|
||||
say_reward(string.format("%s x", new_quest_lv7_AmountNeed1))
|
||||
say_item_vnum(new_quest_lv7_drop1) -- icon of item
|
||||
say_reward(string.format("%s x", NEED_RED))
|
||||
say_item_vnum(ITEM_FLOWER_RED) -- icon of item
|
||||
say_reward(gameforge.new_quest_lv7._055_say)
|
||||
say(mob_name(new_quest_lv7_mob1))
|
||||
wait()
|
||||
wait()
|
||||
say(gameforge.new_quest_lv7._056_say)
|
||||
say_reward(string.format("%s x", new_quest_lv7_AmountNeed2))
|
||||
say_item_vnum(new_quest_lv7_drop2) -- icon of item
|
||||
say_reward(string.format("%s x", NEED_ORANGE))
|
||||
say_item_vnum(ITEM_FLOWER_ORANGE) -- icon of item
|
||||
say_reward(gameforge.new_quest_lv7._055_say)
|
||||
say(mob_name(new_quest_lv7_mob2))
|
||||
wait()
|
||||
wait()
|
||||
say(gameforge.new_quest_lv7._056_say)
|
||||
say_reward(string.format("%s x", new_quest_lv7_AmountNeed3))
|
||||
say_item_vnum(new_quest_lv7_drop3) -- icon of item
|
||||
say_reward(string.format("%s x", NEED_YELLOW))
|
||||
say_item_vnum(ITEM_FLOWER_YELLOW) -- icon of item
|
||||
say_reward(gameforge.new_quest_lv7._055_say )
|
||||
say(mob_name(new_quest_lv7_mob3))
|
||||
--set flags:
|
||||
pc.setqf("collect_count_1",0) --Current number of items
|
||||
pc.setqf("collect_count_2",0) --Current number of items
|
||||
pc.setqf("collect_count_3",0) --Current number of items
|
||||
wait()
|
||||
wait()
|
||||
say_title(gameforge.new_quest_lv7._012_say_title)
|
||||
say(gameforge.new_quest_lv7._060_say)
|
||||
-- Wo ist die Schwester?
|
||||
@@ -156,23 +171,21 @@
|
||||
set_state(collect_flowers)
|
||||
end
|
||||
end
|
||||
|
||||
----- collect flowers -------------------------------------------------------------------------------------------------
|
||||
state collect_flowers begin
|
||||
-- BEGIN EDIT added by Arne 18Sept09, according to Mantis 0026063, REASON: No letter, questbook entry, button
|
||||
when enter or login begin
|
||||
new_quest_lv7_AmountNeed1 = 1
|
||||
new_quest_lv7_AmountNeed2 = 1
|
||||
new_quest_lv7_AmountNeed3 = 1
|
||||
new_quest_lv7_dropProb1 = 45
|
||||
new_quest_lv7_dropProb2 = 30
|
||||
new_quest_lv7_dropProb3 = 15
|
||||
new_quest_lv7_drop1 = 30169 -- Blutrote Blume
|
||||
new_quest_lv7_drop2 = 30170 -- Orangefarbene Blume
|
||||
new_quest_lv7_drop3 = 30171 -- Duftende gelbe Blume
|
||||
send_letter(gameforge.new_quest_lv7._020_say_title)
|
||||
q.start()
|
||||
q.set_title(gameforge.new_quest_lv7._020_say_title)
|
||||
|
||||
-- FIX: if the player already has all flowers, go directly to return_oldwoman
|
||||
if pc.count_item(ITEM_FLOWER_RED) >= NEED_RED and pc.count_item(ITEM_FLOWER_ORANGE) >= NEED_ORANGE and pc.count_item(ITEM_FLOWER_YELLOW) >= NEED_YELLOW then
|
||||
q.done()
|
||||
set_state(return_oldwoman)
|
||||
return
|
||||
end
|
||||
end
|
||||
--END EDIT
|
||||
|
||||
@@ -181,40 +194,48 @@
|
||||
-- itemicon vnum of flower used for icon
|
||||
function when_one_killed(neededAmount, dropProb, itemIcon)
|
||||
if pc.count_item(itemIcon) < neededAmount then
|
||||
local drop=math.random(1,100)
|
||||
local drop = number(1,100)
|
||||
if drop <= dropProb then -- probability if s.th. drops
|
||||
pc.give_item2(itemIcon) -- icon of item by vnum - Blutrote Blume
|
||||
-- EDIT Arne 18Sept09 moved q.done Reason: removed quest from book
|
||||
-- BEGIN EDIT added by Arne 18Sept09, according to Mantis 0026063, REASON: No arrow on old lady for flower return
|
||||
notice_multiline(gameforge.new_quest_lv7._088_notice, notice)
|
||||
if (pc.count_item(new_quest_lv7_drop3) == new_quest_lv7_AmountNeed3 and pc.count_item(new_quest_lv7_drop2) == new_quest_lv7_AmountNeed2 and pc.count_item(new_quest_lv7_drop1) == new_quest_lv7_AmountNeed1) then
|
||||
return true
|
||||
end
|
||||
--notice_multiline(gameforge.new_quest_lv7._088_notice, notice)
|
||||
if pc.count_item(ITEM_FLOWER_YELLOW) == NEED_YELLOW and pc.count_item(ITEM_FLOWER_ORANGE) == NEED_ORANGE and pc.count_item(ITEM_FLOWER_RED) == NEED_RED then
|
||||
return true
|
||||
end
|
||||
else
|
||||
notice_multiline(gameforge.new_quest_lv7._082_say, notice)
|
||||
end
|
||||
--notice_multiline(gameforge.new_quest_lv7._082_say, notice)
|
||||
end
|
||||
end
|
||||
|
||||
-- FIX: also check completion when there is no drop or flowers came from trade
|
||||
if pc.count_item(ITEM_FLOWER_YELLOW) >= NEED_YELLOW and pc.count_item(ITEM_FLOWER_ORANGE) >= NEED_ORANGE and pc.count_item(ITEM_FLOWER_RED) >= NEED_RED then
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
-------------- Blutrote Blume ------------------------------------------------------
|
||||
-- kill a 173#Hungriger Alpha-Wolf
|
||||
when 173.kill begin
|
||||
if new_quest_lv7.when_one_killed(new_quest_lv7_AmountNeed1, new_quest_lv7_dropProb1, new_quest_lv7_drop1) then
|
||||
if new_quest_lv7.when_one_killed(NEED_RED, DROP_RED, ITEM_FLOWER_RED) then
|
||||
q.done()
|
||||
set_state(return_oldwoman)
|
||||
end
|
||||
end
|
||||
|
||||
-------------- Orangefarbene Blume ------------------------------------------------------
|
||||
-- kill a 174#Hungriger Blauwolf
|
||||
when 174.kill begin
|
||||
if new_quest_lv7.when_one_killed(new_quest_lv7_AmountNeed2, new_quest_lv7_dropProb2, new_quest_lv7_drop2) then
|
||||
if new_quest_lv7.when_one_killed(NEED_ORANGE, DROP_ORANGE, ITEM_FLOWER_ORANGE) then
|
||||
q.done()
|
||||
set_state(return_oldwoman)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-------------- Duftende gelbe Blume ------------------------------------------------------
|
||||
-- kill a 175#Hungriger Alpha-Blauwolf
|
||||
when 175.kill begin
|
||||
if new_quest_lv7.when_one_killed(new_quest_lv7_AmountNeed3, new_quest_lv7_dropProb3, new_quest_lv7_drop3) then
|
||||
if new_quest_lv7.when_one_killed(NEED_YELLOW, DROP_YELLOW, ITEM_FLOWER_YELLOW) then
|
||||
q.done()
|
||||
set_state(return_oldwoman)
|
||||
end
|
||||
@@ -225,38 +246,28 @@
|
||||
when button or info begin
|
||||
say_title(gameforge.new_quest_lv7._020_say_title)
|
||||
say(gameforge.new_quest_lv7._092_say) -- collect flowers for the Bouquet
|
||||
if pc.count_item(new_quest_lv7_drop1) < new_quest_lv7_AmountNeed1 then
|
||||
say_reward(string.format(gameforge.new_quest_lv7._085_1_say_reward, new_quest_lv7_AmountNeed1 -
|
||||
pc.count_item(new_quest_lv7_drop1))) -- number of red flowers missing
|
||||
if pc.count_item(ITEM_FLOWER_RED) < NEED_RED then
|
||||
say_reward(string.format(gameforge.new_quest_lv7._085_1_say_reward, NEED_RED - pc.count_item(ITEM_FLOWER_RED))) -- number of red flowers missing
|
||||
end
|
||||
if pc.count_item(new_quest_lv7_drop2) < new_quest_lv7_AmountNeed2 then
|
||||
say_reward(string.format(gameforge.new_quest_lv7._085_2_say_reward, new_quest_lv7_AmountNeed2 -
|
||||
pc.count_item(new_quest_lv7_drop2))) -- number of orange flowers missing
|
||||
if pc.count_item(ITEM_FLOWER_ORANGE) < NEED_ORANGE then
|
||||
say_reward(string.format(gameforge.new_quest_lv7._085_2_say_reward, NEED_ORANGE - pc.count_item(ITEM_FLOWER_ORANGE))) -- number of orange flowers missing
|
||||
end
|
||||
if pc.count_item(new_quest_lv7_drop3) < new_quest_lv7_AmountNeed3 then
|
||||
say_reward(string.format(gameforge.new_quest_lv7._085_3_say_reward, new_quest_lv7_AmountNeed3 -
|
||||
pc.count_item(new_quest_lv7_drop3))) -- number of yellow flowers missing
|
||||
if pc.count_item(ITEM_FLOWER_YELLOW) < NEED_YELLOW then
|
||||
say_reward(string.format(gameforge.new_quest_lv7._085_3_say_reward, NEED_YELLOW - pc.count_item(ITEM_FLOWER_YELLOW))) -- number of yellow flowers missing
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
state return_oldwoman begin -- BEGIN EDIT added by Arne 18Sept09, according to Mantis 0026063, state needed to set up quest
|
||||
|
||||
when enter or login begin
|
||||
new_quest_lv7_AmountNeed1 = 1
|
||||
new_quest_lv7_AmountNeed2 = 1
|
||||
new_quest_lv7_AmountNeed3 = 1
|
||||
new_quest_lv7_drop1 = 30169 -- Blutrote Blume
|
||||
new_quest_lv7_drop2 = 30170 -- Orangefarbene Blume
|
||||
new_quest_lv7_drop3 = 30171 -- Duftende gelbe Blume
|
||||
local v=find_npc_by_vnum(9006)
|
||||
local v = find_npc_by_vnum(9006)
|
||||
send_letter(gameforge.new_quest_lv7._020_say_title)
|
||||
q.start()
|
||||
q.set_title(gameforge.new_quest_lv7._020_say_title)
|
||||
if 0==v then
|
||||
else
|
||||
target.vid("__TARGET6__", v, gameforge.new_quest_lv7._040_target)
|
||||
if 0 == v then
|
||||
else
|
||||
target.vid("__TARGET6__", v, gameforge.new_quest_lv7._040_target)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -264,26 +275,28 @@
|
||||
say_title(gameforge.new_quest_lv7._020_say_title)
|
||||
say(gameforge.new_quest_lv7._091_say) -- success return to old lady
|
||||
say("")
|
||||
say(string.format(gameforge.new_quest_lv7._042_say, get_map_name_by_number(1)))
|
||||
-- FIX: correct map name (same logic as in ask_oldwoman)
|
||||
say(string.format(gameforge.new_quest_lv7._042_say, get_map_name_by_number(new_quest_lv7.get_old_woman_map())))
|
||||
end
|
||||
--END EDIT
|
||||
--END EDIT
|
||||
|
||||
-------------- try to give old woman the flowers ---------------------
|
||||
when 9006.chat.gameforge.new_quest_lv7._020_say_title begin
|
||||
target.delete("__TARGET6__")
|
||||
say_title(gameforge.new_quest_lv7._012_say_title)
|
||||
if (pc.count_item(new_quest_lv7_drop1) < new_quest_lv7_AmountNeed1 or pc.count_item(new_quest_lv7_drop2) < new_quest_lv7_AmountNeed2 or pc.count_item(new_quest_lv7_drop3) < new_quest_lv7_AmountNeed3) then
|
||||
if pc.count_item(ITEM_FLOWER_RED) < NEED_RED or pc.count_item(ITEM_FLOWER_ORANGE) < NEED_ORANGE or pc.count_item(ITEM_FLOWER_YELLOW) < NEED_YELLOW then
|
||||
say(gameforge.new_quest_lv7._110_say)
|
||||
say_reward(string.format(gameforge.new_quest_lv7._085_say_reward, new_quest_lv7_AmountNeed1 - pc.count_item(new_quest_lv7_drop1)))
|
||||
say_reward(string.format(gameforge.new_quest_lv7._086_say_reward, new_quest_lv7_AmountNeed2 - pc.count_item(new_quest_lv7_drop2)))
|
||||
say_reward(string.format(gameforge.new_quest_lv7._087_say_reward, new_quest_lv7_AmountNeed3 - pc.count_item(new_quest_lv7_drop3)))
|
||||
-- FIX: avoid negative numbers if player has more flowers than needed
|
||||
say_reward(string.format(gameforge.new_quest_lv7._085_say_reward, math.max(0, NEED_RED - pc.count_item(ITEM_FLOWER_RED))))
|
||||
say_reward(string.format(gameforge.new_quest_lv7._086_say_reward, math.max(0, NEED_ORANGE - pc.count_item(ITEM_FLOWER_ORANGE))))
|
||||
say_reward(string.format(gameforge.new_quest_lv7._087_say_reward, math.max(0, NEED_YELLOW - pc.count_item(ITEM_FLOWER_YELLOW))))
|
||||
say(gameforge.new_quest_lv7._081_say)
|
||||
set_state(collect_flowers)
|
||||
else
|
||||
pc.remove_item(30169, 1)
|
||||
pc.remove_item(30170, 1)
|
||||
pc.remove_item(30171, 1)
|
||||
pc.give_item2(30172) -- flowers
|
||||
pc.remove_item(ITEM_FLOWER_RED, NEED_RED)
|
||||
pc.remove_item(ITEM_FLOWER_ORANGE, NEED_ORANGE)
|
||||
pc.remove_item(ITEM_FLOWER_YELLOW, NEED_YELLOW)
|
||||
pc.give_item2(ITEM_BOUQUET) -- flowers
|
||||
-- game.drop_item(30169, 1)
|
||||
say(gameforge.new_quest_lv7._115_say)
|
||||
-- hier fehlt info wie man in das reich kommt
|
||||
@@ -302,6 +315,7 @@
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--- go to twin sister of old woman in other kingdom---------------------------------------------------------------------------------------------------
|
||||
state find_empire begin
|
||||
when login or enter begin
|
||||
@@ -310,34 +324,36 @@
|
||||
q.start()
|
||||
q.set_title(gameforge.new_quest_lv7._020_say_title)
|
||||
-- END EDIT
|
||||
|
||||
new_quest_lv7_DestMapIndex = 99
|
||||
if pc.get_empire() == 1 then -- = Shinsoo
|
||||
new_quest_lv7_DestMapIndex = 3 -- = Yayang
|
||||
local v=find_npc_by_vnum(10001)
|
||||
if 0==v then
|
||||
local v = find_npc_by_vnum(10001)
|
||||
if 0 == v then
|
||||
else
|
||||
target.vid("__TARGET7__", v, gameforge.map_warp._190_select)
|
||||
end
|
||||
elseif pc.get_empire() == 2 then -- = Chunjo
|
||||
new_quest_lv7_DestMapIndex = 23 -- = Bokjung
|
||||
local v=find_npc_by_vnum(10003)
|
||||
if 0==v then
|
||||
local v = find_npc_by_vnum(10003)
|
||||
if 0 == v then
|
||||
else
|
||||
target.vid("__TARGET7__", v, gameforge.map_warp._210_select)
|
||||
end
|
||||
elseif pc.get_empire() == 3 then -- = Jinno
|
||||
new_quest_lv7_DestMapIndex = 43 -- = Bakra
|
||||
local v=find_npc_by_vnum(10005)
|
||||
if 0==v then
|
||||
local v = find_npc_by_vnum(10005)
|
||||
if 0 == v then
|
||||
else
|
||||
target.vid("__TARGET7__", v, gameforge.map_warp._230_select)
|
||||
end
|
||||
end
|
||||
|
||||
if pc.get_map_index() == new_quest_lv7_DestMapIndex then
|
||||
target.delete("__TARGET7__")
|
||||
notice_multiline(gameforge.new_quest_lv7._125_notice, notice)
|
||||
local v=find_npc_by_vnum(9006)
|
||||
if 0==v then
|
||||
--notice_multiline(gameforge.new_quest_lv7._125_notice, notice)
|
||||
local v = find_npc_by_vnum(9006)
|
||||
if 0 == v then
|
||||
else
|
||||
target.vid("__TARGET3__", v, gameforge.subquest_48._230_targetVid)
|
||||
end
|
||||
@@ -346,7 +362,6 @@
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
|
||||
say_title(gameforge.new_quest_lv7._020_say_title)
|
||||
say(gameforge.new_quest_lv7._131_say)
|
||||
if new_quest_lv7_DestMapIndex == 3 then
|
||||
@@ -358,25 +373,36 @@
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
------ find the sister of the old woman in a different empire ------------------------------------------------------------------------------------------------------
|
||||
state goto_oldwomans_sister begin
|
||||
when enter or login begin
|
||||
send_letter(gameforge.new_quest_lv7._020_say_title)
|
||||
q.start()
|
||||
q.set_title(gameforge.new_quest_lv7._020_say_title)
|
||||
|
||||
-- FIX: recompute destination map index to ensure correct map for the sister
|
||||
new_quest_lv7_DestMapIndex = 99
|
||||
if pc.get_empire() == 1 then -- = Shinsoo
|
||||
new_quest_lv7_DestMapIndex = 3 -- = Yayang
|
||||
elseif pc.get_empire() == 2 then -- = Chunjo
|
||||
new_quest_lv7_DestMapIndex = 23 -- = Bokjung
|
||||
elseif pc.get_empire() == 3 then -- = Jinno
|
||||
new_quest_lv7_DestMapIndex = 43 -- = Bakra
|
||||
end
|
||||
end
|
||||
|
||||
when 9006.chat.gameforge.new_quest_lv7._020_say_title begin
|
||||
if pc.count_item(30172) >= 1 then -- has flowers in inventory
|
||||
when 9006.chat.gameforge.new_quest_lv7._020_say_title with pc.get_map_index() == new_quest_lv7_DestMapIndex begin
|
||||
if pc.count_item(ITEM_BOUQUET) >= 1 then -- has flowers in inventory
|
||||
target.delete("__TARGET3__")
|
||||
say_title(gameforge.new_quest_lv7._020_say_title) -- yellow
|
||||
pc.remove_item(30172, pc.count_item(30172))
|
||||
pc.remove_item(ITEM_BOUQUET, pc.count_item(ITEM_BOUQUET))
|
||||
say_title(pc.get_name())
|
||||
say(gameforge.new_quest_lv7._140_say)
|
||||
say_title(gameforge.new_quest_lv7._012_say_title)
|
||||
say(gameforge.new_quest_lv7._140_say)
|
||||
say_title(gameforge.new_quest_lv7._012_say_title)
|
||||
say(gameforge.new_quest_lv7._141_say)
|
||||
wait()
|
||||
say_title(gameforge.new_quest_lv7._012_say_title)
|
||||
say_title(gameforge.new_quest_lv7._012_say_title)
|
||||
say(gameforge.new_quest_lv7._142_say)
|
||||
q.done()
|
||||
set_state(find_way_home)
|
||||
@@ -389,11 +415,13 @@
|
||||
set_state(ask_oldwoman)
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
q.set_title(gameforge.new_quest_lv7._020_say_title)
|
||||
say(gameforge.new_quest_lv7._145_say)
|
||||
end
|
||||
end
|
||||
|
||||
------ return to first village ------------------------------------------------------------------------------------------------------
|
||||
state find_way_home begin
|
||||
when login or enter begin
|
||||
@@ -405,31 +433,31 @@
|
||||
new_quest_lv7_HomeMapIndex = 99
|
||||
if pc.get_empire() == 1 then -- = Shinsoo
|
||||
new_quest_lv7_HomeMapIndex = 1 -- = Youngan
|
||||
local v=find_npc_by_vnum(10002)
|
||||
if 0==v then
|
||||
local v = find_npc_by_vnum(10002)
|
||||
if 0 == v then
|
||||
else
|
||||
target.vid("__TARGET7__", v, gameforge.map_warp._180_select)
|
||||
end
|
||||
elseif pc.get_empire() == 2 then -- = Chunjo
|
||||
new_quest_lv7_HomeMapIndex = 21 -- = Joan
|
||||
local v=find_npc_by_vnum(10004)
|
||||
if 0==v then
|
||||
local v = find_npc_by_vnum(10004)
|
||||
if 0 == v then
|
||||
else
|
||||
target.vid("__TARGET7__", v, gameforge.map_warp._200_select)
|
||||
end
|
||||
elseif pc.get_empire() == 3 then -- = Jinno
|
||||
new_quest_lv7_HomeMapIndex = 41 -- = Pyungmoo
|
||||
local v=find_npc_by_vnum(10006)
|
||||
if 0==v then
|
||||
local v = find_npc_by_vnum(10006)
|
||||
if 0 == v then
|
||||
else
|
||||
target.vid("__TARGET7__", v, gameforge.map_warp._220_select)
|
||||
end
|
||||
end
|
||||
if pc.get_map_index() == new_quest_lv7_HomeMapIndex then
|
||||
target.delete("__TARGET7__")
|
||||
notice_multiline(gameforge.new_quest_lv7._129_say, notice)
|
||||
local v=find_npc_by_vnum(20008)
|
||||
if 0==v then
|
||||
--notice_multiline(gameforge.new_quest_lv7._129_say, notice)
|
||||
local v = find_npc_by_vnum(20008)
|
||||
if 0 == v then
|
||||
else
|
||||
target.vid("__TARGET5__", v, gameforge.subquest_48._230_targetVid)
|
||||
end
|
||||
@@ -450,14 +478,14 @@
|
||||
say(gameforge.new_quest_lv7._137_say)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
------ invite ocatvio to the wedding ------------------------------------------------------------------------------------------------------
|
||||
state back_to_octavio begin
|
||||
when enter or login begin
|
||||
-- BEGIN EDIT added by Arne 18Sept09, according to Mantis 0026063, REASON: no quest, no letter
|
||||
local v=find_npc_by_vnum(20008)
|
||||
if 0==v then
|
||||
local v = find_npc_by_vnum(20008)
|
||||
if 0 == v then
|
||||
else
|
||||
target.vid("__TARGET5__", v, gameforge.new_quest_lv7._010_target)
|
||||
end
|
||||
@@ -466,7 +494,13 @@
|
||||
q.start()
|
||||
q.set_title(gameforge.new_quest_lv7._020_say_title)
|
||||
-- END EDIT
|
||||
soup = false
|
||||
|
||||
-- FIX: keep soup flag persistent via quest flag
|
||||
if pc.getqf("soup") == 1 then
|
||||
soup = true
|
||||
else
|
||||
soup = false
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
@@ -474,7 +508,6 @@
|
||||
say(gameforge.new_quest_lv7._129_say)
|
||||
end
|
||||
|
||||
|
||||
when 20008.chat.gameforge.new_quest_lv7._020_say_title begin
|
||||
target.delete("__TARGET5__")
|
||||
say_title(gameforge.new_quest_lv7._020_say_title)
|
||||
@@ -486,108 +519,115 @@
|
||||
say(gameforge.new_quest_lv7._152_say)
|
||||
|
||||
-- random reward
|
||||
local reward=new_quest_lv7.reward()
|
||||
local reward_exp=new_quest_lv7.reward_exp()
|
||||
local reward = new_quest_lv7.reward()
|
||||
local reward_exp = new_quest_lv7.reward_exp()
|
||||
|
||||
say_reward(string.format(gameforge.new_quest_lv7._154_say_reward,reward_exp))
|
||||
say_reward(string.format(gameforge.new_quest_lv7._155_say_reward,reward))
|
||||
say_reward(string.format(gameforge.new_quest_lv7._154_say_reward, reward_exp))
|
||||
say_reward(string.format(gameforge.new_quest_lv7._155_say_reward, reward))
|
||||
|
||||
pc.give_exp2(new_quest_lv7.reward_exp())
|
||||
pc.change_money(new_quest_lv7.reward())
|
||||
-- FIX: use the same values for the actual reward
|
||||
pc.give_exp2(reward_exp)
|
||||
pc.change_money(reward)
|
||||
|
||||
local reward_item="0"
|
||||
if pc.job==0 then
|
||||
local r=number(1,10)
|
||||
if r==1 then
|
||||
reward_item="00013"
|
||||
elseif r==2 then
|
||||
reward_item="00023"
|
||||
elseif r==3 then
|
||||
reward_item="00033"
|
||||
elseif r==4 then
|
||||
reward_item="00043"
|
||||
elseif r==5 then
|
||||
reward_item="00053"
|
||||
elseif r==6 then
|
||||
reward_item="03003"
|
||||
elseif r==7 then
|
||||
reward_item="03013"
|
||||
elseif r==8 then
|
||||
reward_item="03023"
|
||||
elseif r==9 then
|
||||
reward_item="03033"
|
||||
elseif r==10 then
|
||||
reward_item="03043"
|
||||
pc.setqf("soup", 0) -- reset flavour flag after success
|
||||
|
||||
local reward_item = "0"
|
||||
local job = pc.get_job()
|
||||
if job == 0 then
|
||||
local r = number(1,10)
|
||||
if r == 1 then
|
||||
reward_item = "00013"
|
||||
elseif r == 2 then
|
||||
reward_item = "00023"
|
||||
elseif r == 3 then
|
||||
reward_item = "00033"
|
||||
elseif r == 4 then
|
||||
reward_item = "00043"
|
||||
elseif r == 5 then
|
||||
reward_item = "00053"
|
||||
elseif r == 6 then
|
||||
reward_item = "03003"
|
||||
elseif r == 7 then
|
||||
reward_item = "03013"
|
||||
elseif r == 8 then
|
||||
reward_item = "03023"
|
||||
elseif r == 9 then
|
||||
reward_item = "03033"
|
||||
elseif r == 10 then
|
||||
reward_item = "03043"
|
||||
end
|
||||
elseif pc.job==1 then
|
||||
local r=number(1,10)
|
||||
if r==1 then
|
||||
reward_item="01003"
|
||||
elseif r==2 then
|
||||
reward_item="04003"
|
||||
elseif r==3 then
|
||||
reward_item="01013"
|
||||
elseif r==4 then
|
||||
reward_item="04013"
|
||||
elseif r==5 then
|
||||
reward_item="01023"
|
||||
elseif r==6 then
|
||||
reward_item="02003"
|
||||
elseif r==7 then
|
||||
reward_item="02013"
|
||||
elseif r==8 then
|
||||
reward_item="02023"
|
||||
elseif r==9 then
|
||||
reward_item="02033"
|
||||
elseif r==10 then
|
||||
reward_item="2043"
|
||||
elseif job == 1 then
|
||||
local r = number(1,10)
|
||||
if r == 1 then
|
||||
reward_item = "01003"
|
||||
elseif r == 2 then
|
||||
reward_item = "04003"
|
||||
elseif r == 3 then
|
||||
reward_item = "01013"
|
||||
elseif r == 4 then
|
||||
reward_item = "04013"
|
||||
elseif r == 5 then
|
||||
reward_item = "01023"
|
||||
elseif r == 6 then
|
||||
reward_item = "02003"
|
||||
elseif r == 7 then
|
||||
reward_item = "02013"
|
||||
elseif r == 8 then
|
||||
reward_item = "02023"
|
||||
elseif r == 9 then
|
||||
reward_item = "02033"
|
||||
elseif r == 10 then
|
||||
reward_item = "02043"
|
||||
end
|
||||
elseif pc.job==2 then
|
||||
local r=number(1, 6)
|
||||
if r==1 then
|
||||
reward_item="00013"
|
||||
elseif r==2 then
|
||||
reward_item="00023"
|
||||
elseif r==3 then
|
||||
reward_item="00033"
|
||||
elseif r==4 then
|
||||
reward_item="00043"
|
||||
elseif r==5 then
|
||||
reward_item="00053"
|
||||
elseif r==6 then
|
||||
reward_item="00053"
|
||||
elseif job == 2 then
|
||||
local r = number(1, 6)
|
||||
if r == 1 then
|
||||
reward_item = "00013"
|
||||
elseif r == 2 then
|
||||
reward_item = "00023"
|
||||
elseif r == 3 then
|
||||
reward_item = "00033"
|
||||
elseif r == 4 then
|
||||
reward_item = "00043"
|
||||
elseif r == 5 then
|
||||
reward_item = "00053"
|
||||
elseif r == 6 then
|
||||
reward_item = "00053"
|
||||
end
|
||||
elseif pc.job==3 then
|
||||
local r=number(1, 8)
|
||||
if r==1 then
|
||||
reward_item="05003"
|
||||
elseif r==2 then
|
||||
reward_item="05013"
|
||||
elseif r==3 then
|
||||
reward_item="05023"
|
||||
elseif r==4 then
|
||||
reward_item="07003"
|
||||
elseif r==5 then
|
||||
reward_item="07013"
|
||||
elseif r==6 then
|
||||
reward_item="07023"
|
||||
elseif r==7 then
|
||||
reward_item="07033"
|
||||
elseif r==8 then
|
||||
reward_item="07043"
|
||||
elseif job == 3 then
|
||||
local r = number(1, 8)
|
||||
if r == 1 then
|
||||
reward_item = "05003"
|
||||
elseif r == 2 then
|
||||
reward_item = "05013"
|
||||
elseif r == 3 then
|
||||
reward_item = "05023"
|
||||
elseif r == 4 then
|
||||
reward_item = "07003"
|
||||
elseif r == 5 then
|
||||
reward_item = "07013"
|
||||
elseif r == 6 then
|
||||
reward_item = "07023"
|
||||
elseif r == 7 then
|
||||
reward_item = "07033"
|
||||
elseif r == 8 then
|
||||
reward_item = "07043"
|
||||
end
|
||||
end
|
||||
|
||||
if reward_item != "0" then
|
||||
wait()
|
||||
say_reward(gameforge.new_quest_lv7._153_say_reward)
|
||||
say_item_vnum(reward_item)
|
||||
pc.give_item2(reward_item,1)
|
||||
end
|
||||
q.done()
|
||||
set_state(__COMPLETE__)
|
||||
else
|
||||
say(gameforge.new_quest_lv7._160_say)
|
||||
say(gameforge.new_quest_lv7._165_say)
|
||||
soup = true
|
||||
pc.setqf("soup", 1) -- FIX: remember that player talked to the wrong Octavio
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -598,6 +638,7 @@
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
------ complete ------------------------------------------------------------------------------------------------------
|
||||
state __COMPLETE__ begin
|
||||
when button or info begin
|
||||
|
||||
@@ -104,7 +104,7 @@ def Replace(lines, parameter_table, keys):
|
||||
else:
|
||||
tokens = my_split_with_seps(
|
||||
s,
|
||||
["\t", ",", " ", "=", "[", "]", "-", "<", ">", "~", "!", ".", "(", ")"],
|
||||
["\t", ",", " ", "=", "[", "]", "-", "<", ">", "~", "!", ".", "(", ")", "\r", "\n"],
|
||||
)
|
||||
for key in keys:
|
||||
try:
|
||||
|
||||
@@ -65,7 +65,7 @@ quest skill_group begin
|
||||
say(gameforge.skill_group._170_sayReward)
|
||||
end
|
||||
|
||||
select(gameforge.locale.confirm)
|
||||
select(gameforge.locale.confirm)
|
||||
setskin(NOWINDOW)
|
||||
end
|
||||
|
||||
@@ -86,15 +86,14 @@ quest skill_group begin
|
||||
elseif pc_job==3 then
|
||||
say_reward(gameforge.skill_group._240_sayReward)
|
||||
end
|
||||
return
|
||||
return
|
||||
end
|
||||
|
||||
say_title(gameforge.skill_group._250_sayTitle)
|
||||
say(gameforge.skill_group._260_say)
|
||||
say_reward(gameforge.skill_group._270_sayReward)
|
||||
|
||||
|
||||
local s= select(gameforge.skill_group._280_select, gameforge.skill_group._290_select)
|
||||
local s= select(gameforge.skill_group._280_select, gameforge.skill_group._290_select)
|
||||
|
||||
if 2 == s then
|
||||
return
|
||||
@@ -108,7 +107,7 @@ quest skill_group begin
|
||||
set_state("start")
|
||||
pc.set_skill_group(1) -- !!!
|
||||
pc.clear_skill()
|
||||
char_log(0, "CLEAR_SKILL", "Fertigkeit nach Lehrer löschen")
|
||||
char_log(0, "CLEAR_SKILL", "Fertigkeit nach Fertigkeitsmeister löschen")
|
||||
|
||||
say_title(gameforge.skill_group._310_sayTitle)
|
||||
|
||||
@@ -127,27 +126,27 @@ quest skill_group begin
|
||||
target.delete("teacher2")
|
||||
|
||||
local pc_job=pc.get_job()
|
||||
if pc_job != 0 then
|
||||
say_title(gameforge.skill_group._370_sayTitle)
|
||||
if pc_job != 0 then -- !!!
|
||||
say_title(gameforge.skill_group._190_sayTitle)
|
||||
|
||||
say(gameforge.skill_group._380_say)
|
||||
if pc_job==0 then
|
||||
say_reward(gameforge.skill_group._210_sayReward)
|
||||
elseif pc_job==1 then
|
||||
say_reward(gameforge.skill_group._390_sayReward)
|
||||
say_reward(gameforge.skill_group._220_sayReward)
|
||||
elseif pc_job==2 then
|
||||
say_reward(gameforge.skill_group._230_sayReward)
|
||||
elseif pc_job==3 then
|
||||
say_reward(gameforge.skill_group._240_sayReward)
|
||||
end
|
||||
return
|
||||
return
|
||||
end
|
||||
|
||||
say_title(gameforge.skill_group._400_sayTitle)
|
||||
say(gameforge.skill_group._410_say)
|
||||
say_reward(gameforge.skill_group._270_sayReward)
|
||||
|
||||
local s= select(gameforge.skill_group._280_select, gameforge.skill_group._290_select)
|
||||
local s= select(gameforge.skill_group._280_select, gameforge.skill_group._290_select)
|
||||
|
||||
if 2 == s then
|
||||
return
|
||||
@@ -161,8 +160,7 @@ quest skill_group begin
|
||||
set_state("start")
|
||||
pc.set_skill_group(2)
|
||||
pc.clear_skill()
|
||||
char_log(0, "CLEAR_SKILL", "Fertigkeit nach Fertigkeitsmeister löschen")
|
||||
|
||||
char_log(0, "CLEAR_SKILL", "Fertigkeit nach Fertigkeitsmeister löschen")
|
||||
|
||||
say_title(gameforge.skill_group._420_sayTitle)
|
||||
|
||||
@@ -181,7 +179,6 @@ quest skill_group begin
|
||||
when teacher3.target.click or skill_group1_3.chat.gameforge.skill_group._430_npcChat or skill_group2_3.chat.gameforge.skill_group._430_npcChat or skill_group3_3.chat.gameforge.skill_group._430_npcChat begin
|
||||
target.delete("teacher3")
|
||||
|
||||
|
||||
local pc_job=pc.get_job()
|
||||
if pc_job != 1 then -- !!!
|
||||
say_title(gameforge.skill_group._190_sayTitle)
|
||||
@@ -196,13 +193,13 @@ quest skill_group begin
|
||||
elseif pc_job==3 then
|
||||
say_reward(gameforge.skill_group._240_sayReward)
|
||||
end
|
||||
return
|
||||
return
|
||||
end
|
||||
say_title(gameforge.skill_group._450_sayTitle)
|
||||
say(gameforge.skill_group._460_say)
|
||||
say_reward(gameforge.skill_group._470_sayReward)
|
||||
|
||||
local s= select(gameforge.skill_group._280_select, gameforge.skill_group._290_select)
|
||||
local s= select(gameforge.skill_group._280_select, gameforge.skill_group._290_select)
|
||||
|
||||
if 2 == s then
|
||||
return
|
||||
@@ -216,13 +213,13 @@ quest skill_group begin
|
||||
set_state("start")
|
||||
pc.set_skill_group(1) -- !!!
|
||||
pc.clear_skill()
|
||||
char_log(0, "CLEAR_SKILL", "Fertigkeit nach Fertigkeitsmeister löschen")
|
||||
char_log(0, "CLEAR_SKILL", "Fertigkeit nach Fertigkeitsmeister löschen")
|
||||
|
||||
say_title(gameforge.skill_group._480_sayTitle)
|
||||
|
||||
say(gameforge.skill_group._320_say)
|
||||
if not pc.is_clear_skill_group() then
|
||||
say(gameforge.skill_group._490_say)
|
||||
say(gameforge.skill_group._330_say)
|
||||
say_title(gameforge.buy_fishrod._210_sayTitle)
|
||||
say_reward(gameforge.skill_group._340_sayReward)
|
||||
else
|
||||
@@ -249,7 +246,7 @@ quest skill_group begin
|
||||
elseif pc_job==3 then
|
||||
say_reward(gameforge.skill_group._240_sayReward)
|
||||
end
|
||||
return
|
||||
return
|
||||
end
|
||||
|
||||
say_title(gameforge.skill_group._520_sayTitle)
|
||||
@@ -268,7 +265,7 @@ quest skill_group begin
|
||||
set_state("start")
|
||||
pc.set_skill_group(2) -- !!!
|
||||
pc.clear_skill()
|
||||
char_log(0, "CLEAR_SKILL", "Fertigkeit nach Fertigkeitsmeister löschen")
|
||||
char_log(0, "CLEAR_SKILL", "Fertigkeit nach Fertigkeitsmeister löschen")
|
||||
|
||||
say_title(gameforge.skill_group._540_sayTitle)
|
||||
|
||||
@@ -289,7 +286,7 @@ quest skill_group begin
|
||||
|
||||
local pc_job=pc.get_job()
|
||||
if pc_job != 2 then -- !!!
|
||||
say_title(gameforge.skill_group._370_sayTitle)
|
||||
say_title(gameforge.skill_group._190_sayTitle)
|
||||
|
||||
say(gameforge.skill_group._560_say)
|
||||
if pc_job==0 then
|
||||
@@ -320,20 +317,18 @@ quest skill_group begin
|
||||
set_state("start")
|
||||
pc.set_skill_group(1) -- !!!
|
||||
pc.clear_skill()
|
||||
char_log(0, "CLEAR_SKILL", "Fertigkeit nach Fertigkeitsmeister löschen")
|
||||
|
||||
char_log(0, "CLEAR_SKILL", "Fertigkeit nach Fertigkeitsmeister löschen")
|
||||
|
||||
say_title(gameforge.skill_group._600_sayTitle)
|
||||
|
||||
say(gameforge.skill_group._320_say)
|
||||
if not pc.is_clear_skill_group() then
|
||||
--- l
|
||||
say(gameforge.skill_group._330_say)
|
||||
say_title(gameforge.buy_fishrod._210_sayTitle)
|
||||
say_reward(gameforge.skill_group._340_sayReward)
|
||||
else
|
||||
say_reward(gameforge.skill_group._340_sayReward)
|
||||
else
|
||||
say_reward(gameforge.skill_group._350_sayReward)
|
||||
end
|
||||
end
|
||||
clear_letter()
|
||||
end
|
||||
|
||||
@@ -355,14 +350,14 @@ quest skill_group begin
|
||||
elseif pc_job==3 then
|
||||
say_reward(gameforge.skill_group._240_sayReward)
|
||||
end
|
||||
return
|
||||
return
|
||||
end
|
||||
|
||||
say_title(gameforge.skill_group._630_sayTitle)
|
||||
say(gameforge.skill_group._640_say)
|
||||
say_reward(gameforge.skill_group._590_sayReward)
|
||||
|
||||
local s= select(gameforge.skill_group._280_select, gameforge.skill_group._290_select)
|
||||
local s= select(gameforge.skill_group._280_select, gameforge.skill_group._290_select)
|
||||
|
||||
if 2 == s then
|
||||
return
|
||||
@@ -376,19 +371,18 @@ quest skill_group begin
|
||||
set_state("start")
|
||||
pc.set_skill_group(2) -- !!!
|
||||
pc.clear_skill()
|
||||
char_log(0, "CLEAR_SKILL", "Fertigkeit nach Fertigkeitsmeister löschen")
|
||||
char_log(0, "CLEAR_SKILL", "Fertigkeit nach Fertigkeitsmeister löschen")
|
||||
|
||||
say_title(gameforge.skill_group._650_sayTitle)
|
||||
|
||||
say(gameforge.skill_group._320_say)
|
||||
if not pc.is_clear_skill_group() then
|
||||
--- l
|
||||
say(gameforge.skill_group._330_say)
|
||||
say_title(gameforge.buy_fishrod._210_sayTitle)
|
||||
say_reward(gameforge.skill_group._340_sayReward)
|
||||
else
|
||||
say_reward(gameforge.skill_group._340_sayReward)
|
||||
else
|
||||
say_reward(gameforge.skill_group._350_sayReward)
|
||||
end
|
||||
end
|
||||
clear_letter()
|
||||
end
|
||||
|
||||
@@ -410,40 +404,39 @@ quest skill_group begin
|
||||
elseif pc_job==3 then
|
||||
say_reward(gameforge.skill_group._240_sayReward)
|
||||
end
|
||||
return
|
||||
return
|
||||
end
|
||||
|
||||
say_title(gameforge.skill_group._680_sayTitle)
|
||||
say(gameforge.skill_group._690_say)
|
||||
say_reward(gameforge.skill_group._700_sayReward)
|
||||
|
||||
local s= select(gameforge.skill_group._280_select, gameforge.skill_group._290_select)
|
||||
local s= select(gameforge.skill_group._280_select, gameforge.skill_group._290_select)
|
||||
|
||||
if 2 == s then
|
||||
return
|
||||
end
|
||||
|
||||
if pc.get_job()!=3 or pc.get_skill_group()!=0 then
|
||||
test_chat(string.format(gameforge.skill_group._300_chat, bool_to_str(npc_is_same_job()).." pc.get_skill_group:"..pc.get_skill_group().."pc_job:"..pc.get_job()))
|
||||
test_chat(string.format(gameforge.skill_group._300_chat, bool_to_str(npc_is_same_job()).."pc.get_skill_group:"..pc.get_skill_group().."pc_job:"..pc.get_job()))
|
||||
return
|
||||
end
|
||||
|
||||
set_state("start")
|
||||
pc.set_skill_group(1) -- !!!
|
||||
pc.clear_skill()
|
||||
char_log(0, "CLEAR_SKILL", "Fertigkeit nach Fertigkeitsmeister löschen")
|
||||
char_log(0, "CLEAR_SKILL", "Fertigkeit nach Fertigkeitsmeister löschen")
|
||||
|
||||
say_title(gameforge.skill_group._710_sayTitle)
|
||||
|
||||
say(gameforge.skill_group._320_say)
|
||||
if not pc.is_clear_skill_group() then
|
||||
--- l
|
||||
say(gameforge.skill_group._330_say)
|
||||
say_title(gameforge.buy_fishrod._210_sayTitle)
|
||||
say_reward(gameforge.skill_group._340_sayReward)
|
||||
else
|
||||
say_reward(gameforge.skill_group._340_sayReward)
|
||||
else
|
||||
say_reward(gameforge.skill_group._350_sayReward)
|
||||
end
|
||||
end
|
||||
clear_letter()
|
||||
end
|
||||
|
||||
@@ -468,7 +461,6 @@ quest skill_group begin
|
||||
return
|
||||
end
|
||||
|
||||
|
||||
say_title(gameforge.skill_group._740_sayTitle)
|
||||
say(gameforge.skill_group._750_say)
|
||||
say_reward(gameforge.skill_group._700_sayReward)
|
||||
@@ -485,19 +477,18 @@ quest skill_group begin
|
||||
set_state("start")
|
||||
pc.set_skill_group(2) -- !!!
|
||||
pc.clear_skill()
|
||||
char_log(0, "CLEAR_SKILL", "Fertigkeit nach Fertigkeitsmeister löschen")
|
||||
char_log(0, "CLEAR_SKILL", "Fertigkeit nach Fertigkeitsmeister löschen")
|
||||
|
||||
say_title(gameforge.skill_group._760_sayTitle)
|
||||
|
||||
say(gameforge.skill_group._320_say)
|
||||
if not pc.is_clear_skill_group() then
|
||||
--- l
|
||||
say(gameforge.skill_group._330_say)
|
||||
say_title(gameforge.buy_fishrod._210_sayTitle)
|
||||
say_reward(gameforge.skill_group._340_sayReward)
|
||||
else
|
||||
say_reward(gameforge.skill_group._340_sayReward)
|
||||
else
|
||||
say_reward(gameforge.skill_group._350_sayReward)
|
||||
end
|
||||
end
|
||||
clear_letter()
|
||||
end
|
||||
|
||||
|
||||
@@ -129,7 +129,7 @@ quest subquest_6 begin
|
||||
target.delete("__TARGET2__")
|
||||
if pc.count_item(30132) >= 1 then
|
||||
pc.setqf("ironore_done", 1)
|
||||
pc.setqf("asked_20011", 1)
|
||||
pc.setqf("asked_20011", 0)
|
||||
pc.remove_item("30132", 1)
|
||||
|
||||
say_title(gameforge.main_quest_lv30._40_sayTitle)
|
||||
|
||||
@@ -7500,11 +7500,11 @@ gameforge.subquest_06._226_sayReward = "Yonah has given you the Coal. "
|
||||
gameforge.subquest_06._230_targetVid = "Go to Octavio "
|
||||
gameforge.subquest_06._240_targetVid = "Go to Uriel. "
|
||||
gameforge.subquest_06._250_targetVid = "Go to Yonah. "
|
||||
gameforge.subquest_06._260_npcChat = "Ich brauche Eisenerz "
|
||||
gameforge.subquest_06._260_npcChat = "I need Iron Ore "
|
||||
gameforge.subquest_06._270_say = "Thank you for bringing me my book back! Now I can[ENTER]continue my research. Here, take some Iron Ore.[ENTER]Use it well. "
|
||||
gameforge.subquest_06._280_say = "You need Iron Ore? I can give you some. But I do[ENTER]have a favour to ask you: I recently lost a book[ENTER]while I was being chased by a pack of Wild Dogs.[ENTER]I think those Wild Dogs must have my book. Bring[ENTER]it back to me and then I'll give you some Iron[ENTER]Ore. "
|
||||
gameforge.subquest_06._285_say = "Uriel will give you Iron Ore if you get his book[ENTER]back from the Wild Dogs. "
|
||||
gameforge.subquest_06._290_npcChat = "Ich brauche Eisenerz "
|
||||
gameforge.subquest_06._290_npcChat = "I need Iron Ore "
|
||||
gameforge.subquest_06._300_say = "More Iron Ore? I've already given you some. Now I[ENTER]don't have any left. "
|
||||
gameforge.subquest_06._30_say = "Could you help me? Thank you for doing my[ENTER]daughter a favour. I need to ask you for a favour[ENTER]now. I have asked the village Blacksmith to[ENTER]produce some armour, but I haven't heard anything[ENTER]from him. Could you find out how he's getting on[ENTER]with it? "
|
||||
gameforge.subquest_06._310_npcChat = "I need Leather. "
|
||||
@@ -7691,7 +7691,7 @@ gameforge.subquest_13._100_targetVid = "Go to Ariyoung "
|
||||
gameforge.subquest_13._10_targetVid = "Materials for making weapons. "
|
||||
gameforge.subquest_13._110_targetVid = "Go to Ah-Yu. "
|
||||
gameforge.subquest_13._120_sayReward = "The Weapon Shop Dealer needs your help. Get Iron[ENTER]Ore from Uriel and Linen from Ariyoung for him. "
|
||||
gameforge.subquest_13._130_npcChat = "Ich brauche Eisenerz "
|
||||
gameforge.subquest_13._130_npcChat = "I need Iron Ore "
|
||||
gameforge.subquest_13._140_say = "You need Iron Ore? I could give you some if you[ENTER]do me a favour. "
|
||||
gameforge.subquest_13._150_say = "I dropped something when I had to run for my life[ENTER]from the tigers: It's a bundle containing[ENTER]important books, bound together with some cloth.[ENTER]If I don't have them, I can't continue my[ENTER]research on the Metin Stones. Bring me the[ENTER]Package and you will get some ore from me. "
|
||||
gameforge.subquest_13._160_npcChat = "I have your package. "
|
||||
|
||||
15
sql/database_create/database_create.sql
Normal file
15
sql/database_create/database_create.sql
Normal file
@@ -0,0 +1,15 @@
|
||||
CREATE DATABASE IF NOT EXISTS account;
|
||||
CREATE DATABASE IF NOT EXISTS common;
|
||||
CREATE DATABASE IF NOT EXISTS log;
|
||||
CREATE DATABASE IF NOT EXISTS player;
|
||||
CREATE DATABASE IF NOT EXISTS hotbackup;
|
||||
|
||||
CREATE USER IF NOT EXISTS 'mt2'@'localhost' IDENTIFIED BY 'mt2@pw';
|
||||
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON `account`.* TO 'mt2'@'localhost';
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON `common`.* TO 'mt2'@'localhost';
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON `log`.* TO 'mt2'@'localhost';
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON `player`.* TO 'mt2'@'localhost';
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON `hotbackup`.* TO 'mt2'@'localhost';
|
||||
|
||||
FLUSH PRIVILEGES;
|
||||
Reference in New Issue
Block a user