Page 2 of 6 FirstFirst 1234 ... LastLast
Results 11 to 20 of 59

Thread: Grenads

  1. #11

    Default

    OK well you didn't say that. Plus, you've just changed it all back. It won't work your way. Now you've just randomly added one line of mine calling a nonexistent function and you're declaring constants (level.spot) every time, spaced out by 1 second for some reason?

    I was able to pick up as many as I wanted with my script so I don't know what you changed...

    I'm also going to ask again... Paste your script in a code tag...

    Code:
    main:
    
    	// put these in main
    	level.spot[1] = ( -194 987 48 )			// always start at [1]
    	level.spot[2] = ( -94 987 48 )
    	level.spot[3] = ( 0 987 48 )
    	level.spot[4] = ( 100 987 48 )
    	level.spot[5] = ( 150 987 48 )
    	level.spot[6] = ( 200 987 48 )
    	level.spot[7] = ( 250 987 48 )
    	level.spot[8] = ( 300 987 48 )
    	level.spot[9] = ( 350 987 48 )
    	level.spot[10] = ( 400 987 48 )
    	level.spot[11] = ( 450 987 48 )
    	level.spot[12] = ( 500 987 48 )
    	level.spot[13] = ( 600 987 48 )
    	level.spot[14] = ( 650 987 48 )
    	level.spot[15] = ( 700 987 48 )
    	level.spot[16] = ( 313 1084 48 ) 		// add or remove more if you want
    
    	// change these if you want
    	level.grenades[max_spawns] = 4			// max concurrent spawns
    	level.grenades[spawn_duration] = 30		// how long they stay in seconds
    	level.grenades[respawn_delay] = 60		// how long till they come back in seconds
    	level.grenades[axis_model] = "models/weapons/steilhandgranate.tik"
    	level.grenades[allies_model] = "models/weapons/m2frag_grenade.tik"
    
    	thread spawn_grenades		
    end
    
    spawn_grenades:
    	for (local.i = 1; local.i <= level.grenades[max_spawns]; local.i++)
    		thread dm1ammo local.i
    end
    
    dm1ammo local.num:
    
    	if (local.num > level.spot.size)
    	{
    		println "*********** removing grenade spawn - not enough spots!"
    		end
    	}
    
    	while (1)
    	{
    		local.random = randomint (level.spot.size) + 1
    
    		if (level.spot_used[local.random])
    		{
    			waitframe 							// spot already taken - try again
    		}
    		else
    		{			
    			break 								// free spot found - spawn the grenade
    		}
    	}
    
    	level.spot_used[local.random] = 1		
    	
    	spawn script_model "targetname" ("steilhandgranate" + local.num)
    
    	local.grenade = $("steilhandgranate" + local.num)
    	local.grenade model level.grenades[axis_model]
    	local.grenade.origin = level.spot[local.random]
    	local.grenade light 0.00 1.50 0.00 50
    	local.grenade notsolid
    
    	spawn trigger_use "targetname" ("ammotrigger"  + local.num)
    
    	local.trigger = $("ammotrigger" + local.num)
    	local.trigger.origin = local.grenade.origin
    	local.trigger setsize ( -20 -20 0 ) ( 20 20 80 )
    	local.trigger.grenade = local.grenade
    	local.trigger.id = local.num
    	local.trigger.spot_index = local.random
    	local.trigger setthread gotammo
    
    	// wait for the spawn duration
    	for (local.i = 0; local.i <= level.grenades[spawn_duration]; local.i++)
    	{
    		wait 1	
    
    		if (!local.grenade) end 	// grenade picked up by player, stop here
    	}
    
    	// player didn't pick it up, remove and respawn
    	local.grenade delete
    	local.trigger delete
    
    	level.spot_used[local.random] = 0
    
    	// do you want them to respawn instantly somewhere else if you haven't picked them up?
    	wait 1
    	// if you want them to respawn here after a delay remove above wait and add below:
    	//wait level.grenades[respawn_delay] 
    
    	thread dm1ammo local.num
    end
    
    gotammo:
            
    	local.trigger = self
    	
    	local.num = local.trigger.id 
    	local.spot_index = local.trigger.spot_index
    	local.grenade = local.trigger.grenade
    
    	local.grenade delete
    	local.trigger delete
          
    	local.player = parm.other
    	local.team = local.player.dmteam
    
    	if ( local.team == "allies" )
    	{
    		local.player give level.grenades[allies_model]
    	}
    	else
    	{
    		local.player give level.grenades[axis_model]		
    	}
    
    	local.player ammo grenade 1
    	local.player stufftext "say You picked a grenade!"
    
    	level.spot_used[local.spot_index] = 0
    
    	wait level.grenades[respawn_delay]
    
    	thread dm1ammo local.num
    end
    Last edited by 1337Smithy; July 13th, 2018 at 05:30 AM.

  2. #12

  3. #13

    Default

    Interesting thread, thanks, easymeat. Seems as if that code would need modifying for what he wants though.

    He can look at it if he wants to restrict pickups after the max amount maybe.
    Last edited by 1337Smithy; July 13th, 2018 at 10:27 AM.

  4. #14

    Default

    the mod running very will in my mod serverside thankx.

    main:

    level.spot[1] = ( 549 -893 17 )
    level.spot[2] = ( -232 -1008 17 )
    level.spot[3] = ( 616 480 49 )
    level.spot[4] = ( 311 1111 49 )
    level.spot[5] = ( -596 335 -15 )

    //*********************************************************************//

    level.grenades[max_spawns] = 5 // max concurrent spawns \\
    level.grenades[spawn_duration] = 30 // how long they stay in seconds \\
    level.grenades[respawn_delay] = 60 // how long till they come back in seconds \\
    level.grenades[axis_model] = "models/weapons/steilhandgranate.tik"
    level.grenades[allies_model] = "models/weapons/m2frag_grenade.tik"

    thread spawn_grenades
    end

    spawn_grenades:
    for (local.i = 1; local.i <= level.grenades[max_spawns]; local.i++)
    thread dm1ammo local.i
    end

    dm1ammo local.num:

    if (local.num > level.spot.size)
    {
    println "*********** removing grenade spawn - not enough spots!"
    end
    }

    while (1)
    {
    local.random = randomint (level.spot.size) + 1

    if (level.spot_used[local.random])
    {
    waitframe // spot already taken - try again \\
    }
    else
    {
    break // free spot found - spawn the grenade \\
    }
    }

    level.spot_used[local.random] = 1

    spawn script_model "targetname" ("steilhandgranate" + local.num)

    local.grenade = $("steilhandgranate" + local.num)
    local.grenade model level.grenades[axis_model]
    local.grenade.origin = level.spot[local.random]
    local.grenade light 0.00 1.50 0.00 50
    local.grenade solid

    spawn trigger_use "targetname" ("ammotrigger" + local.num)

    local.trigger = $("ammotrigger" + local.num)
    local.trigger.origin = local.grenade.origin
    local.trigger setsize ( -20 -20 0 ) ( 20 20 80 )
    local.trigger.grenade = local.grenade
    local.trigger.id = local.num
    local.trigger.spot_index = local.random
    local.trigger setthread gotammo

    //*********************************************************************//

    // wait for the spawn duration //

    for (local.i = 0; local.i <= level.grenades[spawn_duration]; local.i++)
    {
    wait 1

    if (!local.grenade) end // grenade picked up by player, stop here
    }

    // player didn't pick it up, remove and respawn //
    local.grenade delete
    local.trigger delete

    level.spot_used[local.random] = 0

    // do you want them to respawn instantly somewhere else if you haven't picked them up? \\
    wait 1
    // if you want them to respawn here after a delay remove above wait and add below: \\
    //wait level.grenades[respawn_delay]

    thread dm1ammo local.num
    end

    //*********************************************************************//

    gotammo:

    local.trigger = self

    local.num = local.trigger.id
    local.spot_index = local.trigger.spot_index
    local.grenade = local.trigger.grenade

    local.grenade delete
    local.trigger delete

    local.player = parm.other
    local.team = local.player.dmteam

    if ( local.team == "allies" )
    {
    local.player give level.grenades[allies_model]
    }
    else
    {
    local.player give level.grenades[axis_model]
    }

    local.player ammo grenade 1
    local.player stufftext "say You picked a grenade!"

    level.spot_used[local.spot_index] = 0

    wait level.grenades[respawn_delay]

    thread dm1ammo local.num
    end
    Last edited by Old Fox; March 25th, 2019 at 10:39 PM.

  5. #15
    Administrator James's Avatar
    Join Date
    May 2010
    Location
    on the intraweb
    Posts
    3,180

    Default

    In case you didn't know I created custom highlighting for moh syntax that you can use.

    You can use the code brackets below, just remove all spaces. It also uses other language highlighting. You can see more info about the tags here: https://www.x-null.net/forums/threads/2384-xcode-tags

    [xcode = moh]

    [/ xcode]

  6. #16

    Default

    Yeah, sorry, James, I kept meaning to look up the tag for that. It is much more readable so I'll do it from now on.

    Old Fox, RE the first question, try:


    local.player iprint "You picked up a grenade"



    The second is pretty impossible from my perspective, as you have to keep track of the number of grenades a player has. So you track:

    • their starting amount
    • grenade usage inside mike_torso.st
    • picking up grenades by other means (e.g. dead players etc.)
    • etc...
    Last edited by 1337Smithy; July 15th, 2018 at 01:59 PM.

  7. #17

    Default

    Quote Originally Posted by James View Post
    In case you didn't know I created custom highlighting for moh syntax that you can use.

    You can use the code brackets below, just remove all spaces. It also uses other language highlighting. You can see more info about the tags here: https://www.x-null.net/forums/threads/2384-xcode-tags

    [xcode = moh]

    [/ xcode]
    thankx james ill try it

  8. #18

    Default

    Quote Originally Posted by 1337Smithy View Post
    Yeah, sorry, James, I kept meaning to look up the tag for that. It is much more readable so I'll do it from now on.

    Old Fox, RE the first question, try:


    local.player iprint "You picked up a grenade"



    The second is pretty impossible from my perspective, as you have to keep track of the number of grenades a player has. So you track:

    • their starting amount
    • grenade usage inside mike_torso.st
    • picking up grenades by other means (e.g. dead players etc.)
    • etc...
    thankx
    Last edited by Old Fox; March 25th, 2019 at 10:41 PM.

  9. #19
    Last edited by 1337Smithy; August 3rd, 2018 at 02:51 PM.

  10. #20

    Default

    continue here
    Last edited by Old Fox; March 25th, 2019 at 10:42 PM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •