Question About Conditions

Hey!

I am working on trying the fix the npc Highlord Demitrian, who starts the quest chain to obtian Thunderfury, Blessed Blade of the Windseeker.

This npc should when spoken to, with no requirements, show you, lets say gossip_menu A and gossip_menu_option A, this I have done and it’s working fine.

However, if you have the items right Bindings of the Windseeker, the left Bindings of the Windseeker or both in your inventory, his gossip should change to gossip_menu B and gossip_menu_option B.

After spoken to completly he should then allso give you the item Vessel of Rebirth.

This I can not get to work 100% offi like.

Here is what I have done so far

[CODE]

– Gossip for Highlord Demitrian

SET @Gossip=50052;
SET @Demitrian=14347; – Highlord Demitrian
SET @Item=18563; – Bindings of the Windseeker
UPDATE creature_template SET gossip_menu_id=@Gossip, AIName=‘SmartAI’ WHERE entry=@Demitrian;

DELETE FROM gossip_menu WHERE (entry BETWEEN @Gossip AND @Gossip+11) AND text_id IN (6812,6842,6843,6844,6867,6868,6869,6870,6954,6955,6956,6958);
INSERT INTO gossip_menu (entry, text_id) VALUES
(@Gossip+00, 6812), – gossip if no item
(@Gossip+00, 6954), – gossip if item
(@Gossip+01, 6842), – gossip if no item 01
(@Gossip+02, 6843), – gossip if no item 02
(@Gossip+03, 6844), – gossip if no item 03
(@Gossip+04, 6867), – gossip if no item 04
(@Gossip+05, 6868), – gossip if no item 05
(@Gossip+06, 6869), – gossip if no item 06
(@Gossip+07, 6870), – gossip if no item 07
(@Gossip+08, 6954), – gossip if item 01
(@Gossip+09, 6955), – gossip if item 02
(@Gossip+10, 6956), – gossip if item 03
(@Gossip+11, 6958); – gossip if item 04

DELETE FROM gossip_menu_option WHERE menu_id BETWEEN @Gossip AND @Gossip+11;
INSERT INTO gossip_menu_option (menu_id,id,option_text,option_id,npc_option_npcflag,action_menu_id) VALUES
(@Gossip+00,0,‘What do you know of it?’,1,1,@Gossip+01),
(@Gossip+00,1,‘What must be done?’,1,1,@Gossip+09),
(@Gossip+01,0,‘I am listening, Demitrian.’,1,1,@Gossip+02),
(@Gossip+02,0,‘Continue, please.’,1,1,@Gossip+03),
(@Gossip+03,0,‘A battle?’,1,1,@Gossip+04),
(@Gossip+04,0,‘.’,1,1,@Gossip+05),
(@Gossip+05,0,‘Caught unaware? How?’,1,1,@Gossip+06),
(@Gossip+06,0,‘So what did Ragnaros do next?’,1,1,@Gossip+07),
(@Gossip+09,0,‘The Firelord and all who dare stand in my way shall reel from my wrath.’,1,1,@Gossip+10),
(@Gossip+10,0,‘I shall scour the earth for this Earthshaper. What of the essence?’,1,1,@Gossip+11),
(@Gossip+11,0,‘Give me the vessel, Highlord.’,1,1,0);

DELETE FROM conditions WHERE SourceTypeOrReferenceId IN (14,15) AND SourceGroup IN (@Gossip+0);
INSERT INTO conditions (SourceTypeOrReferenceId,SourceGroup,SourceEntry,ElseGroup,ConditionTypeOrReference,ConditionValue1,ConditionValue2,NegativeCondition,Comment) VALUES
(14,@Gossip+00,6954,0,2,@Item,1,0,‘Highlord Demitrian - show gossip 6954 if player has item Left - or both Bindings of the Windseeker’),
(14,@Gossip+00,6954,1,2,@Item+1,1,0,‘Highlord Demitrian - show gossip 6954 if player has item Right - or both Bindings of the Windseeker’),
(15,@Gossip+00,1,1,2,@Item,1,0,‘’),
(15,@Gossip+00,0,1,2,@Item,1,1,‘’),
(15,@Gossip+00,1,0,2,@Item+1,1,0,‘’),
(15,@Gossip+00,0,0,2,@Item+1,1,1,‘’),
(15,@Gossip+00,0,0,26,@Item,0,1,‘’);

DELETE FROM smart_scripts WHERE entryorguid=@Demitrian AND source_type=0;
INSERT INTO smart_scripts (entryorguid, source_type, id, link, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, target_type, target_param1, target_param2, target_param3, target_x, target_y, target_z, target_o, comment) VALUES
(@Demitrian,0,0,0,62,0,100,0,@Gossip+11,0,0,0,56,19016,1,0,0,0,0,7,0,0,0,0,0,0,0,‘Highlord Demitrian - On gossip select 11 give item’),
(@Demitrian,0,1,0,62,0,100,0,@Gossip+11,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,‘Highlord Demitrian - On gossip select 11 close gossip’);

[/sql][/CODE]

Okey, a few things to explain about this code.

First; this ncp allready have a script in a CPP file, naturally that script must be removed so no conflicts emerge /emoticons/default_wink.png

Second; the value for Gossip is my own numbers, fell free to change them if you have to.

Third; half of the gossip_menu_option text I took from the CPP script file, the rest taken from screenshots from offi, have a char there that recently got one of the Bindings. Allso confirmed from comments on http://old.wowhead.c…=14347#comments

So, the problem that I have is with the right Bindings of the Windseeker, when you only have that and not the left piece in your inventory, both gossip_menu_option A (in my script, Gossip+00 with ID 0) and B (in my script, Gossip+00 with ID 1) is displayed. I only want gossip_menu_option B to be seen.

My guess is that the problem lies in the condition table somewhere, since I more or less just changed around numbers and hoped for the best.

Which is why all of SourceTypeOrReferenceId 15 don’t have anny comments /emoticons/default_rolleyes.gif.

Any help with this matter whould be greatly appreciated.

Thank you.

/Jonne

the last condition you set has the wrong condition type its set at 26 not 2, so it shows Gossip+00 with ID 0

try it with just the first 4 you wrote

(15,@Gossip+00,1,1,2,@Item,1,0,'Highlord Demitrian - if player has left hand - show gossip 0'), (15,@Gossip+00,0,1,2,@Item,1,1,'Highlord Demitrian - if player is missing left - show gossip 1'), (15,@Gossip+00,1,0,2,@Item+1,1,0,'Highlord Demitrian - if player has right hand - show gossip 1'), (15,@Gossip+00,0,0,2,@Item+1,1,1,'Highlord Demitrian - if player is missing right - show gossip 0'), [/sql]

@ frewdis

Thanks for the sugested script. I tried it, however it did not fix the issue I am having.

About the condition type 26, I am using that because looking at already implemented scripts and checking out the wiki, type 26 is a phasemask and from what I could conclude it is used when you want to hide something that is normally shown ( please correct me if I am wrong in that assumption). In this case it is to hide Gossip+00 id 0 when you have item id 18563 in you inventory.

Thanks again for helping out though. /emoticons/default_smile.png