globals
unit array FirstShip [12] //Le dummy qui va servir à chaque joueur pour régler sa race, son premier vaisseau etc
private constant integer DUMMYPICK = 'ZABC' //Id du dummy en question
private constant integer CARGOSLOT = 'R00K' //
endglobals
private function Advert takes nothing returns nothing
call DisplayAll("Game","If you dont know how to play, enter -help")
endfunction
//Fonction qui constate le nombre de vote en faveur de l'activation ou non des modes de jeu.
//Les votes ont lieu dans une autre library.
private function EndVote takes nothing returns nothing
local integer i = 0
local integer amount = 0
loop
exitwhen i > MAXPLAYER
if GetPlayerSlotState(Player(i)) == PLAYER_SLOT_STATE_PLAYING then
set amount = amount + 1
endif
call DisplayAll("Game","Extended Pirate AI |c00AA0000disabled|r")
endif
endif
endfunction
//Après la création des systèmes, voici le lancement de la partie
private function StartMap takes nothing returns nothing
local integer i = 0
local real x = 0.
local real y = 0.
local real angle = 0.
//Enable the playerleave trigger to prevent bugs during loading
call EnableTrigger(TrigPlayerLeave)
//Options générales
call SetFloatGameState(GAME_STATE_TIME_OF_DAY,12.00)
call SetTimeOfDayScale(0.)
call SuspendTimeOfDay(true)
//Aucun endroit ne doit être visible dès lors que l'on n'est plus à cet endroit
call FogModifierStart(CreateFogModifierRect(Player(PLAYER_NEUTRAL_AGGRESSIVE), FOG_OF_WAR_VISIBLE, bj_mapInitialPlayableArea, true, false))
call FogEnable(true)
call FogMaskEnable(true)
//Pas de musique.
call SetMusicVolume(0)
//On vire l'écran noir du système de création et on redonne le contrôle
call CinematicModeBJ(false, GetPlayersAll() ) //Started in System Creator
call CinematicFadeBJ(bj_CINEFADETYPE_FADEIN,0.,"ReplaceableTextures\\CameraMasks\\White_mask.blp",0,0,0,0)
//Blabla
call DisplayAll("Game","Please vote for Pirate AI mode.")
call DisplayAll("Game","Pirate AI Mode will be validated in 30 seconds.")
//Attribution des alliances initiales
loop
exitwhen i > MAXPLAYER
//Réglages initiaux des technologies, ressources etc...par joueur
if GetPlayerSlotState(Player(i)) == PLAYER_SLOT_STATE_PLAYING then
call SetPlayerAbilityAvailable(Player(i),'A046',false)//biologic weapon spellbook
call SetPlayerAbilityAvailable(Player(i),'A01N',false)//hyp spellbook
call SetPlayerAbilityAvailable(Player(i),'A02D',false)//shrapnel spellbook
call SetPlayerAbilityAvailable(Player(i),'A02V',false)//Steal spellbook
call SetPlayerAbilityAvailable(Player(i),'A02X',false)//Selfdestruction spellbooks
call SetPlayerAbilityAvailable(Player(i),'A02Y',false)//Selfdestruction spellbooks
call SetPlayerTechResearched(Player(i),CARGOSLOT,1)//Grants the first level of cargo slots
call SetResource(Player(i),500,50)//Resources
call SetPlayerTechMaxAllowed(Player(i),'h00O',1)//1 freeport max
call SetPlayerTechMaxAllowed(Player(i),'h01I',1)//Max nexus center: 1
call SetPlayerTechMaxAllowed(Player(i),'h006',0)//Max AA turret: 0
call SetPlayerTechMaxAllowed(Player(i),'h004',0)//Max dock mk I: 0
call SetPlayerTechMaxAllowed(Player(i),'h007',0)//Max ion canon: 0
call SetPlayerTechMaxAllowed(Player(i),'h00F',0)//Max warehouse: 0
call SetPlayerTechMaxAllowed(Player(i),'h003',0)//Base
call SetPlayerTechMaxAllowed(Player(i),'h01A',0)//Energy center
call SetPlayerTechMaxAllowed(Player(i),'h014',0)//Structure center
call SetPlayerTechMaxAllowed(Player(i),'h019',0)//Weapon center
call SetPlayerTechMaxAllowed(Player(i),'h01B',0)//production center
call SetPlayerTechMaxAllowed(Player(i),'h002',0)//Shipyard Mark I
call SetPlayerTechMaxAllowed(Player(i),'h011',0)//Shipyard Mark II
call SetPlayerTechMaxAllowed(Player(i),'h012',0)//Shipyard Mark II
call SetPlayerTechMaxAllowed(Player(i),'h001',0)//Station
call SetPlayerTechMaxAllowed(Player(i),'h005',0)//Torp Launcher
call SetPlayerTechMaxAllowed(Player(i),'h00Z',0)//Training Center
call SetPlayerTechMaxAllowed(Player(i),'h010',0)//Turret Base
//Le quadrant de départ d'un joueur
set x = QuadrantX[i]
set y = QuadrantY[i]
//Création du dummy qui permet à chaque joueur de régler ses options de race etc...
set angle = GetRandomReal(0.,360.)
set FirstShip[i]= CreateUnit(Player(i),DUMMYPICK,x+500.*Cos(angle),y+500.*Sin(angle),0.)
//Adds the first vote: creeps AI
call UnitAddAbility(FirstShip[i],CREEPSTRUE)
call UnitAddAbility(FirstShip[i],CREEPSFALSE)
//Select the unit
endif
//Ce dummy sert, en fonction des codes chargés (système d'expérience) à donner des bonus d'aura
set RankDummy[i]=CreateUnit(Player(i),RANKDUMMYID,0.,0.,0.)
endif
set i = i + 1
endloop
endfunction
private struct str
integer i
endstruct
private function Wait takes nothing returns nothing
local timer t = GetExpiredTimer()
local str dat = GetTimerData(t)
if dat.i < 152 then
if dat.i ==1 then
call StartMap()//Une seconde après création des systèmes, on lance la partie elle même
elseif dat.i==30 then
call EndVote()//30 secondes après, on check les résultats des votes sur les modes de jeu
elseif dat.i==41 or dat.i == 71 or dat.i==111 or dat.i==151 then
call Advert()//Le reste: on fait de la pub sur le système d'aide
endif
set dat.i = dat.i + 1
else
call ReleaseTimer(t)
call dat.destroy()
endif
endfunction
//Fonction appelée après la création des systèmes
function RunGame takes nothing returns boolean
local timer t = NewTimer()
local str dat = str.create()
set dat.i = 0//Un timer juste parce que je spamme sur le menu d'aide
call SetTimerData(t, dat)
call TimerStart (t, 1., true, function Wait )
return false
endfunction
endlibrary
_________________
Dernière édition par jk2pach le 06/04/10 22:49; édité 1 fois
Page 1 sur 1 La question posée dans ce topic a été résolue !
Vous ne pouvez pas poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum