Dev.Ri3o
23-11-2016, 02:05 PM
http://www4.0zz0.com/2015/11/27/18/243536469.gif (https://www.0zz0.com)
http://www4.0zz0.com/2015/11/27/18/884808031.gif (https://www.0zz0.com)
http://www4.0zz0.com/2015/11/27/18/702514124.gif (https://www.0zz0.com)
Vsro Quests
http://www4.0zz0.com/2015/11/27/18/171651594.gif (https://www.0zz0.com)
طبعا ال Quest حاجة مهمة فى كل سيرفر وهى من الحاجات اللى بتخلى السيرفر ممتع جدا خاصة لو ال Quest مربوطة ببعض حبيت اعمل موضوع عن ال Quest وتجميعة من ال Scripts و ال System بتاع ال Quests وكمان شارح ازاى تعمل Mix لل Systems كلها فى System واحد وكمان ازاى تربط Quest بالتانية سواء كانت Deliver او Gather item
http://www4.0zz0.com/2015/11/27/18/171651594.gif (https://www.0zz0.com)
الموضوع بينقسم لجزئين
الجزء الاول هو شرح مباشر ل Quests و ال Script و ال System
الجزء التانى هو شرح ازاى تربط ال Quests ببعضها وازاى تعمل 2 Quest او حتى 546 Quest من نفس النوع ورا بعض او من انواع مختلفة
نبدأ بالجزء الاول
اول حاجة هتنزل دول
هنا (https://mega.nz/file/wUEiUR5D#6bcbIc2Qz4AXnNp8k9co0LKDRBrj6ZDTt5wnh9GPH d0)
دى ملفات ال Quests بيبقى مسارها lua دى عادى مش محتاجة برنامج تقدر تفتحها بال Notepad العادى Click يمين وبعدها Edit
بعد اما تنزل ملفات ال Quests هتفتح Folder اسمو Vsro وهتاخد اى ملف Copy وتعملو تانى Past وبعد كدة تغير اسمو للانت عايزو بس تخلى السم يبدأ ب SN_QNO وبعدها الاسم اللى انت عايزو
ولنفرض مثلا SN_QNO_WATCH_DOGS
هتفتح ملف ال Script ونبدا نعدل
دى مجموعة من ال Scripts بكذا System وكمان فى شرح ازاى تعمل Mix ما بينهم
http://www4.0zz0.com/2015/11/27/18/171651594.gif (https://www.0zz0.com)
1-KillMonster Script
http://www14.0zz0.com/2016/11/23/22/354440419.jpg (https://www.0zz0.com)
function QNO_TEST_QUEST() -- you should match this with your filename!
QUESTID = LuaGetQuestID("QNO_TEST_QUEST") -- IMPORTANT: must match with the name in your database
LuaSetStartCodition(2, QSC_QUEST, QSC_LEVEL, 1, 1)
QM_CONVERSATION = 1
LuaSetStartMethod(QM_CONVERSATION, 1, "NPC_CH_SMITH")
LuaInsertMissionOrCompleteNpc("NPC_CH_SMITH")
LuaQuestInsertNpc(1, "NPC_CH_SMITH")
LuaSetAchievementLimit(1)
LuaSetMissionDataSize(QUESTID, 1)
LuaSetMissionData_EX(QUESTID, 0, MISSION_TYPE_KILL_MONSTER, "SN_CON_QNO_TEST_QUEST", 1, "MOB_CH_MANGNYANG", 0, 20, 0, 1)
InsertQuestMenuStringList("NPC_CH_SMITH", 8, "BASIC_MENUSTRING_GREETING", "SN_NPC_CH_POTION_QS", "BASIC_MENUSTRING_REQUEST_ACCEPT_QUEST", "SN_TALK_QNO_TEST_QUEST_01", "BASIC_MENUSTRING_AT_ACCEPT", "SN_TALK_QNO_TEST_QUEST_02", "BASIC_MENUSTRING_AT_DENY", "SN_TALK_QNO_TEST_QUEST_03", "BASIC_MENUSTRING_NOT_ACHIEVED", "SN_TALK_QNO_TEST_QUEST_04", "BASIC_MENUSTRING_INVENTORY_FULL", "SN_TALK_QNO_TEST_QUEST_05", "BASIC_MENUSTRING_ACHIEVED", "SN_TALK_QNO_TEST_QUEST_06", "BASIC_MENUSTRING_ACHIEVED_NOW", "SN_TALK_QNO_TEST_QUEST_07")
LuaSetMissionCompleteNum(0)
PAY_ITEM_METHOD_EXACT = 1
LuaSetAchievedItem(1, 7200, 0, 0, 1, "ITEM_MALL_GLOBAL_CHATTING", 10)
LuaSetAchievedSkillPont(0)
end
اول حاجة عند ال Function و ال QuestID هتكتب اسم ال Quest بتاعتك اللى هو اسم الملف SN_QNO_WATCH_DOGS
وعند LuaSetStartCodition تكتب ال lvl اللى المفرضو ال Char يوصلو عشان يقدر يعمل ال Quest
وعند LuaSetStartMethod و LuaInsertMissionOrCompleteNpc وLuaQuestInsertNpc
هتكتب اسم ال NPC اللى هيبقى عندها ال Quest
وبالنسبة ل
LuaSetAchievementLimit(1)
دى معناها ان ال Quest دى هتتعمل مرة واحدة بس يعنى ال Char هيعملها ومش هيفها تانى خالص لو انت عايزها على طول شيل السطر
LuaSetAchievementLimit(1)
نيجى عند LuaSetMissionDataSize دى عدد ال Mission اللى ال Char يعملها من نفس النوع يعنى ايه من النفس النوع؟ يعنى لو هو SCript KillMonster يبقى كذا KillMonster Quest
لو انت عايز Mission واحد هتخلى الرقم بتاع LuaSetMissionDataSize اعملو 1
ولو عايز اتنين Mission هتخلى الرقم 2 وتضيف سطر جديد لل LuaSetMissionData_EX
يعنى لو واحد كدة
LuaSetMissionDataSize(QUESTID, 1)
LuaSetMissionData_EX(QUESTID, 0, MISSION_TYPE_KILL_MONSTER, "SN_CON_QNO_TEST_QUEST", 1, "MOB_CH_MANGNYANG", 0, 20, 0, 1)
ولو اتنين كدة
LuaSetMissionDataSize(QUESTID, 2)
LuaSetMissionData_EX(QUESTID, 0, MISSION_TYPE_KILL_MONSTER, "SN_CON_QNO_TEST_QUEST", 1, "MOB_CH_MANGNYANG", 0, 20, 0, 1)
LuaSetMissionData_EX(QUESTID, 0, MISSION_TYPE_KILL_MONSTER, "SN_CON_QNO_TEST_QUEST", 1, "MOB_CH_MANGNYANG", 0, 20, 0, 1)
نيجى ل LuaSetMissionData_EX
دى عندها بتحدد الQuest ونوعها اول حاجة زى مانتو شايفين اسمها MISSION_TYPE_KILL_MONSTER دى يعنى نوعها تقتل Monster
بعد كدة بتكتب اسم ال QUEST بعد كلمة QNO يعنى هتبقى SN_CON_QNO_WATCH_DOGS
وبعد كدة بتكتب Code ال Mob فى ال RefObjCommon وبتعدل على ال 20 اللى هى عدد ال Monster اللى هيقتلو
بعد كدة InsertQuestMenuStringList
بتكتب اسم ال NPC واسم ال Quest بتاعتك بس لو تلاحظ فى 01 و 02 و 03 ده ترتيب تسيبو زى ما هو وتعدل بس على الاسم
وعند ال LuaSetAchievedItem بتحط ال Reward Item بالطريقة اللى انت شايفها وبتحط العدد
كدة خلصنا ال Script هنيجى نفتح ملف اسمو @QuestList.lua وهتضيف فى السطر ده
LuaInsertQuest(TYPE_ID, "SN_QNO_WATCH_DOGS.lua", "QNO_WATCH_DOGS")
بعد كدة هتفتح ال make_questlist.bat و make_quest.bat
هتلاقى ملفين ظهرو اسمهم QuestList.sct و Quest.sct. دول هتاخدهم Copy وترح لل Server File بتاعتك فى ملف اسمو Script وبعدها VITNAM هتحط الاتنين دول فيهم
نيجيى بقى لجزء ال Database و Media
RefQuest
1 916 QNO_WATCH_DOGS 0 <??>???? ?? SN_QNO_WATCH_DOGS SN_PAY_QNO_WATCH_DOGS xxx SN_PAYCON_QNO_WATCH_DOGS SN_NN_QNO_WATCH_DOGS SN_NC_QNO_WATCH_DOGS
RefQuestReward
1 916 QNO_TEST_QUEST 1 1 1 0 0 0 0 0 7200 0 0 0 xxx 0 0 0 0 0 xxx 0 xxx 0 xxx
RefQuestRewardItem
1 916 QNO_TEST_QUEST 0 ITEM_MALL_GLOBAL_CHATTING xxx 0 10 xxx 0 xxx 0 xxx
بتعدل على ال Items و عدد ال Reward بردو فى ال RefQuestItemReward وبتحط ID ال Quest اللى انت عايزو فى 3 Table
ونفس الكلام فى ال Media
بس
questdata.txt=RefQuest
refqusetreward.txt=RefQuestReward
RefQuestrewardItem=refqusetrewarditem.txt
questcontentsdata.txt
QNO_TEST_QUEST 0 0 xxx 1 SN_CON_QNO_TEST_QUEST xxx xxx xxx xxx xxx xxx xxx 0 xxx xxx 0
فى كل السطور دى بتعدل على اسم ال Quest للانت عملتو قبل كدة
http://www4.0zz0.com/2015/11/27/18/171651594.gif (https://www.0zz0.com)
2-GatherItem Script
function QNO_GATHER_ITEM()
QUESTID = LuaGetQuestID("QNO_GATHER_ITEM")
LuaSetStartCodition(2, QSC_QUEST, QSC_LEVEL, 1, 1)
QM_CONVERSATION = 1
LuaSetStartMethod(QM_CONVERSATION, 1, "NPC_KT_FERRY")
LuaInsertMissionOrCompleteNpc("NPC_KT_FERRY")
LuaQuestInsertNpc(1, "NPC_KT_FERRY")
LuaSetAchievementLimit(1)
LuaSetMissionDataSize(QUESTID, 1)
LuaSetCollectionItemMissionData(QUESTID, 0, MISSION_TYPE_GATHER_ITEM_FROM_MONSTER, "SN_CON_QNO_SD_GU_032_1", 21, "NPC_SD_GUILD_AGENT3", 1, 250, "ITEM_QNO_SD_GU_032_1", "MOB_SD_PRIEST_GUARD", 30, "MOB_SD_PRIEST_POWER", 30, "MOB_SD_PRIEST_HEALING", 30, "MOB_SD_PRIEST_GALE", 30, "MOB_SD_PRIEST_FLAME", 30, "MOB_SD_PRIEST_FEAR", 30, "MOB_SD_IMOUTHES", 30, "MOB_SD_PRIEST_REVENGE", 30, "MOB_SD_PRIEST_CHASTISEMENT", 30, "MOB_SD_SPECTOR_GREED", 30, "MOB_SD_SPECTOR_DEMOLITION", 30, "MOB_SD_BLOODKHEPRI", 30, "MOB_SD_DEVIL_SANDMAN", 30, "MOB_SD_SEPTU", 30, "MOB_SD_SOPEDU", 30, "MOB_SD_PETBE", 30, "MOB_SD_SELKION", 30, "MOB_SD_KEISAS_BERSERK", 30, "MOB_SD_HARSAPHETH", 30, "MOB_SD_HARSMESS", 30, "MOB_SD_SANDSCOUT", 30)
InsertQuestMenuStringList("NPC_SD_GUILD_AGENT3", 7, "BASIC_MENUSTRING_GREETING", "SN_NPC_SD_GUILD_AGENT3_QS", "BASIC_MENUSTRING_REQUEST_ACCEPT_QUEST", "SN_TALK_QNO_SD_GU_032_01", "BASIC_MENUSTRING_AT_ACCEPT", "SN_TALK_QNO_SD_GU_032_02", "BASIC_MENUSTRING_AT_DENY", "SN_TALK_QNO_SD_GU_032_03", "BASIC_MENUSTRING_NOT_ACHIEVED", "SN_TALK_QNO_SD_GU_032_04", "BASIC_MENUSTRING_ACHIEVED", "SN_TALK_QNO_SD_GU_032_05", "BASIC_MENUSTRING_ACHIEVED_NOW", "SN_TALK_QNO_SD_GU_032_06")
LuaSetMissionCompleteNum(0)
PAY_ITEM_METHOD_EXACT = 1
LuaSetAchievedItem(0, 2148980, 20000, 90000, 0, 0,"ITEM_ETC_ARENA_COIN", 50)
LuaSetAchievedSkillPont(0)
end
دى Script بتاعة Quest انك تجمع Item بيقع من Monster هتعمل كل الشرح اللى شرحتو فوق بس هنا فى حاجات زيادة هتيجيى عند LuaSetCollectionItemMissionData وتعدل على اسم ال Quest و اسم ال NPC وCode ال Item اللى انت عايز تجمعو وهتكتب قدام كل Mobs العدد اللى يقع منو انا فى ال Script مكتر عدد ال Mobs يعنى لو انت عايز Mobs واحد بس هتبقى كدة
LuaSetCollectionItemMissionData(QUESTID, 0, MISSION_TYPE_GATHER_ITEM_FROM_MONSTER, "SN_CON_QNO_SD_GU_032_1", 21, "NPC_SD_GUILD_AGENT3", 1, 250, "ITEM_QNO_SD_GU_032_1", "MOB_SD_PRIEST_GUARD", 30)
ولو عايز كذا mobs هتعمل فوق زى ال Script
ملحوظة : لو انت هتكتب Item انت عاملو نسبة Drop فى ال Table ال RefMonster يبقى ال Item هيقع بالنسبة اللى انت عاملها فى ال RefMonster النسبة بتاعة ال Quest عشوائيا
وبالنسبة للبرامج اللى فتحناها فوق وال Copy اللى عملناه هتعمل نفس الكلام وبالنسبة لسطور ال Media و ال Database
هى هى فى ال RefQuest و ال Questdata و ال QuestContentsdata
اللى هيفرق هو ال QuestReward و الRefQuestReward
هتروح فى ال Database و ال Media وتعمل
Is View =1
IsBasic Reward =1
IsItemreward لو انت عايز Reward Item تخليها 1
IsCheckCondition = 0
بعد كدة اى Is Check =0
http://www4.0zz0.com/2015/11/27/18/171651594.gif (https://www.0zz0.com)
3-DeliverItem Script
function QNO_SD_RE_043()
QUESTID = LuaGetQuestID("QNO_SD_RE_043")
LuaSetStartCodition(2, QSC_QUEST, QSC_LEVEL, 110, 110)
QM_CONVERSATION = 1
LuaSetStartMethod(QM_CONVERSATION, 2, "NPC_SD_T_AREA_POTION", "NPC_SD_T_AREA_SMITH")
LuaQuestInsertNpc(2, "NPC_SD_T_AREA_POTION", "NPC_SD_T_AREA_SMITH")
LuaInsertMissionOrCompleteNpc("NPC_SD_T_AREA_SMITH")
LuaInsertDependancyQuests(1, "QNO_SD_RE_042")
LuaSetAchievementLimit(1)
LuaSetMissionDataSize(QUESTID, 1)
LuaSetDeliverMissionData(QUESTID, 0, MISSION_TYPE_DELIVER_ITEM, "SN_CON_QNO_SD_RE_043_1", "NPC_SD_T_AREA_SMITH", 1, 1, "ITEM_QNO_SD_RE_043_1", 1, "SN_TALK_QNO_SD_RE_043_06")
InsertQuestMenuStringList("NPC_SD_T_AREA_POTION", 6, "BASIC_MENUSTRING_GREETING", "SN_NPC_SD_T_AREA_POTION_QS", "BASIC_MENUSTRING_REQUEST_ACCEPT_QUEST", "SN_TALK_QNO_SD_RE_043_01", "BASIC_MENUSTRING_AT_ACCEPT", "SN_TALK_QNO_SD_RE_043_02", "BASIC_MENUSTRING_AT_DENY", "SN_TALK_QNO_SD_RE_043_03", "BASIC_MENUSTRING_NOT_ACHIEVED", "SN_TALK_QNO_SD_RE_043_04", "BASIC_MENUSTRING_INVENTORY_FULL", "SN_TALK_QNO_SD_RE_043_05")
InsertQuestMenuStringList("NPC_SD_T_AREA_SMITH", 2, "BASIC_MENUSTRING_GREETING", "SN_NPC_SD_T_AREA_SMITH_QS", "BASIC_MENUSTRING_ACHIEVED", "SN_TALK_QNO_SD_RE_043_06")
LuaSetMissionCompleteNum(0)
PAY_ITEM_METHOD_EXACT = 1
LuaSetAchievedItem(0, 6275059, 0, 2559, 0, 0)
LuaSetAchievedSkillPont(1600)
end
هتعمل نفس الشرح اللى فوق بس هنا هتيجى عند LuaSetDeliverMissionData وتكتب اسم ال Quest اللى هيعملها وCode ال Item و Code ال NPC اللى هيوصلها ال Item
InsertQuestMenuStringList هتكتب اسم ال NPC و ال Quest اللى ال Char هيعمل الQuest من عندها
وInsertQuestMenuStringList اللى تحتها دى تكتب اسم ال NPC و ال Quest اللى هياخد مناها ال Reward بعد اما يسلمو لل NPC اللى انت محددها فى LuaSetDeliverMissionData انت ممكن تعمل ال NPC الاولى هى ههى التانية مفيش مشكلة
ونفس البرامج و ال Copy و ال Past ونفس سطرو ال Script الاول فى ال Database و ال Media
http://www4.0zz0.com/2015/11/27/18/171651594.gif (https://www.0zz0.com)
4-Select ItemReward
http://www6.0zz0.com/2016/11/25/22/184064872.jpg (https://www.0zz0.com)
http://www14.0zz0.com/2016/11/25/23/825961446.jpg (https://www.0zz0.com)
http://www12.0zz0.com/2016/11/25/23/709490955.jpg (https://www.0zz0.com)
http://www7.0zz0.com/2016/11/25/23/658141467.jpg (https://www.0zz0.com)
ده مش Script ده نظام لو عايز تخلى كذا Reward بس ال Char يختار واحدة بس وده تقدر تعملو على اى Script
او حاجة هتعمل Copy للسطر ده من ال Script على قد عدد ال Reward اللى عايز ال Char يختار منها وفى كل سطر تكتب Reward انت عايزها
LuaSetAchievedItem
والتعديل هيبقى على RefQuestReward و RefQuestReward.txt
هتعمل نفس السطور اللى فوق بس
Is View = 1
IsBasicReward = 0
IsItemReward = 1
IsCheckCondition = 1
IsCheckCountery = 1
وباقى ال Check =0
وهتعدل على ال RefQuestRewardtem فى ال Database و ال Media وتخلى ال Quantity = 1
ولنفرض انك هتعمل 8 Reward بس ال Char يختار واحد بس هتعمل فى ال RefQuestrewardItem فى ال Database و ال Media هتعمل 8 سطرو مش سطر واحد وتخلى ال Quantity واحد وطبعا كلهم بنفس ال Quest ID
http://www4.0zz0.com/2015/11/27/18/171651594.gif (https://www.0zz0.com)
5-ـJobSystem Script
ده بردو تعديل لو عايز ال Quest دى ميعملهاش غير ال Job اللى هو ال Hunter او ال Thief او ال Trader
هتضيف السطر ده على اى Script
LuaSetJobTypeStartCondition(1, OBJ_JOBSTATE_ROBBER, 1)
LuaSetJobTypeStartCondition(1, OBJ_JOBSTATE_TRADER, 1)
LuaSetJobTypeStartCondition(1, OBJ_JOBSTATE_HUNTER, 1)
هضيفهم فوق بعد سطر StartMethod
http://www4.0zz0.com/2015/11/27/18/171651594.gif (https://www.0zz0.com)
5- SpecificTime Script
دى عشان ول عايز تعمل ال Quest مرة واحدة فى اليوم بس هتضيف دول على اى Script
LuaSetDivideType(5)
LuaSetRealTime()
وهتشيل السطر ده
LuaSetAchievementLimit(1)
وبالنسبة لل Mix هتجيب اى Script نوع Quest انت عايزو سواء Gather او Deliver اة
بتاعة KillMonster وتعدل عليها للاسامى بتاعتك بعد كدة هتضيف عليها سطور ال Job
وهتعمل التعديل اللى انا كاتبو فوق على ال RefQuestReward عشان يبقى Select Reward ايتم واحد من كذا Item
وهكذا يقى فى الباقى
http://www4.0zz0.com/2015/11/27/18/171651594.gif (https://www.0zz0.com)
الجزء التانى
ده جزء الربط يعنى [اختصار ازاى تطول المهمة ولنفرض مثلا انك عايز تعمل Quest نوعها GatherItem يعنى ولنفرض انك هتوصل الايتم X اللى هتجيبو من MOB_RM_ROC ل NPC اسمها Y وتاخد ال Quest بتاعة ال GatherItem من NPC اسمها Z وتعمل ال Quest بتاعة ال Deliver من NPC Y ل NPC Z ب Quest M ل NPC X
لو مفهمتش حاجة من اللى انا لسه قايلو ده مفيش مشكلة (انا اللى مجنون)
هنيجى عند Script ال Quest بتاعة GatherItem وتكتب بياناتك وتشوف ال System اللى انت عايزو ايه وتعملو بس متعملهاش Reward لا Item ولا غيرو بعد كدة تعمل New Quest بس يكون نوعها Deliver وتكتب فى سطر LuaSetDeliverMissionData اسم ال NPC اللى انت تحددو اللى انت اصلا عامل عندو Quest ال Gather و ال InsertQuestMenuStringList الاولى تكتب فيها مكان واسم ال Quest اللى هتاخد منو Quest ال Deliver بعد ال Gather و InsertQuestMenuStringList التانية هتكتب فيها اسم اى NPC انت عايزها وهكذا تقدر تطول ال Quest لاى وقت
http://www4.0zz0.com/2015/11/27/18/171651594.gif (https://www.0zz0.com)
ودى باقى سطور الMedia عشان ال Conversation بتاع ال NPC واسم ال Quest و ال Guide بتاعها تظبطو زى ما انت عايز وخلى بالك فى ال Script بتلاقى 01 و 02 دى لو غيرتها فى اسم ال Quest بتغيرها فى السطور دى برضو
textquest_otherstring.txt
1 SN_PAYCON_QNO_TEST_QUEST 0 0 0 0 0 0 <sml2><strong><font color="255,226,74,0">
â—ˆ Mission</font></strong><br>Hunt 20 Mangyangs<br><br><strong><font color="255,226,74,0">
â—ˆ Reward</font></strong><br>Experience 7200 / 10 Global Chattings<br><br><strong><font color="255,226,74,0">
â—ˆ Form</font></strong><br>Available Once<br><br><strong><font color="255,226,74,0">
â—ˆ NPC</font></strong><br>Chulsan the blacksmith of Jangan<br><br><strong><font color="255,226,74,0">
â—ˆ Monster</font></strong><br>Mangyang<br><br><font color="255,44,15,1"><strong>
â—ˆ Scenario</strong><br>Bla some quest description goes here</font></sml2> 0 0 0 0 0
1 SN_NN_QNO_TEST_QUEST 0 0 0 0 0 0 Chulsan, blacksmith of Jangan 0 0 0 0 0 0
1 SN_NC_QNO_TEST_QUEST 0 0 0 0 0 0 Available Once 0 0 0 0 0 0
وده عشان تغير ال Guide
textquest_queststring.txt
1 SN_TALK_QNO_TEST_QUEST_01 0 0 0 0 0 0 Kill 15 mangyangs lols. 0 0 0 0 0 0 0
1 SN_TALK_QNO_TEST_QUEST_02 0 0 0 0 0 0 Good. I knew that you would agree to do this. I'll reward you more than enough, of course. 0 0 0 0 0 0 0
1 SN_TALK_QNO_TEST_QUEST_03 0 0 0 0 0 0 Hmm. I've misjudged you. 0 0 0 0 0 0 0
1 SN_TALK_QNO_TEST_QUEST_04 0 0 0 0 0 0 Please kill a few more mangyangs please. 0 0 0 0 0 0 0
1 SN_TALK_QNO_TEST_QUEST_05 0 0 0 0 0 0 I want to reward you but your inventory is full. Please dispose of some unneccessary items first. 0 0 0 0 0 0 0
1 SN_TALK_QNO_TEST_QUEST_06 0 0 0 0 0 0 Thank you. Now I can sleep well. This is your reward. Take this. 0 0 0 0 0 0 0
1 SN_TALK_QNO_TEST_QUEST_07 0 0 0 0 0 0 The hunting of Mangyangs is completed. Go and report to Chulsan. 0 0 0 0 0 0 0
وده عشان اسم ال Quest نفسها فى ال NPC و ال Guide
textquest_speech&name.txt
1 SN_QNO_TEST_QUEST 0 0 0 0 0 0 Test quest 0 0 0 0 0 0 0
1 SN_PAY_QNO_TEST_QUEST 0 0 0 0 0 0 Test quest 0 0 0 0 0 0 0
1 SN_CON_QNO_TEST_QUEST 0 0 0 0 0 0 Hunt 20 Mangyang (%d) 0 0 0 0 0 0 0
http://www4.0zz0.com/2015/11/27/18/171651594.gif (https://www.0zz0.com)
http://www4.0zz0.com/2015/11/27/18/735351340.gif (https://www.0zz0.com)
http://www4.0zz0.com/2015/11/27/18/884808031.gif (https://www.0zz0.com)
http://www4.0zz0.com/2015/11/27/18/702514124.gif (https://www.0zz0.com)
Vsro Quests
http://www4.0zz0.com/2015/11/27/18/171651594.gif (https://www.0zz0.com)
طبعا ال Quest حاجة مهمة فى كل سيرفر وهى من الحاجات اللى بتخلى السيرفر ممتع جدا خاصة لو ال Quest مربوطة ببعض حبيت اعمل موضوع عن ال Quest وتجميعة من ال Scripts و ال System بتاع ال Quests وكمان شارح ازاى تعمل Mix لل Systems كلها فى System واحد وكمان ازاى تربط Quest بالتانية سواء كانت Deliver او Gather item
http://www4.0zz0.com/2015/11/27/18/171651594.gif (https://www.0zz0.com)
الموضوع بينقسم لجزئين
الجزء الاول هو شرح مباشر ل Quests و ال Script و ال System
الجزء التانى هو شرح ازاى تربط ال Quests ببعضها وازاى تعمل 2 Quest او حتى 546 Quest من نفس النوع ورا بعض او من انواع مختلفة
نبدأ بالجزء الاول
اول حاجة هتنزل دول
هنا (https://mega.nz/file/wUEiUR5D#6bcbIc2Qz4AXnNp8k9co0LKDRBrj6ZDTt5wnh9GPH d0)
دى ملفات ال Quests بيبقى مسارها lua دى عادى مش محتاجة برنامج تقدر تفتحها بال Notepad العادى Click يمين وبعدها Edit
بعد اما تنزل ملفات ال Quests هتفتح Folder اسمو Vsro وهتاخد اى ملف Copy وتعملو تانى Past وبعد كدة تغير اسمو للانت عايزو بس تخلى السم يبدأ ب SN_QNO وبعدها الاسم اللى انت عايزو
ولنفرض مثلا SN_QNO_WATCH_DOGS
هتفتح ملف ال Script ونبدا نعدل
دى مجموعة من ال Scripts بكذا System وكمان فى شرح ازاى تعمل Mix ما بينهم
http://www4.0zz0.com/2015/11/27/18/171651594.gif (https://www.0zz0.com)
1-KillMonster Script
http://www14.0zz0.com/2016/11/23/22/354440419.jpg (https://www.0zz0.com)
function QNO_TEST_QUEST() -- you should match this with your filename!
QUESTID = LuaGetQuestID("QNO_TEST_QUEST") -- IMPORTANT: must match with the name in your database
LuaSetStartCodition(2, QSC_QUEST, QSC_LEVEL, 1, 1)
QM_CONVERSATION = 1
LuaSetStartMethod(QM_CONVERSATION, 1, "NPC_CH_SMITH")
LuaInsertMissionOrCompleteNpc("NPC_CH_SMITH")
LuaQuestInsertNpc(1, "NPC_CH_SMITH")
LuaSetAchievementLimit(1)
LuaSetMissionDataSize(QUESTID, 1)
LuaSetMissionData_EX(QUESTID, 0, MISSION_TYPE_KILL_MONSTER, "SN_CON_QNO_TEST_QUEST", 1, "MOB_CH_MANGNYANG", 0, 20, 0, 1)
InsertQuestMenuStringList("NPC_CH_SMITH", 8, "BASIC_MENUSTRING_GREETING", "SN_NPC_CH_POTION_QS", "BASIC_MENUSTRING_REQUEST_ACCEPT_QUEST", "SN_TALK_QNO_TEST_QUEST_01", "BASIC_MENUSTRING_AT_ACCEPT", "SN_TALK_QNO_TEST_QUEST_02", "BASIC_MENUSTRING_AT_DENY", "SN_TALK_QNO_TEST_QUEST_03", "BASIC_MENUSTRING_NOT_ACHIEVED", "SN_TALK_QNO_TEST_QUEST_04", "BASIC_MENUSTRING_INVENTORY_FULL", "SN_TALK_QNO_TEST_QUEST_05", "BASIC_MENUSTRING_ACHIEVED", "SN_TALK_QNO_TEST_QUEST_06", "BASIC_MENUSTRING_ACHIEVED_NOW", "SN_TALK_QNO_TEST_QUEST_07")
LuaSetMissionCompleteNum(0)
PAY_ITEM_METHOD_EXACT = 1
LuaSetAchievedItem(1, 7200, 0, 0, 1, "ITEM_MALL_GLOBAL_CHATTING", 10)
LuaSetAchievedSkillPont(0)
end
اول حاجة عند ال Function و ال QuestID هتكتب اسم ال Quest بتاعتك اللى هو اسم الملف SN_QNO_WATCH_DOGS
وعند LuaSetStartCodition تكتب ال lvl اللى المفرضو ال Char يوصلو عشان يقدر يعمل ال Quest
وعند LuaSetStartMethod و LuaInsertMissionOrCompleteNpc وLuaQuestInsertNpc
هتكتب اسم ال NPC اللى هيبقى عندها ال Quest
وبالنسبة ل
LuaSetAchievementLimit(1)
دى معناها ان ال Quest دى هتتعمل مرة واحدة بس يعنى ال Char هيعملها ومش هيفها تانى خالص لو انت عايزها على طول شيل السطر
LuaSetAchievementLimit(1)
نيجى عند LuaSetMissionDataSize دى عدد ال Mission اللى ال Char يعملها من نفس النوع يعنى ايه من النفس النوع؟ يعنى لو هو SCript KillMonster يبقى كذا KillMonster Quest
لو انت عايز Mission واحد هتخلى الرقم بتاع LuaSetMissionDataSize اعملو 1
ولو عايز اتنين Mission هتخلى الرقم 2 وتضيف سطر جديد لل LuaSetMissionData_EX
يعنى لو واحد كدة
LuaSetMissionDataSize(QUESTID, 1)
LuaSetMissionData_EX(QUESTID, 0, MISSION_TYPE_KILL_MONSTER, "SN_CON_QNO_TEST_QUEST", 1, "MOB_CH_MANGNYANG", 0, 20, 0, 1)
ولو اتنين كدة
LuaSetMissionDataSize(QUESTID, 2)
LuaSetMissionData_EX(QUESTID, 0, MISSION_TYPE_KILL_MONSTER, "SN_CON_QNO_TEST_QUEST", 1, "MOB_CH_MANGNYANG", 0, 20, 0, 1)
LuaSetMissionData_EX(QUESTID, 0, MISSION_TYPE_KILL_MONSTER, "SN_CON_QNO_TEST_QUEST", 1, "MOB_CH_MANGNYANG", 0, 20, 0, 1)
نيجى ل LuaSetMissionData_EX
دى عندها بتحدد الQuest ونوعها اول حاجة زى مانتو شايفين اسمها MISSION_TYPE_KILL_MONSTER دى يعنى نوعها تقتل Monster
بعد كدة بتكتب اسم ال QUEST بعد كلمة QNO يعنى هتبقى SN_CON_QNO_WATCH_DOGS
وبعد كدة بتكتب Code ال Mob فى ال RefObjCommon وبتعدل على ال 20 اللى هى عدد ال Monster اللى هيقتلو
بعد كدة InsertQuestMenuStringList
بتكتب اسم ال NPC واسم ال Quest بتاعتك بس لو تلاحظ فى 01 و 02 و 03 ده ترتيب تسيبو زى ما هو وتعدل بس على الاسم
وعند ال LuaSetAchievedItem بتحط ال Reward Item بالطريقة اللى انت شايفها وبتحط العدد
كدة خلصنا ال Script هنيجى نفتح ملف اسمو @QuestList.lua وهتضيف فى السطر ده
LuaInsertQuest(TYPE_ID, "SN_QNO_WATCH_DOGS.lua", "QNO_WATCH_DOGS")
بعد كدة هتفتح ال make_questlist.bat و make_quest.bat
هتلاقى ملفين ظهرو اسمهم QuestList.sct و Quest.sct. دول هتاخدهم Copy وترح لل Server File بتاعتك فى ملف اسمو Script وبعدها VITNAM هتحط الاتنين دول فيهم
نيجيى بقى لجزء ال Database و Media
RefQuest
1 916 QNO_WATCH_DOGS 0 <??>???? ?? SN_QNO_WATCH_DOGS SN_PAY_QNO_WATCH_DOGS xxx SN_PAYCON_QNO_WATCH_DOGS SN_NN_QNO_WATCH_DOGS SN_NC_QNO_WATCH_DOGS
RefQuestReward
1 916 QNO_TEST_QUEST 1 1 1 0 0 0 0 0 7200 0 0 0 xxx 0 0 0 0 0 xxx 0 xxx 0 xxx
RefQuestRewardItem
1 916 QNO_TEST_QUEST 0 ITEM_MALL_GLOBAL_CHATTING xxx 0 10 xxx 0 xxx 0 xxx
بتعدل على ال Items و عدد ال Reward بردو فى ال RefQuestItemReward وبتحط ID ال Quest اللى انت عايزو فى 3 Table
ونفس الكلام فى ال Media
بس
questdata.txt=RefQuest
refqusetreward.txt=RefQuestReward
RefQuestrewardItem=refqusetrewarditem.txt
questcontentsdata.txt
QNO_TEST_QUEST 0 0 xxx 1 SN_CON_QNO_TEST_QUEST xxx xxx xxx xxx xxx xxx xxx 0 xxx xxx 0
فى كل السطور دى بتعدل على اسم ال Quest للانت عملتو قبل كدة
http://www4.0zz0.com/2015/11/27/18/171651594.gif (https://www.0zz0.com)
2-GatherItem Script
function QNO_GATHER_ITEM()
QUESTID = LuaGetQuestID("QNO_GATHER_ITEM")
LuaSetStartCodition(2, QSC_QUEST, QSC_LEVEL, 1, 1)
QM_CONVERSATION = 1
LuaSetStartMethod(QM_CONVERSATION, 1, "NPC_KT_FERRY")
LuaInsertMissionOrCompleteNpc("NPC_KT_FERRY")
LuaQuestInsertNpc(1, "NPC_KT_FERRY")
LuaSetAchievementLimit(1)
LuaSetMissionDataSize(QUESTID, 1)
LuaSetCollectionItemMissionData(QUESTID, 0, MISSION_TYPE_GATHER_ITEM_FROM_MONSTER, "SN_CON_QNO_SD_GU_032_1", 21, "NPC_SD_GUILD_AGENT3", 1, 250, "ITEM_QNO_SD_GU_032_1", "MOB_SD_PRIEST_GUARD", 30, "MOB_SD_PRIEST_POWER", 30, "MOB_SD_PRIEST_HEALING", 30, "MOB_SD_PRIEST_GALE", 30, "MOB_SD_PRIEST_FLAME", 30, "MOB_SD_PRIEST_FEAR", 30, "MOB_SD_IMOUTHES", 30, "MOB_SD_PRIEST_REVENGE", 30, "MOB_SD_PRIEST_CHASTISEMENT", 30, "MOB_SD_SPECTOR_GREED", 30, "MOB_SD_SPECTOR_DEMOLITION", 30, "MOB_SD_BLOODKHEPRI", 30, "MOB_SD_DEVIL_SANDMAN", 30, "MOB_SD_SEPTU", 30, "MOB_SD_SOPEDU", 30, "MOB_SD_PETBE", 30, "MOB_SD_SELKION", 30, "MOB_SD_KEISAS_BERSERK", 30, "MOB_SD_HARSAPHETH", 30, "MOB_SD_HARSMESS", 30, "MOB_SD_SANDSCOUT", 30)
InsertQuestMenuStringList("NPC_SD_GUILD_AGENT3", 7, "BASIC_MENUSTRING_GREETING", "SN_NPC_SD_GUILD_AGENT3_QS", "BASIC_MENUSTRING_REQUEST_ACCEPT_QUEST", "SN_TALK_QNO_SD_GU_032_01", "BASIC_MENUSTRING_AT_ACCEPT", "SN_TALK_QNO_SD_GU_032_02", "BASIC_MENUSTRING_AT_DENY", "SN_TALK_QNO_SD_GU_032_03", "BASIC_MENUSTRING_NOT_ACHIEVED", "SN_TALK_QNO_SD_GU_032_04", "BASIC_MENUSTRING_ACHIEVED", "SN_TALK_QNO_SD_GU_032_05", "BASIC_MENUSTRING_ACHIEVED_NOW", "SN_TALK_QNO_SD_GU_032_06")
LuaSetMissionCompleteNum(0)
PAY_ITEM_METHOD_EXACT = 1
LuaSetAchievedItem(0, 2148980, 20000, 90000, 0, 0,"ITEM_ETC_ARENA_COIN", 50)
LuaSetAchievedSkillPont(0)
end
دى Script بتاعة Quest انك تجمع Item بيقع من Monster هتعمل كل الشرح اللى شرحتو فوق بس هنا فى حاجات زيادة هتيجيى عند LuaSetCollectionItemMissionData وتعدل على اسم ال Quest و اسم ال NPC وCode ال Item اللى انت عايز تجمعو وهتكتب قدام كل Mobs العدد اللى يقع منو انا فى ال Script مكتر عدد ال Mobs يعنى لو انت عايز Mobs واحد بس هتبقى كدة
LuaSetCollectionItemMissionData(QUESTID, 0, MISSION_TYPE_GATHER_ITEM_FROM_MONSTER, "SN_CON_QNO_SD_GU_032_1", 21, "NPC_SD_GUILD_AGENT3", 1, 250, "ITEM_QNO_SD_GU_032_1", "MOB_SD_PRIEST_GUARD", 30)
ولو عايز كذا mobs هتعمل فوق زى ال Script
ملحوظة : لو انت هتكتب Item انت عاملو نسبة Drop فى ال Table ال RefMonster يبقى ال Item هيقع بالنسبة اللى انت عاملها فى ال RefMonster النسبة بتاعة ال Quest عشوائيا
وبالنسبة للبرامج اللى فتحناها فوق وال Copy اللى عملناه هتعمل نفس الكلام وبالنسبة لسطور ال Media و ال Database
هى هى فى ال RefQuest و ال Questdata و ال QuestContentsdata
اللى هيفرق هو ال QuestReward و الRefQuestReward
هتروح فى ال Database و ال Media وتعمل
Is View =1
IsBasic Reward =1
IsItemreward لو انت عايز Reward Item تخليها 1
IsCheckCondition = 0
بعد كدة اى Is Check =0
http://www4.0zz0.com/2015/11/27/18/171651594.gif (https://www.0zz0.com)
3-DeliverItem Script
function QNO_SD_RE_043()
QUESTID = LuaGetQuestID("QNO_SD_RE_043")
LuaSetStartCodition(2, QSC_QUEST, QSC_LEVEL, 110, 110)
QM_CONVERSATION = 1
LuaSetStartMethod(QM_CONVERSATION, 2, "NPC_SD_T_AREA_POTION", "NPC_SD_T_AREA_SMITH")
LuaQuestInsertNpc(2, "NPC_SD_T_AREA_POTION", "NPC_SD_T_AREA_SMITH")
LuaInsertMissionOrCompleteNpc("NPC_SD_T_AREA_SMITH")
LuaInsertDependancyQuests(1, "QNO_SD_RE_042")
LuaSetAchievementLimit(1)
LuaSetMissionDataSize(QUESTID, 1)
LuaSetDeliverMissionData(QUESTID, 0, MISSION_TYPE_DELIVER_ITEM, "SN_CON_QNO_SD_RE_043_1", "NPC_SD_T_AREA_SMITH", 1, 1, "ITEM_QNO_SD_RE_043_1", 1, "SN_TALK_QNO_SD_RE_043_06")
InsertQuestMenuStringList("NPC_SD_T_AREA_POTION", 6, "BASIC_MENUSTRING_GREETING", "SN_NPC_SD_T_AREA_POTION_QS", "BASIC_MENUSTRING_REQUEST_ACCEPT_QUEST", "SN_TALK_QNO_SD_RE_043_01", "BASIC_MENUSTRING_AT_ACCEPT", "SN_TALK_QNO_SD_RE_043_02", "BASIC_MENUSTRING_AT_DENY", "SN_TALK_QNO_SD_RE_043_03", "BASIC_MENUSTRING_NOT_ACHIEVED", "SN_TALK_QNO_SD_RE_043_04", "BASIC_MENUSTRING_INVENTORY_FULL", "SN_TALK_QNO_SD_RE_043_05")
InsertQuestMenuStringList("NPC_SD_T_AREA_SMITH", 2, "BASIC_MENUSTRING_GREETING", "SN_NPC_SD_T_AREA_SMITH_QS", "BASIC_MENUSTRING_ACHIEVED", "SN_TALK_QNO_SD_RE_043_06")
LuaSetMissionCompleteNum(0)
PAY_ITEM_METHOD_EXACT = 1
LuaSetAchievedItem(0, 6275059, 0, 2559, 0, 0)
LuaSetAchievedSkillPont(1600)
end
هتعمل نفس الشرح اللى فوق بس هنا هتيجى عند LuaSetDeliverMissionData وتكتب اسم ال Quest اللى هيعملها وCode ال Item و Code ال NPC اللى هيوصلها ال Item
InsertQuestMenuStringList هتكتب اسم ال NPC و ال Quest اللى ال Char هيعمل الQuest من عندها
وInsertQuestMenuStringList اللى تحتها دى تكتب اسم ال NPC و ال Quest اللى هياخد مناها ال Reward بعد اما يسلمو لل NPC اللى انت محددها فى LuaSetDeliverMissionData انت ممكن تعمل ال NPC الاولى هى ههى التانية مفيش مشكلة
ونفس البرامج و ال Copy و ال Past ونفس سطرو ال Script الاول فى ال Database و ال Media
http://www4.0zz0.com/2015/11/27/18/171651594.gif (https://www.0zz0.com)
4-Select ItemReward
http://www6.0zz0.com/2016/11/25/22/184064872.jpg (https://www.0zz0.com)
http://www14.0zz0.com/2016/11/25/23/825961446.jpg (https://www.0zz0.com)
http://www12.0zz0.com/2016/11/25/23/709490955.jpg (https://www.0zz0.com)
http://www7.0zz0.com/2016/11/25/23/658141467.jpg (https://www.0zz0.com)
ده مش Script ده نظام لو عايز تخلى كذا Reward بس ال Char يختار واحدة بس وده تقدر تعملو على اى Script
او حاجة هتعمل Copy للسطر ده من ال Script على قد عدد ال Reward اللى عايز ال Char يختار منها وفى كل سطر تكتب Reward انت عايزها
LuaSetAchievedItem
والتعديل هيبقى على RefQuestReward و RefQuestReward.txt
هتعمل نفس السطور اللى فوق بس
Is View = 1
IsBasicReward = 0
IsItemReward = 1
IsCheckCondition = 1
IsCheckCountery = 1
وباقى ال Check =0
وهتعدل على ال RefQuestRewardtem فى ال Database و ال Media وتخلى ال Quantity = 1
ولنفرض انك هتعمل 8 Reward بس ال Char يختار واحد بس هتعمل فى ال RefQuestrewardItem فى ال Database و ال Media هتعمل 8 سطرو مش سطر واحد وتخلى ال Quantity واحد وطبعا كلهم بنفس ال Quest ID
http://www4.0zz0.com/2015/11/27/18/171651594.gif (https://www.0zz0.com)
5-ـJobSystem Script
ده بردو تعديل لو عايز ال Quest دى ميعملهاش غير ال Job اللى هو ال Hunter او ال Thief او ال Trader
هتضيف السطر ده على اى Script
LuaSetJobTypeStartCondition(1, OBJ_JOBSTATE_ROBBER, 1)
LuaSetJobTypeStartCondition(1, OBJ_JOBSTATE_TRADER, 1)
LuaSetJobTypeStartCondition(1, OBJ_JOBSTATE_HUNTER, 1)
هضيفهم فوق بعد سطر StartMethod
http://www4.0zz0.com/2015/11/27/18/171651594.gif (https://www.0zz0.com)
5- SpecificTime Script
دى عشان ول عايز تعمل ال Quest مرة واحدة فى اليوم بس هتضيف دول على اى Script
LuaSetDivideType(5)
LuaSetRealTime()
وهتشيل السطر ده
LuaSetAchievementLimit(1)
وبالنسبة لل Mix هتجيب اى Script نوع Quest انت عايزو سواء Gather او Deliver اة
بتاعة KillMonster وتعدل عليها للاسامى بتاعتك بعد كدة هتضيف عليها سطور ال Job
وهتعمل التعديل اللى انا كاتبو فوق على ال RefQuestReward عشان يبقى Select Reward ايتم واحد من كذا Item
وهكذا يقى فى الباقى
http://www4.0zz0.com/2015/11/27/18/171651594.gif (https://www.0zz0.com)
الجزء التانى
ده جزء الربط يعنى [اختصار ازاى تطول المهمة ولنفرض مثلا انك عايز تعمل Quest نوعها GatherItem يعنى ولنفرض انك هتوصل الايتم X اللى هتجيبو من MOB_RM_ROC ل NPC اسمها Y وتاخد ال Quest بتاعة ال GatherItem من NPC اسمها Z وتعمل ال Quest بتاعة ال Deliver من NPC Y ل NPC Z ب Quest M ل NPC X
لو مفهمتش حاجة من اللى انا لسه قايلو ده مفيش مشكلة (انا اللى مجنون)
هنيجى عند Script ال Quest بتاعة GatherItem وتكتب بياناتك وتشوف ال System اللى انت عايزو ايه وتعملو بس متعملهاش Reward لا Item ولا غيرو بعد كدة تعمل New Quest بس يكون نوعها Deliver وتكتب فى سطر LuaSetDeliverMissionData اسم ال NPC اللى انت تحددو اللى انت اصلا عامل عندو Quest ال Gather و ال InsertQuestMenuStringList الاولى تكتب فيها مكان واسم ال Quest اللى هتاخد منو Quest ال Deliver بعد ال Gather و InsertQuestMenuStringList التانية هتكتب فيها اسم اى NPC انت عايزها وهكذا تقدر تطول ال Quest لاى وقت
http://www4.0zz0.com/2015/11/27/18/171651594.gif (https://www.0zz0.com)
ودى باقى سطور الMedia عشان ال Conversation بتاع ال NPC واسم ال Quest و ال Guide بتاعها تظبطو زى ما انت عايز وخلى بالك فى ال Script بتلاقى 01 و 02 دى لو غيرتها فى اسم ال Quest بتغيرها فى السطور دى برضو
textquest_otherstring.txt
1 SN_PAYCON_QNO_TEST_QUEST 0 0 0 0 0 0 <sml2><strong><font color="255,226,74,0">
â—ˆ Mission</font></strong><br>Hunt 20 Mangyangs<br><br><strong><font color="255,226,74,0">
â—ˆ Reward</font></strong><br>Experience 7200 / 10 Global Chattings<br><br><strong><font color="255,226,74,0">
â—ˆ Form</font></strong><br>Available Once<br><br><strong><font color="255,226,74,0">
â—ˆ NPC</font></strong><br>Chulsan the blacksmith of Jangan<br><br><strong><font color="255,226,74,0">
â—ˆ Monster</font></strong><br>Mangyang<br><br><font color="255,44,15,1"><strong>
â—ˆ Scenario</strong><br>Bla some quest description goes here</font></sml2> 0 0 0 0 0
1 SN_NN_QNO_TEST_QUEST 0 0 0 0 0 0 Chulsan, blacksmith of Jangan 0 0 0 0 0 0
1 SN_NC_QNO_TEST_QUEST 0 0 0 0 0 0 Available Once 0 0 0 0 0 0
وده عشان تغير ال Guide
textquest_queststring.txt
1 SN_TALK_QNO_TEST_QUEST_01 0 0 0 0 0 0 Kill 15 mangyangs lols. 0 0 0 0 0 0 0
1 SN_TALK_QNO_TEST_QUEST_02 0 0 0 0 0 0 Good. I knew that you would agree to do this. I'll reward you more than enough, of course. 0 0 0 0 0 0 0
1 SN_TALK_QNO_TEST_QUEST_03 0 0 0 0 0 0 Hmm. I've misjudged you. 0 0 0 0 0 0 0
1 SN_TALK_QNO_TEST_QUEST_04 0 0 0 0 0 0 Please kill a few more mangyangs please. 0 0 0 0 0 0 0
1 SN_TALK_QNO_TEST_QUEST_05 0 0 0 0 0 0 I want to reward you but your inventory is full. Please dispose of some unneccessary items first. 0 0 0 0 0 0 0
1 SN_TALK_QNO_TEST_QUEST_06 0 0 0 0 0 0 Thank you. Now I can sleep well. This is your reward. Take this. 0 0 0 0 0 0 0
1 SN_TALK_QNO_TEST_QUEST_07 0 0 0 0 0 0 The hunting of Mangyangs is completed. Go and report to Chulsan. 0 0 0 0 0 0 0
وده عشان اسم ال Quest نفسها فى ال NPC و ال Guide
textquest_speech&name.txt
1 SN_QNO_TEST_QUEST 0 0 0 0 0 0 Test quest 0 0 0 0 0 0 0
1 SN_PAY_QNO_TEST_QUEST 0 0 0 0 0 0 Test quest 0 0 0 0 0 0 0
1 SN_CON_QNO_TEST_QUEST 0 0 0 0 0 0 Hunt 20 Mangyang (%d) 0 0 0 0 0 0 0
http://www4.0zz0.com/2015/11/27/18/171651594.gif (https://www.0zz0.com)
http://www4.0zz0.com/2015/11/27/18/735351340.gif (https://www.0zz0.com)