المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : عاوز اعمل quest ميشتغلش غير لما تعمل use لitem معين


gameman
22-02-2015, 09:32 AM
عاوز اعمل quest ميشتغلش غير لما تعمل use لitem معين

يعني الquest يفضل مختفي لحد متستعمل الitem

Hamza FiGo
22-02-2015, 10:06 AM
تمت الموافقة

حضرتك انا مش فاهم . وشوفت النظام دا فين لو موجود ؟

Dev. iLegend
22-02-2015, 03:31 PM
وضح أكتر لو سمحت ..

ممكن انفذ الفكرة دي بس قوللى تفاصيل أكتر اقدر اجمع فكرة السيستم ..

أرجوا الاهتمام بالرد ..

gameman
23-02-2015, 12:08 AM
يعني مثلا لو معاك instant return scroll as a reward from quest no1 مينفعش تخش الquest no2 غير لما تستعملها او هو ياخدها منك

Dev. iLegend
23-02-2015, 07:32 AM
سهلة إنشاء الله اصبر بس شوية على مخلص الشغل اللى معايا

وهعملها حددلى بس نظام الكويستات Hunt or Collect ومن انهى موبس للكويستين الاول والتاني وريوارد الكويست التاني هتبقا ايه

Dev. iLegend
23-02-2015, 08:12 AM
بص انت ممكن تعملها من غير استخدام ايتم من ريوارد الكويست الاول
بمعنى أصح زي أي كويست بيحتاج انك تخلص الكويست اللى قبله الأول عشان تعرف تاخد الكويست التاني ..

خد ممكن تفهم من دي وتعملها بنفسك
دي بتاعت الكويست التاني اللى هيعتمد على الكويست الاول

function QNO_SECOND_QUEST() -- you should match this with your filename!
QUESTID = LuaGetQuestID("QNO_SECOND_QUEST") -- IMPORTANT: must match with the name in your database
LuaSetStartCodition(2, QSC_QUEST, QSC_LEVEL, 110, 101) -- Range level to take this Quest
QM_CONVERSATION = 1 -- Leave it don't change
LuaSetStartMethod(QM_CONVERSATION, 1, "NPC_NAME") -- NPC Name
LuaInsertMissionOrCompleteNpc("NPC_NAME") -- NPC Name
LuaQuestInsertNpc(1, "NPC_NAME") -- NPC Name
LuaInsertDependancyQuests(1, "QNO_FIRST_QUEST") -- First Quest Name to active this quest when first quest done.
LuaSetAchievementLimit(1) -- Leave it don't change
LuaSetMissionDataSize(QUESTID, 1) -- Number of quest missions
LuaSetCollectionItemMissionData(QUESTID, 0, MISSION_TYPE_GATHER_ITEM_FROM_MONSTER, "SN_CON_QNO_SECOND_QUEST", 5, "NPC_NAME", 1, 1, "ITEM_QNO_SECOND_QUEST", "MOB_SD_SPHINX_2", 100, "MOB_SD_NEPHTHYS_2", 100, "MOB_SD_SEKHMET_2", 100, "MOB_SD_HORUS_2", 100, "MOB_SD_OSIRIS_2", 100) -- Quest Mission No1.
InsertQuestMenuStringList("NPC_NAME", 8, "BASIC_MENUSTRING_GREETING", "SN_NPC_NAME_BS", "BASIC_MENUSTRING_REQUEST_ACCEPT_QUEST", "SN_TALK_QNO_NPC_NAME_01", "BASIC_MENUSTRING_AT_ACCEPT", "SN_TALK_QNO_NPC_NAME_02", "BASIC_MENUSTRING_AT_DENY", "SN_TALK_QNO_NPC_NAME_03", "BASIC_MENUSTRING_NOT_ACHIEVED", "SN_TALK_QNO_NPC_NAME_04", "BASIC_MENUSTRING_INVENTORY_FULL", "SN_TALK_QNO_NPC_NAME_05", "BASIC_MENUSTRING_ACHIEVED", "SN_TALK_QNO_NPC_NAME_06", "BASIC_MENUSTRING_ACHIEVED_NOW", "SN_TALK_QNO_NPC_NAME_07") -- NPC Chat Links.
LuaSetMissionCompleteNum(0) -- Quest Complete count .. leave it dont change.
PAY_ITEM_METHOD_EXACT = 1 -- Leave it don't change.
LuaSetAchievedItem(0, 0, 0, 0, "ITEM_REWARD_CODENAME128", 1) -- Reward item codename and item count.
LuaSetAchievedSkillPont(0) -- Reward skill point.
end

وطبعاً سكريبت الكويست الاول هتعمله من الموضوع دا
Here (http://www.silkroad4arab.com/vb/showthread.php?t=478363)

gameman
23-02-2015, 03:53 PM
انت لسة مفهمتنيش المشكلة مش اني اربط ال2 ببعض المشكلة اني اخلي الquest ياخد منك item معين قبل متبدقوا
او قبل متخلصوا

يعني لو معاك Global chatting مينفعش تاخد reward من غير متكون استعملتهم

يأما الquest ياخدها منك

Dev. iLegend
23-02-2015, 10:24 PM
بص يا باشا اولاً انا لو فكرت اعملك السيستم دا مش هيبقا الايتم الاولاني ليه استخدام هو هيبقا عبارة عن ريترن سكرول ترجعك المدينة وتنشطلك استخدام الكويست التاني ..
دا بالنظام العادي خالص انك تعمل كويست وتخليه يدي ريوارد سكرول والاسكرول دي تعمل Active new quest اللى هو ازاي بقا .. انت هتعمل فى AddNewChar يضيف سطر فى dbo._CharQuest وفي حاجة فى السطر دا بتخلى الكويست Active ot Deactive

لكن الطريقة اللى انت تقصدها .. شبه مستحيلة .. انك تضيف فى الاتنين كويست ايتم زي 50 جلوبال ولازم يخلصهوم .. ما لو كدا اعمل كويستين منفصلين واعملهم من وحوش صعبة .. غير كدا لو عايز يبقا في متعة اكتر فى الكويست اعمل كويستين معتمدين على بعض او 3 كويستات كمان والكويست الاخير اعمله ريوارد Title Name او ايتم كويس بدماغك بقا انا شرحتلك الطريقتين اللى ممكن يتعملوا .. لكن اللى بتتكلم عليه دا شغل سكريبتات كويست وانا معرفش اصلاً الباراميترات اللى رايحة للجيم سيرفر واسمائها عشان اتحكم .. نظام الكويستات دا بتاخد اي ملف كويست قديم وتعدل عليه وممكن تجمع بين كذا سكريبت بس برضه كوبي باست من غير ما تفهم .. للأسف الكويست شغله متعلق بالجيم سيرفر ..

gameman
23-02-2015, 10:49 PM
طب ازاي اخلي ال scroll تعمل activate للnew quest

gameman
23-02-2015, 10:53 PM
و معلش تعبتك انا اسف

gameman
24-02-2015, 05:41 AM
close ## i am sorry for wasting time

no need any more i know i m a big noby can't Fix my stuff

gameman
24-02-2015, 05:41 AM
close ## i am sorry for wasting time

no need any more i know i m a big noby can't Fix my stuff

Dev. iLegend
24-02-2015, 05:39 PM
بص يا ريس الخطوات اللى هتمشي عليها كالآتي :
اولاً : هتعمل كويست عادي جداً وتحددله المهمة عشان الكويست يكمل ان كانت Hunt or Collect Quest item وتحددله الريوارد سكرولاية جديدة تكون عبارة عن سطور ريترن سكرول ..

ثانياً : هتعمل الكويست التاني اللى هيبقا معتمد تنشيطه على الاسكرول اللى هيا ريوارد الكويست الاول . وتحددله برضه المهمة بتاعته والريوارد برضه ..

يفضل الاتنين فى نفس الان بي سي ..

المهم فى الاول هتسيب الاتنين شغالين لأي كراكتر .. هتروح بأي كراكتر بالليفل اللى انت محدده للكويست .. وتاخد الكويست التاني مش الاول وتخلصه .. وبالـ CharID بتاع الكراكتر اللى انت خدت بيها الكويست التاني وخلصته .. تروح فى جدول dbo._CharQuest فى الـ Shard وتشوف السطر اللي فيه اسم الكراكتر وجنبه ID الكويست التاني ..
او استخدم الكيوري دي ..

Select * From [SRO_VT_SHARD].[dbo].[_CharQuest] Where CharID = 'Write here CharID' and QuestID = 'Write here Quest ID'

هيجيلك سطر مثلاً زي دا ..

6716 1043 4 1 2015-01-21 17:24:00 2015-02-23 00:05:00 0 0

تمام جيبت سطر الكويست وهو خلصان .. هتروح فى AddNewChar وتخليه يضيف مع New Char Create السطر دا بـ ID الكراكتر الجديدة معني كدا ان الكويست الاول شغال تمام انك تاخده من الان بي سي والتاني مع اي كراكتر جديدة يضيف سطر ان الكراكتر عاملاه وميبقاش نشط انك تاخده من الان بي سي .. تمام ..

تيجي بقا مهمة الاسكرول الريوارد بتاعت الكويست الاولاني ..
هتضيفلها امر فى AddLogItem فى الـ ShardLog انها تعمل الـ AchievementCount دي بدل 1 تخليها 0 ..

او خد دا وحط الـ Quest ID و RefObjID بتاع الاسكرول

IF @Operation = 41 And @ItemRefID = 'Write here RefItemID of Scroll'
Begin
Update [SRO_VT_SHARD].[dbo].[_CharQuest] Set AchievementCount = 0 Where CharID = @CharID and QuestID = 'Write here Quest ID'
End

ارجوا ان اكون وضحت الشرح بالتفصيل ..

ملحوظة : على الكراكترات القديمة الموضوع دا مش هيشتغل لازم تضيف انت السطر اللى المفروض يتضاف بالـ AddNewChar بإديك لكل الكراكترات القديمة عن طريق CharID من dbo._Char