Gun Game script
Module — 2 files
These files compile together (same module folder).
basic_gun_game_device.verse
using { /Fortnite.com/Characters }
using { /Fortnite.com/Devices }
using { /Fortnite.com/Game }
using { /Fortnite.com/Playspaces }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
basic_gun_game_device := class(creative_device):
@editable
IGD_WeaponList:item_granter_device = item_granter_device{}
@editable
EGD_Win:end_game_device = end_game_device{}
var PlayerElims:[player]int = map{}
var ElimsToWin:int = 0
OnBegin<override>()<suspends>:void=
Setup()
Setup()<suspends>:void=
set ElimsToWin = GetWeaponListLength()
GetPlayspace().PlayerAddedEvent().Subscribe(TrackElims)
for (Player : GetPlayspace().GetPlayers()) do TrackElims(Player)
TrackElims(Player:player):void=
IGD_WeaponList.GrantItemIndex(Player, 0)
if (FortCharacter:fort_character = Player.GetFortCharacter[]):
FortCharacter.EliminatedEvent().Subscribe(OnCharacterEliminated)
OnCharacterEliminated(Result:elimination_result):void=
EliminatedCharacter:fort_character = Result.EliminatedCharacter
MaybeEliminatingCharacter:?fort_character = Result.EliminatingCharacter
if:
EliminatingCharacter:fort_character = MaybeEliminatingCharacter?
EliminatedCharacter <> EliminatingCharacter
EliminatingAgent:agent = EliminatingCharacter.GetAgent[]
EliminatingPlayer:player = player[EliminatingAgent]
EliminatingPlayer.IsActive[]
then:
if (PlayerElims[EliminatingPlayer] >= ElimsToWin):
EGD_Win.Activate(EliminatingPlayer)
else:
ChangeWeapon(EliminatingPlayer)
ChangeWeapon(Player:player):void=
CurrentWeaponIndex:int = PlayerElims[Player] or 0
NextWeaponIndex:int = CurrentWeaponIndex + 1
IGD_WeaponList.GrantItemIndex(Player, NextWeaponIndex)
if:
set PlayerElims[Player] = NextWeaponIndex
GetWeaponListLength():int=
if (Player:player = GetPlayspace().GetPlayers()[0]):
IGD_WeaponList.CycleToPreviousItem(Player)
return IGD_WeaponList.GetItemIndex()
return 0
Sign in to download module
Copy-paste each file above is always free.