Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre courriel d'activation?
Connexion avec identifiant, mot de passe et durée de la session

 
avancée

249938 Messages dans 13845 Fils de discussion- par 6285 Membres - Dernier membre: pokerman

04 Février 2012 à 20:53:56
GTAOnline.frMulti Theft AutoScripting MTA [lua Center]Exemples de codesTutorial 8b: Nuke
Pages: [1]   Bas de page
Imprimer
Auteur Fil de discussion: Tutorial 8b: Nuke  (Lu 2339 fois)
0 Membres et 1 Invité sur ce fil de discussion.
spykerc8
Hors ligne Hors ligne


Administrateur
GTAOnline Legend
*

'The GTAOnline.fr GodFather'

Messages: 3288


WWW



mrspykerc8

« le: 30 Mars 2007 à 19:26:00 »

[yt=425,350]xD4pHYISHRM[/yt]

Lien du script : http://mtasa.com/scripts/script8b.nuke.lua
Vidéo HD : http://www.mtasa.com/videos/scriptvideo8.wmv

Préparation du script : définition des variables, des array...

Code: (lua)
root = getRootElement ()
players = {}

outputChatBox ( "Nulear Bomb by Ransom" )
--nuke_rotX = 0
nuke_loops = 0
nuke_explosionTimer = 0
nuke_cloudRotationAngle = 0
nuke_explosionLimiter = false
nuke_cannonActivated = false
nuke_cancelActivation = false
players = getElementsByType ( "player" )


Donne à tous les joueurs accès à la commande

Code: (lua)
addEventHandler ( "onResourceStart", root, "ResourceStartNuke" )
function ResourceStartNuke ( name, root )
if name ~= getThisResource() then return end
        for k,v in players do
        -- for all players in the "players" array
        bindKey ( v, "g", "down", "placeNukeBeacon" )
        -- bind the key g for triggering the nuke
        end
end

addEventHandler ( "onPlayerJoin", root, "nukePlayerJoin" )
function nukePlayerJoin ()
        bindKey ( source, "g", "down", "placeNukeBeacon" )
        --if a player joins after the resource loaded, bind their g key to trigger the nuke also
end


Quand la touche 'g' est utilisée, le curseur de la sourie s'active.

Code: (lua)
function placeNukeBeacon ( player, key, state )
        if ( nuke_cannonActivated == false ) and ( nuke_cancelActivation == false ) and
        ( ion_cancelActivation == false ) and ( ion_cannonActivated == false ) then
        --These conditions prevent triggering the same weapon twice or triggering the other weapon at the same time.
        --Both weapons cannot be triggered because explosions are stretched to the limit, explosions would be random.
        defineLaunchType = key
        --This is used later on the onPlayerClick function to tell it what weapon to launch
        showCursor ( player, true )
        nuke_cancelActivation = true
        else
        if nuke_cancelActivation == true then
                showCursor ( player, false )
                end
                --Prevents cursor from getting messed up if cursor is show for f or g and the opposite key is hit
    nuke_cancelActivation = false
        --nuke_cancelactivation is true when the cursor is showing. This is necessary along with asking if the actual
        --weapon is active to prevent problems with the cursor and weapon activation between both weapons and themselves
            if nuke_cannonActivated == true then
            outputChatBox ( "Nuke has already been activated", activator )
            else
            outputChatBox ( "Cannot activate ion cannon and nuke at the same time", activator )
            end
            --This statement says that if the nuke is already in use, display a meassage about it being in use on g
                --press else, if the above conditions were not satisifed and the nuke is not active, it meant the
                --ioncannon was active. Therefore, display the other message that both weapons cannot be used at the
                --same time.
        end
end

Quand le joueur utilise les boutons de sa souris

Code: (lua)
addEventHandler ( "onPlayerClick", root, "playerClickNuke" )
function playerClickNuke ( button, state, clickedElement, x, y, z )
        if defineLaunchType == "g" then
        --If the player clicked, we check if the key is equal to f or g. This will dictate which onPlayerClick function
        --commences between the ion cannon and nuke scripts
        nuke_cancelActivation = false
        --Since the weapon is now in use, you have no chance to abort by pressing the key again, therefore this is false
        defineLaunchType = nil
    --This must be reset to nil so it will not fire the nuke next time on click if f was pressed instead of g
        --(which triggers ion)
        nuke_beaconx = x
        nuke_beacony = y
        nuke_beaconz = z
        --Set the nuke beacon (detonation spot) coordinates to the spot the mouse cursor clicked on the game map
        local playerz, playerz, playerz = getElementPosition ( source )
        --I put a z height limit on the nuke, because the visual image of the bomb dropping can be broken if it is set
        --to start an explosion/visually show object deletion in a mid-air point. To prevent this, I have assigned a max
        --nuke height that is a little bit more than the z height of the player who activated it. There is a function to
        --grab the actual z height at an X,Y position that I will implement later. For the above line,
        --getElementPosition outputs 3 varibles, but I only want z so I overwrote 1 varible called playerz as the
        --function went through and assigned the XYZ values to varible x, varible y, and varible z respectively.
        nuke_maxBeamHeight = playerz + 2
                        if nuke_beaconz > nuke_maxBeamHeight then
                      nuke_beaconz = playerz + 3
                      end
                      --resets the nuke beacon z height if it is more than +3 above player z height
                                if ( button == "left" ) and ( state == "down" ) and ( nuke_cannonActivated == false ) then
                                --When the left mouse button is pressed down (not when released), if nuke is not active then
                                nuke_cannonActivated = true
                                --Set this varible to true, which will be used to avoid double launches & double weapon usage
                                showCursor ( source, false )
                                --Weapon beacon was chosen and the launch is initiating to that point. Hide cursor.
                                setTimer ( "nukeExplosion", 2700, 1 )
                                setTimer ( "nukeShot", 500, 1 )
                                --Trigger these two functions that will drop and explode the nuke. Nuke drop triggers in 500ms,
                                --1 time only. The explosion is triggered at 2700ms which is when the nuke should be hitting
                                --the ground on the game map, it is also triggered 1 time.
                                else
                                activator = getPlayerFromNick ( source )
                                showCursor ( source, false )
                                --Makes sure the cursor will not show again for detonation unless the nuke is not active. Activator
                                --is used to display output messages in the other functions that activations/launches arent possible
                                end
        end
end

Bouge les objets selon le points d'arrivée de la détonation et crée l'illusion de l'explosion

Code: (lua)
function nukeShot ()
        nuke1 = createObject ( 16340, nuke_beaconx, nuke_beacony, nuke_beaconz + 200 )
        nuke2 = createObject ( 3865, nuke_beaconx + 0.072265, nuke_beacony + 0.013731, nuke_beaconz + 196.153122 )
        nuke3 = createObject ( 1243, nuke_beaconx + 0.060547, nuke_beacony - 0.017578, nuke_beaconz + 189.075554 )
        --The 3 objects that make the nucelar bomb are called nuke1, nuke2, and nuke3. Math is done to piece the
        --bomb together correctly at any given XYZ detonation coordinates.
        setObjectRotation ( nuke1, math.deg(0.245437), math.deg(0), math.deg(3.150001) )
        setObjectRotation ( nuke2, math.deg(1.938950), math.deg(0), math.deg(-1.575) )
        setObjectRotation ( nuke3, math.deg(-1.767145), math.deg(0), math.deg(0) )
        --The objects must also be rotated after they are placed in the correct XYZ positions to get the bomb shape
        --I created in the map editor at any given XYZ beacon/detonation point.
        shotpath = nuke_beaconz - 200
        moveObject ( nuke1, 5000, nuke_beaconx, nuke_beacony, shotpath, 259.9 ) --, 259
        moveObject ( nuke2, 5000, nuke_beaconx + 0.072265, nuke_beacony + 0.013731, shotpath - 3.846878, 259.9 )
        moveObject ( nuke3, 5000, nuke_beaconx + 0.060547, nuke_beacony - 0.017578, shotpath - 10.924446, 259.9 )
        --To make all 3 pieces of the bomb stay together in the exact same shape, they must descend directly down.
        --nuke2 and nuke3 drop paths are altered slightly to be directly below their created positions in the air.
end

Créer l'illusion d'une explosion nucléaire

Code: (lua)
function nukeExplosion ()
        if nuke_explosionTimer == 0 then
        --We set this value when the script started. I do so I can keep looping through this function without
        --resetting it.
        setTimer ( "nukeExplosion", 170, 35 )
        --Trigger this function to initiate 35 times in 170ms intervals.
        nuke_explosionTimer = 1
        --Set the explosion timer flag to 1 so it is not done again with the looping (could have been true/false)
        else
        nuke_loops = nuke_loops + 1
        --tells us how many times this function as been run through, which will be 35 in total.
        r = randInt(1.5, 4.5)
        --r will serve as our explosion radius. It can be a random value between 1.5 and 4.5 from the center of
        --the circle. The math for this is below.
        angleup = randInt(0, 35999)/100
        --Choose a random angle. A value between 0 and 35999 is divided by 100 because we want
        --to have 2 random decimal places for as well, rather than just a whole integer.
        Explosionxcoord = r*math.cos(angleup) + nuke_beaconx
        Explosionycoord = r*math.sin(angleup) + nuke_beacony
        --The x and y coordinates of the explosion will occur at a max radius of 4.5 away from the nuke beacon,
        --in a circular shape. This is a fundamental, simple circle geometry formula.
                if nuke_loops == 1 then
                nuke_nukeCloud = nuke_beaconz
                createExplosion ( Explosionxcoord, Explosionycoord, nuke_nukeCloud, 7 )
                elseif nuke_loops == 2 then
                nuke_nukeCloud = nuke_beaconz + 4
                createExplosion ( Explosionxcoord, Explosionycoord, nuke_nukeCloud, 7 )
                --Up until 20 loops, a pillar of explosions is created with the above. 7 is the explosion type,
                --which is tied with a couple others as the largest. 7 is a aircraft explosion.
                elseif nuke_loops > 20 then
                nuke_cloudRotationAngle = nuke_cloudRotationAngle + 22.5
                        if nuke_explosionLimiter == false then
                        nuke_cloudRadius = 7
                        Explosionxcoord = nuke_cloudRadius*math.cos(nuke_cloudRotationAngle) + nuke_beaconx
                        Explosionycoord = nuke_cloudRadius*math.sin(nuke_cloudRotationAngle) + nuke_beacony
                        createExplosion ( Explosionxcoord, Explosionycoord, nuke_nukeCloud, 7 )
                        nuke_explosionLimiter = true
                        elseif nuke_explosionLimiter == true then
                        nuke_explosionLimiter = false
                        end
                nuke_cloudRadius2 = 16
                Explosionxcoord2 = nuke_cloudRadius2*math.cos(nuke_cloudRotationAngle) + nuke_beaconx
                Explosionycoord2 = nuke_cloudRadius2*math.sin(nuke_cloudRotationAngle) + nuke_beacony
                createExplosion ( Explosionxcoord2, Explosionycoord2, nuke_nukeCloud, 7 )
                else
            nuke_nukeCloud = nuke_nukeCloud + 4
            createExplosion ( Explosionxcoord, Explosionycoord, nuke_nukeCloud, 7 )
            end
                --Since explosions are pushed to the limit, I have to make sure I can use the maximum amount without
                --having explosions not appear. This required me to have the above explosions run every other time
                --to create a mushroom cloud inner part (a circular area defined above), while at the same time creating
                --an outter circle that also gave the look of a "full" mushroom cloud that won't have obvious visual holes.
                        if nuke_loops == 1 then
                        --On the first loop, the bright flare (as I call it, actually a corona marker), is created and
                        --increases in size.
                  nukeExplosionFlare = createMarker ( nuke_beaconx, nuke_beacony, nuke_beaconz, "corona", 0, 255, 255,
                        255, 255 )
                        --The flare has an inital size of 0, and the R, G, B colors are 255, making it white.
                        nuke_flareSize = 0
                        setTimer ( "nukeFlareGrow", 1, 200 )
                        --On the first loop, set the nuke_flareSize varible to 0, which will dictate the flare (corona) size
                        --in the nukeFlareGrow function below as it is looped. The timer initiates the function 200 times,
                        --every 1ms (so it takes 1/5 of a second to loop 200 times, thus making the bright flare).
                        elseif nuke_loops == 35 then
                        nuke_explosionTimer = 0
                        setTimer ( "nukeFlareFade", 1, 200 )
                        nuke_loops = 0
                        end
                                --When this function has looped 35 times, the nuke has finished exploding and the flare must begin
                                --fading to look like it disappears naturally. Nuke loops is reset for the next nuke launch.
        end
end

function nukeFlareGrow ()
            setMarkerSize ( nukeExplosionFlare, nuke_flareSize )
        nuke_flareSize = nuke_flareSize + 1
                if nuke_flareSize == 200 then
                destroyElement ( nuke1 )
                        destroyElement ( nuke2 )
                        destroyElement ( nuke3 )
                end
                --The flare becomes +1 larger on each loop, and the nuke is destroyed when the flare reaches maximum
                --size. It is triggered here as this is the point where it is safest to assume the objects are out
                        --of site.
end

function nukeFlareFade ()
        nuke_flareSize = nuke_flareSize - 1
        setMarkerSize ( nukeExplosionFlare, nuke_flareSize )
        if nuke_flareSize == 0 then
        destroyElement ( nukeExplosionFlare )
        nuke_cannonActivated = false
        end
        --Each time the function loops, the flare gets -1 smaller. When it has a size of 0 and becomes invisible,
        --it needs to be deleted for the next nuke launch. No elements should stay created as they will pile up and
        --eventually crash you or the server. Finally, nuke_cannonActivated is false, meaning the nuke is inactive
        --and another weapon use can be performed.
end

CODE COMPLET :

Code: (lua)
--==============================================================================================================
--Start defining varibles, including a players array
--==============================================================================================================
root = getRootElement ()
players = {}

outputChatBox ( "Nulear Bomb by Ransom" )
--nuke_rotX = 0
nuke_loops = 0
nuke_explosionTimer = 0
nuke_cloudRotationAngle = 0     
nuke_explosionLimiter = false
nuke_cannonActivated = false
nuke_cancelActivation = false
players = getElementsByType ( "player" )

--==============================================================================================================
--Give all players on the server access to the weapons
--==============================================================================================================
addEventHandler ( "onResourceStart", root, "ResourceStartNuke" )
function ResourceStartNuke ( name, root )
if name ~= getThisResource() then return end
for k,v in players do
-- for all players in the "players" array
    bindKey ( v, "g", "down", "placeNukeBeacon" )
    -- bind the key g for triggering the nuke
end
end

addEventHandler ( "onPlayerJoin", root, "nukePlayerJoin" )
function nukePlayerJoin ()
bindKey ( source, "g", "down", "placeNukeBeacon" )
--if a player joins after the resource loaded, bind their g key to trigger the nuke also
end

--====================================================================================================================
--When the nuke key (g) is pressed, show the mouse cursor that will allow the triggering of the onPlayerClick function
--====================================================================================================================
function placeNukeBeacon ( player, key, state )                                                                       
if ( nuke_cannonActivated == false ) and ( nuke_cancelActivation == false ) and ( ion_cancelActivation == false ) and ( ion_cannonActivated == false ) then
    --These conditions prevent triggering the same weapon twice or triggering the other weapon at the same time.
--Both weapons cannot be triggered because explosions are stretched to the limit, explosions would be random.
defineLaunchType = key
--This is used later on the onPlayerClick function to tell it what weapon to launch
showCursor ( player, true )
nuke_cancelActivation = true
  else
    if nuke_cancelActivation == true then
showCursor ( player, false )
end
--Prevents cursor from getting messed up if cursor is show for f or g and the opposite key is hit
    nuke_cancelActivation = false
--nuke_cancelactivation is true when the cursor is showing. This is necessary along with asking if the actual
--weapon is active to prevent problems with the cursor and weapon activation between both weapons and themselves.   
    if nuke_cannonActivated == true then
    outputChatBox ( "Nuke has already been activated", activator )
    else
    outputChatBox ( "Cannot activate ion cannon and nuke at the same time", activator )
    end
    --This statement says that if the nuke is already in use, display a meassage about it being in use on g press.
    --else, if the above conditions were not satisifed and the nuke is not active, it meant the ioncannon was
    --active. Therefore, display the other message that both weapons cannot be used at the same time.
end
end

--====================================================================================================================
--When the player clicks the mouse cursor, decide if the nuke is supposed to be launched and if so, set up the launch
--====================================================================================================================
addEventHandler ( "onPlayerClick", root, "playerClickNuke" )
function playerClickNuke ( button, state, clickedElement, x, y, z )
if defineLaunchType == "g" then
--If the player clicked, we check if the key is equal to f or g. This will dictate which onPlayerClick function
--commences between the ion cannon and nuke scripts
nuke_cancelActivation = false
--Since the weapon is now in use, you have no chance to abort by pressing the key again, therefore this is false
defineLaunchType = nil
    --This must be reset to nil so it will not fire the nuke next time on click if f was pressed instead of g (which triggers ion)
nuke_beaconx = x
nuke_beacony = y
nuke_beaconz = z
--Set the nuke beacon (detonation spot) coordinates to the spot the mouse cursor clicked on the game map
local playerz, playerz, playerz = getElementPosition ( source )
--I put a z height limit on the nuke, because the visual image of the bomb dropping can be broken if it is set
--to start an explosion/visually show object deletion in a mid-air point. To prevent this, I have assigned a max
--nuke height that is a little bit more than the z height of the player who activated it. There is a function to
--grab the actual z height at an X,Y position that I will implement later. For the above line, getElementPosition
--outputs 3 varibles, but I only want z so I overwrote 1 varible called playerz as the function went through and
--assigned the XYZ values to varible x, varible y, and varible z respectively.
nuke_maxBeamHeight = playerz + 2
if nuke_beaconz > nuke_maxBeamHeight then
  nuke_beaconz = playerz + 3
  end
  --resets the nuke beacon z height if it is more than +3 above player z height
if ( button == "left" ) and ( state == "down" ) and ( nuke_cannonActivated == false ) then
--When the left mouse button is pressed down (not when released), if nuke is not active then
nuke_cannonActivated = true
--Set this varible to true, which will be used to avoid double launches & double weapon usage
showCursor ( source, false )
--Weapon beacon was chosen and the launch is initiating to that point. Hide cursor.
setTimer ( "nukeExplosion", 2700, 1 )
setTimer ( "nukeShot", 500, 1 )
--Trigger these two functions that will drop and explode the nuke. Nuke drop triggers in 500ms,
--1 time only. The explosion is triggered at 2700ms which is when the nuke should be hitting
--the ground on the game map, it is also triggered 1 time.
else
activator = getPlayerFromNick ( source )
showCursor ( source, false )
--Makes sure the cursor will not show again for detonation unless the nuke is not active. Activator
--is used to display output messages in the other functions that activations/launches arent possible.
end
end
end

--=============================================================================================================================
--Move 3 objects according to the beacon/detonation point to give the appearance of a falling nuclear bomb to the desired point
--=============================================================================================================================
function nukeShot ()
nuke1 = createObject ( 16340, nuke_beaconx, nuke_beacony, nuke_beaconz + 200 )
nuke2 = createObject ( 3865, nuke_beaconx + 0.072265, nuke_beacony + 0.013731, nuke_beaconz + 196.153122 )
nuke3 = createObject ( 1243, nuke_beaconx + 0.060547, nuke_beacony - 0.017578, nuke_beaconz + 189.075554 )
--The 3 objects that make the nucelar bomb are called nuke1, nuke2, and nuke3. Math is done to piece the
--bomb together correctly at any given XYZ detonation coordinates.
setObjectRotation ( nuke1, math.deg(0.245437), math.deg(0), math.deg(3.150001) )
setObjectRotation ( nuke2, math.deg(1.938950), math.deg(0), math.deg(-1.575) )
setObjectRotation ( nuke3, math.deg(-1.767145), math.deg(0), math.deg(0) )
--The objects must also be rotated after they are placed in the correct XYZ positions to get the bomb shape
--I created in the map editor at any given XYZ beacon/detonation point.
shotpath = nuke_beaconz - 200
moveObject ( nuke1, 5000, nuke_beaconx, nuke_beacony, shotpath, 259.9 ) --, 259
moveObject ( nuke2, 5000, nuke_beaconx + 0.072265, nuke_beacony + 0.013731, shotpath - 3.846878, 259.9 )
moveObject ( nuke3, 5000, nuke_beaconx + 0.060547, nuke_beacony - 0.017578, shotpath - 10.924446, 259.9 )
--To make all 3 pieces of the bomb stay together in the exact same shape, they must descend directly down.
--nuke2 and nuke3 drop paths are altered slightly to be directly below their created positions in the air.
end
 
--==============================================================================================================
--Create the imitation of a nuclear explosion
--==============================================================================================================       
function nukeExplosion ()
if nuke_explosionTimer == 0 then
--We set this value when the script started. I do so I can keep looping through this function without
--resetting it.
setTimer ( "nukeExplosion", 170, 35 )
--Trigger this function to initiate 35 times in 170ms intervals.
nuke_explosionTimer = 1
--Set the explosion timer flag to 1 so it is not done again with the looping (could have been true/false)
else
nuke_loops = nuke_loops + 1
--tells us how many times this function as been run through, which will be 35 in total.
r = randInt(1.5, 4.5)
--r will serve as our explosion radius. It can be a random value between 1.5 and 4.5 from the center of
--the circle. The math for this is below.
angleup = randInt(0, 35999)/100
--Choose a random angle. A value between 0 and 35999 is divided by 100 because we want
--to have 2 random decimal places for as well, rather than just a whole integer.
Explosionxcoord = r*math.cos(angleup) + nuke_beaconx
Explosionycoord = r*math.sin(angleup) + nuke_beacony
--The x and y coordinates of the explosion will occur at a max radius of 4.5 away from the nuke beacon,
--in a circular shape. This is a fundamental, simple circle geometry formula.
if nuke_loops == 1 then
nuke_nukeCloud = nuke_beaconz
createExplosion ( Explosionxcoord, Explosionycoord, nuke_nukeCloud, 7 )
elseif nuke_loops == 2 then
nuke_nukeCloud = nuke_beaconz + 4
createExplosion ( Explosionxcoord, Explosionycoord, nuke_nukeCloud, 7 )
--Up until 20 loops, a pillar of explosions is created with the above. 7 is the explosion type,
--which is tied with a couple others as the largest. 7 is a aircraft explosion.
elseif nuke_loops > 20 then
nuke_cloudRotationAngle = nuke_cloudRotationAngle + 22.5   
if nuke_explosionLimiter == false then
nuke_cloudRadius = 7
Explosionxcoord = nuke_cloudRadius*math.cos(nuke_cloudRotationAngle) + nuke_beaconx --recalculate
Explosionycoord = nuke_cloudRadius*math.sin(nuke_cloudRotationAngle) + nuke_beacony --recalculate
createExplosion ( Explosionxcoord, Explosionycoord, nuke_nukeCloud, 7 )
nuke_explosionLimiter = true
elseif nuke_explosionLimiter == true then
nuke_explosionLimiter = false
end
nuke_cloudRadius2 = 16 
Explosionxcoord2 = nuke_cloudRadius2*math.cos(nuke_cloudRotationAngle) + nuke_beaconx
Explosionycoord2 = nuke_cloudRadius2*math.sin(nuke_cloudRotationAngle) + nuke_beacony
createExplosion ( Explosionxcoord2, Explosionycoord2, nuke_nukeCloud, 7 )
else
    nuke_nukeCloud = nuke_nukeCloud + 4
    createExplosion ( Explosionxcoord, Explosionycoord, nuke_nukeCloud, 7 )
    end
    --Since explosions are pushed to the limit, I have to make sure I can use the maximum amount without
--having explosions not appear. This required me to have the above explosions run every other time
--to create a mushroom cloud inner part (a circular area defined above), while at the same time creating
--an outter circle that also gave the look of a "full" mushroom cloud that won't have obvious visual holes.
if nuke_loops == 1 then
--On the first loop, the bright flare (as I call it, actually a corona marker), is created and increases in size. 
    nukeExplosionFlare = createMarker ( nuke_beaconx, nuke_beacony, nuke_beaconz, "corona", 0, 255, 255, 255, 255 )
--The flare has an inital size of 0, and the R, G, B colors are 255, making it white.
nuke_flareSize = 0
setTimer ( "nukeFlareGrow", 1, 200 )
--On the first loop, set the nuke_flareSize varible to 0, which will dictate the flare (corona) size
--in the nukeFlareGrow function below as it is looped. The timer initiates the function 200 times,
--every 1ms (so it takes 1/5 of a second to loop 200 times, thus making the bright flare).
elseif nuke_loops == 35 then
nuke_explosionTimer = 0
setTimer ( "nukeFlareFade", 1, 200 )
nuke_loops = 0
end
--When this function has looped 35 times, the nuke has finished exploding and the flare must begin
--fading to look like it disappears naturally. Nuke loops is reset for the next nuke launch.
end
end

function nukeFlareGrow ()
    setMarkerSize ( nukeExplosionFlare, nuke_flareSize )
        nuke_flareSize = nuke_flareSize + 1
        if nuke_flareSize == 200 then
        destroyElement ( nuke1 )
destroyElement ( nuke2 )
destroyElement ( nuke3 )
        end
        --The flare becomes +1 larger on each loop, and the nuke is destroyed when the flare reaches maximum
        --size. It is triggered here as this is the point where it is safest to assume the objects are out of site.
end

function nukeFlareFade ()
nuke_flareSize = nuke_flareSize - 1
setMarkerSize ( nukeExplosionFlare, nuke_flareSize )
if nuke_flareSize == 0 then
destroyElement ( nukeExplosionFlare )
nuke_cannonActivated = false
end
--Each time the function loops, the flare gets -1 smaller. When it has a size of 0 and becomes invisible, it needs
--to be deleted for the next nuke launch. No elements should stay created as they will pile up and eventually
--crash you or the server. Finally, nuke_cannonActivated is false, meaning the nuke is inactive and another weapon
--use can be performed.
end
« Dernière édition: 30 Mars 2007 à 19:28:52 par spykerc8 » Journalisée



~ Leader honoraire de la FsK Team ~ -
~ Membre honoraire de la PCP Team ~

Co-fondateur de GTAO - Retraité de la communauté

"Nous ne sommes rien, soyons tout !"




FuriousKing
Best-Driver
Hors ligne Hors ligne


Admin V.I.P
GTAOnline Big Member
*

The King Of Furious

Messages: 530


WWW
« Répondre #1 le: 31 Mars 2007 à 14:07:04 »

Mouai un truc qui sert a rien dans un GTA lol .
Si on a acheter GTA c'est pour son ambiance pas du star-wars lol .
Journalisée

[DoK]Diablo
Hors ligne Hors ligne


Petit nouveau
*

Messages: 34


WWW



« Répondre #2 le: 17 Mai 2007 à 16:10:15 »

C'est pas du star wars  Très souriant , c'est les super armes de C&C Générals,c'est sympatoche ce qu'il arrive a faire MTA, mais bon,faudrais qu'il en fasse profité les joueurs !!!
Mais d'un autre côté voir 50 0000 bombes éclaté c'est pas se qui pourait étre le mieu en mutli...
Journalisée

Pages: [1]   Haut de page
Imprimer
Aller à:  

Theme créé par padexx et modifié par GTAOnline.fr
Page générée en 3.753 secondes avec 23 requêtes.
Forum GTAOnline.fr 2.0 | Design par : Lalu et GtaManiac
Merci a toute la communaute pour son support !
Copyright © 2004-2012 - GTAOnline.fr | GTAPro.com