Skocz do zawartości

Nowy szablon forum

mygo.pl

Stworzyliśmy dla Was nowy wygląd forum. Z pewnością znajdziesz rzeczy, które wg Ciebie mogą zostać zmienione - wspomnij o tym w specjalnym wątku.

Czytaj więcej

Jak założyć własną sieć

serwerów CS

Zastanawiasz się nad prowadzeniem własnej sieci serwerów? Przeczytaj podstawowe informacje, na które należy zwrócić uwagę, przy takim projekcie.

Czytaj więcej

Tworzymy spis sieci

dodaj swoją

Dodaj sieć do której należysz, pozwoli to na promocję i budowę ogólnopolskiej bazy sieci CS.

Czytaj więcej

RSS[REQ] hELP CALPSULA


MYGO.pl
 Udostępnij

Rekomendowane odpowiedzi

  • RSSy
Quote:

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~
This plugin is based on original Half-Life game. When someone dies, release a capsule that contains the
weapons and items of dead player. When another player grabs capsule, receive items in the capsule.

There're three modes of playing with capsules:
* cp_teammode 0: Every player can pick capsules
* cp_teammode 1: Only players of the same team can pick capsules droped by someone
* cp_teammode 2: Only players of the other team can pick capsules droped by someone

You can enable/disable glowing:
* cp_glowmode 0: Glow disabled
* cp_glowmode 1: Glow enabled

Cvars:
cp_teammode 1:
0: Anyone can catch the capsule.
1: Only the same team can catch the capsule.
2: Only the opposing team can catch the capsule.

cp_glowmode 1:
0: Glow disabled.
1: Glow enabled.

cp_remove 0:
0: Do not remove the capsules.
1: Remove the capsules.

cp_bounce 1:
0: Off the bounce in the capsule.
1: On the bounce on the capsule.

Credits:
Joropito
IneedHelp
meTaLiCroSS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~ */

#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <cstrike>
#include <engine>
#include <fun>

#define Plugin "Capsule"
#define Version "2.9"
#define Author "Asd'"

#define Clip 51
#define WeaponLinux 4

/*ииииииииииииииии[Models][Sprites][Sounds]иииииииииииииии*/
new CapsuleMdl[] = "models/w_weaponbox.mdl"

new ReceivedSd[] = "items/gunpickup3.wav"
new BounceSd[] = "weapons/g_bounce1.wav"

new SmokeSpr[] = "sprites/steam1.spr"
/*ииииииииииииииииииииииииииииииииииииииииииии ииииииииииии*/

/*иииииииииииииииииииииииии[Weapons Consts][BPAmmo Consts]иииииииииииииииииииииииии*/
new const Weapons = (
(1<<CSW_SCOUT) | (1<<CSW_XM1014) | (1<<CSW_MAC10) |
(1<<CSW_AUG) | (1<<CSW_UMP45) | (1<<CSW_SG550) |
(1<<CSW_GALIL) | (1<<CSW_FAMAS) | (1<<CSW_AWP) |
(1<<CSW_MP5NAVY) | (1<<CSW_M249) | (1<<CSW_M3) |
(1<<CSW_M4A1) | (1<<CSW_TMP) | (1<<CSW_G3SG1) |
(1<<CSW_SG552) | (1<<CSW_AK47) | (1<<CSW_P90) |
(1<<CSW_P228) | (1<<CSW_ELITE) | (1<<CSW_FIVESEVEN) |
(1<<CSW_USP) | (1<<CSW_GLOCK18) | (1<<CSW_DEAGLE) |
(1<<CSW_FLASHBANG) | (1<<CSW_HEGRENADE) | (1<<CSW_SMOKEGRENADE)
)

new const MaxBPAmmo[] = {
-1, 52, -1, 90, 1, 32, 1, 100, 90, 1, 120, 100,
100, 90, 90, 90, 100, 120,
30, 120, 200, 32, 90, 120, 90,
2, 35, 90, 90, -1, 100
}
/*ииииииииииииииииииииииииииииииииииииииииииии иииииииииииииииииииииииииииииииииииии*/

/*ииииии[Glow Colors]иииии*/
new Float:Colors[3][3] = {
{0.0, 200.0, 0.0},
{200.0, 0.0, 0.0},
{0.0, 0.0, 200.0}
}
/*ииииииииииииииииииииии*/

/*иииии[Variables]иииии*/
new Bounce
new Remove
new GlowMode
new TeamMode
new Smoke
/*иииииииииииииииииииии*/

/*иииии[Arrays]иииии*/
new UserWeapons[33]
new Capsule[33]
new UserAmmo[33]
new UserClip[33]
/*иииииииииииииииииии*/

public plugin_init( )
{
/* Plugin */
register_plugin( Plugin, Version, Author )

/* Cvars & Commands */
Bounce = register_cvar( "cp_bounce", "1" )
Remove = register_cvar( "cp_remove", "0" )
GlowMode = register_cvar( "cp_glowmode", "1" )
TeamMode = register_cvar( "cp_teammode", "1" )

/* Engine Fowards */
register_touch( "Capsule", "player", "CapsuleTouch" )
register_touch( "Capsule", "worldspawn", "CapsuleBounce" )
register_think( "Capsule", "CapsuleThink" )

/* Hamsandwich Forwards */
RegisterHam( Ham_Killed, "player", "CapsuleCreate", 1 )
RegisterHam( Ham_Spawn, "player", "CapsuleRemoved", 1 )

/* Others */
register_cvar( "cp_author", Author, FCVAR_SERVER|FCVAR_SPONLY ) /* Game monitor */
register_cvar( "cp_version", Version, FCVAR_SERVER|FCVAR_SPONLY ) /* Game monitor */
}

public plugin_precache( )
{
/* Precache model */
precache_model( CapsuleMdl )

/* Precache sprite */
Smoke = precache_model( SmokeSpr )

/* Precache sounds */
precache_sound( ReceivedSd )
precache_sound( BounceSd )
}

public CapsuleCreate( Victim, Attacker, ShouldGib )
{
new Float:Origin[3]
new Float:Velocidad[3]

CapsuleRemove( Victim )

new Entidad = create_entity( "info_target" )
new Team = get_user_team( Victim )

entity_get_vector( Victim, EV_VEC_origin, Origin )
entity_set_string( Entidad, EV_SZ_classname, "Capsule" )
entity_set_model( Entidad, CapsuleMdl )

if( get_pcvar_num( GlowMode ) )
{
entity_set_int( Entidad, EV_INT_rendermode, kRenderNormal)
entity_set_int( Entidad, EV_INT_renderfx, kRenderFxGlowShell )

entity_set_vector( Entidad, EV_VEC_rendercolor, get_pcvar_num( TeamMode ) ? Colors[Team] : Colors[0] )
entity_set_float( Entidad, EV_FL_renderamt, 10.0 )
}

entity_set_edict( Entidad, EV_ENT_owner, Victim )
entity_set_int( Entidad, EV_INT_iuser1, Team )
entity_set_int( Entidad, EV_INT_iuser2, Victim )

entity_set_size( Entidad, Float:{ -10.0, -10.0, -0.0 }, Float:{ 10.0, 10.0, 0.0 } )
entity_set_origin( Entidad, Origin )

entity_set_int( Entidad, EV_INT_solid, SOLID_TRIGGER )

if( get_pcvar_num( Bounce ) )
entity_set_int( Entidad, EV_INT_movetype, MOVETYPE_BOUNCE )
else
entity_set_int( Entidad, EV_INT_movetype, MOVETYPE_TOSS )

entity_get_vector( Victim, EV_VEC_velocity, Velocidad )
entity_set_vector( Entidad, EV_VEC_velocity, Velocidad )

Capsule[Victim] = Entidad

CapsuleItems( Victim, Entidad )
entity_set_float( Entidad, EV_FL_nextthink, get_gametime( ) + 1.0 )

return HAM_HANDLED
}

public CapsuleRemoved( id )
{
if( get_pcvar_num( Remove ) )
CapsuleRemove( id )

return HAM_IGNORED
}

public CapsuleThink( Entidad )
{
new Float:Origin[3]
pev( Entidad, pev_origin, Origin )

new OriginEnd[3]
OriginEnd[0] = floatround( Origin[0] )
OriginEnd[1] = floatround( Origin[1] )
OriginEnd[2] = floatround( Origin[2] )

message_begin( MSG_BROADCAST, SVC_TEMPENTITY )
write_byte( TE_SMOKE )
write_coord( OriginEnd[0] )
write_coord( OriginEnd[1] )
write_coord( OriginEnd[2] )
write_short( Smoke )
write_byte( random_num( 5, 10 ) )
write_byte( 10 )
message_end( )

entity_set_float( Entidad, EV_FL_nextthink, get_gametime( ) + 1.0 )
}

public CapsuleBounce( Entidad, World )
{
if( !is_valid_ent( Entidad ) )
return PLUGIN_HANDLED

if( entity_get_edict( Entidad, EV_ENT_owner ) )
entity_set_edict( Entidad, EV_ENT_owner, 0 )

if( get_pcvar_num( Bounce ) )
{
new Float:Velocidad[3]
entity_get_vector( Entidad, EV_VEC_velocity, Velocidad )

Velocidad[0] -= Velocidad[0] / 10.0
Velocidad[1] -= Velocidad[1] / 5.0
Velocidad[2] -= Velocidad[2] / 0.0

entity_set_vector( Entidad, EV_VEC_velocity, Velocidad )
emit_sound( Entidad, CHAN_ITEM, BounceSd, 1.0, ATTN_NORM, 0, PITCH_NORM )
}
return PLUGIN_HANDLED
}


public CapsuleTouch( Entidad, Index )
{
if( !is_user_alive( Index ) )
return PLUGIN_HANDLED

if( !is_valid_ent( Entidad ) )
return PLUGIN_HANDLED

if( entity_get_edict( Entidad, EV_ENT_owner ) )
return PLUGIN_HANDLED

new WeaponsDT[32]
new OldEntidad = entity_get_int( Entidad, EV_INT_iuser2 )
new NewAmmo
new OldAmmo
new NewClip
new WPEntidad

entity_get_string( Entidad, EV_SZ_noise1, UserWeapons, charsmax( UserWeapons ) )
entity_get_string( Entidad, EV_SZ_noise2, UserAmmo, charsmax( UserAmmo) )
entity_get_string( Entidad, EV_SZ_noise3, UserClip, charsmax( UserClip) )

for(new i = 0; i < charsmax( UserWeapons ); i++)
{
if( UserWeapons[i] == 0 )
break

if( MaxBPAmmo[UserWeapons[i]] > 0 )
{
if( !user_has_weapon( Index, UserWeapons[i] ) )
{
get_weaponname( UserWeapons[i], WeaponsDT, charsmax( WeaponsDT ) )
give_item( Index, WeaponsDT )

WPEntidad = WeaponEntidad( Index, UserWeapons[i])
NewAmmo = UserAmmo[i]
NewClip = UserClip[i]
}
else
{
OldAmmo = cs_get_user_bpammo( Index, UserWeapons[i] )
NewAmmo = ( MaxBPAmmo[UserWeapons[i]] + OldAmmo ) < UserAmmo[i] ? MaxBPAmmo[UserWeapons[i]] : UserAmmo[i]
WPEntidad = WeaponEntidad( Index, UserWeapons[i] )
NewClip = get_pdata_int( WPEntidad, Clip, WeaponLinux )
}
cs_set_user_bpammo( Index, UserWeapons[i], NewAmmo )
set_pdata_int( WPEntidad, Clip, NewClip, WeaponLinux )
}
}
emit_sound( Entidad, CHAN_ITEM, ReceivedSd, 1.0, ATTN_NORM, 0, PITCH_NORM )
CapsuleRemove( OldEntidad )

return PLUGIN_HANDLED
}

public CapsuleItems( Index, Entidad )
{
new CarriedWeapons[32]
new NumWeapons
new WeaponID
new i

get_user_weapons( Index, CarriedWeapons, NumWeapons )

for(i = 0; i < NumWeapons; i++)
{
UserWeapons[i] = CarriedWeapons[i]
WeaponID = WeaponEntidad( Index, UserWeapons[i] )

if( Weapons & ( 1 << CarriedWeapons[i] ) )
get_user_ammo( Index, CarriedWeapons[i], UserClip[i], UserAmmo[i] )
else
UserAmmo[i] = UserClip[i] = -1

ExecuteHamB( Ham_Weapon_RetireWeapon, WeaponID )
ExecuteHamB( Ham_RemovePlayerItem, Index, WeaponID )
ExecuteHamB( Ham_Item_Kill, WeaponID )
}
UserWeapons[i] = UserAmmo[i] = UserClip[i] = 0

entity_set_string( Entidad, EV_SZ_noise1, UserWeapons )
entity_set_string( Entidad, EV_SZ_noise2, UserAmmo )
entity_set_string( Entidad, EV_SZ_noise3, UserClip )
}

/*иииииииииииииииииииииииии[Stocks]иииииииииииииииииииииииии*/
stock CapsuleRemove( Index )
{
if( ( Capsule[Index] != 0 ) && is_valid_ent( Capsule[Index] ) )
{
remove_entity( Capsule[Index] )
Capsule[Index] = 0
}
}

stock WeaponEntidad( Index, WeaponID )
{
static szWeaponName[32]
get_weaponname( WeaponID, szWeaponName, charsmax( szWeaponName ) )

return find_ent_by_owner(-1, szWeaponName, Index )
}
/*ииииииииииииииииииииииииииииииииииииииииииии иииииииииииии*/
hello i need your help
Sim plugin and bugs
Can you fix it
1. give a weapon if i have a weapon in my hand and open the capsule wool does he give that extra weapon to fix it?
to give 1flash and a automaton so if what died he was

Przeczytaj cały wpis

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...