Proposeed Greenskin Events

frenzyslave

Warlord
Joined
Dec 26, 2003
Messages
262
Location
Hamilton, New Zealand
<iPlotType>0</iPlotType>

I'm not 100% sure about the units required, maybe that should be removed.
[strikethrough]also maybe the python method needs to be moved to 'PythonCanDo'.[/strikethrough] this was so.
EDIT: Changed event a bit. removed bGlobal and set reqTech to ANIMAL_HUSBANDRY. Also set it to repeatable, so I set the weight to 5 instead of infinite (-1)
EDIT: Now added make obsolete after warrior_code tech.

1. How do you add xp to all units on the plot? From what I can see, you can run a check to see if units are on the plot (<bUnitsOnPlot>), but you must specify how many units on plot to activate (<iNumUnits>) :(. Unless <iNumUnits> can be set to -1 to solve it?

2. What exactly are the iWeight weightings? I figure that the higher the number the more common the event (obviously), and when playtesting a really high number is good. The lower the number, the rarer it is. Any advice on the weightings? With a recurring iWeight 5, how often in the game will it pop up?

3. Was going to ask about bGlobal and bRecurring (to find out trigger for all greenskin players seperately), but you answered that mystery above. :D

4. canTriggerGreenskin goes in blah\Assets\python\entrypoints\CvRandomEventInterface.py? I figure I need a special pythony program to paste it in? I dont have one :( :cry:

5. How in the nine hells can you add +1 Trade Routes to a city? :confused: I havent a clue, so I guess extra commerce to a market will have to do...

6. If I <iHurryAnger>1</iHurryAnger>, will this mean +1 unhappy for ten turns?

7. You set the <iPlotType> to 0 in GREENSKIN_HUNT above. Isnt 0 for peaks? PlotType 2 perhaps better?

8. GREENSKIN_HUNT should be obsolete after Warfare - I have seen the Greenskins rush to Warrior Code in every game.

Anyways, Ive done two events, hopefully no errors... Thanks very muchly for the GREENSKIN_HUNT event, it helped me hurdle XML easier ;)

Scholar EventTriggerInfo:
Spoiler :

<EventTriggerInfo>
<Type>EVENTTRIGGER_GREENSKIN_SCHOLAR</Type>
<!-- diplomacy hit with neighbour -->
<WorldNewsTexts>
<Text/>
</WorldNewsTexts>
<TriggerTexts>
<TriggerText>
<Text>We hunt em down, Warboss. Dez skollaz spel ur nam rong.</Text>
<Era>NONE</Era>
</TriggerText>
</TriggerTexts>
<bSinglePlayer>0</bSinglePlayer>
<iPercentGamesActive>100</iPercentGamesActive>
<iWeight>5</iWeight>
<bProbabilityUnitMultiply>1</bProbabilityUnitMultiply>
<bProbabilityBuildingMultiply>0</bProbabilityBuildingMultiply>
<Civic>NONE</Civic>
<iMinTreasury>0</iMinTreasury>
<iMinPopulation>0</iMinPopulation>
<iMaxPopulation>-1</iMaxPopulation>
<iMinMapLandmass>0</iMinMapLandmass>
<iMinOurLandmass>0</iMinOurLandmass>
<iMaxOurLandmass>-1</iMaxOurLandmass>
<MinDifficulty>NONE</MinDifficulty>
<iAngry>0</iAngry>
<iUnhealthy>0</iUnhealthy>
<UnitsRequired>
<UnitClass>UNITCLASS_WARRIOR</UnitClass>
<UnitClass>UNITCLASS_SPEARMAN</UnitClass>
<UnitClass>UNITCLASS_MILITIA_SPEARMAN</UnitClass>
<UnitClass>UNITCLASS_ARCHER</UnitClass>
<UnitClass>UNITCLASS_MILITIA_ARCHER</UnitClass>
<UnitClass>UNITCLASS_LIGHT_KNIGHT</UnitClass>
<UnitClass>UNITCLASS_AXEMAN</UnitClass>
<UnitClass>UNITCLASS_ANCIENT_CAVALRY</UnitClass>
<UnitClass>UNITCLASS_HUNTER</UnitClass>
<UnitClass>UNITCLASS_SCOUT</UnitClass>
<UnitClass>UNITCLASS_KNIGHT</UnitClass>
<UnitClass>UNITCLASS_MILITIA_SWORDSMAN</UnitClass>
</UnitsRequired>
<iNumUnits>1</iNumUnits>
<iNumUnitsGlobal>0</iNumUnitsGlobal>
<iUnitDamagedWeight>0</iUnitDamagedWeight>
<iUnitDistanceWeight>0</iUnitDistanceWeight>
<iUnitExperienceWeight>0</iUnitExperienceWeight>
<bUnitsOnPlot>1</bUnitsOnPlot>
<BuildingsRequired>
</BuildingsRequired>
<iNumBuildings>0</iNumBuildings>
<iNumBuildingsGlobal>0</iNumBuildingsGlobal>
<iNumPlotsRequired>1</iNumPlotsRequired>
<bOwnPlot>1</bOwnPlot>
<iPlotType>2</iPlotType>
<FeaturesRequired>
</FeaturesRequired>
<TerrainsRequired>
</TerrainsRequired>
<ImprovementsRequired>
</ImprovementsRequired>
<BonusesRequired>
</BonusesRequired>
<RoutesRequired>
</RoutesRequired>
<ReligionsRequired>
</ReligionsRequired>
<iNumReligions>0</iNumReligions>
<CorporationsRequired>
</CorporationsRequired>
<iNumCorporations>0</iNumCorporations>
<bPickReligion>0</bPickReligion>
<bStateReligion>0</bStateReligion>
<bHolyCity>0</bHolyCity>
<bPickCorporation>0</bPickCorporation>
<bHeadquarters>0</bHeadquarters>
<Events>
<Event>EVENT_GREENSKIN_SCHOLAR_1</Event>
</Events>
<PrereqEvents>
</PrereqEvents>
<bPrereqEventPlot>0</bPrereqEventPlot>
<OrPreReqs>
</OrPreReqs>
<AndPreReqs>
<PrereqTech>TECH_CONTEMPLATION</PrereqTech>
</AndPreReqs>
<ObsoleteTechs>
<ObsoleteTech>TECH_PHILOSOPHY</ObsoleteTech>
</ObsoleteTechs>
<bRecurring>0</bRecurring>
<bTeam>0</bTeam>
<bGlobal>0</bGlobal>
<bPickPlayer>1</bPickPlayer>
<bOtherPlayerWar>0</bOtherPlayerWar>
<bOtherPlayerHasReligion>0</bOtherPlayerHasReligion>
<bOtherPlayerHasOtherReligion>0</bOtherPlayerHasOtherReligion>
<bOtherPlayerAI>0</bOtherPlayerAI>
<iOtherPlayerShareBorders>1</iOtherPlayerShareBorders>
<OtherPlayerHasTech>NONE</OtherPlayerHasTech>
<bPickCity>0</bPickCity>
<bPickOtherPlayerCity>0</bPickOtherPlayerCity>
<bShowPlot>1</bShowPlot>
<iCityFoodWeight>0</iCityFoodWeight>
<PythonCanDo>canTriggerGreenskin</PythonCanDo>
<PythonCanDoCity/>
<PythonCanDoUnit/>
<PythonCallback/>
<iPrereqCrime>0</iPrereqCrime>
<iPrereqGlobalCounter>0</iPrereqGlobalCounter>
<PrereqAlignment>NONE</PrereqAlignment>
<PrereqCivilizationPleased>NONE</PrereqCivilizationPleased>
<PrereqLeader>NONE</PrereqLeader>
<PrereqTrait>TRAIT_RAIDERS</PrereqTrait>
</EventTriggerInfo>


Scholar EventInfo:
Spoiler :

<EventInfo>
<Type>EVENT_GREENSKIN_SCHOLAR_1</Type>
<!-- suffer -1 diplomacy hit with neighbour, and a unit gains +2xp -->
<Description>Let dis be a leson, eh boyz? It Ork, not orc. It Gobbo, not goblin. An its Untrustygit er Hobgob, not hobgoblin. An me nam sur an spel-[newline]&quot;... Ah Warboss? Dey ded. I musta hit em all to ard. To squishy, dey musta not av ard ed like uz.&quot;</Description>
<LocalInfoText/>
<WorldNewsTexts/>
<OtherPlayerPopup/>
<QuestFailText/>
<bQuest>0</bQuest>
<bGlobal>0</bGlobal>
<bTeam>0</bTeam>
<bPickCity>0</bPickCity>
<bPickOtherPlayerCity>0</bPickOtherPlayerCity>
<bDeclareWar>0</bDeclareWar>
<iGold>0</iGold>
<bGoldToPlayer>0</bGoldToPlayer>
<iRandomGold>0</iRandomGold>
<iCulture>0</iCulture>
<iEspionagePoints>0</iEspionagePoints>
<bGoldenAge>0</bGoldenAge>
<iFreeUnitSupport>0</iFreeUnitSupport>
<iInflationMod>0</iInflationMod>
<iSpaceProductionMod>0</iSpaceProductionMod>
<Tech>NONE</Tech>
<TechFlavors>
</TechFlavors>
<iTechPercent>0</iTechPercent>
<iTechCostPercent>0</iTechCostPercent>
<iTechMinTurnsLeft>0</iTechMinTurnsLeft>
<PrereqTech/>
<UnitClass>NONE</UnitClass>
<iNumFreeUnits>0</iNumFreeUnits>
<bDisbandUnit>0</bDisbandUnit>
<iUnitExperience>2</iUnitExperience>
<iUnitImmobileTurns>0</iUnitImmobileTurns>
<UnitPromotion/>
<UnitName/>
<UnitCombatPromotions>
</UnitCombatPromotions>
<UnitClassPromotions>
</UnitClassPromotions>
<BuildingClass>NONE</BuildingClass>
<iBuildingChange>0</iBuildingChange>
<BuildingExtraYields>
</BuildingExtraYields>
<BuildingExtraCommerces>
</BuildingExtraCommerces>
<BuildingExtraHappies>
</BuildingExtraHappies>
<BuildingExtraHealths>
</BuildingExtraHealths>
<iHappy>0</iHappy>
<iHealth>0</iHealth>
<iHurryAnger>0</iHurryAnger>
<iHappyTurns>0</iHappyTurns>
<iRevoltTurns>0</iRevoltTurns>
<iMinPillage>0</iMinPillage>
<iMaxPillage>0</iMaxPillage>
<iFood>0</iFood>
<iFoodPercent>0</iFoodPercent>
<FreeSpecialistCounts>
</FreeSpecialistCounts>
<FeatureType>NONE</FeatureType>
<iFeatureChange>0</iFeatureChange>
<ImprovementType>NONE</ImprovementType>
<iImprovementChange>0</iImprovementChange>
<BonusType>NONE</BonusType>
<iBonusChange>0</iBonusChange>
<RouteType>NONE</RouteType>
<iRouteChange>0</iRouteChange>
<BonusRevealed>NONE</BonusRevealed>
<BonusGift>NONE</BonusGift>
<PlotExtraYields>
</PlotExtraYields>
<iConvertOwnCities>0</iConvertOwnCities>
<iConvertOtherCities>0</iConvertOtherCities>
<iMaxNumReligions>-1</iMaxNumReligions>
<iOurAttitudeModifier>-1</iOurAttitudeModifier>
<iAttitudeModifier>-1</iAttitudeModifier>
<iTheirEnemyAttitudeModifier>0</iTheirEnemyAttitudeModifier>
<iPopulationChange>0</iPopulationChange>
<AdditionalEvents>
</AdditionalEvents>
<EventTimes>
</EventTimes>
<ClearEvents>
</ClearEvents>
<PythonCallback/>
<PythonExpireCheck/>
<PythonCanDo/>
<PythonHelp/>
<Button>,Art/Interface/Buttons/Process/Blank.dds,Art/Interface/Buttons/Beyond_the_Sword_Atlas.dds,8,5</Button>
<iAIValue>100</iAIValue>
<iCrime>0</iCrime>
<iGlobalCounter>0</iGlobalCounter>
<PrereqAlignment>NONE</PrereqAlignment>
<PrereqBonus>NONE</PrereqBonus>
<PrereqCivilization>NONE</PrereqCivilization>
<PrereqCorporation>NONE</PrereqCorporation>
<PrereqReligion>NONE</PrereqReligion>
<PrereqStateReligion>NONE</PrereqStateReligion>
</EventInfo>


2nd Event, Caravan Raid
EventTriggerInfo:
Spoiler :

<EventTriggerInfo>
<Type>EVENTTRIGGER_GREENSKIN_RAID_CARAVAN</Type>
<!-- must have a market, plus raid caravan for gold or get extra trade if city has 15+ crime -->
<WorldNewsTexts>
<Text/>
</WorldNewsTexts>
<TriggerTexts>
<TriggerText>
<Text>A trade caravan fing spotted ner %s2_city, Warboss! Shall we raid em an nick der stuff?</Text>
<Era>NONE</Era>
</TriggerText>
</TriggerTexts>
<bSinglePlayer>0</bSinglePlayer>
<iPercentGamesActive>100</iPercentGamesActive>
<iWeight>5</iWeight>
<bProbabilityUnitMultiply>0</bProbabilityUnitMultiply>
<bProbabilityBuildingMultiply>1</bProbabilityBuildingMultiply>
<Civic>NONE</Civic>
<iMinTreasury>0</iMinTreasury>
<iMinPopulation>0</iMinPopulation>
<iMaxPopulation>-1</iMaxPopulation>
<iMinMapLandmass>0</iMinMapLandmass>
<iMinOurLandmass>0</iMinOurLandmass>
<iMaxOurLandmass>-1</iMaxOurLandmass>
<MinDifficulty>NONE</MinDifficulty>
<iAngry>0</iAngry>
<iUnhealthy>0</iUnhealthy>
<UnitsRequired>
</UnitsRequired>
<iNumUnits>0</iNumUnits>
<iNumUnitsGlobal>0</iNumUnitsGlobal>
<iUnitDamagedWeight>0</iUnitDamagedWeight>
<iUnitDistanceWeight>0</iUnitDistanceWeight>
<iUnitExperienceWeight>0</iUnitExperienceWeight>
<bUnitsOnPlot>0</bUnitsOnPlot>
<BuildingsRequired>
<BuildingClass>BUILDINGCLASS_MARKET</BuildingClass>
</BuildingsRequired>
<iNumBuildings>1</iNumBuildings>
<iNumBuildingsGlobal>1</iNumBuildingsGlobal>
<iNumPlotsRequired>1</iNumPlotsRequired>
<bOwnPlot>1</bOwnPlot>
<iPlotType>2</iPlotType>
<FeaturesRequired>
</FeaturesRequired>
<TerrainsRequired>
</TerrainsRequired>
<ImprovementsRequired>
</ImprovementsRequired>
<BonusesRequired>
</BonusesRequired>
<RoutesRequired>
</RoutesRequired>
<ReligionsRequired>
</ReligionsRequired>
<iNumReligions>0</iNumReligions>
<CorporationsRequired>
</CorporationsRequired>
<iNumCorporations>0</iNumCorporations>
<bPickReligion>0</bPickReligion>
<bStateReligion>0</bStateReligion>
<bHolyCity>0</bHolyCity>
<bPickCorporation>0</bPickCorporation>
<bHeadquarters>0</bHeadquarters>
<Events>
<Event>EVENT_GREENSKIN_RAID_CARAVAN_1</Event>
<Event>EVENT_GREENSKIN_RAID_CARAVAN_2</Event>
</Events>
<PrereqEvents>
</PrereqEvents>
<bPrereqEventPlot>0</bPrereqEventPlot>
<OrPreReqs>
</OrPreReqs>
<AndPreReqs>
<PrereqTech>TECH_TRADE</PrereqTech>
</AndPreReqs>
<ObsoleteTechs>
</ObsoleteTechs>
<bRecurring>0</bRecurring>
<bTeam>0</bTeam>
<bGlobal>0</bGlobal>
<bPickPlayer>0</bPickPlayer>
<bOtherPlayerWar>0</bOtherPlayerWar>
<bOtherPlayerHasReligion>0</bOtherPlayerHasReligion>
<bOtherPlayerHasOtherReligion>0</bOtherPlayerHasOtherReligion>
<bOtherPlayerAI>0</bOtherPlayerAI>
<iOtherPlayerShareBorders>1</iOtherPlayerShareBorders>
<OtherPlayerHasTech>NONE</OtherPlayerHasTech>
<bPickCity>1</bPickCity>
<bPickOtherPlayerCity>0</bPickOtherPlayerCity>
<bShowPlot>1</bShowPlot>
<iCityFoodWeight>0</iCityFoodWeight>
<PythonCanDo>canTriggerGreenskin</PythonCanDo>
<PythonCanDoCity/>
<PythonCanDoUnit/>
<PythonCallback/>
<iPrereqCrime>15</iPrereqCrime>
<iPrereqGlobalCounter>0</iPrereqGlobalCounter>
<PrereqAlignment>NONE</PrereqAlignment>
<PrereqCivilizationPleased>NONE</PrereqCivilizationPleased>
<PrereqLeader>NONE</PrereqLeader>
<PrereqTrait>TRAIT_RAIDERS</PrereqTrait>
</EventTriggerInfo>


its EventInfo:
Spoiler :

<EventInfo>
<Type>EVENT_GREENSKIN_RAID_CARAVAN_1</Type>
<!-- raid caravan to gain 5-25gp, and crime raises by 2 -->
<Description>Prepar da boyz! We gonna nick der stuff!</Description>
<LocalInfoText/>
<WorldNewsTexts/>
<OtherPlayerPopup/>
<QuestFailText/>
<bQuest>0</bQuest>
<bGlobal>0</bGlobal>
<bTeam>0</bTeam>
<bPickCity>1</bPickCity>
<bPickOtherPlayerCity>0</bPickOtherPlayerCity>
<bDeclareWar>0</bDeclareWar>
<iGold>4</iGold>
<bGoldToPlayer>0</bGoldToPlayer>
<iRandomGold>21</iRandomGold>
<iCulture>0</iCulture>
<iEspionagePoints>0</iEspionagePoints>
<bGoldenAge>0</bGoldenAge>
<iFreeUnitSupport>0</iFreeUnitSupport>
<iInflationMod>0</iInflationMod>
<iSpaceProductionMod>0</iSpaceProductionMod>
<Tech>NONE</Tech>
<TechFlavors>
</TechFlavors>
<iTechPercent>0</iTechPercent>
<iTechCostPercent>0</iTechCostPercent>
<iTechMinTurnsLeft>0</iTechMinTurnsLeft>
<PrereqTech/>
<UnitClass>NONE</UnitClass>
<iNumFreeUnits>0</iNumFreeUnits>
<bDisbandUnit>0</bDisbandUnit>
<iUnitExperience>0</iUnitExperience>
<iUnitImmobileTurns>0</iUnitImmobileTurns>
<UnitPromotion/>
<UnitName/>
<UnitCombatPromotions>
</UnitCombatPromotions>
<UnitClassPromotions>
</UnitClassPromotions>
<BuildingClass>NONE</BuildingClass>
<iBuildingChange>0</iBuildingChange>
<BuildingExtraYields>
</BuildingExtraYields>
<BuildingExtraCommerces>
</BuildingExtraCommerces>
<BuildingExtraHappies>
</BuildingExtraHappies>
<BuildingExtraHealths>
</BuildingExtraHealths>
<iHappy>0</iHappy>
<iHealth>0</iHealth>
<iHurryAnger>0</iHurryAnger>
<iHappyTurns>0</iHappyTurns>
<iRevoltTurns>0</iRevoltTurns>
<iMinPillage>0</iMinPillage>
<iMaxPillage>0</iMaxPillage>
<iFood>0</iFood>
<iFoodPercent>0</iFoodPercent>
<FreeSpecialistCounts>
</FreeSpecialistCounts>
<FeatureType>NONE</FeatureType>
<iFeatureChange>0</iFeatureChange>
<ImprovementType>NONE</ImprovementType>
<iImprovementChange>0</iImprovementChange>
<BonusType>NONE</BonusType>
<iBonusChange>0</iBonusChange>
<RouteType>NONE</RouteType>
<iRouteChange>0</iRouteChange>
<BonusRevealed>NONE</BonusRevealed>
<BonusGift>NONE</BonusGift>
<PlotExtraYields>
</PlotExtraYields>
<iConvertOwnCities>0</iConvertOwnCities>
<iConvertOtherCities>0</iConvertOtherCities>
<iMaxNumReligions>-1</iMaxNumReligions>
<iOurAttitudeModifier>-1</iOurAttitudeModifier>
<iAttitudeModifier>-1</iAttitudeModifier>
<iTheirEnemyAttitudeModifier>0</iTheirEnemyAttitudeModifier>
<iPopulationChange>0</iPopulationChange>
<AdditionalEvents>
</AdditionalEvents>
<EventTimes>
</EventTimes>
<ClearEvents>
</ClearEvents>
<PythonCallback/>
<PythonExpireCheck/>
<PythonCanDo/>
<PythonHelp/>
<Button>,Art/Interface/Buttons/Process/Blank.dds,Art/Interface/Buttons/Beyond_the_Sword_Atlas.dds,8,5</Button>
<iAIValue>100</iAIValue>
<iCrime>2</iCrime>
<iGlobalCounter>0</iGlobalCounter>
<PrereqAlignment>NONE</PrereqAlignment>
<PrereqBonus>NONE</PrereqBonus>
<PrereqCivilization>NONE</PrereqCivilization>
<PrereqCorporation>NONE</PrereqCorporation>
<PrereqReligion>NONE</PrereqReligion>
<PrereqStateReligion>NONE</PrereqStateReligion>
</EventInfo>

<EventInfo>
<Type>EVENT_GREENSKIN_RAID_CARAVAN_2</Type>
<!-- trade with caravan to increase marketplace commerce, but citizens unhappy for 10 turns -->
<Description>Dont raid it ladz. Trade wit it insted</Description>
<LocalInfoText/>
<WorldNewsTexts/>
<OtherPlayerPopup/>
<QuestFailText/>
<bQuest>0</bQuest>
<bGlobal>0</bGlobal>
<bTeam>0</bTeam>
<bPickCity>1</bPickCity>
<bPickOtherPlayerCity>0</bPickOtherPlayerCity>
<bDeclareWar>0</bDeclareWar>
<iGold>0</iGold>
<bGoldToPlayer>0</bGoldToPlayer>
<iRandomGold>0</iRandomGold>
<iCulture>0</iCulture>
<iEspionagePoints>0</iEspionagePoints>
<bGoldenAge>0</bGoldenAge>
<iFreeUnitSupport>0</iFreeUnitSupport>
<iInflationMod>0</iInflationMod>
<iSpaceProductionMod>0</iSpaceProductionMod>
<Tech>NONE</Tech>
<TechFlavors>
</TechFlavors>
<iTechPercent>0</iTechPercent>
<iTechCostPercent>0</iTechCostPercent>
<iTechMinTurnsLeft>0</iTechMinTurnsLeft>
<PrereqTech/>
<UnitClass>NONE</UnitClass>
<iNumFreeUnits>0</iNumFreeUnits>
<bDisbandUnit>0</bDisbandUnit>
<iUnitExperience>0</iUnitExperience>
<iUnitImmobileTurns>0</iUnitImmobileTurns>
<UnitPromotion/>
<UnitName/>
<UnitCombatPromotions>
</UnitCombatPromotions>
<UnitClassPromotions>
</UnitClassPromotions>
<BuildingClass>NONE</BuildingClass>
<iBuildingChange>0</iBuildingChange>
<BuildingExtraYields>
<BuildingExtraYield>
<BuildingClass>BUILDINGCLASS_MARKET</BuildingClass>
<YieldType>YIELD_COMMERCE</YieldType>
<iExtraYield>2</iExtraYield>
</BuildingExtraYield>
</BuildingExtraYields>
<BuildingExtraCommerces>
</BuildingExtraCommerces>
<BuildingExtraHappies>
</BuildingExtraHappies>
<BuildingExtraHealths>
</BuildingExtraHealths>
<iHappy>0</iHappy>
<iHealth>0</iHealth>
<iHurryAnger>1</iHurryAnger>
<iHappyTurns>0</iHappyTurns>
<iRevoltTurns>0</iRevoltTurns>
<iMinPillage>0</iMinPillage>
<iMaxPillage>0</iMaxPillage>
<iFood>0</iFood>
<iFoodPercent>0</iFoodPercent>
<FreeSpecialistCounts>
</FreeSpecialistCounts>
<FeatureType>NONE</FeatureType>
<iFeatureChange>0</iFeatureChange>
<ImprovementType>NONE</ImprovementType>
<iImprovementChange>0</iImprovementChange>
<BonusType>NONE</BonusType>
<iBonusChange>0</iBonusChange>
<RouteType>NONE</RouteType>
<iRouteChange>0</iRouteChange>
<BonusRevealed>NONE</BonusRevealed>
<BonusGift>NONE</BonusGift>
<PlotExtraYields>
</PlotExtraYields>
<iConvertOwnCities>0</iConvertOwnCities>
<iConvertOtherCities>0</iConvertOtherCities>
<iMaxNumReligions>-1</iMaxNumReligions>
<iOurAttitudeModifier>-1</iOurAttitudeModifier>
<iAttitudeModifier>-1</iAttitudeModifier>
<iTheirEnemyAttitudeModifier>0</iTheirEnemyAttitudeModifier>
<iPopulationChange>0</iPopulationChange>
<AdditionalEvents>
</AdditionalEvents>
<EventTimes>
</EventTimes>
<ClearEvents>
</ClearEvents>
<PythonCallback/>
<PythonExpireCheck/>
<PythonCanDo/>
<PythonHelp/>
<Button>,Art/Interface/Buttons/Process/Blank.dds,Art/Interface/Buttons/Beyond_the_Sword_Atlas.dds,8,5</Button>
<iAIValue>50</iAIValue>
<iCrime>0</iCrime>
<iGlobalCounter>0</iGlobalCounter>
<PrereqAlignment>NONE</PrereqAlignment>
<PrereqBonus>NONE</PrereqBonus>
<PrereqCivilization>NONE</PrereqCivilization>
<PrereqCorporation>NONE</PrereqCorporation>
<PrereqReligion>NONE</PrereqReligion>
<PrereqStateReligion>NONE</PrereqStateReligion>
</EventInfo>
 

Arexack_heretic

Emperor
Joined
Oct 10, 2006
Messages
1,119
Location
Lugdunum
1- I think I set that value to 1 as the event only triggers for a single unit outside a city (at least not specifically inside one). the xp only goes to the iunit that triggered it.
Or were you asking in connection to another event in which all units get xp?

2- iWeight is for random events. if a random event is about to occur, it takes all elligable events and their chance of getting picked is equal to iWeight/total weight.

4- no any text editor will do.

5 i dunno. just search for trade any where in the events thing, maybe it will need a python script. or maybe indirectly via a greatperson-trader.

6 i think it will make citizens angry if you hurry production, while this event lasts.

7 i don't think so. but check the tutorial. (edit: yerricht, make it -1 or 2, when I made it 0, I was mistakenly thinking it was a boolean: bPrereqEventPlot)

8- ok. it was just a placeholder, i suspected it was too early, but couldn't remember a suitable other.

Happy to help. :)
I'll tackle your go-cart events to make the winner random. I have a nice idea for that. :D
 

frenzyslave

Warlord
Joined
Dec 26, 2003
Messages
262
Location
Hamilton, New Zealand
1- I think I set that value to 1 as the event only triggers for a single unit outside a city (at least not specifically inside one). the xp only goes to the iunit that triggered it.
Or were you asking in connection to another event in which all units get xp?
Ability to give all units xp on the plot. Doesnt apply for the ones we have done so far, but it applies to alot of the other event options that we havent done yet (eg. all units (no matter how many, except workers and boats) on the plot gain +2xp, as they biff and boff).

2- iWeight is for random events. if a random event is about to occur, it takes all elligable events and their chance of getting picked is equal to iWeight/total weight.
Ah... Thanks that cleared things up :).

4- no any text editor will do.
I had to search for a python interpreter to be able to edit the CvRandomEventInterface.py at http://www.python.org/
After downloading 2.6.1, I was able to read it. Oh crap. :blush: I just now opened it up with notepad... :lol: Well, for some reason I couldnt before... :rolleyes: I guess if I suddenly have major free time I could learn python now :lol: Bugger...

5 i dunno. just search for trade any where in the events thing, maybe it will need a python script. or maybe indirectly via a greatperson-trader.
Ugh. If its too much effort for a simple thing I guess the marketplace boost commerce will have to do. Probably reduce it to +1, as +2 may be too cheesy...

6 i think it will make citizens angry if you hurry production, while this event lasts.
7 i don't think so. but check the tutorial.
OK.

8- ok. it was just a placeholder, i suspected it was too early, but couldn't remember a suitable other.
Sweet as.

Happy to help. :)
I'll tackle your go-cart events to make the winner random. I have a nice idea for that. :D
Go for it, random is all good. You can make a fourth option that turns out having square wheels if you like ;) Or maybe thats the one which wins? :lol: Greenskin tech is quite funny... "What do you mean, the square wheeled one won??? Wth?" I can imagine nongreenskin witnesses saying that... :lol:
 

orlanth

Storm God. Yarr!
Joined
Nov 17, 2001
Messages
1,805
Looking good.. for the scholar event could add <bOtherPlayerHasOtherReligion>1 to avoid other Greenskins.

1. How do you add xp to all units on the plot?
I think the trigger usually just picks one unit; but you could try changing iNumunits and see how that works out.

5. How in the nine hells can you add +1 Trade Routes to a city? I guess the marketplace boost commerce will have to do.
Not in the XML that I could find.. yeah its most bang for the buck to just stick with what the xml lets you do easily, otherwise it will take forever.

6. If I <iHurryAnger>1</iHurryAnger>, will this mean +1 unhappy for ten turns?
Basically yes. It's temporary city anger (text: "We cannot forgive your cruel oppression!") that wears off over time, not sure of the exact duration.

7. You set the <iPlotType> to 0 in GREENSKIN_HUNT above. Isnt 0 for peaks? PlotType 2 perhaps better?
Yes, or just set PlotType -1 and use FeaturesRequired or TerrainsRequired if needed.
 

Arexack_heretic

Emperor
Joined
Oct 10, 2006
Messages
1,119
Location
Lugdunum
The others crashed and the square wheeled one was carried over the finish-line...
if there was a finish at all, maybe it's 'last orc driving'. :D

I suspect an event always affects only a single unit or city or tile.
The pythonCallback can be used to execute a python method when the event occurs though.
So no problem there.
from the unit/city that activated the trigger can be get the coordinates and using those all units on that plot can be cycled through by the Pymethod.
I'll write an exmple later, or copy it. ;)
 

Arexack_heretic

Emperor
Joined
Oct 10, 2006
Messages
1,119
Location
Lugdunum
You guys think the prereqEvents in TriggerInfos can have multiple events listed there?
will it be read as
-ERROR (only one event allowed)
-EVENT1 AND EVENT2
-EVENT1 OR EVENT2

?

if the prereqs are an OR function, I can avoid attempt at writing a canTriggerIfNeitherEventDone() function.

my initial idea becomes very cumbersome, but could supply very many alternate texts eg: 10 different ones!
(It basically has 3 seperate races only one of which can be triggered, winner is predetermined. so we get 3races with each 1 win and 2 lose outcomes and the 'no bet' choice.)

a simpler second idea could be writing two events WIN and LOSE with prereqEvent and these pythonCanDo functions:
WIN: if modulus turnnumber <=3: return True
LOSE: if modulus turnnumber >=4: return True
can't use the random number generator, because I need a repeatable value for both functions, but still a bit unpredictable.
each get choice would get the 2 events linked to it. (WIN/LOSE)

the former has high replay value with ten different results, but can only be triggered once per game (i think..unless the "event triggered" value is reset if bRecurring is true. ...I could get a DoResetRace() function to do it for me at every result event though... maybe.)
The latter is more elegant, but might not work properly. (I fear that both events might be triggered eventually)

OR !!

I could just set ALL possible outcomes as choice events, but only those that get allowed by pythonCanDo will be visible, plus the 'no bet' cop-out option.
this will require 2 python methods, and seven choice events.
I will test this last one first. edit on second thought, this will require 6 functions: unless ... hmm.
That was design 3, below is code for 3a. I may have made a mistake there, I was sure of it last night, but can't remember what this morning. :/


okay python prereq fuctions done! (I hope)

Spoiler :

concept3 : choices prereq selected by 'chance'.
RACE choices:
1 red
2 green
3 blue
4 nobet

EVENT: prereqEvent: pythonCanDo RedWins GreenWins BlueWins
win red : RACE CanDoWinR() 1 0 0
lose red: RACE CanDoLoseR() 0 1 1
win blue: RACE CanDoWinB() 0 0 1
lose blue: RACE CanDoLoseB() 1 1 0
win green: RACE CanDoWinC() 0 1 0
lose green: RACE CanDoLoseC() 1 0 1
nobet: RACE -

allow option event with
canDoPython:
getHasWon() yaay! the red bet has won! yay the green get has won! Blue has finished as only get!
getHasLost() we lost to the red cart! To the Blue. etc

Code:
def getRaceWon(argslist):
	iEvent = argslist[0]
	kTriggeredData = argsList[1]
	iTurn = gc.getGameTurn(self)
	
#	Uncertain whether pythonCanDo will supercede the other XML prereqs, uncomment if triggered without the race event.
#	kOrigTriggeredData = player.getEventOccured(trigger.getPrereqEvent(0))
#	
#	if (kOrigTriggeredData == None):
#		return false	
		
	if iEvent == EVENT_RACE_CHOICE_RED:
		if iTurn%6 <= 3: 
			return True
		else:
			return False 

	if iEvent == EVENT_RACE_CHOICE_BLUE:
		if iTurn%6 >= 7: 
			return True
		else:
			return False 

	if iEvent == EVENT_RACE_CHOICE_GREEN:
		if 3>(iTurn%6)>7: 
			return True
		else:
			return False 
	
#LOSE:
def getRaceLost(argslist):
	iEvent = argslist[0]
	kTriggeredData = argsList[1]
	iTurn = gc.getGameTurn(self)
	
#	Uncertain whether pythonCanDo will supercede the other XML prereqs, uncomment if triggered without the race event.
#	kOrigTriggeredData = player.getEventOccured(trigger.getPrereqEvent(0))
#	
#	if (kOrigTriggeredData == None):
#		return false	
		
	if iEvent == EVENT_RACE_CHOICE_RED:
		if iTurn%6 > 3: 
			return True
		else:
			return False 

	if iEvent == EVENT_RACE_CHOICE_BLUE:
		if iTurn%6 < 7: 
			return True
		else:
			return False 

	if iEvent == EVENT_RACE_CHOICE_GREEN:
		if iTurn%6 <= 3:
			if iTurn%6 >= 7:  
			return True
		else:
			return False
 

Attachments

  • DaBigRace_3a.txt
    47.8 KB · Views: 117

Arexack_heretic

Emperor
Joined
Oct 10, 2006
Messages
1,119
Location
Lugdunum
anyone know if setting a trigger to UnitsRequired (types) and minUnits (1) etc
is enough for it to trigger immediately on the 'unit built' game-event,
or will it trigger whenever it pleases during the random event handling on any unit that fits the requirements?
 

Arexack_heretic

Emperor
Joined
Oct 10, 2006
Messages
1,119
Location
Lugdunum
Here is some code for use in the wrong in head event.

There is no shaman yet, so the followup event does nothing as yet.
 

Attachments

  • spesjul.txt
    16.2 KB · Views: 116

frenzyslave

Warlord
Joined
Dec 26, 2003
Messages
262
Location
Hamilton, New Zealand
I like the idea of getting a shaman from the wrong in head event. Maybe have two options,
1) getting a shaman (tech Wherever);
and 2) getting a unit with the Disciplined promotion (but keep Animosity), mainly for the early game where you need the great general to quell animosity (mainly for those peacefull types or those with horrible luck like myself ; if they are lucky and trigger the event) and for noobs who didnt know about the great general-Disciplined promo).

#-seperate method that can be reused for other events.
def GiveExpOnPlot(pPlot, iExp):
unitlist = getPlotUnitList(self, pPlot)
for unit in unitlist:
unit.changeExperience(iExp, -1, false, false, false)

Arexack does this work? If so woohoo! Awesome! :D
Does it give +1 xp per time visited to units on the tile? It looks to me like -1 (dont know any python yet). What do the three falses confirm?

I also noticed you hit the "J" character instead of the nextdoor "H" as in spechul lol. Musta been late at night. Ah well, specjul it is then! ;)
 

frenzyslave

Warlord
Joined
Dec 26, 2003
Messages
262
Location
Hamilton, New Zealand
The Snotling Riot Event: (With Arexacks GiveExpOnPlot on the first eventinfo). Added a third option to the event. ;)

The EventTriggerInfo:
Spoiler :

<EventTriggerInfo>
<Type>EVENTTRIGGER_GREENSKIN_SNOTLING_RIOT</Type>
<!-- +2xp to greenskin unit on the plot if break up fight and pop drop, or happy city and disorder, or happy city and pop boost and disorder with tech -->
<WorldNewsTexts>
<Text/>
</WorldNewsTexts>
<TriggerTexts>
<TriggerText>
<Text>Snotlingz in %s2_city hav run riot warboss! Dey ar outa controlz!</Text>
<Era>NONE</Era>
</TriggerText>
</TriggerTexts>
<bSinglePlayer>0</bSinglePlayer>
<iPercentGamesActive>100</iPercentGamesActive>
<iWeight>5</iWeight>
<bProbabilityUnitMultiply>1</bProbabilityUnitMultiply>
<bProbabilityBuildingMultiply>0</bProbabilityBuildingMultiply>
<Civic>NONE</Civic>
<iMinTreasury>0</iMinTreasury>
<iMinPopulation>0</iMinPopulation>
<iMaxPopulation>-1</iMaxPopulation>
<iMinMapLandmass>0</iMinMapLandmass>
<iMinOurLandmass>0</iMinOurLandmass>
<iMaxOurLandmass>-1</iMaxOurLandmass>
<MinDifficulty>NONE</MinDifficulty>
<iAngry>0</iAngry>
<iUnhealthy>0</iUnhealthy>
<UnitsRequired>
<UnitClass>UNITCLASS_WARRIOR</UnitClass>
<UnitClass>UNITCLASS_SPEARMAN</UnitClass>
<UnitClass>UNITCLASS_MILITIA_SPEARMAN</UnitClass>
<UnitClass>UNITCLASS_ARCHER</UnitClass>
<UnitClass>UNITCLASS_MILITIA_ARCHER</UnitClass>
<UnitClass>UNITCLASS_LIGHT_KNIGHT</UnitClass>
<UnitClass>UNITCLASS_AXEMAN</UnitClass>
<UnitClass>UNITCLASS_ANCIENT_CAVALRY</UnitClass>
<UnitClass>UNITCLASS_HUNTER</UnitClass>
<UnitClass>UNITCLASS_SCOUT</UnitClass>
<UnitClass>UNITCLASS_KNIGHT</UnitClass>
<UnitClass>UNITCLASS_MILITIA_SWORDSMAN</UnitClass>
</UnitsRequired>
<iNumUnits>1</iNumUnits>
<iNumUnitsGlobal>0</iNumUnitsGlobal>
<iUnitDamagedWeight>0</iUnitDamagedWeight>
<iUnitDistanceWeight>0</iUnitDistanceWeight>
<iUnitExperienceWeight>0</iUnitExperienceWeight>
<bUnitsOnPlot>1</bUnitsOnPlot>
<BuildingsRequired>
</BuildingsRequired>
<iNumBuildings>0</iNumBuildings>
<iNumBuildingsGlobal>0</iNumBuildingsGlobal>
<iNumPlotsRequired>1</iNumPlotsRequired>
<bOwnPlot>1</bOwnPlot>
<iPlotType>2</iPlotType>
<FeaturesRequired>
</FeaturesRequired>
<TerrainsRequired>
</TerrainsRequired>
<ImprovementsRequired>
</ImprovementsRequired>
<BonusesRequired>
</BonusesRequired>
<RoutesRequired>
</RoutesRequired>
<ReligionsRequired>
</ReligionsRequired>
<iNumReligions>0</iNumReligions>
<CorporationsRequired>
</CorporationsRequired>
<iNumCorporations>0</iNumCorporations>
<bPickReligion>0</bPickReligion>
<bStateReligion>0</bStateReligion>
<bHolyCity>0</bHolyCity>
<bPickCorporation>0</bPickCorporation>
<bHeadquarters>0</bHeadquarters>
<Events>
<Event>EVENT_GREENSKIN_SNOTLING_RIOT_1</Event>
<Event>EVENT_GREENSKIN_SNOTLING_RIOT_2</Event>
<Event>EVENT_GREENSKIN_SNOTLING_RIOT_3</Event>
</Events>
<PrereqEvents>
</PrereqEvents>
<bPrereqEventPlot>0</bPrereqEventPlot>
<OrPreReqs>
</OrPreReqs>
<AndPreReqs>
<PrereqTech>TECH_LORDSHIP</PrereqTech>
</AndPreReqs>
<ObsoleteTechs>
</ObsoleteTechs>
<bRecurring>0</bRecurring>
<bTeam>0</bTeam>
<bGlobal>0</bGlobal>
<bPickPlayer>0</bPickPlayer>
<bOtherPlayerWar>0</bOtherPlayerWar>
<bOtherPlayerHasReligion>0</bOtherPlayerHasReligion>
<bOtherPlayerHasOtherReligion>0</bOtherPlayerHasOtherReligion>
<bOtherPlayerAI>0</bOtherPlayerAI>
<iOtherPlayerShareBorders>0</iOtherPlayerShareBorders>
<OtherPlayerHasTech>NONE</OtherPlayerHasTech>
<bPickCity>1</bPickCity>
<bPickOtherPlayerCity>0</bPickOtherPlayerCity>
<bShowPlot>1</bShowPlot>
<iCityFoodWeight>0</iCityFoodWeight>
<PythonCanDo>canTriggerGreenskin</PythonCanDo>
<PythonCanDoCity/>
<PythonCanDoUnit/>
<PythonCallback/>
<iPrereqCrime>0</iPrereqCrime>
<iPrereqGlobalCounter>0</iPrereqGlobalCounter>
<PrereqAlignment>NONE</PrereqAlignment>
<PrereqCivilizationPleased>NONE</PrereqCivilizationPleased>
<PrereqLeader>NONE</PrereqLeader>
<PrereqTrait>TRAIT_RAIDERS</PrereqTrait>
</EventTriggerInfo>


And the EventInfos:

Spoiler :

<EventInfo>
<Type>EVENT_GREENSKIN_SNOTLING_RIOT_1</Type>
<!-- snotlings wacked at a cost of -1 pop, and 1 turn of disorder, but +2xp to units -->
<Description>Send in da boyz an restor orda!</Description>
<LocalInfoText/>
<WorldNewsTexts/>
<OtherPlayerPopup/>
<QuestFailText/>
<bQuest>0</bQuest>
<bGlobal>0</bGlobal>
<bTeam>0</bTeam>
<bPickCity>1</bPickCity>
<bPickOtherPlayerCity>0</bPickOtherPlayerCity>
<bDeclareWar>0</bDeclareWar>
<iGold>0</iGold>
<bGoldToPlayer>0</bGoldToPlayer>
<iRandomGold>0</iRandomGold>
<iCulture>0</iCulture>
<iEspionagePoints>0</iEspionagePoints>
<bGoldenAge>0</bGoldenAge>
<iFreeUnitSupport>0</iFreeUnitSupport>
<iInflationMod>0</iInflationMod>
<iSpaceProductionMod>0</iSpaceProductionMod>
<Tech>NONE</Tech>
<TechFlavors>
</TechFlavors>
<iTechPercent>0</iTechPercent>
<iTechCostPercent>0</iTechCostPercent>
<iTechMinTurnsLeft>0</iTechMinTurnsLeft>
<PrereqTech/>
<UnitClass>NONE</UnitClass>
<iNumFreeUnits>0</iNumFreeUnits>
<bDisbandUnit>0</bDisbandUnit>
<iUnitExperience>0</iUnitExperience>
<iUnitImmobileTurns>1</iUnitImmobileTurns>
<UnitPromotion/>
<UnitName/>
<UnitCombatPromotions>
</UnitCombatPromotions>
<UnitClassPromotions>
</UnitClassPromotions>
<BuildingClass>NONE</BuildingClass>
<iBuildingChange>0</iBuildingChange>
<BuildingExtraYields>
</BuildingExtraYields>
<BuildingExtraCommerces>
</BuildingExtraCommerces>
<BuildingExtraHappies>
</BuildingExtraHappies>
<BuildingExtraHealths>
</BuildingExtraHealths>
<iHappy>0</iHappy>
<iHealth>0</iHealth>
<iHurryAnger>0</iHurryAnger>
<iHappyTurns>0</iHappyTurns>
<iRevoltTurns>1</iRevoltTurns>
<iMinPillage>0</iMinPillage>
<iMaxPillage>0</iMaxPillage>
<iFood>0</iFood>
<iFoodPercent>0</iFoodPercent>
<FreeSpecialistCounts>
</FreeSpecialistCounts>
<FeatureType>NONE</FeatureType>
<iFeatureChange>0</iFeatureChange>
<ImprovementType>NONE</ImprovementType>
<iImprovementChange>0</iImprovementChange>
<BonusType>NONE</BonusType>
<iBonusChange>0</iBonusChange>
<RouteType>NONE</RouteType>
<iRouteChange>0</iRouteChange>
<BonusRevealed>NONE</BonusRevealed>
<BonusGift>NONE</BonusGift>
<PlotExtraYields>
</PlotExtraYields>
<iConvertOwnCities>0</iConvertOwnCities>
<iConvertOtherCities>0</iConvertOtherCities>
<iMaxNumReligions>-1</iMaxNumReligions>
<iOurAttitudeModifier>0</iOurAttitudeModifier>
<iAttitudeModifier>0</iAttitudeModifier>
<iTheirEnemyAttitudeModifier>0</iTheirEnemyAttitudeModifier>
<iPopulationChange>-1</iPopulationChange>
<AdditionalEvents>
</AdditionalEvents>
<EventTimes>
</EventTimes>
<ClearEvents>
</ClearEvents>
<PythonCallback>GiveExpOnPlot</PythonCallBack>
<PythonExpireCheck/>
<PythonCanDo/>
<PythonHelp/>
<Button>,Art/Interface/Buttons/Process/Blank.dds,Art/Interface/Buttons/Beyond_the_Sword_Atlas.dds,8,5</Button>
<iAIValue>50</iAIValue>
<iCrime>0</iCrime>
<iGlobalCounter>0</iGlobalCounter>
<PrereqAlignment>NONE</PrereqAlignment>
<PrereqBonus>NONE</PrereqBonus>
<PrereqCivilization>NONE</PrereqCivilization>
<PrereqCorporation>NONE</PrereqCorporation>
<PrereqReligion>NONE</PrereqReligion>
<PrereqStateReligion>NONE</PrereqStateReligion>
</EventInfo>

<EventInfo>
<Type>EVENT_GREENSKIN_SNOTLING_RIOT_2</Type>
<!-- snotlings run riot, gives happiness to city but causes disorder and gold in damages -->
<Description>Let em run riot. I lik da lil fellas.</Description>
<LocalInfoText/>
<WorldNewsTexts/>
<OtherPlayerPopup/>
<QuestFailText/>
<bQuest>0</bQuest>
<bGlobal>0</bGlobal>
<bTeam>0</bTeam>
<bPickCity>1</bPickCity>
<bPickOtherPlayerCity>0</bPickOtherPlayerCity>
<bDeclareWar>0</bDeclareWar>
<iGold>-25</iGold>
<bGoldToPlayer>0</bGoldToPlayer>
<iRandomGold>0</iRandomGold>
<iCulture>0</iCulture>
<iEspionagePoints>0</iEspionagePoints>
<bGoldenAge>0</bGoldenAge>
<iFreeUnitSupport>0</iFreeUnitSupport>
<iInflationMod>0</iInflationMod>
<iSpaceProductionMod>0</iSpaceProductionMod>
<Tech>NONE</Tech>
<TechFlavors>
</TechFlavors>
<iTechPercent>0</iTechPercent>
<iTechCostPercent>0</iTechCostPercent>
<iTechMinTurnsLeft>0</iTechMinTurnsLeft>
<PrereqTech/>
<UnitClass>NONE</UnitClass>
<iNumFreeUnits>0</iNumFreeUnits>
<bDisbandUnit>0</bDisbandUnit>
<iUnitExperience>0</iUnitExperience>
<iUnitImmobileTurns>0</iUnitImmobileTurns>
<UnitPromotion/>
<UnitName/>
<UnitCombatPromotions>
</UnitCombatPromotions>
<UnitClassPromotions>
</UnitClassPromotions>
<BuildingClass>NONE</BuildingClass>
<iBuildingChange>0</iBuildingChange>
<BuildingExtraYields>
</BuildingExtraYields>
<BuildingExtraCommerces>
</BuildingExtraCommerces>
<BuildingExtraHappies>
</BuildingExtraHappies>
<BuildingExtraHealths>
</BuildingExtraHealths>
<iHappy>1</iHappy>
<iHealth>0</iHealth>
<iHurryAnger>0</iHurryAnger>
<iHappyTurns>10</iHappyTurns>
<iRevoltTurns>2</iRevoltTurns>
<iMinPillage>0</iMinPillage>
<iMaxPillage>0</iMaxPillage>
<iFood>0</iFood>
<iFoodPercent>-15</iFoodPercent>
<FreeSpecialistCounts>
</FreeSpecialistCounts>
<FeatureType>NONE</FeatureType>
<iFeatureChange>0</iFeatureChange>
<ImprovementType>NONE</ImprovementType>
<iImprovementChange>0</iImprovementChange>
<BonusType>NONE</BonusType>
<iBonusChange>0</iBonusChange>
<RouteType>NONE</RouteType>
<iRouteChange>0</iRouteChange>
<BonusRevealed>NONE</BonusRevealed>
<BonusGift>NONE</BonusGift>
<PlotExtraYields>
</PlotExtraYields>
<iConvertOwnCities>0</iConvertOwnCities>
<iConvertOtherCities>0</iConvertOtherCities>
<iMaxNumReligions>-1</iMaxNumReligions>
<iOurAttitudeModifier>0</iOurAttitudeModifier>
<iAttitudeModifier>0</iAttitudeModifier>
<iTheirEnemyAttitudeModifier>0</iTheirEnemyAttitudeModifier>
<iPopulationChange>0</iPopulationChange>
<AdditionalEvents>
</AdditionalEvents>
<EventTimes>
</EventTimes>
<ClearEvents>
</ClearEvents>
<PythonCallback/>
<PythonExpireCheck/>
<PythonCanDo/>
<PythonHelp/>
<Button>,Art/Interface/Buttons/Process/Blank.dds,Art/Interface/Buttons/Beyond_the_Sword_Atlas.dds,8,5</Button>
<iAIValue>50</iAIValue>
<iCrime>2</iCrime>
<iGlobalCounter>0</iGlobalCounter>
<PrereqAlignment>NONE</PrereqAlignment>
<PrereqBonus>NONE</PrereqBonus>
<PrereqCivilization>NONE</PrereqCivilization>
<PrereqCorporation>NONE</PrereqCorporation>
<PrereqReligion>NONE</PrereqReligion>
<PrereqStateReligion>NONE</PrereqStateReligion>
</EventInfo>

<EventInfo>
<Type>EVENT_GREENSKIN_SNOTLING_RIOT_3</Type>
<!-- snotlings run riot and breed, gives happiness to city but causes disorder and gold in damages, but boosts pop by +1 - go lil guys! -->
<Description>Hey! Stop humpin me boot! *tosses boot away* Dey ova dat way, lil fella! Go werk ya magik! Da lil ones spred da luv warboss. Itz a great day for uz *wipes away a tear*</Description>
<LocalInfoText/>
<WorldNewsTexts/>
<OtherPlayerPopup/>
<QuestFailText/>
<bQuest>0</bQuest>
<bGlobal>0</bGlobal>
<bTeam>0</bTeam>
<bPickCity>1</bPickCity>
<bPickOtherPlayerCity>0</bPickOtherPlayerCity>
<bDeclareWar>0</bDeclareWar>
<iGold>-50</iGold>
<bGoldToPlayer>0</bGoldToPlayer>
<iRandomGold>0</iRandomGold>
<iCulture>5</iCulture>
<iEspionagePoints>0</iEspionagePoints>
<bGoldenAge>0</bGoldenAge>
<iFreeUnitSupport>0</iFreeUnitSupport>
<iInflationMod>0</iInflationMod>
<iSpaceProductionMod>0</iSpaceProductionMod>
<Tech>NONE</Tech>
<TechFlavors>
</TechFlavors>
<iTechPercent>0</iTechPercent>
<iTechCostPercent>0</iTechCostPercent>
<iTechMinTurnsLeft>0</iTechMinTurnsLeft>
<PrereqTech>TECH_MONSTER_TAMING</PrereqTech>
<UnitClass>NONE</UnitClass>
<iNumFreeUnits>0</iNumFreeUnits>
<bDisbandUnit>0</bDisbandUnit>
<iUnitExperience>0</iUnitExperience>
<iUnitImmobileTurns>0</iUnitImmobileTurns>
<UnitPromotion/>
<UnitName/>
<UnitCombatPromotions>
</UnitCombatPromotions>
<UnitClassPromotions>
</UnitClassPromotions>
<BuildingClass>NONE</BuildingClass>
<iBuildingChange>0</iBuildingChange>
<BuildingExtraYields>
</BuildingExtraYields>
<BuildingExtraCommerces>
</BuildingExtraCommerces>
<BuildingExtraHappies>
</BuildingExtraHappies>
<BuildingExtraHealths>
</BuildingExtraHealths>
<iHappy>1</iHappy>
<iHealth>0</iHealth>
<iHurryAnger>0</iHurryAnger>
<iHappyTurns>20</iHappyTurns>
<iRevoltTurns>3</iRevoltTurns>
<iMinPillage>0</iMinPillage>
<iMaxPillage>0</iMaxPillage>
<iFood>0</iFood>
<iFoodPercent>-15</iFoodPercent>
<FreeSpecialistCounts>
</FreeSpecialistCounts>
<FeatureType>NONE</FeatureType>
<iFeatureChange>0</iFeatureChange>
<ImprovementType>NONE</ImprovementType>
<iImprovementChange>0</iImprovementChange>
<BonusType>NONE</BonusType>
<iBonusChange>0</iBonusChange>
<RouteType>NONE</RouteType>
<iRouteChange>0</iRouteChange>
<BonusRevealed>NONE</BonusRevealed>
<BonusGift>NONE</BonusGift>
<PlotExtraYields>
</PlotExtraYields>
<iConvertOwnCities>0</iConvertOwnCities>
<iConvertOtherCities>0</iConvertOtherCities>
<iMaxNumReligions>-1</iMaxNumReligions>
<iOurAttitudeModifier>0</iOurAttitudeModifier>
<iAttitudeModifier>0</iAttitudeModifier>
<iTheirEnemyAttitudeModifier>0</iTheirEnemyAttitudeModifier>
<iPopulationChange>+1</iPopulationChange>
<AdditionalEvents>
</AdditionalEvents>
<EventTimes>
</EventTimes>
<ClearEvents>
</ClearEvents>
<PythonCallback/>
<PythonExpireCheck/>
<PythonCanDo/>
<PythonHelp/>
<Button>,Art/Interface/Buttons/Process/Blank.dds,Art/Interface/Buttons/Beyond_the_Sword_Atlas.dds,8,5</Button>
<iAIValue>100</iAIValue>
<iCrime>0</iCrime>
<iGlobalCounter>0</iGlobalCounter>
<PrereqAlignment>NONE</PrereqAlignment>
<PrereqBonus>NONE</PrereqBonus>
<PrereqCivilization>NONE</PrereqCivilization>
<PrereqCorporation>NONE</PrereqCorporation>
<PrereqReligion>NONE</PrereqReligion>
<PrereqStateReligion>NONE</PrereqStateReligion>
</EventInfo>

<EventInfo>
<Type>EVENT_GREENSKIN_SNOTLING_RIOT_2</Type>
<!-- snotlings run riot, gives happiness to city but causes disorder and gold in damages -->
<Description>Let em run riot. I lik da lil fellas.</Description>
<LocalInfoText/>
<WorldNewsTexts/>
<OtherPlayerPopup/>
<QuestFailText/>
<bQuest>0</bQuest>
<bGlobal>0</bGlobal>
<bTeam>0</bTeam>
<bPickCity>1</bPickCity>
<bPickOtherPlayerCity>0</bPickOtherPlayerCity>
<bDeclareWar>0</bDeclareWar>
<iGold>-25</iGold>
<bGoldToPlayer>0</bGoldToPlayer>
<iRandomGold>0</iRandomGold>
<iCulture>0</iCulture>
<iEspionagePoints>0</iEspionagePoints>
<bGoldenAge>0</bGoldenAge>
<iFreeUnitSupport>0</iFreeUnitSupport>
<iInflationMod>0</iInflationMod>
<iSpaceProductionMod>0</iSpaceProductionMod>
<Tech>NONE</Tech>
<TechFlavors>
</TechFlavors>
<iTechPercent>0</iTechPercent>
<iTechCostPercent>0</iTechCostPercent>
<iTechMinTurnsLeft>0</iTechMinTurnsLeft>
<PrereqTech/>
<UnitClass>NONE</UnitClass>
<iNumFreeUnits>0</iNumFreeUnits>
<bDisbandUnit>0</bDisbandUnit>
<iUnitExperience>0</iUnitExperience>
<iUnitImmobileTurns>0</iUnitImmobileTurns>
<UnitPromotion/>
<UnitName/>
<UnitCombatPromotions>
</UnitCombatPromotions>
<UnitClassPromotions>
</UnitClassPromotions>
<BuildingClass>NONE</BuildingClass>
<iBuildingChange>0</iBuildingChange>
<BuildingExtraYields>
</BuildingExtraYields>
<BuildingExtraCommerces>
</BuildingExtraCommerces>
<BuildingExtraHappies>
</BuildingExtraHappies>
<BuildingExtraHealths>
</BuildingExtraHealths>
<iHappy>1</iHappy>
<iHealth>0</iHealth>
<iHurryAnger>0</iHurryAnger>
<iHappyTurns>10</iHappyTurns>
<iRevoltTurns>2</iRevoltTurns>
<iMinPillage>0</iMinPillage>
<iMaxPillage>0</iMaxPillage>
<iFood>0</iFood>
<iFoodPercent>-15</iFoodPercent>
<FreeSpecialistCounts>
</FreeSpecialistCounts>
<FeatureType>NONE</FeatureType>
<iFeatureChange>0</iFeatureChange>
<ImprovementType>NONE</ImprovementType>
<iImprovementChange>0</iImprovementChange>
<BonusType>NONE</BonusType>
<iBonusChange>0</iBonusChange>
<RouteType>NONE</RouteType>
<iRouteChange>0</iRouteChange>
<BonusRevealed>NONE</BonusRevealed>
<BonusGift>NONE</BonusGift>
<PlotExtraYields>
</PlotExtraYields>
<iConvertOwnCities>0</iConvertOwnCities>
<iConvertOtherCities>0</iConvertOtherCities>
<iMaxNumReligions>-1</iMaxNumReligions>
<iOurAttitudeModifier>0</iOurAttitudeModifier>
<iAttitudeModifier>0</iAttitudeModifier>
<iTheirEnemyAttitudeModifier>0</iTheirEnemyAttitudeModifier>
<iPopulationChange>0</iPopulationChange>
<AdditionalEvents>
</AdditionalEvents>
<EventTimes>
</EventTimes>
<ClearEvents>
</ClearEvents>
<PythonCallback/>
<PythonExpireCheck/>
<PythonCanDo/>
<PythonHelp/>
<Button>,Art/Interface/Buttons/Process/Blank.dds,Art/Interface/Buttons/Beyond_the_Sword_Atlas.dds,8,5</Button>
<iAIValue>50</iAIValue>
<iCrime>2</iCrime>
<iGlobalCounter>0</iGlobalCounter>
<PrereqAlignment>NONE</PrereqAlignment>
<PrereqBonus>NONE</PrereqBonus>
<PrereqCivilization>NONE</PrereqCivilization>
<PrereqCorporation>NONE</PrereqCorporation>
<PrereqReligion>NONE</PrereqReligion>
<PrereqStateReligion>NONE</PrereqStateReligion>
</EventInfo>

<EventInfo>
<Type>EVENT_GREENSKIN_SNOTLING_RIOT_3</Type>
<!-- snotlings run riot and breed, gives happiness to city but causes disorder and gold in damages, but boosts pop by +1 - go lil guys! -->
<Description>Hey! Stop humpin me boot! *tosses boot away* Dey ova dat way, lil fella! Go werk ya magik! Da lil ones spred da luv warboss. Itz a great day for uz *wipes away a tear*</Description>
<LocalInfoText/>
<WorldNewsTexts/>
<OtherPlayerPopup/>
<QuestFailText/>
<bQuest>0</bQuest>
<bGlobal>0</bGlobal>
<bTeam>0</bTeam>
<bPickCity>1</bPickCity>
<bPickOtherPlayerCity>0</bPickOtherPlayerCity>
<bDeclareWar>0</bDeclareWar>
<iGold>-50</iGold>
<bGoldToPlayer>0</bGoldToPlayer>
<iRandomGold>0</iRandomGold>
<iCulture>5</iCulture>
<iEspionagePoints>0</iEspionagePoints>
<bGoldenAge>0</bGoldenAge>
<iFreeUnitSupport>0</iFreeUnitSupport>
<iInflationMod>0</iInflationMod>
<iSpaceProductionMod>0</iSpaceProductionMod>
<Tech>NONE</Tech>
<TechFlavors>
</TechFlavors>
<iTechPercent>0</iTechPercent>
<iTechCostPercent>0</iTechCostPercent>
<iTechMinTurnsLeft>0</iTechMinTurnsLeft>
<PrereqTech>TECH_MONSTER_TAMING</PrereqTech>
<UnitClass>NONE</UnitClass>
<iNumFreeUnits>0</iNumFreeUnits>
<bDisbandUnit>0</bDisbandUnit>
<iUnitExperience>0</iUnitExperience>
<iUnitImmobileTurns>0</iUnitImmobileTurns>
<UnitPromotion/>
<UnitName/>
<UnitCombatPromotions>
</UnitCombatPromotions>
<UnitClassPromotions>
</UnitClassPromotions>
<BuildingClass>NONE</BuildingClass>
<iBuildingChange>0</iBuildingChange>
<BuildingExtraYields>
</BuildingExtraYields>
<BuildingExtraCommerces>
</BuildingExtraCommerces>
<BuildingExtraHappies>
</BuildingExtraHappies>
<BuildingExtraHealths>
</BuildingExtraHealths>
<iHappy>1</iHappy>
<iHealth>0</iHealth>
<iHurryAnger>0</iHurryAnger>
<iHappyTurns>20</iHappyTurns>
<iRevoltTurns>3</iRevoltTurns>
<iMinPillage>0</iMinPillage>
<iMaxPillage>0</iMaxPillage>
<iFood>0</iFood>
<iFoodPercent>-15</iFoodPercent>
<FreeSpecialistCounts>
</FreeSpecialistCounts>
<FeatureType>NONE</FeatureType>
<iFeatureChange>0</iFeatureChange>
<ImprovementType>NONE</ImprovementType>
<iImprovementChange>0</iImprovementChange>
<BonusType>NONE</BonusType>
<iBonusChange>0</iBonusChange>
<RouteType>NONE</RouteType>
<iRouteChange>0</iRouteChange>
<BonusRevealed>NONE</BonusRevealed>
<BonusGift>NONE</BonusGift>
<PlotExtraYields>
</PlotExtraYields>
<iConvertOwnCities>0</iConvertOwnCities>
<iConvertOtherCities>0</iConvertOtherCities>
<iMaxNumReligions>-1</iMaxNumReligions>
<iOurAttitudeModifier>0</iOurAttitudeModifier>
<iAttitudeModifier>0</iAttitudeModifier>
<iTheirEnemyAttitudeModifier>0</iTheirEnemyAttitudeModifier>
<iPopulationChange>+1</iPopulationChange>
<AdditionalEvents>
</AdditionalEvents>
<EventTimes>
</EventTimes>
<ClearEvents>
</ClearEvents>
<PythonCallback/>
<PythonExpireCheck/>
<PythonCanDo/>
<PythonHelp/>
<Button>,Art/Interface/Buttons/Process/Blank.dds,Art/Interface/Buttons/Beyond_the_Sword_Atlas.dds,8,5</Button>
<iAIValue>100</iAIValue>
<iCrime>0</iCrime>
<iGlobalCounter>0</iGlobalCounter>
<PrereqAlignment>NONE</PrereqAlignment>
<PrereqBonus>NONE</PrereqBonus>
<PrereqCivilization>NONE</PrereqCivilization>
<PrereqCorporation>NONE</PrereqCorporation>
<PrereqReligion>NONE</PrereqReligion>
<PrereqStateReligion>NONE</PrereqStateReligion>
</EventInfo>
 

deadliver

Loud Mouth Amateur
Joined
Oct 18, 2003
Messages
1,508
Location
Anvilania
Genius events, I espeshulli lyk the snotz riot and trading caravan.
 

Arexack_heretic

Emperor
Joined
Oct 10, 2006
Messages
1,119
Location
Lugdunum
Arexack does this work? If so woohoo! Awesome!
Does it give +1 xp per time visited to units on the tile? It looks to me like -1 (dont know any python yet). What do the three falses confirm?

It has to be tested yet.
I'm not completely sure what the -1 and False refer to, I copied this line from another part of the code. They are arguments fed into the giveExp() method though. The -1 is probably a tileFeature or city prereq value or something similar that does not apply, same for the booleans. The iEXP parameter is what is important for the value of exp given.

If it works as planned, it will give [iExp]XP to each unit on the [pPlot]tile, each time the method is called. Be it from a spell an event or whatever.

You'll have to do it though, first I want to get the messed up unitlist to work
with all the discarded artwork. This really bugs me.
First apply the patch though.
 

frenzyslave

Warlord
Joined
Dec 26, 2003
Messages
262
Location
Hamilton, New Zealand
You'll have to do it though, first I want to get the messed up unitlist to work with all the discarded artwork. This really bugs me.
First apply the patch though.

Ah okays... But I have XP Prof... Much more reliable than Vista, except now apparently...
 

Arexack_heretic

Emperor
Joined
Oct 10, 2006
Messages
1,119
Location
Lugdunum
I was talking to myself concerning the patch though. :rolleyes:
Big mistake. I'm on XPprof too and it don't work.
or to quote a recycling infomercial: "Is reelie-reelie bro'ken!":cry:
 

frenzyslave

Warlord
Joined
Dec 26, 2003
Messages
262
Location
Hamilton, New Zealand
Well at least I know that the GREENSKIN_RAID_CARAVAN WORKS. yAY! :D It popped up in game.

I modified the CIV4EventTriggerInfos to make the following errata:
In EVENT_GREENSKIN_RAID_CARAVAN
I changed the iNumPlotsReqd to 0. That fixed it.

Still no luck with the others, prolly has something to do with the unitclasses or something.
 

Arexack_heretic

Emperor
Joined
Oct 10, 2006
Messages
1,119
Location
Lugdunum
ahem. :blush:
I added too many changes at once again and broke the mod, reversing the changes I made did not fix it (so I forgot something).
Gotta start over now. :lol:
 

frenzyslave

Warlord
Joined
Dec 26, 2003
Messages
262
Location
Hamilton, New Zealand
ahem. :blush:
I added too many changes at once again and broke the mod, reversing the changes I made did not fix it (so I forgot something).
Gotta start over now. :lol:

Bugger... :crazyeye: :lol:

Havent quite done that yet ;) keeping my changes at the end of the files so i know where it is :lol:
 

kzwix

Chieftain
Joined
Jun 4, 2008
Messages
45
Location
France
I really love all those events, but I'm strongly against hidden-and-fixed-result ones. I mean, the race would be only a "click-to-get-gold" event, once you know it. All those do is give an edge to experienced players over the newbies.

I saw the messages about randoming the race outcome, and I fully agree about that. And, as for the Gork & Mork event, I would'nt hide the result, and would maybe just stack both effects when someone chooses to worship Gork and Mork. This would be delightfully chaotic, and make all choices interesting. Maybe just run a randomizer on the amount of food gotten (or lost, remember both gods are worshiped, and some greenskins would be taking out what other greenskins just put in the granaries...), and run other randomizers as to the number of turns of riot, with XP related to how long they fought.

What do you think ?
 

Ahriman

Tyrant
Joined
Jun 8, 2008
Messages
13,266
Location
Washington, DC
I agree completely that choosing one particular choice should never be always better than making a different choice.
So, its fine for one result to win the race, and another result to lose the race, but they need to be different results each time.

Randomizers work well, but hiding results just tends to frustrate strategy gamers - we like to know what is going on, so we can try to optimize.

Too much randomizing can be confusing and hard to code.
But you could easily have something like:
Worship gork-> something minor good
Worship mork-> somerthing minor good
Worship both -> 50% chance something minor bad, 50% chance something very good.
 

kzwix

Chieftain
Joined
Jun 4, 2008
Messages
45
Location
France
Randomizers work well, but hiding results just tends to frustrate strategy gamers - we like to know what is going on, so we can try to optimize.

Too much randomizing can be confusing and hard to code.
But you could easily have something like:
Worship gork-> something minor good
Worship mork-> somerthing minor good
Worship both -> 50% chance something minor bad, 50% chance something very good.

Well, I disagree on the "randomizers frustrate players" bit. I mean, that's what random events are all about, and if people still use them, they should be ready to face the consequences. Additionnaly, players choosing to rule over a greenskin civilization should be extra ready to face chaotic effects. If you want reliable troops, you pick elves or humans, not soldiers as prone to fight each other than march at the enemy...

So this "chaotic" bit is just what is needed with greenskins.


However, I do agree that not knowing what an event does is frustrating. As for the race, putting 4 chariots and randomizing the winner would be a nice one, and quite self explaining.

As for Gork vs Mork, I wouldn't be surprised at all if the effects that were initially suggested had a strong link with the background of these deities. I don't know them well, but, according to HammerWiki :

HammerWiki said:
Gork and Mork are twin deities worshipped by the Greenskins. There are distinct differences between Gork and Mork, similar as they may be. Worshipers of Gork and Mork claim that one is mean, the other one meaner, one god will hit you whilst you aren't looking the other will hit you while you are. The god's spheres of influence follow this philosophy: Gork is the god of cunning brutality, while Mork is the god of brutal cunning.

Gork and Mork, more so than any other god in the Warhammer World (apart from the Chaos gods,) are known to frequently intervene with the lives of Greenskins. Gork and Mork are widely believed to aid particular Greenskin followers in battle, in some cases even manifesting themselves physically to step on their enemies!

Unless there are other "attributes" differentiating those two gods, I assume it could be quite safe to give similar bonuses to players choosing to worship one over the other (with a few turns of riot, a few XP added to all units, and possibly a little differenciated "bonus" in another domain, like giving one more XP to recon, archery, mage, and priest units units when Gork is chosen (cunning brutality), and one more XP to melee, cavalry, bestial and siege units when Mork is chosen (brutal cunning.) After all, it all comes down to "Killing stufz"... Plus, I think a 20% damage on all units in the city could be justified.

And if one chooses both, as the warboss wouldn't have settled the dispute concerning "who iz da meaner", the squabble could last longer (more turns of riot, more xp, and possibly damage units more, like 40%...)

And the result for choosing nothing would be the temporary morale loss already suggested.

This ain't random anymore, and seems quite "on topic", as far as greenskins are concerned. Plus, and it's important, it gives a really interesting choice to the player, either to paralyse a city (and weaken it's units) for a time (maybe 1 turn per unit in the city for one god, 2 turns per unit in the city for both), but get many XP (2 (or 3, unitclass dependant) XP on each unit for one god, 5 XP on each unit for both gods), or either to keep it working and ready, but with a penalty. But the last choice ensures you can still react quickly to a nearby threat, if needed.


Do you think it would be fun (and balanced) ?
 
Top Bottom