What is the difference? I can see that if I am using dialogues I have to use triggering player and if I use Player Group - pick each player I have to use picked player.
The thing is , I have 3 situations, 2 are using dialogues, pick nation and random nation, and 1 player group pick player, random after 2 min.
Each run the same trigger.
The trigger is kinda big so having to duplicate it and change all the lines inside from triggering player to picked player it is kinda bad... because for every change in the future I will have to do this to both .
To answer your question, quite simply one is event based, one is instance based.
Triggering Player - This can ONLY be used when an event has a player involved.
Picked Player - This can ONLY be used when using Player Groups. This is a type of loop.
(EDIT: Looking into your trigger, it shows that you're doing an !NOT for like 30 conditions... Is that what you want? Will anyone ever be NOT all those things?)
(EDIT2: I don't understand what you're trying to do with your trigger, anything beyond Player 1 will always match those conditions you set. Player 1 will NEVER match those conditions, so you will never get past it)
Last Edit: I see what you're trying to do. You're assigning a random race to a player if they have not selected after 2 minutes. A better way to approach this is that when a player DOES select a race, to set a boolean to true. Then, create this trigger with only one condition, if boolean == false, give random race.
Make it easy to tell if they've picked already. Just add them to another group besides their country group called picked already or something like that. Then just check to see if they are in that group, instead of having 30 conditions.
Ok, I have changed it. It should, I think, check if boolean is true and if nation is on, and if it is , it can pick that nation and make it unavailable after.
The problem is that it is not running. So something is missing ... http://postimg.org/image/4ljq17hvf/full/
Before it had an action pick player and do... but that was the problem in the first place because it made me use the pick player rather than triggering player.
So ? How do I make this work ?
Can I somehow make a random pick that will use triggering information. I have the trigger made with triggering player so if I try the action pick each player that wont work so I need to try something else to make it run.
Maybe with integer or something else ? But I have no idea ...
the "TEST" trigger has no event, and therefore no triggering player. Let me explain what it means very clearly:
Triggering Player = The player that is directly related to the Event of that trigger, not any other trigger.
Picked Player = The player currently being used by the "Pick Each Player in x" action
Those two are completely different things.
Also, you are using triggers in the way you would use an action definition - The problem with that is that you can't pass down parameters if you use triggers.
What you want to do is create a new action defintion, and copy the TEST trigger into it. The, where it says Parameters, add a new one of type "Integer"
Then look over the actions you copied in and change each and every "Triggering Player" to the parameter you just created (When you select "Triggering Player", at the top you have multiple choices like "Function" and "Variable", one of them is "Paramater" and will list all valid parameters)
Go back to your previous trigger. Replace the "Run Trigger "TEST"" action with the action definition you created. It will have one paramater - The thingies in actions that you can change to different values. Set it to "Triggering Player" (Assuming that trigger has an event that actually has a triggering player and isn't just a timer running out)
If it doesn't work (OR anything else for that matter), do some debugging. It means you try and find the exact source of your problem. One of the easiest ways to do that is to use the "Debug Message" or "Text Message" actions to print out a message on your screen with the value that could possibly cause a problem (So if "Triggering Player" isn't working, you do "Debug Message(Convert Integer To Text(Triggering Player))" and then you'll see whether it's giving you the right player. If it ends up saying -1 or 16 in game, it means there is no triggering player and you will have to use something else like variables or parameters depending on what you are trying to do and how you're doing it)
In that case Triggering Player is absolutely useless.
You'll need to figure out how to find the player you want. Easiest way of doing it is going through all players and checking a variable (So if this is supposed to be a trigger related to picking a certain race/faction/whatever, check the appropriate race/faction/whatever variable to see whether they picked something or nothing or whatever.) This is where "Pick Each Player" comes in handy, put an "If Then Else" in there, see if the picked player matches your conditions, and then proceed with the appropriate actions.
Triggering player - Picked Player
What is the difference? I can see that if I am using dialogues I have to use triggering player and if I use Player Group - pick each player I have to use picked player.
The thing is , I have 3 situations, 2 are using dialogues, pick nation and random nation, and 1 player group pick player, random after 2 min.
Each run the same trigger.
The trigger is kinda big so having to duplicate it and change all the lines inside from triggering player to picked player it is kinda bad... because for every change in the future I will have to do this to both .
I will attach a photo. Maybe it will make more sense . http://postimg.org/image/x5ndc3axj/full/
Is there a way to make this work ?
@gorjdesign: Go
To answer your question, quite simply one is event based, one is instance based.
(EDIT: Looking into your trigger, it shows that you're doing an !NOT for like 30 conditions... Is that what you want? Will anyone ever be NOT all those things?)
(EDIT2: I don't understand what you're trying to do with your trigger, anything beyond Player 1 will always match those conditions you set. Player 1 will NEVER match those conditions, so you will never get past it)
Last Edit: I see what you're trying to do. You're assigning a random race to a player if they have not selected after 2 minutes. A better way to approach this is that when a player DOES select a race, to set a boolean to true. Then, create this trigger with only one condition, if boolean == false, give random race.
@gorjdesign: Go
Make it easy to tell if they've picked already. Just add them to another group besides their country group called picked already or something like that. Then just check to see if they are in that group, instead of having 30 conditions.
Still alive and kicking, just busy.
My guide to the trigger editor (still a work in progress)
Ok, I have changed it. It should, I think, check if boolean is true and if nation is on, and if it is , it can pick that nation and make it unavailable after. The problem is that it is not running. So something is missing ... http://postimg.org/image/4ljq17hvf/full/
Before it had an action pick player and do... but that was the problem in the first place because it made me use the pick player rather than triggering player.
No ideas ??
So ? How do I make this work ? Can I somehow make a random pick that will use triggering information. I have the trigger made with triggering player so if I try the action pick each player that wont work so I need to try something else to make it run. Maybe with integer or something else ? But I have no idea ...
Use action definitions if you want to pass information around.
So.. according to the photos I posted. How should this action definition look like ?
ZZZZZzzzzzzzZZZZZZZ.......
the "TEST" trigger has no event, and therefore no triggering player. Let me explain what it means very clearly:
Triggering Player = The player that is directly related to the Event of that trigger, not any other trigger.
Picked Player = The player currently being used by the "Pick Each Player in x" action
Those two are completely different things.
Also, you are using triggers in the way you would use an action definition - The problem with that is that you can't pass down parameters if you use triggers.
What you want to do is create a new action defintion, and copy the TEST trigger into it. The, where it says Parameters, add a new one of type "Integer"
Then look over the actions you copied in and change each and every "Triggering Player" to the parameter you just created (When you select "Triggering Player", at the top you have multiple choices like "Function" and "Variable", one of them is "Paramater" and will list all valid parameters)
Go back to your previous trigger. Replace the "Run Trigger "TEST"" action with the action definition you created. It will have one paramater - The thingies in actions that you can change to different values. Set it to "Triggering Player" (Assuming that trigger has an event that actually has a triggering player and isn't just a timer running out)
If it doesn't work (OR anything else for that matter), do some debugging. It means you try and find the exact source of your problem. One of the easiest ways to do that is to use the "Debug Message" or "Text Message" actions to print out a message on your screen with the value that could possibly cause a problem (So if "Triggering Player" isn't working, you do "Debug Message(Convert Integer To Text(Triggering Player))" and then you'll see whether it's giving you the right player. If it ends up saying -1 or 16 in game, it means there is no triggering player and you will have to use something else like variables or parameters depending on what you are trying to do and how you're doing it)
I hope that helped.
@TheAlmaity: Go
Hello Doctor :)
How do I call for the action definition ?
http://postimg.org/image/kshbwsizr/
EDIT: Never mind , I found it in general .
But this trigger that it is in right now is just a timer running out ...
In that case Triggering Player is absolutely useless.
You'll need to figure out how to find the player you want. Easiest way of doing it is going through all players and checking a variable (So if this is supposed to be a trigger related to picking a certain race/faction/whatever, check the appropriate race/faction/whatever variable to see whether they picked something or nothing or whatever.) This is where "Pick Each Player" comes in handy, put an "If Then Else" in there, see if the picked player matches your conditions, and then proceed with the appropriate actions.
Well... I guess I will just have to double those triggers and use picked player... Sucks but don't seem other way to make it work.
Thx anyway .