Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import("ScarUtil.scar");
- function OnGameSetup() -- Called as the first thing in the script no matter what
- player1 = World_GetPlayerAt(1);
- player2 = World_GetPlayerAt(2);
- player3 = World_GetPlayerAt(3);
- player4 = World_GetPlayerAt(4);
- end
- -----------------------------------------------------
- function OnInit()
- -- More stuff
- AI_EnableAll(false);
- UI_SetCPMeterVisibility(false);
- -- Declaring groups
- sg_scout1 = SGroup_CreateIfNotFound("sg_scout1") -- Declare the SG
- sg_defender1 = SGroup_CreateIfNotFound("sg_defender1")
- sg_defendervet1 = SGroup_CreateIfNotFound("sg_defendervet1")
- sg_defendervet2 = SGroup_CreateIfNotFound("sg_defendervet2")
- sg_counter1 = SGroup_CreateIfNotFound("sg_counter1")
- sg_defenders = SGroup_CreateIfNotFound("sg_defenders")
- sg_defendertotal = SGroup_CreateIfNotFound("sg_defendertotal")
- sg_scout2 = SGroup_CreateIfNotFound("sg_scout2")
- sg_sdkfz251 = SGroup_CreateIfNotFound("sg_sdkfz251")
- sg_reinforcement = SGroup_CreateIfNotFound("sg_reinforcement")
- sg_reinforcement1 = SGroup_CreateIfNotFound("sg_reinforcement1")
- -- Function call
- Restriction();
- InitializeObjectives();
- Villageattack(); -- Call villageattack function
- Farm_Attack_Reinforcement();
- Rule_AddOneShot(OBJ_Farm_Mission, 2);
- -- Intervals
- Rule_AddInterval(Move, 2); -- Calls the function every 7th second
- Rule_AddInterval(OBJ_Farm_Lose, 10);
- -- Functions to test stuff out
- testing();
- end
- Scar_AddInit(OnInit);
- -----------------------------------------------------
- function Restriction()
- g_manpowerrate = Modify_PlayerResourceRate(player1, RT_Manpower, 0, MUT_Multiplication);
- g_fuelrate = Modify_PlayerResourceRate(player1, RT_Fuel, 0, MUT_Multiplication);
- g_munitionrate = Modify_PlayerResourceRate(player1, RT_Munition, 0, MUT_Multiplication);
- Player_SetResource(player1, RT_Manpower, 0);
- Player_SetResource(player1, RT_Fuel, 0);
- Player_SetResource(player1, RT_Munition, 0);
- Player_SetAbilityAvailability(player1, ABILITY.GERMAN.ASSAULT_GRENADIER_GRENADE, ITEM_REMOVED)
- Player_SetAbilityAvailability(player1, ABILITY.GERMAN.GRENADIER_PANZERFAUST_MP, ITEM_REMOVED)
- Player_SetAbilityAvailability(player1, ABILITY.GERMAN.GRENADIER_RIFLE_GRENADE_ABILITY_MP, ITEM_REMOVED)
- end
- -----------------------------------------------------
- function InitializeObjectives()
- -- Missions
- OBJ_FARM= {
- SetupUI = function()
- end,
- OnStart = function()
- Rule_AddInterval(OBJ_Farm_IsDone, 2)
- Rule_AddInterval(Farm_Attack_Reinforcement, 2)
- end,
- OnComplete = function()
- Player_AddResource(player1, RT_Manpower, 125);
- Util_CreateSquads(player3, sg_sdkfz251, BP_GetSquadBlueprint("sdkfz_251_halftrack_squad_mp"), mkr_playerspawn, mkr_truckfarm1, 1, nil, nil, nil, nil, nil);
- Util_CreateSquads(player3, sg_reinforcement, BP_GetSquadBlueprint("grenadier_squad_mp"), sg_sdkfz251, nil, 1, nil, nil, nil, nil, nil);
- Util_CreateSquads(player3, sg_reinforcement1, BP_GetSquadBlueprint("mg42_heavy_machine_gun_squad_mp"), sg_sdkfz251, nil, 1, nil, nil, nil, nil, nil);
- TruckLeave()
- Rule_AddInterval(TruckLeave, 2);
- end,
- OnFail = function()
- end,
- Title = "$f69d864ff41f412f91dfd87227648192:1",
- Description = 0,
- Type = OT_Primary, -- main objective (the star)
- }
- Objective_Register(OBJ_FARM);
- end
- -----------------------------------------------------
- function Villageattack()
- Util_CreateSquads(player1, sg_scout1, BP_GetSquadBlueprint("assault_grenadier_squad_mp"), mkr_playerspawn, nil, 10, nil, nil, nil, nil, nil);
- Util_CreateSquads(player1, sg_scout1, BP_GetSquadBlueprint("grenadier_squad_mp"), mkr_playerspawn1, nil, 1, nil, nil, nil, nil, nil);
- Util_CreateSquads(player2, sg_defendervet1, BP_GetSquadBlueprint("conscript_squad_mp"), villageattack_building, nil, 1, nil, nil, nil, nil, nil);
- Util_CreateSquads(player2, sg_defendervet2, BP_GetSquadBlueprint("combat_engineer_squad_mp"), mkr_defenderspawn3, nil, 1, nil, nil, nil, nil, nil);
- Cmd_SquadPatrolMarker( sg_defendervet2, mkr_defenderspawn3 )
- Util_CreateSquads(player2, sg_defender1, BP_GetSquadBlueprint("conscript_squad_mp"), villageattack_building1, nil, 1, nil, nil, nil, nil, nil);
- SGroup_IncreaseVeterancyRank(sg_defendervet1, World_GetRand(1, 2), true);
- SGroup_IncreaseVeterancyRank(sg_defendervet2, World_GetRand(1, 3), true);
- Util_CreateSquads(player2, sg_counter1, BP_GetSquadBlueprint("conscript_squad_mp"), mkr_counterspawn, nil, 1, nil, nil, nil, nil, nil);
- SGroup_IncreaseVeterancyRank(sg_counter1, World_GetRand(1, 2), true);
- SGroup_AddGroup(sg_defenders, sg_defendervet1);
- SGroup_AddGroup(sg_defenders, sg_defendervet2);
- SGroup_AddGroup(sg_defenders, sg_defender1);
- SGroup_AddGroup(sg_defendertotal, sg_defenders);
- SGroup_AddGroup(sg_defendertotal, sg_counter1);
- end
- -----------------------------------------------------
- function Move()
- if (SGroup_Count(sg_defenders) <=1) then
- Cmd_Move(sg_counter1, mkr_defenderspawn2);
- Rule_RemoveMe();
- end
- end
- -----------------------------------------------------
- function Farm_Attack_Reinforcement()
- if (SGroup_TotalMembersCount(sg_scout1, false) == 2) then
- Util_CreateSquads(player1, sg_scout2, BP_GetSquadBlueprint("grenadier_squad_mp"), mkr_playerspawn, nil, 1, nil, nil, nil, nil, nil);
- SGroup_AddGroup(sg_scout1, sg_scout2);
- Cmd_Move(sg_scout2, mkr_defenderspawn3);
- end
- end
- -----------------------------------------------------
- function OBJ_Farm_Mission()
- -- Call mission
- Objective_Start(OBJ_FARM, true);
- end
- -----------------------------------------------------
- function OBJ_Farm_Lose()
- -- Lose condition OBJ_Farm_Lose
- if (SGroup_Count(sg_scout1) == 0) then
- Game_EndSP(false);
- Rule_RemoveAll()
- end
- end
- -----------------------------------------------------
- function OBJ_Farm_IsDone()
- if (EGroup_IsCapturedByPlayer( farm_point, player1, ANY ) and SGroup_Count(sg_defendertotal) == 0) then
- Objective_Complete(OBJ_FARM, true);
- end
- end
- -----------------------------------------------------
- function TruckLeave()
- if (Prox_AreSquadsNearMarker(sg_sdkfz251, mkr_truckfarm1, ANY, 2) == true) then
- Cmd_EjectOccupants(sg_sdkfz251, nil, true);
- SGroup_SetPlayerOwner(sg_reinforcement, player1)
- SGroup_SetPlayerOwner(sg_reinforcement1, player1)
- Cmd_Move(sg_reinforcement, mkr_reinforcementtruck)
- Cmd_Move(sg_reinforcement1, mkr_reinforcementtruck1)
- end
- Cmd_MoveToAndDespawn(sg_sdkfz251, mkr_playerspawn1, true)
- Rule_RemoveMe();
- end
- -----------------------------------------------------
- function testing()
- FOW_Enable(false)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement