Kod: Tümünü seç
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>
#include <engine>
#include <cstrike>
#include <fun>
#include <xs>
#define PLUGIN "CS:GO ZEUS"
#define VERSION "1.1.3"
#define AUTHOR "penguen"
#define weapon_zeus "weapon_p228"
#define CSW_ZEUS CSW_P228
#define model_zeus "models/w_p228.mdl"
#define write_coord_f(%1) engfunc(EngFunc_WriteCoord,%1)
new gHasZeus[ 33 ];
new gConnected[ 33 ];
new const szModels[][] = {
"models/v_zeus.mdl",
"models/p_zeus.mdl"
}
new const szSound[] = "zeus_hit.wav";
const m_LinuxDiff = 5;
const XO_CbasePlayerWeapon = 4;
const m_fKnown = 44;
const m_iClip = 51;
const m_iClientClip = 52;
new pcvar_cost, pcvar_damage, pcvar_distance, pcvar_dropsec;
new spritetext;
new const gSecondary[] = {
CSW_P228,
CSW_ELITE,
CSW_FIVESEVEN,
CSW_USP,
CSW_GLOCK18,
CSW_DEAGLE
}
new const szSecondary[][] = {
"weapon_p228",
"weapon_elite",
"weapon_fiveseven",
"weapon_usp",
"weapon_glock18",
"weapon_deagle"
}
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd( "say /taser", "cmdGiveTaser" );
register_clcmd( "drop", "cmdDropZeus" );
register_clcmd( "buyammo2", "cmdBuyAmmo2" );
pcvar_cost = register_cvar( "taser_cost", "1" );
pcvar_damage = register_cvar( "taser_damage", "200.0" );
pcvar_distance = register_cvar( "taser_distance", "170.0" );
pcvar_dropsec = register_cvar( "taser_dropsec", "1" );
RegisterHam( Ham_Item_Deploy, weapon_zeus, "fw_Ham_Item_Deploy", 1 );
RegisterHam( Ham_Item_AttachToPlayer, weapon_zeus, "fw_AttachToPlayer" );
RegisterHam( Ham_Weapon_SecondaryAttack, weapon_zeus, "fw_Ham_Weapon_Secondary" );
RegisterHam(Ham_Spawn, "player", "cmdGiveTaser", 1)
register_forward( FM_CmdStart, "fw_CmdStart" );
register_forward( FM_UpdateClientData, "fw_UpdateClientData_Post", 1 );
}
public plugin_precache()
{
spritetext = precache_model( "sprites/lgtning.spr" );
for( new i = 0; i < sizeof szModels; i++ )
precache_model( szModels[ i ] );
precache_model( model_zeus );
precache_sound( szSound );
}
public client_connect( id )
{
gHasZeus[ id ] = 0;
gConnected[ id ] = 1;
}
public client_disconnected( id )
{
gHasZeus[ id ] = 0;
gConnected[ id ] = 0;
}
public cmdGiveTaser( id )
{
if( !gConnected[ id ] )
return PLUGIN_CONTINUE;
if( !is_user_alive( id ) )
return PLUGIN_CONTINUE;
if( gHasZeus[ id ] ) {
client_print( id, print_chat, "You have already had a taser!" );
return PLUGIN_CONTINUE;
}
if( cs_get_user_money( id ) < get_pcvar_num( pcvar_cost ) ) {
client_print( id, print_chat, "Paran yetersiz oldugu icin satin alamiyorsun." );
return PLUGIN_CONTINUE;
}
if( get_pcvar_num( pcvar_dropsec ) > 0 ) {
new szWeapons[ 32 ], iList;
get_user_weapons( id, szWeapons, iList );
for( new i = 0; i < iList; i++ ) {
for( new k = 0; k < sizeof gSecondary; k++ ) {
if( szWeapons[ i ] == gSecondary[ k ] ) {
engclient_cmd( id, "drop", szSecondary[ k ] );
}
}
}
}
if( get_user_weapon( id ) == CSW_ZEUS ) {
engclient_cmd( id, "drop", weapon_zeus );
//ham_strip_weapon( id, weapon_zeus );
cs_set_user_bpammo( id, CSW_ZEUS, 0 );
}
if(get_user_team(id) == 0) {
gHasZeus[ id ] = 1;
give_item( id, weapon_zeus );
engclient_cmd( id, weapon_zeus );
cs_set_user_money( id, cs_get_user_money( id ) - get_pcvar_num( pcvar_cost ) );
client_print( id, print_chat, "Got Taser Weapon!" );
}
return PLUGIN_CONTINUE;
}
public cmdDropZeus( id )
{
if( gHasZeus[ id ] && get_user_weapon( id ) == CSW_ZEUS )
return PLUGIN_HANDLED_MAIN;
return PLUGIN_CONTINUE;
}
public cmdBuyAmmo2( id )
{
if( gHasZeus[ id ] && get_user_weapon( id ) == CSW_ZEUS )
return PLUGIN_HANDLED_MAIN;
return PLUGIN_CONTINUE;
}
public fw_Ham_Item_Deploy( wpn )
{
static id;
id = get_pdata_cbase( wpn, 41, 4 );
if( !pev_valid( id ) )
return HAM_IGNORED;
if( gHasZeus[ id ] ) {
set_pev( id, pev_viewmodel2, szModels[ 0 ] );
set_pev( id, pev_weaponmodel2, szModels[ 1 ] );
}
return HAM_IGNORED;
}
public fw_CmdStart( id, uc_handle, seed )
{
if( !gConnected[ id ] )
return FMRES_IGNORED;
if( !is_user_alive( id ) )
return FMRES_IGNORED;
if( !gHasZeus[ id ] )
return FMRES_IGNORED;
static button;
button = pev( id, pev_button );
if( button & IN_ATTACK ) {
if( get_user_weapon( id ) != CSW_ZEUS )
return FMRES_IGNORED;
FireZeus( id );
}
return FMRES_IGNORED;
}
public fw_UpdateClientData_Post( id, sendweapons, cd_handle )
{
if ( !is_user_alive( id ) )
return FMRES_IGNORED;
if( gHasZeus[ id ] && get_user_weapon( id ) == CSW_ZEUS ) {
set_cd( cd_handle, CD_flNextAttack, halflife_time() + 9999.0 );
return FMRES_IGNORED;
}
return FMRES_IGNORED;
}
public fw_AttachToPlayer( iEnt, id )
{
if( !gHasZeus[ id ] )
return FMRES_IGNORED;
if( get_pdata_int( iEnt, m_fKnown, XO_CbasePlayerWeapon ) )
return FMRES_IGNORED;
set_pdata_int( iEnt, m_iClip, 1, XO_CbasePlayerWeapon );
set_pdata_int( id, m_iClientClip, 0, m_LinuxDiff );
return FMRES_IGNORED;
}
public fw_Ham_Weapon_Secondary( wpn )
{
static id;
id = get_pdata_cbase( wpn, 41, 4 );
if( gHasZeus[ id ] )
return HAM_SUPERCEDE;
return HAM_IGNORED;
}
public fw_Ham_Spawn( id )
{
if( !gConnected[ id ] )
return HAM_IGNORED;
if( gHasZeus[ id ] ) {
if( user_has_weapon( id, CSW_ZEUS ) ) {
ham_strip_weapon( id, weapon_zeus );
}
gHasZeus[ id ] = 0;
}
return HAM_IGNORED;
}
public FireZeus( id )
{
if( !gConnected[ id ] )
return PLUGIN_HANDLED;
new Float: pOrigin[ 3 ], Float: pAngle[ 3 ], Float: tOrigin[ 3 ], tPlayer, tBody, Float: dist;
new Float: fdistance;
engfunc( EngFunc_GetAttachment, id, 0, pOrigin, pAngle );
dist = get_user_aiming( id, tPlayer, tBody );
if( pev_valid( tPlayer ) && get_user_team( id ) != get_user_team( tPlayer ) && id != tPlayer ) {
pev( tPlayer, pev_origin, tOrigin );
if( dist <= get_pcvar_float( pcvar_distance ) ) {
CreateThunder( pOrigin, tOrigin );
ExecuteHam( Ham_TakeDamage, tPlayer, 0, id, get_pcvar_float( pcvar_damage ), DMG_SHOCK );
}
}
else {
fm_get_aim_origin( id, tOrigin );
fdistance = get_distance_f( pOrigin, tOrigin );
if( fdistance <= get_pcvar_float( pcvar_distance ) )
CreateThunder( pOrigin, tOrigin );
}
gHasZeus[ id ] = 0;
engfunc( EngFunc_EmitSound, id, CHAN_WEAPON, szSound[ 0 ], 1.0, ATTN_NORM, 0, PITCH_NORM );
set_pev( id, pev_weaponanim, 1 );
message_begin( MSG_ONE, SVC_WEAPONANIM, { 0, 0, 0 }, id );
write_byte( 1 );
write_byte( pev( id, pev_body ) );
message_end()
ham_strip_weapon( id, weapon_zeus );
return FMRES_IGNORED;
}
stock fm_get_aim_origin( id, Float: hOrigin[ 3 ] )
{
if ( !is_user_alive( id ) )
return 0;
new Float:fOrigin[3], Float:fvAngle[3], Float:fvOffset[3], Float:fvOrigin[3], Float:feOrigin[3];
new Float:fTemp[3];
pev(id, pev_origin, fOrigin);
pev(id, pev_v_angle, fvAngle);
pev(id, pev_view_ofs, fvOffset);
xs_vec_add(fOrigin, fvOffset, fvOrigin);
engfunc(EngFunc_AngleVectors, fvAngle, feOrigin, fTemp, fTemp);
xs_vec_mul_scalar(feOrigin, 9999.9, feOrigin);
xs_vec_add(fvOrigin, feOrigin, feOrigin);
engfunc(EngFunc_TraceLine, fvOrigin, feOrigin, 0, id);
global_get(glb_trace_endpos, hOrigin);
return 1;
}
stock ham_strip_weapon(id,weapon[])
{
if(!equal(weapon,"weapon_",7)) return 0;
new wId = get_weaponid(weapon);
if(!wId) return 0;
new wEnt;
while((wEnt = engfunc(EngFunc_FindEntityByString,wEnt,"classname",weapon)) && pev(wEnt,pev_owner) != id) {}
if(!wEnt) return 0;
if(get_user_weapon(id) == wId) ExecuteHamB(Ham_Weapon_RetireWeapon,wEnt);
if(!ExecuteHamB(Ham_RemovePlayerItem,id,wEnt)) return 0;
ExecuteHamB(Ham_Item_Kill,wEnt);
set_pev(id,pev_weapons,pev(id,pev_weapons) & ~(1<<wId));
return 1;
}
stock CreateThunder( Float: fStartOrigin[ 3 ], Float: fEndOrigin[ 3 ] )
{
message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
write_byte( TE_BEAMPOINTS );
write_coord_f( fStartOrigin[ 0 ] );
write_coord_f( fStartOrigin[ 1 ] );
write_coord_f( fStartOrigin[ 2 ] );
write_coord_f( fEndOrigin[ 0 ] );
write_coord_f( fEndOrigin[ 1 ] );
write_coord_f( fEndOrigin[ 2 ] );
write_short( spritetext );
write_byte( 0 );
write_byte( 0 );
write_byte( 3 );
write_byte( 15 );
write_byte( 10 );
write_byte( 0 );
write_byte( 165 );
write_byte( 255 );
write_byte( 255 );
write_byte( 10 );
message_end( );
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1055\\ f0\\ fs16 \n\\ par }
*/
Ücretsiz yapma olayını 1 dolar yaptım. Her doğan oyuncuya vermesi lazım. Dener misin sana zahmet ?