Worldedit
  Worldedit
Le site sur l'éditeur de warcraft 3 !
 
  FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres    Groupes d'utilisateursGroupes d'utilisateurs   medals.php?sid=27453a7b6a3ab7fc8dd50a0f049fa2e2Médailles   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 
  FAQFAQ World Editor   UploadUploader une map ou une image    UploadAjouter sa map à l'annuaire   UploadConsulter l'annuaire

Library: RunGame

 
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Aide sur les déclencheurs
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 jk2pach
Invité








MessagePosté le: 21/03/10 12:25    Sujet du message: Library: RunGame Citer

Réglages de la partie elle-même. Intervient après la création des systèmes solaires etc...

Nécessite

TextDisplay
TimerUtils
Resource

Secret:

Jass:
library RunGameSystem needs TimerUtils,TextDisplay,Resource

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
               
                set i = i + 1
            endloop
           
            if amount <=1 then
           
                if VotePirate ==1 then
               
                    call DisplayAll("Game","Extended Pirate AI |c00005500enabled|r")
                    //set CreepsEnabled = true
                    //call EnablePirateBase()
                   
                else
               
                    call DisplayAll("Game","Extended Pirate AI |c00AA0000disabled|r")
                   
                endif 
               
            else
           
                if R2I(VotePirate/amount) >= R2I(0.5* amount) then
               
                    call DisplayAll("Game","Extended Pirate AI |c00005500enabled|r")
                    //set CreepsEnabled = true
                    //call EnablePirateBase()
                   
                else
               
                    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
               
                call SetPlayerAllianceStateBJ( Player(0), Player(i), bj_ALLIANCE_UNALLIED )
                call SetPlayerAllianceStateBJ( Player(1), Player(i), bj_ALLIANCE_UNALLIED )
                call SetPlayerAllianceStateBJ( Player(2), Player(i), bj_ALLIANCE_UNALLIED )
                call SetPlayerAllianceStateBJ( Player(3), Player(i), bj_ALLIANCE_UNALLIED )
                call SetPlayerAllianceStateBJ( Player(4), Player(i), bj_ALLIANCE_UNALLIED )
                call SetPlayerAllianceStateBJ( Player(5), Player(i), bj_ALLIANCE_UNALLIED )
                call SetPlayerAllianceStateBJ( Player(6), Player(i), bj_ALLIANCE_UNALLIED )
                call SetPlayerAllianceStateBJ( Player(7), Player(i), bj_ALLIANCE_UNALLIED )
                call SetPlayerAllianceStateBJ( Player(8), Player(i), bj_ALLIANCE_UNALLIED )
                call SetPlayerAllianceStateBJ( Player(9), Player(i), bj_ALLIANCE_UNALLIED )
                call SetPlayerAllianceStateBJ( Player(10), Player(i), bj_ALLIANCE_UNALLIED )
                call SetPlayerAllianceStateBJ( Player(11), Player(i), bj_ALLIANCE_UNALLIED )
                call FogModifierStart(CreateFogModifierRect(Player(i), FOG_OF_WAR_MASKED,bj_mapInitialPlayableArea, true, false))
                call FogModifierStart(CreateFogModifierRect(Player(i), FOG_OF_WAR_FOGGED,bj_mapInitialPlayableArea, true, false))
               
                //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
                   
                    if Player(i) == GetLocalPlayer() then
                   
                        call ClearSelection()
                        call SelectUnit(FirstShip[i],true)
                       
                    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
Revenir en haut
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7143
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Rédacteur de tuto #3 (Quantité : 1) Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 06/04/10 21:54    Sujet du message: Citer

Description ?
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 jk2pach
Invité








MessagePosté le: 06/04/10 22:50    Sujet du message: Citer

Fait.
_________________
Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Aide sur les déclencheurs Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1
La question posée dans ce topic a été résolue !

 
Sauter vers:  
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


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com