- Joined
- Feb 28, 2013
- Messages
- 1,898
Hello, can someone help me?
So I made a hunting quest system, and for some reason when I talk to the Rifleman (Trigger 'Hunter 1') it's not getting the UnitType[1] stored in the array, but when I talk to the Priest (Trigger 'Hunter 2') it is getting the UnitType[2] in the array. Can someone help me figure out the problem?
I also provided screenshots
Notes
• QR_HuntingTargetKillAmounts[] and QR_HuntingTargetKillAmount are disabled actions, so should not overwriting the unit type stored in the hashtable.
• I'll fix the point leaks later.
Hunter 1 and Hunter 2 triggers are very similar triggers, the only difference is the condition 'Casting Unit = <Rifleman/Priest>'
So I made a hunting quest system, and for some reason when I talk to the Rifleman (Trigger 'Hunter 1') it's not getting the UnitType[1] stored in the array, but when I talk to the Priest (Trigger 'Hunter 2') it is getting the UnitType[2] in the array. Can someone help me figure out the problem?
I also provided screenshots
Notes
• QR_HuntingTargetKillAmounts[] and QR_HuntingTargetKillAmount are disabled actions, so should not overwriting the unit type stored in the hashtable.
• I'll fix the point leaks later.
-
Quest Repeatable Register Targets Hunting
-

Events
-


Time - Elapsed game time is 0.00 seconds
-
-

Conditions
-

Actions
-


Set QF_Index = 1
-


Trigger - Run Quest Repeatable Register Targets Hunting 1 <gen> (ignoring conditions)
-


Game - Display to (All players) the text: (String(QR_HuntingTargetUnitTypeMax[QF_Index]))
-


-------- --------
-


Set QF_Index = 2
-


Trigger - Run Quest Repeatable Register Targets Hunting 2 <gen> (ignoring conditions)
-


Game - Display to (All players) the text: (String(QR_HuntingTargetUnitTypeMax[QF_Index]))
-
-
-
Quest Repeatable Hunter
-

Events
-


Unit - A unit Begins casting an ability
-
-

Conditions
-

Actions
-


Set QF_Index = 1
-


Trigger - Run Quest Repeatable Hunter 1 <gen> (checking conditions)
-


-------- --------
-


Set QF_Index = 2
-


Trigger - Run Quest Repeatable Hunter 2 <gen> (checking conditions)
-
-
-
Quest Repeatable Finish Hunting
-

Events
-


Unit - A unit Dies
-
-

Conditions
-

Actions
-


Set QF_Index = 1
-


Trigger - Run Quest Repeatable Finish Hunting 1 <gen> (checking conditions)
-


-------- --------
-


Set QF_Index = 2
-


Trigger - Run Quest Repeatable Finish Hunting 2 <gen> (checking conditions)
-
-
-
Quest Repeatable Register Targets Hunting 1
-

Events
-

Conditions
-

Actions
-


Hashtable - Create a hashtable
-


Set QR_HuntingHashtable[QF_Index] = (Last created hashtable)
-


-------- --------
-


Set QR_HuntingTargetUnitTypeMax[QF_Index] = 0
-


-------- --------
-


Set QR_HuntingTargetUnitTypeMax[QF_Index] = (QR_HuntingTargetUnitTypeMax[QF_Index] + 1)
-


Set QR_HuntingTargetUnitTypes[QR_HuntingTargetUnitTypeMax[QF_Index]] = Grunt
-


Set QR_HuntingTargetKillAmounts[QR_HuntingTargetUnitTypeMax[QF_Index]] = 6
-


Custom script: call SaveIntegerBJ( udg_QR_HuntingTargetUnitTypes[udg_QR_HuntingTargetUnitTypeMax[udg_QF_Index]], udg_QR_HuntingTargetUnitTypeMax[udg_QF_Index], udg_QF_Index, udg_QR_HuntingHashtable[udg_QF_Index] )
-


Hashtable - Save QR_HuntingTargetKillAmounts[QR_HuntingTargetUnitTypeMax[QF_Index]] as QR_HuntingTargetUnitTypeMax[QF_Index] of QF_Index in QR_HuntingHashtable[QF_Index]
-
-
-
Quest Repeatable Hunter 1
-

Events
-

Conditions
-

Actions
-


If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-



If - Conditions
-




(Ability being cast) Equal to Interact - Both (Chain Lightning - Neutral Hostile)
-




(Unit-type of (Target unit of ability being cast)) Equal to Rifleman
-
-



Then - Actions
-




Set QG_Person[1] = Global_MainHero
-




Set QG_Person[2] = (Target unit of ability being cast)
-




-------- --------
-




If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-





If - Conditions
-






(QG_Person[2] is in QG_QuestUnitNotDoneGroup) Equal to True
-
-





Then - Actions
-






If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-







If - Conditions
-








QR_HuntingIsActive[QF_Index] Equal to False
-
-







Then - Actions
-








-------- --------
-








-------- Random generation does not work inside the cinematic as told by DSG --------
-








Set QG_JobType = Hunting
-








-------- --------
-








Set QG_Randomizer = (Random integer number between 1 and QR_HuntingTargetUnitTypeMax[QF_Index])
-








Custom script: set udg_QR_HuntingTargetUnitType[udg_QF_Index] = LoadIntegerBJ(udg_QG_Randomizer, udg_QF_Index, udg_QR_HuntingHashtable[udg_QF_Index])
-








Game - Display to (All players) the text: (String(QG_Randomizer))
-








Game - Display to (All players) the text: (String(QF_Index))
-








Set QR_HuntingTargetKillAmount[QF_Index] = (Load QG_Randomizer of QF_Index from QR_HuntingHashtable[QF_Index])
-








-------- --------
-








Unit - Create 1 QR_HuntingTargetUnitType[QF_Index] for Neutral Passive at (Center of (Playable map area)) facing Default building facing degrees
-








Set QR_HuntingTitle[QF_Index] = (QG_JobType + :) + (Name of (Last created unit))))
-








Set QR_HuntingDescription[QF_Index] = (Kill atleast + ((String(QR_HuntingTargetKillAmount[QF_Index])) + ( of + (Name of (Last created unit)))))
-








Unit - Remove (Last created unit) from the game
-








-------- --------
-








Cinematic - Turn cinematic mode On for (All players)
-








Cinematic - Enable user control for (All players)
-








Unit - Make QG_Person[1] face QG_Person[2] over 0.00 seconds
-








Unit - Make QG_Person[2] face QG_Person[1] over 0.00 seconds
-








Unit - Pause QG_Person[2]
-








-------- --------
-








-------- Conversation --------
-








Cinematic - Flash a speech indicator for QG_Person[1] of color (100.00%, 100.00%, 0.00%) with 0.00% transparency
-








Cinematic - Send transmission to (All players) from QG_Person[1] named (Name of QG_Person[1]): Play No sound and display I hear that you hav.... Modify duration: Set to 3.00 seconds and Wait
-








-------- --------
-








-------- Conversation --------
-








Unit - Create 1 QR_HuntingTargetUnitType[QF_Index] for Neutral Passive at (Center of (Playable map area)) facing Default building facing degrees
-








Cinematic - Flash a speech indicator for QG_Person[1] of color (100.00%, 100.00%, 0.00%) with 0.00% transparency
-








Cinematic - Send transmission to (Player group(Player 1 (Red))) from QG_Person[2] named (Name of QG_Person[2]): Play No sound and display (Are you willing to hunt for some + ((Name of (Last created unit)) + ?)). Modify duration: Set to 6.00 seconds and Wait
-








Unit - Remove (Last created unit) from the game
-








-------- --------
-








-------- Create dialog --------
-








Dialog - Clear QG_QuestAcceptDialog
-








Dialog - Change the title of QG_QuestAcceptDialog to QR_HuntingTitle[QF_Index]
-








Dialog - Create a dialog button for QG_QuestAcceptDialog labelled Accept
-








Set QG_QuestAcceptDialogButton[1] = (Last created dialog Button)
-








Dialog - Create a dialog button for QG_QuestAcceptDialog labelled Ignore
-








Set QG_QuestAcceptDialogButton[9] = (Last created dialog Button)
-








Dialog - Show QG_QuestAcceptDialog for Player 1 (Red)
-








Set QG_QuestDialogButtonClicked = 0
-








Wait until (QG_QuestDialogButtonClicked Not equal to 0), checking every 0.10 seconds
-








-------- --------
-








-------- Here's where player picks whether he approves or disapproves the quest --------
-








If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-









If - Conditions
-










QG_QuestDialogButtonClicked Equal to 1
-
-









Then - Actions
-










-------- --------
-










Game - Display to (All players) the text: ([Quest Discovered - " + (QR_HuntingTitle[QF_Index] + "]))
-










Quest - Create a Required quest titled QR_HuntingTitle[QF_Index] with the description |n, using icon path (Icon of Carry - Both (Channel - Load Corpse))
-










Quest - Create a quest requirement for (Last created quest) with the description QR_HuntingDescription[QF_Index]
-










Quest - Flash the quest dialog button
-










Set QR_HuntingQuest[QF_Index] = (Last created quest)
-










Set QR_HuntingIsActive[QF_Index] = True
-










-------- --------
-










Unit Group - Remove QG_Person[2] from QG_QuestUnitNotDoneGroup
-










Unit Group - Add QG_Person[2] to QG_QuestUnitDoneGroup
-










Unit - Remove Attachment Quest Indicator (Claws of Attack) from QG_Person[2]
-










-------- --------
-










Cinematic - Flash a speech indicator for QG_Person[1] of color (100.00%, 100.00%, 0.00%) with 0.00% transparency
-










Cinematic - Send transmission to (All players) from QG_Person[1] named (Name of QG_Person[1]): Play No sound and display Got it.. Modify duration: Set to 2.00 seconds and Wait
-
-









Else - Actions
-










If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-











If - Conditions
-












QG_QuestDialogButtonClicked Equal to 9
-
-











Then - Actions
-












Cinematic - Flash a speech indicator for QG_Person[1] of color (100.00%, 100.00%, 0.00%) with 0.00% transparency
-












Cinematic - Send transmission to (All players) from QG_Person[1] named (Name of QG_Person[1]): Play No sound and display Pass.. Modify duration: Set to 2.00 seconds and Wait
-
-











Else - Actions
-
-
-
-








Unit - Unpause QG_Person[2]
-








Cinematic - Turn cinematic mode Off for (All players)
-
-







Else - Actions
-








Game - Display to (All players) the text: [Quest given by thi...
-
-
-
-





Else - Actions
-
-
-



Else - Actions
-
-
-
-
Quest Repeatable Finish Hunting 1
-

Events
-

Conditions
-

Actions
-


If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-



If - Conditions
-




QR_HuntingIsActive[QF_Index] Equal to True
-




(Killing unit) Equal to Global_MainHero
-




(Unit-type of (Dying unit)) Equal to QR_HuntingTargetUnitType[QF_Index]
-
-



Then - Actions
-




Set QR_HuntingTargetCurrentKills[QF_Index] = (QR_HuntingTargetCurrentKills[QF_Index] + 1)
-




If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-





If - Conditions
-






QR_HuntingTargetCurrentKills[QF_Index] Greater than or equal to QR_HuntingTargetKillAmount[QF_Index]
-
-





Then - Actions
-






Game - Display to (All players) the text: ([Quest Completed - " + (QR_HuntingTitle[QF_Index] + "]))
-






Quest - Destroy QR_HuntingQuest[QF_Index]
-






-------- --------
-






Player - Add 600 to Player 1 (Red) Current gold
-






-------- --------
-






Set QR_HuntingIsActive[QF_Index] = False
-






Set QR_HuntingTargetUnitType[QF_Index] = No unit-type
-






Set QR_HuntingTargetCurrentKills[QF_Index] = 0
-






Set QR_HuntingTargetKillAmount[QF_Index] = 0
-
-





Else - Actions
-
-
-



Else - Actions
-
-
-
-
Quest Repeatable Register Targets Hunting 2
-

Events
-

Conditions
-

Actions
-


Hashtable - Create a hashtable
-


Set QR_HuntingHashtable[QF_Index] = (Last created hashtable)
-


-------- --------
-


Set QR_HuntingTargetUnitTypeMax[QF_Index] = 0
-


-------- --------
-


Set QR_HuntingTargetUnitTypeMax[QF_Index] = (QR_HuntingTargetUnitTypeMax[QF_Index] + 1)
-


Set QR_HuntingTargetUnitTypes[QR_HuntingTargetUnitTypeMax[QF_Index]] = Shaman
-


Set QR_HuntingTargetKillAmounts[QR_HuntingTargetUnitTypeMax[QF_Index]] = 6
-


Custom script: call SaveIntegerBJ( udg_QR_HuntingTargetUnitTypes[udg_QR_HuntingTargetUnitTypeMax[udg_QF_Index]], udg_QR_HuntingTargetUnitTypeMax[udg_QF_Index], udg_QF_Index, udg_QR_HuntingHashtable[udg_QF_Index] )
-


Hashtable - Save QR_HuntingTargetKillAmounts[QR_HuntingTargetUnitTypeMax[QF_Index]] as QR_HuntingTargetUnitTypeMax[QF_Index] of QF_Index in QR_HuntingHashtable[QF_Index]
-
-
-
Quest Repeatable Hunter 2
-

Events
-

Conditions
-

Actions
-


If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-



If - Conditions
-




(Ability being cast) Equal to Interact - Both (Chain Lightning - Neutral Hostile)
-




(Unit-type of (Target unit of ability being cast)) Equal to Priest
-
-



Then - Actions
-




Set QG_Person[1] = Global_MainHero
-




Set QG_Person[2] = (Target unit of ability being cast)
-




-------- --------
-




If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-





If - Conditions
-






(QG_Person[2] is in QG_QuestUnitNotDoneGroup) Equal to True
-
-





Then - Actions
-






If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-







If - Conditions
-








QR_HuntingIsActive[QF_Index] Equal to False
-
-







Then - Actions
-








-------- --------
-








-------- Random generation does not work inside the cinematic as told by DSG --------
-








Set QG_JobType = Hunting
-








-------- --------
-








Set QG_Randomizer = (Random integer number between 1 and QR_HuntingTargetUnitTypeMax[QF_Index])
-








Custom script: set udg_QR_HuntingTargetUnitType[udg_QF_Index] = LoadIntegerBJ(udg_QG_Randomizer, udg_QF_Index, udg_QR_HuntingHashtable[udg_QF_Index])
-








Game - Display to (All players) the text: (String(QG_Randomizer))
-








Game - Display to (All players) the text: (String(QF_Index))
-








Set QR_HuntingTargetKillAmount[QF_Index] = (Load QG_Randomizer of QF_Index from QR_HuntingHashtable[QF_Index])
-








-------- --------
-








Unit - Create 1 QR_HuntingTargetUnitType[QF_Index] for Neutral Passive at (Center of (Playable map area)) facing Default building facing degrees
-








Set QR_HuntingTitle[QF_Index] = (QG_JobType + :) + (Name of (Last created unit))))
-








Set QR_HuntingDescription[QF_Index] = (Kill atleast + ((String(QR_HuntingTargetKillAmount[QF_Index])) + ( of + (Name of (Last created unit)))))
-








Unit - Remove (Last created unit) from the game
-








-------- --------
-








Cinematic - Turn cinematic mode On for (All players)
-








Cinematic - Enable user control for (All players)
-








Unit - Make QG_Person[1] face QG_Person[2] over 0.00 seconds
-








Unit - Make QG_Person[2] face QG_Person[1] over 0.00 seconds
-








Unit - Pause QG_Person[2]
-








-------- --------
-








-------- Conversation --------
-








Cinematic - Flash a speech indicator for QG_Person[1] of color (100.00%, 100.00%, 0.00%) with 0.00% transparency
-








Cinematic - Send transmission to (All players) from QG_Person[1] named (Name of QG_Person[1]): Play No sound and display I hear that you hav.... Modify duration: Set to 3.00 seconds and Wait
-








-------- --------
-








-------- Conversation --------
-








Unit - Create 1 QR_HuntingTargetUnitType[QF_Index] for Neutral Passive at (Center of (Playable map area)) facing Default building facing degrees
-








Cinematic - Flash a speech indicator for QG_Person[1] of color (100.00%, 100.00%, 0.00%) with 0.00% transparency
-








Cinematic - Send transmission to (Player group(Player 1 (Red))) from QG_Person[2] named (Name of QG_Person[2]): Play No sound and display (Are you willing to hunt for some + ((Name of (Last created unit)) + ?)). Modify duration: Set to 6.00 seconds and Wait
-








Unit - Remove (Last created unit) from the game
-








-------- --------
-








-------- Create dialog --------
-








Dialog - Clear QG_QuestAcceptDialog
-








Dialog - Change the title of QG_QuestAcceptDialog to QR_HuntingTitle[QF_Index]
-








Dialog - Create a dialog button for QG_QuestAcceptDialog labelled Accept
-








Set QG_QuestAcceptDialogButton[1] = (Last created dialog Button)
-








Dialog - Create a dialog button for QG_QuestAcceptDialog labelled Ignore
-








Set QG_QuestAcceptDialogButton[9] = (Last created dialog Button)
-








Dialog - Show QG_QuestAcceptDialog for Player 1 (Red)
-








Set QG_QuestDialogButtonClicked = 0
-








Wait until (QG_QuestDialogButtonClicked Not equal to 0), checking every 0.10 seconds
-








-------- --------
-








-------- Here's where player picks whether he approves or disapproves the quest --------
-








If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-









If - Conditions
-










QG_QuestDialogButtonClicked Equal to 1
-
-









Then - Actions
-










-------- --------
-










Game - Display to (All players) the text: ([Quest Discovered - " + (QR_HuntingTitle[QF_Index] + "]))
-










Quest - Create a Required quest titled QR_HuntingTitle[QF_Index] with the description |n, using icon path (Icon of Carry - Both (Channel - Load Corpse))
-










Quest - Create a quest requirement for (Last created quest) with the description QR_HuntingDescription[QF_Index]
-










Quest - Flash the quest dialog button
-










Set QR_HuntingQuest[QF_Index] = (Last created quest)
-










Set QR_HuntingIsActive[QF_Index] = True
-










-------- --------
-










Unit Group - Remove QG_Person[2] from QG_QuestUnitNotDoneGroup
-










Unit Group - Add QG_Person[2] to QG_QuestUnitDoneGroup
-










Unit - Remove Attachment Quest Indicator (Claws of Attack) from QG_Person[2]
-










-------- --------
-










Cinematic - Flash a speech indicator for QG_Person[1] of color (100.00%, 100.00%, 0.00%) with 0.00% transparency
-










Cinematic - Send transmission to (All players) from QG_Person[1] named (Name of QG_Person[1]): Play No sound and display Got it.. Modify duration: Set to 2.00 seconds and Wait
-
-









Else - Actions
-










If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-











If - Conditions
-












QG_QuestDialogButtonClicked Equal to 9
-
-











Then - Actions
-












Cinematic - Flash a speech indicator for QG_Person[1] of color (100.00%, 100.00%, 0.00%) with 0.00% transparency
-












Cinematic - Send transmission to (All players) from QG_Person[1] named (Name of QG_Person[1]): Play No sound and display Pass.. Modify duration: Set to 2.00 seconds and Wait
-
-











Else - Actions
-
-
-
-








Unit - Unpause QG_Person[2]
-








Cinematic - Turn cinematic mode Off for (All players)
-
-







Else - Actions
-








Game - Display to (All players) the text: [Quest given by thi...
-
-
-
-





Else - Actions
-
-
-



Else - Actions
-
-
-
-
Quest Repeatable Finish Hunting 2
-

Events
-

Conditions
-

Actions
-


If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-



If - Conditions
-




QR_HuntingIsActive[QF_Index] Equal to True
-




(Killing unit) Equal to Global_MainHero
-




(Unit-type of (Dying unit)) Equal to QR_HuntingTargetUnitType[QF_Index]
-
-



Then - Actions
-




Set QR_HuntingTargetCurrentKills[QF_Index] = (QR_HuntingTargetCurrentKills[QF_Index] + 1)
-




If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-





If - Conditions
-






QR_HuntingTargetCurrentKills[QF_Index] Greater than or equal to QR_HuntingTargetKillAmount[QF_Index]
-
-





Then - Actions
-






Game - Display to (All players) the text: ([Quest Completed - " + (QR_HuntingTitle[QF_Index] + "]))
-






Quest - Destroy QR_HuntingQuest[QF_Index]
-






-------- --------
-






Player - Add 600 to Player 1 (Red) Current gold
-






-------- --------
-






Set QR_HuntingIsActive[QF_Index] = False
-






Set QR_HuntingTargetUnitType[QF_Index] = No unit-type
-






Set QR_HuntingTargetCurrentKills[QF_Index] = 0
-






Set QR_HuntingTargetKillAmount[QF_Index] = 0
-
-





Else - Actions
-
-
-



Else - Actions
-
-
-
Hunter 1 and Hunter 2 triggers are very similar triggers, the only difference is the condition 'Casting Unit = <Rifleman/Priest>'
Attachments
Last edited:



