You must be logged in to post messages.
Please login or register

Scenario Design
Moderated by MosheLevi, Mister SCP

Hop to:    
Welcome! You are not logged in. Please Login or Register.849 replies, Sticky
Age of Empires III Heaven » Forums » Scenario Design » Have a Trigger Request? Post it here!
Bottom
Topic Subject:Have a Trigger Request? Post it here!
« Previous Page  1 ··· 11 12 13 14 15 ··· 20 ··· 30 ··· 34  Next Page »
Mister SCP
Scenario Reviewer
posted 05-22-09 02:11 AM EDT (US)         
So you have a trigger request?

You can post it here!

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

    Hello and welcome to the Trigger Request Thread (TRT). This thread's purpose is only to place trigger requests and discuss them.


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

    Before posting your request, it's always good to read the so-called FAQ.

    How do I install a trigger?

    When we have finished making your trigger, we'll post the required code here. To install this code you will first of all need to find your way to the AOEž installation folder. C:\Program Files\Microsoft Games\Age of Empires3 by default).
    Now open the trigger folder if you use vanilla -trigger1, if you use TWC -trigger2, and finally if you use TAD go to -trigger3.
    Next, open the file called typetest.xml. The only thing left to do is copy the code at the right position and save. If you requested a condition, then place the line above ,
    if you requested an effect paste it right above . Note the "s" at the end of both tags.

    Notes:

  • When copying the trigger from someone please click first and only then copy the required code.

  • If you're still uncomfortable with installing triggers please backup the original typetest file, i.e. copy the original to another folder.

    How do I uninstall a trigger?
    If a trigger happens to be faulty or if it generates errors you better remove it. Just do as if you were installing a new trigger, but instead of copy-pasting new code, remove the code corresponding with the chosen trigger. Make sure to remove it completely, including the starting < effect > or < condition > tag and the corresponding < /effect > or < /condition > closing tag. Failure to do so properly will cause XML errors in the file making ALL triggers in that file inaccessbile for AoM.


    Help! My triggers have stopped working! If this doesnt help you can send an email including your scenario to mister.scp@gmail.com.


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

    Recommended Downloads:
    -Advanced Trigger Set
    -My Trigger Set
    -Gunner`s Trigger Set
    -Random22`s Trigger Set
    -Hedanito`s Trigger Set
    -Kolt`S Trigger Set
    -SH Trigger
    -M925's Trigger Set

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


    Posting a Request

    So you have read the FAQ and want to post a request? OK, go for it, just be sure to use the following format:

    Name - This should be as straightforward as possible. Try to comply with today's standards.Description - Always describe the actions that you want the trigger to perform. An example can be a great help when requesting complex triggers.

    [b]Name[/b]
    [b]Description[/b]
    [b]Params[/b]
    (A List of Params. If you are pretty nice you set them in the context with your request.)


    Unfinished Requests

    -a lot

    Finished Requests
    -even more (list isnt up to date)

    Not Possible:
    -Fixing Modify Protounit
    -Fixing Chat Contain
    -Change name of the protounit which affect also the name when you train it
    ------------------------------------------------------------ --------------------
    Additional: XS - Basics (mostly based on pftq's guide for XS - Effects + Conditions)

    XS - Triggers are a bit different from other triggers, since they use strings instead for e.g. PlayerID, Unit Select...
    The key highlight of these effects/conditions is to allow Unit Selections to be specified by number or QV. This makes great use of the effects which set QV to an OBJECT ID and opens up a whole new world of possibilites.

    This includes all original and new effects/conditions with ALL appliable fields set to use ANY form of data, including but not limited to:
  • -- Quest Var Code: enter trQuestVarGet("QVNAME")
  • -- Player Stats: enter trGetStatValue(PLAYER, STATID_NUMBER) e.g. trGetStatValue(1, 2)-> count "Enemy Units Killed" for Player 1
  • -- Math Operations: (5*PlayerStat) ...allowed are + - * / as Math Operations
  • -- Any XS Code: (just open the typetest.xml and start digging!)

    typical strings: (strings with * have additional informations on the bottom)
  • Amount (of resources), Radius, Headings, Duration, Damage Percent, Count (e.g. in Army Deploy), Rate (e.g. of Construction), Value
  • the table of PlayerID┤s is a string
  • Operators* (don't use any numbers for them!)
  • Center Unit OBJECT ID/Source Unit OBJECT ID/Target Unit OBJECT ID **
  • Unit Type ID /ProtounitID ***



  • *Operators you can use are:
    == equal to
    >= equal to or higher
    <= equal to or lower
    > higher
    < lower
    != is not equal to

  • **The Unit Selections require an OBJECT ID. This is NOT the same as a NAME ID (like in Reyk's triggers). To find an OBJECT ID, use the supplied "QV Set.. OBJECT ID" effects OR select a unit and open the "Object Info" window. Open the Object Debug Info Window if you are using Age of Empires III and the ID is not readily available in the "Object Info".


    The first amount show you the Unit ID, every unit have a unique one. The third amount show you the Unit Type ID/ Protounit ID. Every MercJaeger have the ProtounitID -387-. Note that you can select ALL Units with Unit ID's but not even all with Protounit ID like cinematic blocks.

    1. ***TO USE NAME IDS: If you have the Name ID of a unit, you can convert it to OBJECT ID by using the kbGetBlockID("") function.
    2. ***For string (text) IDs, example: kbGetBlockID("ThisIsMyUnit")
    3. ***For QV, example: kbGetBlockID(""+trQuestVarGet("ThisIsMyQV"))
    4. ***For # NAME ID, example: kbGetBlockID("NUMBER")
      *** Generally, you can use kbGetBlockID(""+ID) for all, except text. As said above, enclose the text entirely with the quotes.


~MisterSCP


ESO2 Name:Sir_ConstantinESO Name:Sir_Pacman
Trigger Freak and Modder for AOE3

SCP Editor Tools---my map pack---Some incomplete stuff
My trigger Pack

[This message has been edited by Mister SCP (edited 08-21-2011 @ 03:07 AM).]

AuthorReplies:
Mister SCP
Scenario Reviewer
posted 08-15-10 04:39 AM EDT (US)     301 / 849       
I installed the advanced and your trigger set. I open up a blank scenario and look at my triggers. Teleport units in area (center unit) to unit, has a button for Center Unit and Target Unit.

However, when I open up my Great War scenario, I look at the same teleport trigger, it doesn't have the buttons for center and target unit. Instead, it says Center Unit Object ID and same with Target Unit Object ID.

How do I use Object ID and why is there no button?
@Yuttho, it's just a question of Style. I prefer the Button thing and pftq prefered the thing with unit IDs (You might also have used the (XS - Teleport Units in Area)<->Teleport Units in Area
(XS more flexible because it used ID's (since you can change them everytime if you used variables)

(for reyks editor idk if it works with normal editor) to get Object IDs go to sub menu where you place units and press the first icon (with the blue screen in background) in the very far left. (new window pops up should look like this http://img6.imageshack.us/i/screen3ou0.jpg/... 1.Line shows the Unit ID of the selected Unit (only works if it is same player as you are currently (last selected in place object). 3.Line shows ProtoUnit ID this is sth like Abusgun or ypFlamethrower just expressed as a Number this might be used in some of pftq's trigger when he is asking for "Unit Type ID (Optional)".


ESO2 Name:Sir_ConstantinESO Name:Sir_Pacman
Trigger Freak and Modder for AOE3

SCP Editor Tools---my map pack---Some incomplete stuff
My trigger Pack
Yuttho
Scenario Expert
posted 08-15-10 04:45 AM EDT (US)     302 / 849       
But why is it that when I open my great war scenario, it doesnt have the button. but when i start a new blank scenario, i have the button?

Creator of The Great War Campaign
Mister SCP
Scenario Reviewer
posted 08-15-10 05:57 AM EDT (US)     303 / 849       
because this are two different triggers but both have the same result. The scenario itself save the triggers so you can share them online even if they haven't these custom triggers. So in your case you opponed an older scenario where you had slightly another effect but nowadays you have one with buttons because your Triggerfiles contain the info that a new Teleport Trigger has these buttons.

Take a look at the parameter line (but dont change because they have different commands later based on the param limes)

<Param name="Object" dispName="Center Unit" varType="unit">default</Param>
Is the Code for the button

<Param name="Object" dispName="Center Unit OBJECT ID" varType="string">0</Param>
Is a string i.e. a word or a number

Basicly if you want the version without buttons use XS. And if you want to have them with buttons dont use the XS version
You could also ask for convert the triggers to your favorite layout or rename them in the xml file

New x Kills X Gold:
The old one was a bit stupid cause it can't count more as 1 kill a time so if you had killed 3 units with one canon strike it just counts 1

Requires: QV Stat Value

<Condition name="QV Stat Value">
<Param name="PlayerID" dispName="$$22534$$Fake Player" VarType="player">0</Param>
<Param name="StatID" dispName="$$23856$$Stat Type" VarType="kbstat">0</Param>
<Param name="Op" dispName="$$22297$$Operator" VarType="operator">==</Param>
<Param name="QVName" dispName="QV PointZero" VarType="string">PointZero</Param>
<Param name="Value" dispName="$$23859$$Value" VarType="long">0</Param>
<Expression>trGetStatValue(%PlayerID%, %StatID%) %Op% trQuestVarGet("%QVName%")+ %Value%</Expression>
</Condition>

Trigger1:activ-looped-run immediatly-high priority
Condition:
QV Stat Value
PlayerID,Enemy Units Killed, >=, Your QV (e.g. Player1Gold) should be a unique QV,Value (for 1kill one gold=1, for 5 kills ...gold->5)
Effect:QuestVar Modify
Your QV (e.g. Player1Gold)
+
Value which you used in your Condition (e.g. 1)

Additional Effects:
Grant Resources: +1Gold
... or
effects to make your units stronger...


ESO2 Name:Sir_ConstantinESO Name:Sir_Pacman
Trigger Freak and Modder for AOE3

SCP Editor Tools---my map pack---Some incomplete stuff
My trigger Pack

[This message has been edited by Mister SCP (edited 08-15-2010 @ 06:03 AM).]

Yuttho
Scenario Expert
posted 08-15-10 06:06 AM EDT (US)     304 / 849       
OOOOOOOOOOO Wow... I was looking at the wrong trigger... XS... wow, thanks SCP lol xD

Creator of The Great War Campaign
Mister SCP
Scenario Reviewer
posted 08-15-10 06:08 AM EDT (US)     305 / 849       
You're welcome


ESO2 Name:Sir_ConstantinESO Name:Sir_Pacman
Trigger Freak and Modder for AOE3

SCP Editor Tools---my map pack---Some incomplete stuff
My trigger Pack
musketeer925
Skirmisher
posted 08-30-10 04:39 PM EDT (US)     306 / 849       
I've been working on a effect here that essentially makes a unit convert like a sheep.
It is meant to be looped and with the condition Always.

This is what I have so far:


<Effect name="Converter Tool">
<Param name="SrcObject" dispName="Source Object" VarType="unit">default</Param>
<Param name="Dist" dispName="Conversion Distance" varType="string">5</Param>
<Param name="Num" dispName="Number of Players" VarType="string">4</Param>
<Param name="Note" dispName="Note" varType="string">This effect allows you to make a unit convert just like a herd animal.</Param>
<Param name="Note" dispName="Note" varType="string">This should be in a looped trigger with the condition 'Always'.</Param>
<Param name="Note" dispName="Note" varType="string">This will not work with more than one source unit.</Param>
<Command>trUnitSelectClear();</Command>
<Command>trQuestVarSet("OCHESEE", 0);</Command>
<Command>for(j=%num%;>=1){</Command>
<Command>if(trUnitIsOwnedBy(j)) trQuestVarSet("RENWORRUC", j);}</Command>
<Command>for(i=%num%;>=1){</Command>
<Command>if(trCountUnitsInArea("%SrcObject%", i, "All", %Dist%) >= 1){</Command>
<Command>if(trQuestVarGet("RENWORRUC") != i){</Command>
<Command>trQuestVarSet("OCHESEE", trQuestVarGet("OCHESEE") + 1);</Command>
<Command>trQuestVarSet("REYALP", i);}</Command>
<Command>else if(trQuestVarGet("RENWORRUC")==i){</Command>
<Command>trQuestVarSet("OWNNUMB", trCountUnitsInArea("%SrcObject%", i, "All", %Dist%));</Command>
<Command>trQuestVarSet("OWNNUMB", trQuestVarGet("OWNNUMB") - 1);</Command>
<Command>if(trQuestVarGet("OWNNUMB") != 0) {</Command>
<Command>trQuestVarSet("OCHESEE", trQuestVarGet("OCHESEE") + 1);</Command>
<Command>trQuestVarSet("REYALP", i);}</Command>
<Command>}</Command>
<Command>}</Command>
<Command>}</Command>
<Command>if(trQuestVarGet("OCHESEE") == 1){</Command>
<Command loop="" loopParm="SrcObject">trUnitSelect("%SrcObject%");</Command>
<Command>trUnitConvert(trQuestVarGet("REYALP"));}</Command>
</Effect>


It doesn't kill my triggers, but it doesn't seem to do anything; I can't quite find the problem. Perhaps you can see the problem?

[This message has been edited by musketeer925 (edited 08-30-2010 @ 04:40 PM).]

Mister SCP
Scenario Reviewer
posted 09-01-10 03:09 PM EDT (US)     307 / 849       
It is solved for now (we solved it on x-fire)


ESO2 Name:Sir_ConstantinESO Name:Sir_Pacman
Trigger Freak and Modder for AOE3

SCP Editor Tools---my map pack---Some incomplete stuff
My trigger Pack
nodgene1
Skirmisher
posted 09-02-10 03:55 PM EDT (US)     308 / 849       
Hello lads!

Is it possible to have, or has someone already made a stat condition that's for the number of times a player has deleted a unit? As in my testing, when a unit is deleted, it does not count as if the unit has been lost(killed)... apparently. And I need a way to keep track of the amounts of times a player has deleted units, to punish them for it. It'd work like a kill or death counter in this sense.

Thanks!
Mister SCP
Scenario Reviewer
posted 09-02-10 04:11 PM EDT (US)     309 / 849       
it is

will post code soon
->query dead units-qv stat value lost units >=1
he deleted a unit


ESO2 Name:Sir_ConstantinESO Name:Sir_Pacman
Trigger Freak and Modder for AOE3

SCP Editor Tools---my map pack---Some incomplete stuff
My trigger Pack
nodgene1
Skirmisher
posted 09-02-10 05:18 PM EDT (US)     310 / 849       
Cool, I did use a qv stat loss value for losses, but it doesn't include deletions! :| Which allowed people to cheat. I devised a work around, but it isn't as simple or elegant as a qv stat loop!

EDIT: Also, does QV stat value's "unit killed cost" and "unit lost cost" not work? If not can this work as well?

[This message has been edited by nodgene1 (edited 09-03-2010 @ 04:19 AM).]

Mister SCP
Scenario Reviewer
posted 09-03-10 02:09 PM EDT (US)     311 / 849       


<Condition name="Player Deleted Units">
<Param name="PlayerID" dispName="$$22301$$Player" VarType="long">1</Param>
<Param name="UnitType" dispName="Unit Type" VarType="unittype">Unit</Param>
<Param name="Op" dispName="$$22297$$Operator" VarType="operator">==</Param>
<Param name="result" dispName="Killed (own)" VarType="long">10</Param>
<Command>for(all=1600;>=-1){ if (kbGetUnitTypeName(all)=="%UnitType%") break;}</Command>
<Command>xsSetContextPlayer(%PlayerID%);</Command>
<Command>kbLookAtAllUnitsOnMap();</Command>
<Command>for(unitQueryID=kbUnitQueryCreate("get%PlayerID%i%result%");>5000){}</Command>
<Command>kbUnitQuerySetPlayerID(unitQueryID,%PlayerID%);</Command>
<Command>kbUnitQuerySetUnitType(unitQueryID, all);</Command>
<Command>kbUnitQuerySetState(unitQueryID,4);//Means Dead</Command>
<Command>kbUnitQueryResetResults(unitQueryID);</Command>
<Command>for(result=kbUnitQueryExecute(unitQueryID);>=50000){}</Command>
<Expression>result-trGetStatValue(%PlayerID%,6) %Op% %result%</Expression>
</Condition>


you should use "Units" else i have to implent a thing for buildings (stat value just get lost units->i'd have to add that it also count lost buildings)
Also, does QV stat value's "unit killed cost" and "unit lost cost" not work? If not can this work as well?
no


ESO2 Name:Sir_ConstantinESO Name:Sir_Pacman
Trigger Freak and Modder for AOE3

SCP Editor Tools---my map pack---Some incomplete stuff
My trigger Pack

[This message has been edited by Mister SCP (edited 09-03-2010 @ 02:21 PM).]

nodgene1
Skirmisher
posted 09-03-10 04:16 PM EDT (US)     312 / 849       
Cool! That works, thanks. Although it wasn't exactly what I needed. My apologies, that's my own fault for not communicating my request properly. If you're not too phased by my ceaseless requests, I'd be grateful if you could modify that one, and create another?

First this one; I would like it in the format of a QV stat value. As I say, that's my fault for not communicating it. That way I can have a repeating counter, like a kill counter I can ordinarily have for kills, deaths, and now deletions that uses a QV value to check.

The second is more tricky, but I believe it's a work around. I'll explain. You see in the scenario (if you've played it yet you'll understand more fluently) I would ideally have liked the points earned or lost to be relative to the cost of a "squad" that is spawned and then killed or lost; as the number of each unit type that is spawned is roughly balanced to 400 resources cost total, so it makes more sense to base a winning or losing score off the resources than the kills, as if that's true then the player who uses strelets will lose faster than those that don't... which defeats the purpose of having them as a choice.

BUT - since this is impossible (to base it on kill/loss cost); I believe a work around can happen. That would mean making a QV stat value for kills or losses, but that it would count a certain unit type? So if the player kills a strelet (or bunch of them), they earn less points for it; while if they kill a samurai, they earn more points. If you see what I'm getting at? Would that work-around be possible?

[This message has been edited by nodgene1 (edited 09-03-2010 @ 04:19 PM).]

musketeer925
Skirmisher
posted 09-03-10 10:13 PM EDT (US)     313 / 849       
Here is a QV Set version of it:

<Effect name="QV Set Player Deleted Units">
<Param name="PlayerID" dispName="$$22301$$Player" VarType="long">1</Param>
<Param name="UnitType" dispName="Unit Type" VarType="unittype">Unit</Param>
<Param name="result" dispName="Killed (own)" VarType="long">10</Param>
<Param name="QV" dispName="Quest Var" VarType="string">QV1</Param>
<Command>for(all=1600;>=-1){ if (kbGetUnitTypeName(all)=="%UnitType%") break;}</Command>
<Command>xsSetContextPlayer(%PlayerID%);</Command>
<Command>kbLookAtAllUnitsOnMap();</Command>
<Command>for(unitQueryID=kbUnitQueryCreate("get%PlayerID%i%result%");>5000){}</Command>
<Command>kbUnitQuerySetPlayerID(unitQueryID,%PlayerID%);</Command>
<Command>kbUnitQuerySetUnitType(unitQueryID, all);</Command>
<Command>kbUnitQuerySetState(unitQueryID,4);//Means Dead</Command>
<Command>kbUnitQueryResetResults(unitQueryID);</Command>
<Command>for(result=kbUnitQueryExecute(unitQueryID);>=50000){}</Command>
<Command>trQuerstVarSet("%QV%", result-trGetStatValue(%PlayerID%,6));</Command>
</Effect>

A work around on the other would be possible, but difficult and inaccurate.

We could base it off of kills, deaths, units in a state of death, and units near the dead unit, but this would be beyond my skill (or attention span, more likely) so I'll leave it to Mister SCP to see what he comes up with.
Mister SCP
Scenario Reviewer
posted 09-04-10 02:37 AM EDT (US)     314 / 849       

<Condition name="QV Player Deleted Units">
<Param name="PlayerID" dispName="$$22301$$Player" VarType="long">1</Param>
<Param name="UnitType" dispName="Unit Type" VarType="unittype">Unit</Param>
<Param name="Op" dispName="$$22297$$Operator" VarType="operator">==</Param>
<Param name="QVName" dispName="QV PointZero" VarType="string">PointZero</Param>
<Param name="Value" dispName="$$23859$$Value" VarType="long">0</Param>
<Command>for(all=1600;>=-1){ if (kbGetUnitTypeName(all)=="%UnitType%") break;}</Command>
<Command>xsSetContextPlayer(%PlayerID%);</Command>
<Command>kbLookAtAllUnitsOnMap();</Command>
<Command>for(unitQueryID=kbUnitQueryCreate("get%PlayerID%i%result%");>5000){}</Command>
<Command>kbUnitQuerySetPlayerID(unitQueryID,%PlayerID%);</Command>
<Command>kbUnitQuerySetUnitType(unitQueryID, all);</Command>
<Command>kbUnitQuerySetState(unitQueryID,4);//Means Dead</Command>
<Command>kbUnitQueryResetResults(unitQueryID);</Command>
<Command>for(result=kbUnitQueryExecute(unitQueryID);>=50000){}</Command>
<Expression>result-trGetStatValue(%PlayerID%,6) %Op% trQuestVarGet("%QVName%")+ %Value%</Expression>
</Condition>


and this could be a possible Echo Effect


<Effect name="QV Echo Deleted Units">
<Param name="PlayerID" dispName="Player" VarType="player">1</Param>
<Param name="QV" dispName="QV" varType="string">QV1</Param>
<Command>trChatSend(0,""+kbGetPlayerName(%PlayerID%)+" deleted "+1*trQuestVarGet("QV")+" units");</Command>
</Effect>


well for the other request; Yes it is possible but really a time investigation. I'd do the same just with special units and multiply (*) it with resource amount

But: You cannot say which Player killed a unit


ESO2 Name:Sir_ConstantinESO Name:Sir_Pacman
Trigger Freak and Modder for AOE3

SCP Editor Tools---my map pack---Some incomplete stuff
My trigger Pack

[This message has been edited by Mister SCP (edited 09-04-2010 @ 08:10 AM).]

nodgene1
Skirmisher
posted 09-04-10 06:21 AM EDT (US)     315 / 849       
Oh, no, I mean for the unit deletion condition, a unit deletion stat QV sort of thing... something like this. (My amazing photoshop skillz went into it)



Also, for the second concern; if we can't say who killed it then it's missing the point a bit? Hurm... so we need a work around, to the work around.
Perhaps, would there be a way to have a QV stat killed/lost condition, for a specific army? That way I could make triggers for specific units that are OP or UP to correspond with less or more points than average... such as, having a series of else army killed/lost stat qv's for each player's strelet spawn army or something.
Could that work? Or can you think of a simpler work around?
Mister SCP
Scenario Reviewer
posted 09-04-10 08:16 AM EDT (US)     316 / 849       
sry my last post had the old condition not the reworked one

It looks now like

Player
UnitType
>=
QVName
Value

(QV Stat Value work this way:
Stat Value >=QV+Value
Mine works now like this:
Deleted units >=QV+Value
which is the same as QV stat value

for the second one I can just say that unit lost cost work but unit kill cost don't do
and forget the thing about "special armies" since we have a very small pack of army related triggers


ESO2 Name:Sir_ConstantinESO Name:Sir_Pacman
Trigger Freak and Modder for AOE3

SCP Editor Tools---my map pack---Some incomplete stuff
My trigger Pack

[This message has been edited by Mister SCP (edited 09-04-2010 @ 08:31 AM).]

musketeer925
Skirmisher
posted 09-04-10 09:09 AM EDT (US)     317 / 849       
Perhaps, SCP, we could make a pseudo-army system using Arrays. Each Array, of course, would have the unit IDs in it, maybe some other stuff.

This system would allow us to do anything we want with triggers.

The base of the whole thing could even be the Army ID: Army Deploy that we made earlier; we could edit it so it doesn't need an actual army, and it would keep track of who's in the army by it self.

It would be very time consuming to completely rebuild the Army System though.

(btw, I'm just throwing out random ideas. Feel free to tell me to stop.)

[This message has been edited by musketeer925 (edited 09-04-2010 @ 09:10 AM).]

nodgene1
Skirmisher
posted 09-04-10 06:24 PM EDT (US)     318 / 849       
AUGH, but then what potential work around is there to my problem?
musketeer925
Skirmisher
posted 09-04-10 06:26 PM EDT (US)     319 / 849       
I don't know.


Can you once again describe in very precise, clear detail what you want the trigger to do?
nodgene1
Skirmisher
posted 09-04-10 08:57 PM EDT (US)     320 / 849       
The condition needs me to be able to determine the worth of a kill or loss. In the scenario the player chooses units to spawn, like a samurai or strelet; but for them to be balanced... 7 strelets will spawn, or 2 samurai. Roughly equal to around 400 resource worth.

Obviously if we base the trigger which adds to the player's score on simply kills or losses, then the balancing for game play does not translate into the score, and thus victory conditions.
This is why I suggested having a QV stat value condition where kill/loss cost works, but since that is apparently impossible a work around is needed... like the aforementioned solutions which are also apparently impossible. Any ideas?
Some way to note what sort of unit was lost or killed would be doable, not as elegant or concise as kill/lost cost; but it'd work. That or if an army had been killed or lost, then specific armies could be allocated for a QV stat value condition, so each player could have, like a QV stat value army killed/lost number to correspond... working like a QV stat value kill counter.

*shrugs* I'm running out of ideas. The delete condition is just what was needed to ensure the player can't cheat without punishment, so that's great... but I'd love for us to come up with some sort of value kill/loss condition, as that'd help make the score as balanced as the gameplay.

Thanks very much Mister SCP, the deletion condition is working a charm now

[This message has been edited by nodgene1 (edited 09-04-2010 @ 09:07 PM).]

musketeer925
Skirmisher
posted 09-04-10 10:48 PM EDT (US)     321 / 849       
I think I can do one that counts protounits lost.

I'll do it tomorrow. I really don't think it wil be that hard, really. It just won't be able to see who killed the protounit.
Mister SCP
Scenario Reviewer
posted 09-05-10 00:35 AM EDT (US)     322 / 849       
we might can do sth like

Unit killed/Unit Lost+1*(Unit lost cost from enemy/amount of enemies)/Unit Lost Cost+1

(+1 because you cant divide with 0, could be also 0.00001)

1/result (from the above operation)

This would be pretty simple and might balance your game better


ESO2 Name:Sir_ConstantinESO Name:Sir_Pacman
Trigger Freak and Modder for AOE3

SCP Editor Tools---my map pack---Some incomplete stuff
My trigger Pack

[This message has been edited by Mister SCP (edited 09-05-2010 @ 00:37 AM).]

nodgene1
Skirmisher
posted 09-05-10 07:11 AM EDT (US)     323 / 849       
interesting, I'm starting to see how that could work. The equation seems fine, although does it mean I would need a trigger for each player interaction?
eg. p1killsp2, p1killsp3, p1killsp4, etc...
Mister SCP
Scenario Reviewer
posted 09-05-10 08:28 AM EDT (US)     324 / 849       
you need just one effect or a condition for each player so don't worry

i think this should be factor so we would multiply it with

the kills

like russia gets 1,2 but 210kills->252
french 0,78 but 300kills->234

(french get a worser number and russia a better since in our last operation we did the following

1/result (from the above operation) )

well the numbers were just a example and shouldnt be taken to seriously since they were just random but based on up/op of the kill rates

@musk:

this module could interest you (for TypeloadeR)




<Command>void selectUnitsInArea(int UnitTypeID=-1, int Player=1,vector center = cInvalidVector,float radius = 20.0,int excludeUnit = 0){//Mister_SCP</Command>
<Command>xsSetContextPlayer(Player);</Command>
<Command>kbLookAtAllUnitsOnMap();</Command>
<Command>for(unitQueryID=kbUnitQueryCreate("miscGetUnitLocationQuery"+Player+""+excludeUnit);>5000){}</Command>
<Command>kbUnitQuerySetPlayerID(unitQueryID, Player);</Command>
<Command>if (UnitTypeID !=-1) kbUnitQuerySetUnitType(unitQueryID, UnitTypeID);</Command>
<Command>if (Player != -1) kbUnitQuerySetPosition(unitQueryID, center);</Command>
<Command>kbUnitQuerySetMaximumDistance(unitQueryID, radius);</Command>
<Command>kbUnitQuerySetState(unitQueryID,cUnitStateAlive);</Command>
<Command>for(i=kbUnitQueryExecute(unitQueryID)-1;>-1){ </Command>
<Command>if (kbUnitQueryGetResult(unitQueryID,i) != excludeUnit)trUnitSelectByID(kbUnitQueryGetResult(unitQueryID,i));}}</Command>

selectUnitsinArea
Does query unit selection (VOID return nothing!)
Params:
int UnitTypeID (you know that from conver tool)
Player
vector (area ->e.g. kbGetBlockPosition("%DstObject%"))
radius
excludeUnit ->mainly to exclude the center unit (see pftq's area trigger with center unit)
My easiest way to think was to exclude center unit and use a if clause in another command to include it when wanted

Also now you see that i lied ;( (okay tr-functions never worked before for me xD)

Here is a small example betwenn horror pftq's code and my one
pftq's code




<Effect name="XS - Teleport Units in Area (Center Unit)">
<Param name="Object" dispName="Center Unit OBJECT ID" varType="string">0</Param>
<Param name="Dst" dispName="Radius" varType="string">10.0</Param>
<Param name="UnitId" dispName="Unit Type ID (Optional)" varType="string">-1</Param>
<Param name="FromPlayer" dispName="From Player or 99 for ALL" varType="string">99</Param>
<Param name="Area" dispName="" varType="area">0, 0, 0</Param>
<Param name="Booler" dispName="Include Center Unit" varType="bool">false</Param>
<Param name="position" dispName="Retain Unit Positions" varType="bool">false</Param>
<Command>trQuestVarSet("convarea", 0);</Command>
<Command>trQuestVarSet("ffweho",0);</Command>
<Command>if(%FromPlayer%!=99) trQuestVarSet("vroom", %FromPlayer%);</Command>
<Command>trQuestVarSet("warthog", 0);</Command>
<Command>trQuestVarSet("zeep", 0);</Command>
<Command>if(%UnitId%>=0) {</Command>
<Command>trQuestVarSet("zeep", %UnitId%);</Command>
<Command>}</Command>
<Command>if(0>%UnitId%) {</Command>
<Command>while(kbGetUnitTypeName(trQuestVarGet("zeep"))!="All") {</Command>
<Command>trQuestVarSet("zeep", trQuestVarGet("zeep")+1);</Command>
<Command>}}</Command>
<Command>trQuestVarSet("lastpl", xsGetContextPlayer());</Command>
<Command>if(%FromPlayer%!=99) trQuestVarSet("blarg",%FromPlayer%);</Command>
<Command>if(%FromPlayer%==99) {</Command>
<Command>trQuestVarSet("blarg",0);</Command>
<Command>trQuestVarSet("vroom",8);</Command>
<Command>}</Command>
<Command>trQuestVarSet("i",trQuestVarGet("blarg"));</Command>
<Command>while(trQuestVarGet("vroom")>=trQuestVarGet("i")) {</Command>
<Command>xsSetContextPlayer(trQuestVarGet("i"));</Command>
<Command>kbLookAtAllUnitsOnMap();</Command>
<Command>trQuestVarSet("convarea", kbUnitQueryCreate("convarea"));</Command>
<Command>kbUnitQuerySetPlayerID(trQuestVarGet("convarea"), trQuestVarGet("i"));</Command>
<Command>kbUnitQuerySetUnitType(trQuestVarGet("convarea"), trQuestVarGet("zeep"));</Command>
<Command>kbUnitQuerySetPosition(trQuestVarGet("convarea"), kbUnitGetPosition(1*%Object%));</Command>
<Command>kbUnitQuerySetMaximumDistance(trQuestVarGet("convarea"), %Dst%);</Command>
<Command>kbUnitQuerySetAscendingSort(trQuestVarGet("convarea"), true);</Command>
<Command>kbUnitQueryResetResults(trQuestVarGet("convarea"));</Command>
<Command>trQuestVarSet("warthog", kbUnitQueryExecute(trQuestVarGet("convarea")));</Command>
<Command>while(trQuestVarGet("warthog")>0) {</Command>
<Command>trQuestVarSet("warthog", trQuestVarGet("warthog")-1);</Command>
<Command>trQuestVarSet("ffweho", kbUnitQueryGetResult(trQuestVarGet("convarea"), trQuestVarGet("warthog")));</Command>
<Command>trQuestVarSet("ffweho2", trQuestVarGet("ffweho"));</Command>
<Command>if(%Booler%==true) {</Command>
<Command>if(trQuestVarGet("ffweho2")==1*%Object%) {trQuestVarSet("ffweho2", trQuestVarGet("ffweho")+1);}}</Command>
<Command>if(trQuestVarGet("ffweho2")!=1*%Object%) {</Command>
<Command>trUnitSelectClear();</Command>
<Command>trUnitSelectByID(1*trQuestVarGet("ffweho"));</Command>
<Command>trQuestVarSet("oiwghogwhywhlocx", xsVectorGetX(vector(%Area%)));</Command>
<Command>if(%position%==true) trQuestVarSet("oiwghogwhywhlocx", xsVectorGetX(vector(%Area%))- (xsVectorGetX(kbUnitGetPosition(1*%Object%))-xsVectorGetX(kbUnitGetPosition(1*trQuestVarGet("ffweho")))));</Command>
<Command>trQuestVarSet("oiwghogwhywhlocz", xsVectorGetZ(vector(%Area%)));</Command>
<Command>if(%position%==true) trQuestVarSet("oiwghogwhywhlocz", xsVectorGetZ(vector(%Area%))- (xsVectorGetZ(kbUnitGetPosition(1*%Object%))-xsVectorGetZ(kbUnitGetPosition(1*trQuestVarGet("ffweho")))));</Command>
<Command>trUnitTeleport(1*trQuestVarGet("oiwghogwhywhlocx"), xsVectorGetY(vector(%Area%)), 1*trQuestVarGet("oiwghogwhywhlocz"));</Command>
<Command>}}</Command>
<Command>trQuestVarSet("i", trQuestVarGet("i")+1);}</Command>
<Command>xsSetContextPlayer(trQuestVarGet("lastpl"));</Command>
</Effect>




and my one

<Effect name="Teleport Units in Area Player Range *TL*">
<Param name="DstObject" dispName="$$22300$$Center Unit" VarType="unit">default</Param>
<Param name="FromPlayer" dispName="From Player" varType="string">1</Param>
<Param name="ToPlayer" dispName="To Player" varType="string">4</Param>
<Param name="UnitType" dispName="$$22302$$Unit Type" VarType="unittype">Unit</Param>
<Param name="Area" dispName="" varType="area">0, 0, 0</Param>
<Param name="Dist" dispName="$$22303$$Radius" VarType="float">10</Param>
<Param name="Booler" dispName="Include Center Unit" varType="bool">false</Param>
<Command>for(all=1600;>=-1){ if (kbGetUnitTypeName(all)=="%UnitType%") break;}</Command>
<Command>for(i=%ToPlayer%;>=%FromPlayer%){</Command>
<Command>trUnitSelectClear();//Teleport is a special case we could only select units of one player</Command>
<Command>selectUnitsInArea(all,i,kbGetBlockPosition("%DstObject%"),%Dist%,%DstObject%);</Command>
<Command>trUnitTeleport(%Area%);}</Command>
<Command>if(%Booler%==true){</Command>
<Command>trUnitSelectClear();</Command>
<Command>trUnitSelect("%DstObject%");</Command>
<Command>trUnitTeleport(%Area%);}</Command>
</Effect>


normally it's shorter but for teleport you can only select units of one player


ESO2 Name:Sir_ConstantinESO Name:Sir_Pacman
Trigger Freak and Modder for AOE3

SCP Editor Tools---my map pack---Some incomplete stuff
My trigger Pack

[This message has been edited by Mister SCP (edited 09-05-2010 @ 11:38 AM).]

nodgene1
Skirmisher
posted 09-05-10 09:17 AM EDT (US)     325 / 849       
Hm, but all players can choose either strelets or samurai, for instance; so the selection isn't an unchangeable faction with an overall difference in strength. Which causes problems... Or am I misunderstanding you?
« Previous Page  1 ··· 11 12 13 14 15 ··· 20 ··· 30 ··· 34  Next Page »
You must be logged in to post messages.
Please login or register

Hop to:    

Age of Empires III Heaven | HeavenGames