Vice City: Multiplayer

Server Development => Scripting and Server Management => Snippet Showroom => Topic started by: Gudio on Apr 14, 2015, 07:35 AM

Title: Weapon pickups after kill
Post by: Gudio on Apr 14, 2015, 07:35 AM
Requested by @4kUM45 and @Gulk.

First of all we need a function called random which accepts minimum and maximum values in its parameters:
function random( min, max )
{
if ( min < max )
return rand() % (max - min + 1) + min.tointeger();
else if ( min > max )
return rand() % (min - max + 1) + max.tointeger();
else if ( min == max )
return min.tointeger();
}

then we must add a table responsible for deleting pickups when they're picked up:
wepPickups <- {};
next we need a function which will be used in onPlayerDeath/onPlayerKill/onPlayerTeamKill events. (DIY)
function CreatePlayerWeaponPickups( player )
{
for ( local i = 0, world, pos, pickup, weapon; i < 7; i++ )
{
world = player.World;
weapon = player.GetWeaponAtSlot( i );
player.World = player.UniqueWorld;

if ( weapon > 0 && weapon != 16 )
{
pos = player.Pos;
pos.x = random( pos.x - 2, pos.x + 2 );
pos.y = random( pos.y - 2, pos.y + 2 );

pickup = CreatePickup( 258 + weapon, world, player.GetAmmoAtSlot( i ), pos, 255, true );
if ( pickup )
wepPickups.rawset( pickup.ID, pickup );
}
}
}

finally, onPlayerClaimPickup must return true:
function onPickupClaimPicked( player, pickup )
{
if ( player.Health > 0 && wepPickups.rawin( pickup.ID ) )
{
PlaySound( player.UniqueWorld, 78, player.Pos );

wepPickups.rawdelete( pickup.ID );
pickup.Remove();

return 1;
}

return 0;
}

_/
Feel free to add a timer to delete pickups after some time.
Title: Re: Weapon pickups after kill
Post by: Gulk on Apr 14, 2015, 07:44 AM
w00t ye mang! thank you for this
Title: Re: Weapon pickups after kill
Post by: EK.IceFlake on Apr 14, 2015, 11:13 AM
No need for the random function to be so big like that when you can do it all in one line: http://forum.vc-mp.org/?topic=246.0
Title: Re: Weapon pickups after kill
Post by: Kratos_ on Apr 14, 2015, 11:42 AM

You might noticed here (http://forum.vc-mp.org/?topic=471.msg3179#msg3179) that I was saying about something like AutoDestroyTimer . Actually , I was too thinking about creating a timer in squirrel native & then removing array/table ( container ) contents .
But , I faced a challenge here . The Challenge was :-



Suppose we create a timer of repeating unit of 10 seconds . Thus , this timer is supposed to delete the table contents after every interval of 10 seconds . Lets assume that there 5 kills occured in this course of 10 seconds & no one picked the pickups , ofcourse
we're creating timer for destroying unpicked pickups .



Kills & Timer Mechanism

=========================================================
   Pickup's Birth    |    Timer    |    Pickup's LifeTime             
=========================================================
1.            0s     |     10s     |      10s
2.            3s     |     10s     |       7s
3.            5s     |     10s     |       5s
4.            7s     |     10s     |       3s
5.           10s     |     10s     |       0s
=========================================================

So , each kind of pickup will have variable life span . Even the last one will cease to appear . I know creating an individual timer associated to each pickup will simply lag the server . We have Pickup.RespawnTimer which starts monitoring the pickup when they are picked up . I therefore want that its the server which will start monitoring pickups at the time when they are created & once their life gets passed , they will be destroyed by the server .

Title: Re: Weapon pickups after kill
Post by: 4kUM45 on Apr 14, 2015, 05:47 PM
Good job, thank you.
Title: Re: Weapon pickups after kill
Post by: W3aPoN^ on Jul 08, 2016, 10:25 AM
Hello I am New Here And I Dont Understand What You say So can you please manke a VIDEO/PICTURE tutorial for this PLEASE i am New
Title: Re: Weapon pickups after kill
Post by: Xmair on Jul 08, 2016, 10:35 AM
Quote from: razacharan on Jul 08, 2016, 10:25 AMHello I am New Here And I Dont Understand What You say So can you please manke a VIDEO/PICTURE tutorial for this PLEASE i am New
(https://media.giphy.com/media/POql6zsXZbmcE/giphy.gif)
Title: Re: Weapon pickups after kill
Post by: W3aPoN^ on Jul 08, 2016, 01:32 PM
P L E A S E - H E L P - M E - B R O :(
I - D O N'T - K N O W - H O W - T O - A D D - T H E M - P L E A S E - M A K E - A - V I D E O/P I C T U R E - T U T O R I A L
Title: Re: Weapon pickups after kill
Post by: Murdock on Jul 08, 2016, 01:47 PM
Quote from: razacharan on Jul 08, 2016, 01:32 PM(spam)

You should not be touching any code, stick to playing