Making it Snow in game
The Setup
There are several files that need to be modified to make this work. First, we need to create a new Temporary Power, and add it to the Temporary Power powerset. Then we need to create a script that will grant this power on map entry, and lastly, we need to apply it to the maps of our choosing. This will also require that you have already setup a server for creating bins, and a set of loose data.
Useful Links for prior to this tutorial
- Binning Setup: https://corps.ouro-comdev.com/index.php?title=Server_Setup_for_Making_Bins
- Powers - Not necessary for this but helpful: https://corps.ouro-comdev.com/index.php?title=Powers
Files to be modified/created
- \serverdata\defs\powers\Temporary_Powers_Temporary_Powers.powers
- -We will modify this file, it is the actual powers located in "Temporary Powers"
- \serverdata\defs\powers\Temporary_Powers.powersets
- -We will modify this file, it is the container for all temporary powers
- \serverdata\scripts.loc\ScriptDefs\Holiday_Snow.scriptdef
- -We will create this file, it will grant the temporary power
- \serverdata\specs\maps.spec
- -We will modify this file, it will attach our script to the specific maps
Powers Files
Temporary_Powers.powersets
We are going to open up Temporary_Powers.powersets to modify it, open it with notepad or notepad++. Around line 6089 should be the end of the Temporary_Powers category before the start of Temporary_Powers.Accolades. Before the ending }, we need to add the following. Please keep in mind that the name following Temporary_Powers.Temporary_Powers.<NAME> is going to be the name of the power, and needed for the next step!
Powers Temporary_Powers.Temporary_Powers.Holiday_Snow Available 0 AIMaxLevel 0 AIMinRankCon -9999 AIMaxRankCon 9999 MinDifficulty 2 MaxDifficulty 9999
Temporary_Powers_Temporary_Powers.powers
I simply added the new power to the end of the Temporary_Powers_Temporary_Powers.powers file
Power Temporary_Powers.Temporary_Powers.Holiday_Snow
{
Name "Holiday_Snow"
DisplayName "Holiday_Snow"
Type kAuto
Accuracy 1
EntsAffected kCaster
EntsAutoHit kCaster
Target kCaster
Range 0
EnduranceCost 0
IdeaCost 0
InterruptTime 0
TimeToActivate 0
RechargeTime 0
ActivatePeriod 50000
EffectArea kCharacter
Radius 0
Arc 0
AIReport kNever
// Additional Power Factors
ShootThroughUntouchable kTrue
DisplayShortHelp "Holiday_Snow"
DisplayHelp "Holiday_Snow"
TimeToConfirm 0
CastThroughHold kTrue
CastThroughSleep kTrue
CastThroughStun kTrue
CastThroughTerrorize kTrue
DoNotSave kTrue
ShowInManage kFalse
ShowInInventory kFalse
ShowInInfo kFalse
ShowBuffIcon kFalse
IconName "Temporary_HolidayPBAoE.tga"
AttribMod
{
Name "Ones"
Table "Ranged_Ones"
Aspect kCur
Attrib kNull
Target kTarget
Scale 1
Type kMagnitude
AllowStrength kFalse
AllowResistance kFalse
Delay 0
Duration 9999
Magnitude 1
Period 0
Chance 1
NearGround kFalse
CancelOnMiss kFalse
StackType kReplace
ContinuingFX WORLD\WinterEvent\N_SnowFall.fx
}
}
This is basically the Instant SnowStorm power with a few tweaks. It shouldn't stay across zones (dismisses once you leave the zone) and it does not have the initial cast animations.
The Scripts and Specs
Scripts
Create a new file in \serverdata\scripts.loc\ScriptDefs and name it Holiday_Snow.script.def Put the following contents into the file to tell it to automatically grant the temporary power we created.
ScriptDef
{
ScriptName OnEnterGrantPowerZone
// Vars
var Power = Temporary_Powers.Temporary_Powers.Holiday_Snow
}
maps.spec
Maps.spec includes alot of information for zones. Specifically we want to add a ZoneScript to each zone that we want snow to appear in. Here is what a zone looks like in maps.spec
// Atlas Park
Map City_01_01.txt
{
// appropriate level ranges for this zone
MissionMinLevel 1
SpawnOverrideMinLevel 1
SpawnOverrideMaxLevel 10
ZoneScripts scriptdefs/LevelOne_LevelUpReminder.scriptdef
MissionsAllowed Hero
PlayersAllowed Hero
MissionDoors Office, AbandonedOffice, Warehouse, AbandonedWarehouse, Sewers, Caves, Tech, 911_AP_Family_Jewels, 911_AP_First_National, 911_AP_Exchange, PPD_APdoor1, PoliceBandCaves, PoliceBandSewers, PoliceBandOffice ,PoliceBandAbandonedOffice, PoliceBandWarehouse, PoliceBandAbandonedWarehouse, PoliceBandCircleOfThorns, Safeguard, Architect, AP_PP_Office, AP_PP_AbandonedOffice, AP_PP_Sewers, AP_PP_Caves, AP_PP_Manhole, AP_PP_AbandonedWarehouse, AP_PP_Warehouse, AP_TP_Caves, AP_TP_AbandonedOffice, AP_TP_Office, AP_TP_Sewers, AP_TP_Tech, AP_TP_Manhole, AP_TP_AbandonedWarehouse, AP_TP_Warehouse, AP_HW_Office, AP_HW_AbandonedOffice, AP_HW_Tech, AP_HW_Sewers, AP_HW_Truck, AP_HW_Manhole, AP_HW_AbandonedWarehouse, AP_HW_Warehouse, AP_D_AbandonedOffice, AP_D_Office, AP_D_Sewers, AP_D_Tech, AP_D_Tech, AP_D_Warehouse, AP_D_Manhole, AP_D_Truck, AP_D_AbandonedWarehouse, AP_AI_AbandonedWarehouse, AP_AI_AbandonedOffice, AP_AI_Warehouse, AP_AI_Sewers, AP_AI_Sewers, AP_AI_Tech, AP_AI_Manhole, AP_AI_Truck, AP_MH_Mission4, AP_OF_M3, RS_I_1, AP_AT_M4, AP_SC_M4, OGT_ShiningStarsBaseOne, OmegaTeamMemorial, SigStory2PhalanxHQ
PersistentNPCs FreedomCorp_City_01_01, Tony_Kord, Laurence_Mansfield, Jose_Brogan, FreedomCorp_City_01_01b, Susan_Davies, Security_Chief_01, MsLiberty, FreedomCorp_City_01_03, Iris_Parker, SuperGroupRegistrar, City_Representative, Sarah_Juarez, Henry_Peter_Wong, Azuria, Rick_Davies, Sarah_Peters, Security_Chief_04, Jonathan_Smythe, FreedomCorp_City_01_01c, Charlie, NotorietyContact6, Architect_Studio_Manager_H_AP, Architect_Greeter_AP, Architect_Instructor_AP, Architect_ComputerTech_AP, Architect_AsstManager_AP, Architect_MedicalTech_AP, Architect_VenderTech_AP,OGTH_Dillo_Act1, OGTH_Flambeaux_Act1, OGTH_Grym_Act1, OGTH_Proton_Act1, OGTH_Twinshot_Act1, Officer_Nelson_HabashyMish2, Wavelength, TUNNEL_Paragon, AntonioNashSSA2_2
VisitLocations Statue1, Patrol_Hard_5_City_01_01, Patrol_Hard_4_City_01_01, Patrol_Hard_3_City_01_01, Patrol_Hard_2_City_01_01, Patrol_Hard_1_City_01_01, Patrol_Easy_5_City_01_01, Patrol_Easy_4_City_01_01, Patrol_Easy_3_City_01_01, Patrol_Easy_2_City_01_01, Patrol_Easy_1_City_01_01,
//Plaques CitizenCrimeAct2, AxisAttack1, CitizenCrimeAct1, MightForRightAct1, PsychicFeedbackLoop1,
EncounterLayouts AroundDoor, Single, Snatch, Ambush, AroundVandalism, Around,
VillainGroups Clockwork, Hellions, Vahzilok, Skulls, Arachnos
}
We basically want to add
ZoneScripts scriptdefs/Holiday_Snow.scriptdef
to the end of the ZoneScripts area of each map we want to enable this on. Once you have done that, save your files, and bin away. When you start the server and enter a zone that has that script, you will be granted the power and it will start snowing. When you leave the map and enter one that does not have the script, the power should go away.