Veteran Member
Join Date: Aug 2011
Location: Villeurbanne
|
10-15-2012
, 12:49
Jail Mod public.
|
#1
|
Bonjour,
Ayant arrêter tout les jeux vidéos depuis maintenant 1 mois je vais supprimé tout se qui est plugins de mon PC car il ne me servent à rien. Mais je pense à beaucoup de "leader" qui essayent de se faire un Jail sur le jeux et qui n'y arrivent pas car il n'y a nul part où trouver tout les codes pour en faire un "correct".
Bref je ne veux pas perdre mon temps en parlant plus longtemps voici les codes faites en se que vous en voudrez. Je ne sais pas si je reviendrais peut-être pas sur ce sujet donc bon il y aura ceux qui me remercierons et ceux qui m'insulterons.
Shop :
PHP Code:
#include < amxmodx >
#include < cstrike >
#include < fun >
#include < hamsandwich >
new const szItemsTerrorist[ ][ ] = {
"Smoke" ,
"Flash" ,
"Grenade" ,
"Pack de grenades" ,
"Vitesse" ,
"Mac10"
}
new const szItemsCounterTerrorist[ ][ ] = {
"Smoke" ,
"Flash" ,
"Kevlar" ,
"AK47" ,
"Vitesse" ,
"Derniere chance"
}
new const iCostItemsTerrorist[ ] = {
1000 ,
2500 ,
3000 ,
5000 ,
11000,
16000
}
new const iCostItemsCounterTerrorist[ ] = {
1000 ,
2500 ,
3000 ,
8000 ,
12000 ,
16000
}
new const PLUGIN_NAME[ ] = "Jail Shop";
new const PLUGIN_VERSION[ ] = "0.0.2";
new const szTitleTerrorist[ ] = "\w[ \rJustSmiLe \w] \yBoutique des Prisonniers";
new const szTitleCt[ ] = "\w[ \rJustSmiLe \w] \yBoutique des Gardiens";
new bool:g_bBoughtTerrorist[ 33 ][ 6 ] , bool:g_bBoughtCt[ 33 ][ 6 ];
new bool:g_bAlive[ 33 ];
public plugin_init( ) {
register_plugin( PLUGIN_NAME , PLUGIN_VERSION , "Devil" );
RegisterHam( Ham_Spawn , "player" , "fwPlayerSpawn" , true );
RegisterHam( Ham_Item_PreFrame , "player" , "fwResetMaxSpeed" , true );
RegisterHam( Ham_Killed , "player" , "fwPlayerKilled" );
RegisterHam( Ham_TakeDamage , "player" , "fwPlayerTakeDamage" );
register_clcmd( "say" , "ClientCommand_HookSay" );
register_clcmd( "say_team" , "ClientCommand_HookSay" );
register_clcmd( "chooseteam" , "JoinTeam" );
register_clcmd( "jointeam" , "JoinTeam" );
}
public fwPlayerSpawn( id ) {
if( is_user_alive( id ) ) {
for( new j = 0; j < 6; j++ ) {
g_bBoughtTerrorist[ id ][ j ] = false;
g_bBoughtCt[ id ][ j ] = false;
}
g_bAlive[ id ] = true;
}
}
public fwResetMaxSpeed( id ) {
if( g_bAlive[ id ] && ( g_bBoughtTerrorist[ id ][ 4 ] || g_bBoughtCt[ id ][ 4 ] ) && get_user_maxspeed( id ) != -1.0 ) {
set_user_maxspeed( id , 400.0 );
}
}
public fwPlayerKilled( victim ) {
g_bAlive[ victim ] = false;
}
public fwPlayerTakeDamage( victim , inflictor , attacker , Float:damage , damagebits ) {
if( attacker != victim ) {
if( 1 <= attacker <= 32 )
{
if( cs_get_user_team( victim ) == CS_TEAM_CT && cs_get_user_team( attacker ) == CS_TEAM_T ) {
if( g_bBoughtCt[ victim ][ 5 ] && get_user_health( victim ) <= damage ) {
SetHamParamFloat( 4 , float( get_user_health( victim ) - 1 ) );
g_bBoughtCt[ victim ][ 5 ] = false;
ScreenFade( victim );
client_print( victim , print_center , "Tu utilises ta derniere chance !" );
}
}
}
}
}
public JoinTeam( id ) {
if( !is_user_alive( id ) ) {
client_print( id , print_center , "Tu dois etre vivant pour acheter un item !" );
}
else {
DisplayShop( id );
}
return ( CS_TEAM_T <= cs_get_user_team(id) <= CS_TEAM_CT );
}
public client_putinserver( id ) {
for( new j = 0; j < 6; j++ ) {
g_bBoughtTerrorist[ id ][ j ] = false;
g_bBoughtCt[ id ][ j ] = false;
}
}
public ClientCommand_HookSay( id ) {
new szSpeech[ 32 ];
read_args( szSpeech , charsmax( szSpeech ) );
remove_quotes( szSpeech );
if( equal( szSpeech , "shop" ) || equal( szSpeech , "/shop" ) ) {
if( !is_user_alive( id ) ) {
client_print( id , print_center , "Tu dois etre vivant pour ouvrir le shop !" );
return PLUGIN_HANDLED;
}
DisplayShop( id );
}
return PLUGIN_CONTINUE;
}
public DisplayShop( id ) {
new strJ[ 10 ] , szItem[ 64 ] , iNewMoney;
new iMoney = cs_get_user_money( id );
new jailShop;
switch( cs_get_user_team( id ) ) {
case CS_TEAM_T: {
jailShop = menu_create( szTitleTerrorist , "ShopHandler_Terrorist" );
for( new j = 0; j < sizeof( szItemsTerrorist ); j++ ) {
num_to_str( j , strJ , charsmax( strJ ) );
iNewMoney = ( iMoney - iCostItemsTerrorist[ j ] );
if( iNewMoney >= 0 ) {
formatex( szItem , charsmax( szItem ) , "\y%s \w~> \r%d$" , szItemsTerrorist[ j ] , iCostItemsTerrorist[ j ] );
}
else {
formatex( szItem , charsmax( szItem ) , "\d%s ~> Il te manque %d$" , szItemsTerrorist[ j ] , (-iNewMoney) );
}
menu_additem( jailShop , szItem , strJ );
}
menu_display( id , jailShop );
}
case CS_TEAM_CT: {
jailShop = menu_create( szTitleCt , "ShopHandler_CounterTerrorist" );
for( new j = 0; j < sizeof( szItemsCounterTerrorist ); j++ ) {
num_to_str( j , strJ , charsmax( strJ ) );
iNewMoney = ( iMoney - iCostItemsCounterTerrorist[ j ] );
if( iNewMoney >= 0 ) {
formatex( szItem , charsmax( szItem ) , "\y%s \w~> \r%d$" , szItemsCounterTerrorist[ j ] , iCostItemsCounterTerrorist[ j ] );
}
else {
formatex( szItem , charsmax( szItem ) , "\d%s ~> Il te manque %d$" , szItemsCounterTerrorist[ j ] , (-iNewMoney) );
}
menu_additem( jailShop , szItem , strJ );
}
menu_display( id , jailShop );
}
}
}
public ShopHandler_Terrorist( id , menu , item ) {
if( item == -3 ) {
menu_destroy( menu );
return PLUGIN_HANDLED;
}
if( !is_user_alive( id ) ) {
client_print( id , print_center , "Tu dois etre vivant pour acheter un item !" );
return PLUGIN_HANDLED;
}
if( cs_get_user_team( id ) != CS_TEAM_T ) {
client_print( id , print_center , "Tu as change de team entre temps !" );
return PLUGIN_HANDLED;
}
if( g_bBoughtTerrorist[ id ][ item ] ) {
client_print( id , print_center , "Tu as deja achete cet item !" );
return PLUGIN_HANDLED;
}
new iNewMoney = ( cs_get_user_money( id ) - iCostItemsTerrorist[ item ] );
if( iNewMoney < 0 ) {
client_print( id , print_center , "Tu n'as pas assez d'argent !" );
return PLUGIN_HANDLED;
}
switch( item ) {
case -3: {
menu_destroy( menu );
return PLUGIN_HANDLED;
}
case 0: {
if( user_has_weapon( id , CSW_SMOKEGRENADE ) ) {
HaveGrenade( id , "smoke" );
}
if( g_bBoughtTerrorist[ id ][ 3 ] ) {
BoughtPackOfGrenades( id );
}
give_item( id , "weapon_smokegrenade" );
client_print( id , print_center , "Tu achetes une smoke !" );
}
case 1: {
if( cs_get_user_bpammo( id , CSW_FLASHBANG ) == 2 ) {
HaveGrenade( id , "flashbang" );
}
if( g_bBoughtTerrorist[ id ][ 3 ] ) {
BoughtPackOfGrenades( id );
}
give_item( id , "weapon_flashbang" );
client_print( id , print_center , "Tu achetes une flashbang !" );
}
case 2: {
if( user_has_weapon( id , CSW_HEGRENADE ) ) {
HaveGrenade( id , "grenade" );
}
if( g_bBoughtTerrorist[ id ][ 3 ] ) {
BoughtPackOfGrenades( id );
}
give_item( id , "weapon_hegrenade" );
client_print( id , print_center , "Tu achetes une grenade !" );
}
case 3: {
if( g_bBoughtTerrorist[ id ][ 0 ] || g_bBoughtTerrorist[ id ][ 1 ] || g_bBoughtTerrorist[ id ][ 2 ] ) {
client_print( id , print_center , "Tu as deja achete une de ces grenades !" );
return PLUGIN_HANDLED;
}
if( user_has_weapon( id , CSW_HEGRENADE ) ) {
HaveGrenade( id , "grenade" );
}
if( user_has_weapon( id , CSW_SMOKEGRENADE ) ) {
HaveGrenade( id , "smoke" );
}
if( cs_get_user_bpammo( id , CSW_FLASHBANG ) == 2 ) {
HaveGrenade( id , "flashbang" );
}
give_item( id , "weapon_hegrenade" );
give_item( id , "weapon_smokegrenade" );
if( !user_has_weapon( id , CSW_FLASHBANG ) ) {
give_item( id , "weapon_flashbang" );
}
cs_set_user_bpammo( id , CSW_FLASHBANG , 2 );
client_print( id , print_center , "Tu achetes un pack de grenades !" );
}
case 4: {
set_user_maxspeed( id , 400.0 );
client_print( id , print_center , "Tu achetes de la vitesse !" );
}
case 5: {
if( user_has_weapon( id , CSW_MAC10 ) ) {
client_print( id , print_center , "Tu as deja un Mac10 !" );
return PLUGIN_HANDLED;
}
give_item( id , "weapon_mac10" );
cs_set_user_bpammo( id , CSW_MAC10 , 120 );
client_print( id , print_center , "Tu achetes un Mac10 !" );
}
}
g_bBoughtTerrorist[ id ][ item ] = true;
cs_set_user_money( id , iNewMoney , 1 );
return PLUGIN_HANDLED;
}
public ShopHandler_CounterTerrorist( id , menu , item ) {
if( item == -3 ) {
menu_destroy( menu );
return PLUGIN_HANDLED;
}
if( !is_user_alive( id ) ) {
client_print( id , print_center , "Tu dois etre vivant pour acheter un item !" );
return PLUGIN_HANDLED;
}
if( cs_get_user_team( id ) != CS_TEAM_CT ) {
client_print( id , print_center , "Tu as change de team entre temps !" );
return PLUGIN_HANDLED;
}
if( g_bBoughtCt[ id ][ item ] ) {
client_print( id , print_center , "Tu as deja achete cet item !" );
return PLUGIN_HANDLED;
}
new iNewMoney = ( cs_get_user_money( id ) - iCostItemsCounterTerrorist[ item ] );
if( iNewMoney < 0 ) {
client_print( id , print_center , "Tu n'as pas assez d'argent !" );
return PLUGIN_HANDLED;
}
switch( item ) {
case -3: {
menu_destroy( menu );
return PLUGIN_HANDLED;
}
case 0: {
if( user_has_weapon( id , CSW_SMOKEGRENADE ) ) {
HaveGrenade( id , "smoke" );
}
give_item( id , "weapon_smokegrenade" );
client_print( id , print_center , "Tu achetes une smoke !" );
}
case 1: {
if( cs_get_user_bpammo( id , CSW_FLASHBANG ) == 2 ) {
HaveGrenade( id , "flashbang" );
}
give_item( id , "weapon_flashbang" );
client_print( id , print_center , "Tu achetes une flashbang !" );
}
case 2: {
cs_set_user_armor( id , get_user_armor( id ) + 100 , CS_ARMOR_VESTHELM );
client_print( id , print_center , "Tu achetes un kevlar !" );
}
case 3: {
if( user_has_weapon( id , CSW_AK47 ) ) {
client_print( id , print_center , "Tu as deja une AK47 !" );
return PLUGIN_HANDLED;
}
give_item( id , "weapon_ak47" );
cs_set_user_bpammo( id , CSW_AK47 , 90 );
client_print( id , print_center , "Tu achetes une AK47 !" );
}
case 4: {
set_user_maxspeed( id , 400.0 );
client_print( id , print_center , "Tu achetes de la vitesse !" );
}
case 5: {
client_print( id , print_center , "Tu achetes la Derniere chance !" );
}
}
g_bBoughtCt[ id ][ item ] = true;
cs_set_user_money( id , iNewMoney , 1 );
return PLUGIN_HANDLED;
}
HaveGrenade( id , type[ ] ) {
client_print( id , print_center , "Tu as deja %s %s !" , equal( type , "flashbang" ) ? "2" : "une" , type );
return PLUGIN_HANDLED;
}
ScreenFade( id ) {
message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "ScreenFade" ) , { 0, 0, 0 } , id );
write_short( 4096 );
write_short( 4096 );
write_short( 4096 );
write_byte( 255 );
write_byte( 0 );
write_byte( 0 );
write_byte( 70 );
message_end( );
}
BoughtPackOfGrenades( id ) {
client_print( id , print_center , "Tu as deja achete un pack de grenades !" );
return PLUGIN_HANDLED;
}
Jacques à dit lol (désolé je trouve que sa fait tellement pitié comme plugin comme beaucoup d'ailleurs... Et dire que j'ai perdu 2 000 heures de ma vie à jouer à CS LOOOOOL ) :
PHP Code:
#include < amxmodx >
#include < amxmisc >
#include < engine >
#include < fakemeta >
#include < cstrike >
#pragma semicolon 1
/* ===================== INFOS ======================= */
new const Plugin[ ] = "Jail - Jacques a dit Manager";
new const Version[ ] = "0.0.7";
/* =================================================== */
/* =================== VARIABLES ===================== */
new bool:g_bActuallyInJad = false , bool:g_bCanJad = false;
new bool:doByAdmin[ 33 ] , g_bMuted[ 33 ];
new g_iMenu , g_iMenuAdmins , g_iRoundCount , g_iJadLeader;
new gszNameJad[ 32 ] , gszAuthJad[ 35 ];
new g_pCvarIntervalRound , g_pCvarColorHudStart , g_pCvarColorHudStop;
new gSyncHud;
new gInJad , gNotInJad;
new const szSound[ ] = "misc/jacques_a_dit/jad.wav";
/* =================================================== */
public client_disconnect( id )
{
if( g_iJadLeader == id )
{
JadEnd( 4 );
}
}
public plugin_precache( )
{
precache_sound( szSound );
}
public plugin_init( )
{
register_plugin( Plugin , Version , "Devil" );
/* =============== EVENTS ================ */
register_event( "HLTV" , "evNewRound" , "a" , "1=0" , "2=0" );
register_event( "DeathMsg" , "evDeathMsg" , "a" );
register_event( "TextMsg" , "evRestartRound" , "a" , "2&#Game_C" , "2&#Game_w" );
register_logevent( "LogEv_RoundEnd" , 2 , "1=Round_End" );
register_forward( FM_ClientKill , "fwClientKill" );
register_forward( FM_Voice_SetClientListening , "fwSetClientListening" );
/* ======================================== */
/* ============== COMMANDES =============== */
register_clcmd( "say /jad" , "ClientCommand_Jad" );
register_clcmd( "say_team /jad" , "ClientCommand_Jad" );
register_clcmd( "say /jadchange" , "ClientCommand_JadChange" );
register_clcmd( "say_team /jadchange" , "ClientCommand_JadChange" );
register_clcmd( "say /jadadmin" , "ClientCommand_JadAdmins" , ADMIN_KICK , "- affiche le menu JAD admins" );
register_clcmd( "say_team /jadadmin" , "ClientCommand_JadAdmins" , ADMIN_KICK , "- affiche le menu JAD admins" );
/* ========================================= */
/* ================= MENUS ================== */
g_iMenu = menu_create( "Confirmer le Jacques a dit ?" , "jad_handler" );
menu_additem( g_iMenu , "Oui" , "1" );
menu_additem( g_iMenu , "Non" , "2" );
menu_setprop( g_iMenu , MPROP_EXIT , MEXIT_NEVER );
gInJad = menu_makecallback( "injad_callback" );
gNotInJad = menu_makecallback( "notinjad_callback" );
/* ========================================== */
/* ================= PCVARS ================= */
g_pCvarIntervalRound = register_cvar( "jad_interval_round" , "3" );
g_pCvarColorHudStart = register_cvar( "jad_start_color" , "255000000" );
g_pCvarColorHudStop = register_cvar( "jad_stop_color" , "000000255" );
/* ========================================== */
gSyncHud = CreateHudSyncObj( );
}
/* ===================================== EVENTS ======================================= */
public evNewRound( )
{
new iInterval = get_pcvar_num( g_pCvarIntervalRound );
if( iInterval > 1 )
{
g_iRoundCount++;
if( g_iRoundCount >= iInterval )
{
g_bCanJad = true;
client_print( 0 , print_chat , "Vous pouvez desormais faire un Jacques a dit. Tapes /jad pour en commencer un." );
}
else
{
g_bCanJad = false;
g_bActuallyInJad = false;
client_print( 0 , print_chat , "Vous pourrez faire un Jacques a dit dans %d rounds." , (iInterval - g_iRoundCount ) );
}
}
else
g_bCanJad = true;
}
public evDeathMsg( )
{
if( g_bActuallyInJad )
{
if( read_data( 2 ) == g_iJadLeader )
{
JadEnd( 1 );
}
else
{
new iPlayers[ 32 ] , iNum;
get_players( iPlayers , iNum , "ae" , "TERRORIST" );
if( iNum == 1 )
{
JadEnd( 5 );
g_bCanJad = false;
}
}
}
}
public evRestartRound( )
{
if( g_bActuallyInJad )
{
JadEnd( 2 );
}
}
public LogEv_RoundEnd( )
{
if( g_bActuallyInJad )
{
JadEnd( 2 );
}
}
public fwClientKill( id )
{
if( g_iJadLeader == id )
{
JadEnd( 1 );
}
}
public fwSetClientListening( iReceiver , iSender , bool:bListen )
{
if( g_bMuted[ iSender ] )
{
engfunc( EngFunc_SetClientListening , iReceiver , iSender , false );
forward_return( FMV_CELL , false );
return FMRES_SUPERCEDE;
}
engfunc( EngFunc_SetClientListening , iReceiver , iSender , true );
forward_return( FMV_CELL , true );
return FMRES_SUPERCEDE;
}
/* =============================================================================== */
/* ================================= COMMANDES =================================== */
public ClientCommand_Jad( id )
{
if( !is_user_alive( id ) )
{
client_print( id , print_chat , "Tu dois etre vivant pour commencer un Jacques a dit !" );
return PLUGIN_HANDLED;
}
if( cs_get_user_team( id ) != CS_TEAM_CT )
{
client_print( id , print_chat , "Tu dois etre gardien pour commencer un Jacques a dit !" );
return PLUGIN_HANDLED;
}
if( g_bActuallyInJad )
{
client_print( id , print_chat , "Un Jacques a dit est deja en cours !" );
}
if( !g_bCanJad )
{
return PLUGIN_HANDLED;
}
new iInterval = get_pcvar_num( g_pCvarIntervalRound );
if( g_iRoundCount < iInterval )
{
client_print( id , print_chat , "Vous pourrez faire un Jacques a dit dans %d rounds." , (iInterval - g_iRoundCount ) );
return PLUGIN_HANDLED;
}
menu_display( id , g_iMenu , 0 );
return PLUGIN_HANDLED;
}
public ClientCommand_JadChange( id )
{
if( id == g_iJadLeader )
{
Modify( id );
doByAdmin[ id ] = false;
}
else
{
client_print( id , print_chat , "Tu n'es pas Jacques !" );
return PLUGIN_HANDLED;
}
return PLUGIN_HANDLED;
}
public ClientCommand_JadAdmins( id , level , cid )
{
if( !cmd_access( id , level , cid , 1 ) )
{
client_print( id , print_chat , "Tu n'es pas admin, c'est bete !" );
return PLUGIN_HANDLED;
}
g_iMenuAdmins = menu_create( "Choisir une action :" , "jadadmins_handler" );
menu_additem( g_iMenuAdmins , "Arreter le Jacques a dit en cours" , "1" , 0 , gInJad );
menu_additem( g_iMenuAdmins , "Modifier le controleur du Jacques a dit" , "2" , 0 , gInJad );
menu_additem( g_iMenuAdmins , "Demarrer un Jacques a dit" , "3" , 0 , gNotInJad );
menu_setprop( g_iMenuAdmins , MPROP_EXITNAME , "Quitter" );
menu_display( id , g_iMenuAdmins , 0 );
return PLUGIN_HANDLED;
}
/* ======================================================================================= */
/* ===================================== FONCTIONS ======================================= */
JadStart( id , bool:doByTransfer )
{
if( !g_bActuallyInJad || doByTransfer )
{
g_iRoundCount = 0;
new iColorStart = get_pcvar_num( g_pCvarColorHudStart );
new r = (iColorStart / 1000000);
new g = ((iColorStart / 1000) % 1000);
new b = (iColorStart % 1000);
set_hudmessage( r , g , b , -1.0 , 0.0 , _ ,_ , 600.0 , _ , _ , -1 );
ShowSyncHudMsg( 0 , gSyncHud , "" );
g_iJadLeader = id;
get_user_name( id , gszNameJad , charsmax( gszNameJad ) );
if( !doByTransfer )
{
get_user_authid( id , gszAuthJad , charsmax( gszAuthJad ) );
log_to_file( "jad.log" , "%s (%s) commence un Jacques a dit" , gszNameJad , gszAuthJad );
client_print( 0 , print_chat , "%s demarre un Jacques a dit, tous les autres gardiens sont mutes !" , gszNameJad );
}
g_bActuallyInJad = true;
g_bCanJad = false;
ShowSyncHudMsg( 0 , gSyncHud , "Jacques a dit fait par %s" , gszNameJad );
client_print( id , print_chat , "Si tu souhaites laisser ta place à quelqu'un d'autre, tapes /jadchange" );
new iPlayers[ 32 ] , iNum , pid;
get_players( iPlayers , iNum , "ech" , "CT" );
for( new i = 0; i < iNum; i++ )
{
pid = iPlayers[ i ];
if( !( get_user_flags( pid ) & ADMIN_KICK ) || ( pid =! id ) )
{
if( !g_bMuted[ pid ] )
{
g_bMuted[ pid ] = true;
}
}
else
{
if( g_bMuted[ pid ] )
{
g_bMuted[ pid ] = false;
}
}
}
g_bMuted[ id ] = false;
PlaySound( );
set_task( 0.3 , "PlaySound" );
}
}
public PlaySound( )
{
new iPlayers[ 32 ] , iNum;
get_players( iPlayers , iNum , "ch" );
for( new i = 0; i < iNum; i++ )
client_cmd( iPlayers[ i ] , "spk %s" , szSound );
}
JadEnd( wayToStop )
{
if( g_bActuallyInJad )
{
g_iJadLeader = 0;
new iColorStop = get_pcvar_num( g_pCvarColorHudStop );
new r = (iColorStop / 1000000);
new g = ((iColorStop / 1000) % 1000);
new b = (iColorStop % 1000);
set_hudmessage( r , g , b , -1.0 , 0.2 , 0 , 6.0 , 5.0 , _ , _ , -1 );
switch( wayToStop )
{
case 1:ShowSyncHudMsg( 0 , gSyncHud , "Le Jacques a dit est fini, %s est mort !" , gszNameJad );
case 2:ShowSyncHudMsg( 0 , gSyncHud , "Le round est fini, le Jacques a dit est termine !" );
case 3:ShowSyncHudMsg( 0 , gSyncHud , "Un admin a mis fin au Jacques a dit !" );
case 4:ShowSyncHudMsg( 0 , gSyncHud , "%s s'est deconnecte, le Jacques a dit est termine !" , gszNameJad );
case 5:ShowSyncHudMsg( 0 , gSyncHud , "Il reste qu'un seul terroriste, le Jacques a dit est termine !" );
}
g_bActuallyInJad = false;
arrayset( g_bMuted , false , sizeof( g_bMuted ) );
}
}
Modify( id )
{
new players[ 32 ] , pnum;
get_players( players , pnum , "ae" , "CT" );
if( !pnum )
{
client_print( id , print_chat , "Il n'y a pas d'autre gardien en vie !" );
return PLUGIN_HANDLED;
}
new tempid;
new iChangeMenu = menu_create( "Donner le controle du Jacques a dit a :" , "jadchange_handler" );
new szName[ 32 ] , szTempid[ 10 ];
for( new i = 0; i < pnum; i++ )
{
tempid = players[ i ];
if( tempid != g_iJadLeader )
{
get_user_name( tempid , szName , charsmax( szName ) );
num_to_str( tempid , szTempid , charsmax( szTempid ) );
menu_additem( iChangeMenu , szName , szTempid );
}
}
menu_setprop( iChangeMenu , MPROP_EXITNAME , "Quitter" );
menu_display( id , iChangeMenu , 0 );
return PLUGIN_CONTINUE;
}
CreateJad( id )
{
new players[ 32 ] , pnum;
get_players( players , pnum , "ae" , "CT" );
if( !pnum )
{
client_print( id , print_chat , "Il n'y a pas de gardien en vie !" );
return PLUGIN_HANDLED;
}
new szName[ 32 ] , szTempid[ 10 ];
new tempid;
new iCreateMenu = menu_create( "Donner le controle du Jacques a dit a :" , "jadcreate_handler" );
for( new i = 0; i < pnum; i++ )
{
tempid = players[ i ];
get_user_name( tempid , szName , charsmax( szName ) );
num_to_str( tempid , szTempid , charsmax( szTempid ) );
menu_additem( iCreateMenu , szName , szTempid );
}
menu_setprop( iCreateMenu , MPROP_EXITNAME , "Quitter" );
menu_display( id , iCreateMenu , 0 );
return PLUGIN_CONTINUE;
}
/* ============================================================================= */
/* ============================ HANDLERS =============================== */
public jad_handler( id , g_iMenu , item )
{
switch( item )
{
case 0:JadStart( id , false );
case 1:return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
public jadadmins_handler( id , menu , item )
{
switch( item )
{
case 0:
{
if( g_bActuallyInJad )
{
JadEnd( 3 );
}
}
case 1:
{
if( g_bActuallyInJad )
{
doByAdmin[ id ] = true;
Modify( id );
}
}
case 2:
{
if( !g_bActuallyInJad )
{
CreateJad( id );
}
}
}
}
public jadchange_handler( id , menu , item )
{
if( item == MENU_EXIT )
{
menu_destroy( menu );
return PLUGIN_HANDLED;
}
new data[ 6 ] , szName[ 64 ];
new access , callback;
menu_item_getinfo( menu , item , access , data , charsmax( data ) , szName , charsmax( szName ) , callback );
new tempid = str_to_num( data );
new szNameTempID[ 32 ] , szAuthTempID[ 35 ];
get_user_name( tempid , szNameTempID , charsmax( szNameTempID ) );
get_user_authid( tempid , szAuthTempID , charsmax( szAuthTempID ) );
client_print( 0 , print_chat , "%s donne le controle du Jacques a dit a %s" , gszNameJad , szNameTempID );
log_to_file( "jad.log" , "%s (%s) donne le controle du Jacques a dit a %s (%s)" , gszNameJad , gszAuthJad , szNameTempID , szAuthTempID );
JadStart( tempid , true );
menu_destroy( menu );
return PLUGIN_HANDLED;
}
public jadcreate_handler( id , menu , item )
{
if( item == MENU_EXIT )
{
menu_destroy( menu );
return PLUGIN_HANDLED;
}
new data[ 6 ] , szMenu[ 64 ];
new access , callback;
menu_item_getinfo( menu , item , access , data , charsmax( data ) , szMenu , charsmax( szMenu ) , callback );
new tempid = str_to_num( data );
new szName[ 32 ] , szAuth[ 35 ] , szNameTempID[ 32 ] , szAuthTempID[ 35 ];
get_user_name( id , szName , charsmax( szName ) );
get_user_authid( id , szAuth , charsmax( szAuth ) );
get_user_name( tempid , szNameTempID , charsmax( szNameTempID ) );
get_user_authid( tempid , szAuthTempID , charsmax( szAuthTempID ) );
if( id == tempid )
{
client_print( 0 , print_chat , "L'admin %s cree un Jacques a dit et s'en donne le controle" , szName );
log_to_file( "jad.log" , "L'admin %s (%s) cree un Jacques a dit et s'en donne le controle" , szName , szAuth );
}
else
{
client_print( 0 , print_chat , "L'admin %s cree un Jacques a dit et en donne le controle a %s" , szName , szNameTempID );
log_to_file( "jad.log" , "L'admin %s (%s) cree un Jacques a dit et en donne le controle a %s (%s)" , szName , szAuth , szNameTempID , szAuthTempID );
}
JadStart( tempid , true );
menu_destroy( menu );
return PLUGIN_HANDLED;
}
/* ================================================= */
/* ======================== CALLBACKS ========================= */
public injad_callback( id , menu , item )
{
if( !g_bActuallyInJad )
{
return ITEM_DISABLED;
}
return ITEM_ENABLED;
}
public notinjad_callback( id , menu , item )
{
if( g_bActuallyInJad )
{
return ITEM_DISABLED;
}
return ITEM_ENABLED;
}
/* ============================================================== */
Jail Last (il y aura 2 codes : Les 2 marches il y en a juste un ou l'auteur à mis de la merde dessus enfin bon , lui il est sympa par rapport à d'autre ...)
PHP Code:
#include < amxmodx >
#include < amxmisc >
#include < cstrike >
#include < fakemeta >
#include < hamsandwich >
#include < fun >
#define PLUGIN "Jail Last"
#define VERSION "2.0"
#define AUTHOR "XXX"
new g_maxPlayers, g_msgSayText, beacon_sprite
new cvar_granades_bpammo, cvar_scout_bpammo, cvar_m3_bpammo, cvar_sniper_bpammo,
cvar_m4a1_bpammo, cvar_ak47_bpammo, cvar_effect
new bool:touch_weapons[33], bool:once[33], bool:player_challenged[33], bool:duel_active,
bool:knife_duel[33], bool:deagle_duel[33], bool:grenade_duel[33], bool:scout_duel[33],
bool:m3_duel[33], bool:sniper_duel[33], bool:m4_duel[33], bool:ak47_duel[33]
new tag[] = "[ Jail ]"
public plugin_precache()
{
beacon_sprite = precache_model("sprites/shockwave.spr")
}
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
RegisterHam(Ham_Touch, "weaponbox", "fw_touch_weapon")
RegisterHam(Ham_Touch, "armoury_entity", "fw_touch_weapon")
RegisterHam(Ham_Touch, "weapon_shield", "fw_touch_weapon")
RegisterHam(Ham_Spawn, "player", "fw_player_respawn", 1)
RegisterHam(Ham_Killed, "player", "fw_player_killed")
register_forward(FM_CmdStart,"fw_cmdstart",1)
register_clcmd("say /last", "duel_menu")
register_clcmd("say last", "duel_menu")
register_clcmd("say !last", "duel_menu")
register_clcmd("say_team /last", "duel_menu")
register_clcmd("say_team last", "duel_menu")
register_clcmd("say_team !last", "duel_menu")
cvar_granades_bpammo = register_cvar("jail_grenade_bpammo","100")
cvar_scout_bpammo = register_cvar("jail_scout_bpammo", "50")
cvar_effect = register_cvar("jail_effect", "2")
cvar_m3_bpammo = register_cvar("jail_m3_bpammo", "20")
cvar_sniper_bpammo = register_cvar("jail_sniper_bpammo", "40")
cvar_m4a1_bpammo = register_cvar("jail_m4a1_bpammo", "90")
cvar_ak47_bpammo = register_cvar("jail_ak47_bpammo", "90")
g_maxPlayers = get_maxplayers()
g_msgSayText = get_user_msgid("SayText")
register_dictionary("last_jail.txt")
}
public event_round_start()
{
duel_active = false
}
public fw_player_respawn(id)
{
if(!is_user_alive(id) || !cs_get_user_team(id))
{
return
}
set_user_rendering(id)
remove_task(id)
touch_weapons[id] = false
once[id] = false
knife_duel[id] = false
deagle_duel[id] = false
grenade_duel[id] = false
scout_duel[id] = false
m3_duel[id] = false
sniper_duel[id] = false
m4_duel[id] = false
ak47_duel[id] = false
player_challenged[id] = false
}
public fw_touch_weapon(weapon, id)
{
if (!is_user_connected(id))
return HAM_IGNORED;
new players[32], pnum, tempid;
get_players(players, pnum, "a");
for( new i; i<pnum; i++ )
{
tempid = players[i];
}
if (touch_weapons[id] || touch_weapons[tempid])
{
return HAM_SUPERCEDE;
}
return HAM_IGNORED;
}
public fw_cmdstart(player,uc_handle,random_seed)
{
if(deagle_duel[player])
{
cs_set_user_bpammo(player, CSW_DEAGLE, 1)
}
}
public fw_player_killed(victim, attacker, shouldgib)
{
new name[32]
get_user_name(attacker, name, 31)
if(duel_active)
{
if(cs_get_user_team(victim) == CS_TEAM_CT && player_challenged[victim])
{
knife_duel[attacker] = false
deagle_duel[attacker] = false
grenade_duel[attacker] = false
scout_duel[attacker] = false
m3_duel[attacker] = false
sniper_duel[attacker] = false
m4_duel[attacker] = false
ak47_duel[attacker] = false
once[attacker] = false
strip_user_weapons(attacker)
give_item(attacker, "weapon_knife")
set_user_rendering(attacker)
duel_menu(attacker)
}
else if(cs_get_user_team(victim) == CS_TEAM_CT && !player_challenged[victim])
{
set_task(0.4, "kill_player", attacker)
set_hudmessage( 0, 255, 0, -1.0, 0.40, 2, 5.0, 8.0, 0.0, 0.0, 10)
show_hudmessage(0, "%L", LANG_PLAYER,"DUEL_DOWN", name)
}
}
remove_task(attacker)
remove_task(victim)
}
public kill_player(id)
{
user_kill(id)
}
public duel_menu(id)
{
if(!is_user_alive(id))
return PLUGIN_HANDLED
if (!once[id])
{
if(cs_get_user_team(id) == CS_TEAM_T)
{
new cts[32], ts[32], ctsnum, tsnum
for (new id=1; id <= g_maxPlayers; id++)
{
if (!is_user_connected(id) || !is_user_alive(id))
{
continue
}
if (cs_get_user_team(id) == CS_TEAM_T)
{
ts[tsnum++] = id
}
else if (cs_get_user_team(id) == CS_TEAM_CT)
{
cts[ctsnum++] = id
}
}
if (tsnum == 1 && ctsnum >= 1)
{
static opcion[64]
formatex(opcion, charsmax(opcion),"\y%L:", id, "CHOOSE_DUEL")
new iMenu = menu_create(opcion, "sub_duel_menu")
formatex(opcion, charsmax(opcion),"\w%L", id, "DUEL_1")
menu_additem(iMenu, opcion, "1")
formatex(opcion, charsmax(opcion),"\w%L", id, "DUEL_2")
menu_additem(iMenu, opcion, "2")
formatex(opcion, charsmax(opcion),"\w%L", id, "DUEL_3")
menu_additem(iMenu, opcion, "3")
formatex(opcion, charsmax(opcion),"\w%L", id, "DUEL_4")
menu_additem(iMenu, opcion, "4")
formatex(opcion, charsmax(opcion),"\w%L", id, "DUEL_5")
menu_additem(iMenu, opcion, "5")
formatex(opcion, charsmax(opcion),"\w%L", id, "DUEL_6")
menu_additem(iMenu, opcion, "6")
formatex(opcion, charsmax(opcion),"\w%L", id, "DUEL_7")
menu_additem(iMenu, opcion, "7")
formatex(opcion, charsmax(opcion),"\w%L", id, "DUEL_8")
menu_additem(iMenu, opcion, "8")
menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, iMenu, 0)
}
else if (tsnum == 1 && ctsnum < 1)
{
ChatColor(id, "%L", LANG_PLAYER,"NOT_CTS", tag)
}
else if (tsnum > 1)
{
ChatColor(id, "%L", LANG_PLAYER,"ONLY_LAST", tag)
}
}
else
{
ChatColor(id, "%L", LANG_PLAYER,"ONLY_TTS", tag)
}
}
else
{
ChatColor(id, "%L", LANG_PLAYER,"KILL_CHALLENGED", tag)
}
return PLUGIN_HANDLED
}
public sub_duel_menu(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new Data[6], Name[64]
new Access, Callback
menu_item_getinfo(menu, item, Access, Data,5, Name, 63, Callback)
new Key = str_to_num(Data)
switch (Key)
{
case 1:
{
knife_duel[id] = true
choose_enemy(id)
}
case 2:
{
deagle_duel[id] = true
choose_enemy(id)
}
case 3:
{
grenade_duel[id] = true
choose_enemy(id)
}
case 4:
{
scout_duel[id] = true
choose_enemy(id)
}
case 5:
{
m3_duel[id] = true
choose_enemy(id)
}
case 6:
{
sniper_duel[id] = true
choose_enemy(id)
}
case 7:
{
m4_duel[id] = true
choose_enemy(id)
}
case 8:
{
ak47_duel[id] = true
choose_enemy(id)
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public choose_enemy(id)
{
static opcion[64]
formatex(opcion, charsmax(opcion),"\y%L:", id, "CHOOSE_ENEMY")
new iMenu = menu_create(opcion, "sub_choose_enemy")
new players[32], pnum, tempid
new szName[32], szTempid[10]
get_players(players, pnum, "a")
for( new i; i<pnum; i++ )
{
tempid = players[i]
if (cs_get_user_team(tempid) != CS_TEAM_CT)
{
continue
}
get_user_name(tempid, szName, 31)
num_to_str(tempid, szTempid, 9)
menu_additem(iMenu, szName, szTempid, 0)
}
menu_display(id, iMenu)
return PLUGIN_HANDLED
}
public sub_choose_enemy(id, menu, item, attacker, victim)
{
if( item == MENU_EXIT )
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new Data[6], Name[64]
new Access, Callback
menu_item_getinfo(menu, item, Access, Data,5, Name, 63, Callback)
new tempid = str_to_num(Data)
new mapname[32], challenger[32], challenged[32]
get_mapname(mapname,31)
get_user_name(id, challenger, 31)
get_user_name(tempid, challenged, 31)
strip_user_weapons(id)
strip_user_weapons(tempid)
set_user_health(id, 100)
set_user_health(tempid, 100)
switch (get_pcvar_num(cvar_effect))
{
case 0:
{
set_user_rendering(id, kRenderFxGlowShell, 250, 0, 0, kRenderNormal, 20)
set_user_rendering(tempid, kRenderFxGlowShell, 0, 0, 250, kRenderNormal, 20)
}
case 1:
{
set_task(1.0, "beacon", id)
set_task(1.0, "beacon", tempid)
}
case 2:
{
set_user_rendering(id, kRenderFxGlowShell, 250, 0, 0, kRenderNormal, 20)
set_task(1.0, "beacon", id)
set_user_rendering(tempid, kRenderFxGlowShell, 0, 0, 250, kRenderNormal, 20)
set_task(1.0, "beacon", tempid)
}
}
player_challenged[tempid] = true
once[id] = true
touch_weapons[id] = true
touch_weapons[tempid] = true
if(knife_duel[id])
{
give_item(id, "weapon_knife")
give_item(tempid, "weapon_knife")
set_hudmessage( 0, 255, 0, -1.0, 0.40, 2, 5.0, 8.0, 0.0, 0.0, 10)
show_hudmessage(0, "%L",LANG_PLAYER,"KNIFE_DUEL", challenger, challenged)
}
else if(deagle_duel[id])
{
deagle_duel[tempid] = true
cs_set_weapon_ammo(give_item(id, "weapon_deagle"), 1)
cs_set_weapon_ammo(give_item(tempid, "weapon_deagle"), 1)
set_hudmessage( 0, 255, 0, -1.0, 0.40, 2, 5.0, 8.0, 0.0, 0.0, 10)
show_hudmessage(0, "%L", LANG_PLAYER,"DEAGLE_DUEL", challenger, challenged)
}
else if(grenade_duel[id])
{
give_item(id, "weapon_hegrenade")
give_item(tempid, "weapon_hegrenade")
cs_set_user_bpammo(id, CSW_HEGRENADE,get_pcvar_num(cvar_granades_bpammo))
cs_set_user_bpammo(tempid, CSW_HEGRENADE,get_pcvar_num(cvar_granades_bpammo))
set_hudmessage( 0, 255, 0, -1.0, 0.40, 2, 5.0, 8.0, 0.0, 0.0, 10)
show_hudmessage(0, "%L", LANG_PLAYER,"GRENADE_DUEL", challenger, challenged)
}
else if(scout_duel[id])
{
give_item(id, "weapon_scout")
give_item(tempid, "weapon_scout")
cs_set_user_bpammo(id, CSW_SCOUT, get_pcvar_num(cvar_scout_bpammo))
cs_set_user_bpammo(tempid, CSW_SCOUT, get_pcvar_num(cvar_scout_bpammo))
set_hudmessage( 0, 255, 0, -1.0, 0.40, 2, 5.0, 8.0, 0.0, 0.0, 10)
show_hudmessage(0, "%L", LANG_PLAYER,"SCOUT_DUEL", challenger, challenged)
}
else if(m3_duel[id])
{
give_item(id, "weapon_m3")
give_item(tempid, "weapon_m3")
cs_set_user_bpammo(id, CSW_M3, get_pcvar_num(cvar_m3_bpammo))
cs_set_user_bpammo(tempid, CSW_M3, get_pcvar_num(cvar_m3_bpammo))
set_user_health(id, 500)
set_user_health(tempid, 500)
set_hudmessage( 0, 255, 0, -1.0, 0.40, 2, 5.0, 8.0, 0.0, 0.0, 10)
show_hudmessage(0, "%L", LANG_PLAYER,"M3_DUEL", challenger, challenged)
}
else if(sniper_duel[id])
{
give_item(id, "weapon_awp")
give_item(tempid, "weapon_awp")
cs_set_user_bpammo(id, CSW_AWP, get_pcvar_num(cvar_sniper_bpammo))
cs_set_user_bpammo(tempid, CSW_AWP, get_pcvar_num(cvar_sniper_bpammo))
set_hudmessage( 0, 255, 0, -1.0, 0.40, 2, 5.0, 8.0, 0.0, 0.0, 10)
show_hudmessage(0, "%L", LANG_PLAYER,"SNIPER_DUEL", challenger, challenged)
}
else if(m4_duel[id])
{
give_item(id, "weapon_m4a1")
give_item(tempid, "weapon_m4a1")
cs_set_user_bpammo(id, CSW_M4A1, get_pcvar_num(cvar_m4a1_bpammo))
cs_set_user_bpammo(tempid, CSW_M4A1, get_pcvar_num(cvar_m4a1_bpammo))
set_user_health(id, 250)
set_user_health(tempid, 250)
set_hudmessage( 0, 255, 0, -1.0, 0.40, 2, 5.0, 8.0, 0.0, 0.0, 10)
show_hudmessage(0, "%L", LANG_PLAYER,"M4_DUEL", challenger, challenged)
}
else if(ak47_duel[id])
{
give_item(id, "weapon_ak47")
give_item(tempid, "weapon_ak47")
cs_set_user_bpammo(id, CSW_AK47, get_pcvar_num(cvar_ak47_bpammo))
cs_set_user_bpammo(tempid, CSW_AK47, get_pcvar_num(cvar_ak47_bpammo))
set_user_health(id, 250)
set_user_health(tempid, 250)
set_hudmessage( 0, 255, 0, -1.0, 0.40, 2, 5.0, 8.0, 0.0, 0.0, 10)
show_hudmessage(0, "%L", LANG_PLAYER,"AK47_DUEL", challenger, challenged)
}
duel_active = true
menu_destroy(menu)
return PLUGIN_HANDLED
}
public beacon(id)
{
if(cs_get_user_team(id) == CS_TEAM_CT)
{
static origin[3]
get_user_origin(id, origin)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMCYLINDER)
write_coord(origin[0])
write_coord(origin[1])
write_coord(origin[2]-20)
write_coord(origin[0])
write_coord(origin[1])
write_coord(origin[2]+200)
write_short(beacon_sprite)
write_byte(0)
write_byte(1)
write_byte(6)
write_byte(2)
write_byte(1)
write_byte(0)
write_byte(0)
write_byte(250)
write_byte(200)
write_byte(0)
message_end()
}
else
{
static origin[3]
get_user_origin(id, origin)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMCYLINDER)
write_coord(origin[0])
write_coord(origin[1])
write_coord(origin[2]-20)
write_coord(origin[0])
write_coord(origin[1])
write_coord(origin[2]+200)
write_short(beacon_sprite)
write_byte(0)
write_byte(1)
write_byte(6)
write_byte(2)
write_byte(1)
write_byte(250)
write_byte(0)
write_byte(0)
write_byte(200)
write_byte(0)
message_end()
}
set_task(1.0, "beacon", id)
}
stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, "!g", "^4")
replace_all(msg, 190, "!y", "^1")
replace_all(msg, 190, "!team", "^3")
if (id) players[0] = id
else get_players(players, count, "ch")
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, g_msgSayText, _, players[i])
write_byte(players[i])
write_string(msg)
message_end()
}
}
}
print_color(target, const message[], any:...)
{
static g_msgSayText, maxplayers;
if(!g_msgSayText)
g_msgSayText = get_user_msgid("SayText")
if(!maxplayers)
maxplayers = get_maxplayers();
static buffer[512], i, argscount;
argscount = numargs();
if(!target)
{
static player;
for(player = 1; player <= maxplayers; player++)
{
if(!is_user_connected(player))
continue;
static changed[5], changedcount;
changedcount = 0;
for(i = 2; i < argscount; i++)
{
if(getarg(i) == LANG_PLAYER)
{
setarg(i, 0, player);
changed[changedcount] = i;
changedcount++;
}
}
vformat(buffer, sizeof buffer - 1, message, 3);
message_begin(MSG_ONE_UNRELIABLE, g_msgSayText, _, player);
write_byte(player);
write_string(buffer);
message_end();
for (i = 0; i < changedcount; i++)
setarg(changed[i], 0, LANG_PLAYER);
}
}
else
{
vformat(buffer, sizeof buffer - 1, message, 3);
message_begin(MSG_ONE, g_msgSayText, _, target);
write_byte(target);
write_string(buffer);
message_end();
}
}
Last avec bug mais mieux je trouve :
PHP Code:
#include < amxmodx >
#include < amxmisc >
#include < fun >
#include < cstrike >
#include < fakemeta >
#include < hamsandwich >
#define VERSION "1.0"
#define isPlayer(%1) ( 1 <= %1 <= g_maxPlayers )
#define last_strip(%1,%2) strip_user_weapons( %1 ); \
strip_user_weapons( %2 ); \
give_item( %1, "weapon_knife" ); \
give_item( %2, "weapon_knife" )
#define printColor(%1,%2) message_begin( MSG_ONE_UNRELIABLE, g_msgSayText, .player = %1 ); \
write_byte( %1 ); \
write_string( %2 ); \
message_end( )
#define set_user_weapons(%1,%2,%3,%4) give_item( %1, %2 ); \
cs_set_user_bpammo( %1, %3, %4 )
new g_lastMenu, g_lastChosen, g_maxPlayers, g_msgSayText;
new g_lastWith[ 33 ], CsTeams: g_playerTeam[ 33 ], bool: g_isAlive[ 33 ];
new g_fwAddToFullPack, g_fwTouch, HamHook: g_fwTraceAttack, HamHook: g_fwTakeDamage, HamHook: g_fwThinkGrenade;
new name[ 2 ][ 32 ];
new g_syncHudMsg, weapon[ 33 ];
public plugin_init( )
{
register_plugin( "Last Menu", VERSION, "Bboy Grun" ); /* ... [27/02/2012] ... */
register_event( "HLTV", "evNewRound", "a", "1=0", "2=0" );
register_message( get_user_msgid( "CurWeapon" ), "Message_CurWeapon" );
RegisterHam( Ham_Spawn, "player", "fwHamSpawn", true );
RegisterHam( Ham_Killed, "player", "fwHamKilled", true );
register_clcmd( "say /shop", "cmdBlock" );
register_clcmd( "say shop", "cmdBlock" );
register_clcmd( "say /rtd", "cmdBlock" );
register_clcmd( "say rtd", "cmdBlock" );
register_clcmd( "chooseteam", "cmdBlock" );
register_clcmd( "jointeam", "cmdBlock" );
register_clcmd( "drop", "cmdBlock" );
g_fwTraceAttack = RegisterHam( Ham_TraceAttack, "player", "fwHamTraceAttack" );
g_fwTakeDamage = RegisterHam( Ham_TakeDamage, "player", "fwHamTakeDamage" );
g_fwThinkGrenade = RegisterHam( Ham_Think, "grenade", "fwThinkGrenade" );
DisableHamForward( g_fwTraceAttack );
DisableHamForward( g_fwTakeDamage );
DisableHamForward( g_fwThinkGrenade );
register_clcmd( "say /last", "fwLastCmd" );
register_clcmd( "say last", "fwLastCmd" );
g_lastMenu = menu_create( "#Choisis ton last :", "fwMenu_lastHandler" );
menu_additem( g_lastMenu, "Couteaux" );
menu_additem( g_lastMenu, "Deagle" );
menu_additem( g_lastMenu, "Scout" );
menu_additem( g_lastMenu, "Awp" );
menu_additem( g_lastMenu, "Grenades" );
menu_additem( g_lastMenu, "M3 ( 500 HP )" );
menu_additem( g_lastMenu, "Ak47 ( 250 HP )" );
menu_additem( g_lastMenu, "M4A1 ( 250 HP )" );
menu_additem( g_lastMenu, "Hasard ( 100 HP )" );
g_maxPlayers = get_maxplayers( );
g_msgSayText = get_user_msgid( "SayText" );
g_syncHudMsg = CreateHudSyncObj( );
}
public client_putinserver( id )
{
g_playerTeam[ id ] = CS_TEAM_SPECTATOR;
}
public client_disconnect( id )
{
fwHamKilled( id, 0, -2 );
}
public cmdBlock( const id )
{
return g_lastWith[ id ] ? PLUGIN_HANDLED : PLUGIN_CONTINUE;
}
public evNewRound( )
{
g_lastChosen = 0;
for( new id = 1; id <= g_maxPlayers; g_lastWith[ id ++ ] = 0 ) { }
if( g_fwAddToFullPack )
{
unregister_forward( FM_AddToFullPack, g_fwAddToFullPack, true );
unregister_forward( FM_Touch, g_fwTouch, false );
DisableHamForward( g_fwTraceAttack );
DisableHamForward( g_fwTakeDamage );
DisableHamForward( g_fwThinkGrenade );
}
g_fwAddToFullPack = 0;
g_fwTouch = 0;
}
public fwTouch( touched, toucher )
{
if( isPlayer( toucher ) && !isPlayer( touched ) && g_lastWith[ toucher ] )
{
new classname[ 32 ];
pev( touched, pev_classname, classname, charsmax( classname ) );
if( equal( classname, "weaponbox" ) )
{
return FMRES_SUPERCEDE;
}
}
return FMRES_IGNORED;
}
public fwLastCmd( const id )
{
if( getOneTerrorist( ) == id && !g_lastWith[ id ] )
{
for( new _id = 1; _id <= g_maxPlayers; _id ++ )
{
if( g_isAlive[ _id ] && g_playerTeam[ _id ] == CS_TEAM_CT )
{
g_lastChosen = 0;
menu_display( id, g_lastMenu );
break;
}
}
}
}
public fwAddToFullPack( const es, const e, const ent, const host, const host_flags, const player, const p_set )
{
if( player && g_isAlive[ ent ] && g_isAlive[ host ] )
{
if( !g_lastWith[ host ] ) // Si le joueur n'est pas en duel
{
if( g_lastWith[ ent ] ) // Si le joueur en face est en duel on lui met un render holo
{
set_es( es, ES_RenderMode, kRenderTransAdd );
set_es( es, ES_RenderFx, kRenderFxDistort );
set_es( es, ES_RenderColor, Float: { 255.0, 255.0, 255.0 } );
set_es( es, ES_RenderAmt, 90.0 );
}
}
else // Sinon si il est en duel
{
if( !g_lastWith[ ent ] ) // Si le joueur en face est pas en duel
{
set_es( es, ES_Origin, Float: { -99999.0, -99999.0, -9999999.0 } );
}
}
}
}
public fwHamSpawn( const id )
{
if( is_user_alive( id ) )
{
g_playerTeam[ id ] = cs_get_user_team( id );
g_isAlive[ id ] = true;
weapon[ id ] = 0;
}
}
public Message_CurWeapon( osef, osef2, id )
{
if( g_lastWith[ id ] && g_lastChosen == 1 )
{
if( get_msg_arg_int( 2 ) == CSW_DEAGLE )
{
if( get_msg_arg_int( 3 ) )
{
set_msg_arg_int( 3, ARG_BYTE, 1 );
cs_set_weapon_ammo( weapon[ id ], 1 );
}
cs_set_user_bpammo( id, CSW_DEAGLE, 1 );
}
}
}
public fwHamTakeDamage( const victim, const inflictor, const attacker, const Float: damages, const dmg_bits )
{
if( isPlayer( attacker ) && attacker == inflictor )
{
if( ( g_lastWith[ victim ] && !g_lastWith[ attacker ] ) || ( !g_lastWith[ victim ] && g_lastWith[ attacker ] ) )
{
return HAM_SUPERCEDE;
}
else
{
set_hudmessage( 255, 255, 255, -1.0, 0.10, 0, 0.0, 20.0, 0.0, 0.0, -1 );
if( g_playerTeam[ attacker ] == CS_TEAM_T )
{
ShowSyncHudMsg( 0, g_syncHudMsg, "<%s : %d> | <%s : %d>", name[ 0 ], pev( attacker, pev_health ), name[ 1 ], floatround( pev( victim, pev_health ) - damages ) );
}
else
{
ShowSyncHudMsg( 0, g_syncHudMsg, "<%s : %d> | <%s : %d>", name[ 0 ], floatround( pev( victim, pev_health ) - damages ), name[ 1 ], pev( attacker, pev_health ) );
}
}
}
return HAM_IGNORED;
}
public fwHamTraceAttack( const victim, const attacker, const Float: damage, const Float: direction[ 3 ], const tracehandle, const damage_type )
{
if( isPlayer( attacker ) )
{
if( ( g_lastWith[ victim ] && !g_lastWith[ attacker ] ) || ( !g_lastWith[ victim ] && g_lastWith[ attacker ] ) )
{
return HAM_SUPERCEDE;
}
}
return HAM_IGNORED;
}
public fwHamKilled( const victim, killer, const shouldGib )
{
g_isAlive[ victim ] = false;
if( g_playerTeam[ victim ] == CS_TEAM_T )
{
new id = getOneTerrorist( );
if( id )
{
menu_display( id, g_lastMenu );
}
}
if( g_lastWith[ victim ] )
{
killer = g_lastWith[ victim ]; // Killer peut être = 0 ou = victim
set_hudmessage( 255, 255, 255, -1.0, 0.10, 0, 0.0, 5.0, 0.0, 0.0, -1 );
ShowSyncHudMsg( 0, g_syncHudMsg, "%s gagne le last !", g_playerTeam[ victim ] == CS_TEAM_T ? name[ 1 ] : name[ 0 ] );
if( g_playerTeam[ killer ] == CS_TEAM_T )
{
for( new idTest = 1; idTest <= g_maxPlayers; idTest ++ )
{
if( g_isAlive[ idTest ] && g_playerTeam[ idTest ] == CS_TEAM_CT )
{
menu_display( killer, g_lastMenu );
}
}
}
for( new id = 1; id <= g_maxPlayers; id ++ )
{
if( g_isAlive[ id ] )
{
set_user_footsteps( id, 0 )
}
}
unregister_forward( FM_AddToFullPack, g_fwAddToFullPack, true );
unregister_forward( FM_Touch, g_fwTouch, false );
DisableHamForward( g_fwTraceAttack );
DisableHamForward( g_fwTakeDamage );
DisableHamForward( g_fwThinkGrenade );
g_fwAddToFullPack = 0;
g_fwTouch = 0;
strip_user_weapons( killer );
give_item( killer, "weapon_knife" );
g_lastWith[ victim ] = 0;
g_lastWith[ killer ] = 0;
g_playerTeam[ victim ] = ( shouldGib == -2 ? cs_get_user_team( victim ) : CS_TEAM_UNASSIGNED );
}
}
public fwThinkGrenade( nade )
{
if( pev_valid( nade ) )
{
new owner = pev( nade, pev_owner );
if( !g_lastWith[ owner ] )
{
new Float: dmgtime, Float: current_time
pev( nade, pev_dmgtime, dmgtime )
current_time = get_gametime( )
if ( dmgtime <= current_time )
{
engfunc( EngFunc_RemoveEntity, nade );
return FMRES_SUPERCEDE;
}
}
}
return HAM_IGNORED;
}
public fwMenu_lastHandler( const id, const menu, const item )
{
if( item != MENU_EXIT && getOneTerrorist( ) == id && g_isAlive[ id ] )
{
g_lastChosen = item;
new g_playersMenu = menu_create( "#Contre qui veux-tu te battre ?", "fwMenu_playerHandler" );
new index[ 3 ], name[ 32 ];
for( new player = 1; player <= g_maxPlayers; player ++ )
{
if( g_playerTeam[ player ] == CS_TEAM_CT && g_isAlive[ player ] )
{
num_to_str( player, index, charsmax( index ) );
get_user_name( player, name, charsmax( name ) );
menu_additem( g_playersMenu, name, index );
}
}
menu_display( id, g_playersMenu );
}
}
public fwMenu_playerHandler( const id, const menu, const item )
{
if( item == MENU_EXIT || getOneTerrorist( ) != id || !g_isAlive[ id ] )
{
menu_display( id, g_lastMenu );
}
else
{
new index[ 3 ], osef, lastName[ 128 ], victim, Float: health = 100.0;
menu_item_getinfo( menu, item, osef, index, charsmax( index ), _, _, osef );
victim = str_to_num( index );
if( g_isAlive[ victim ] )
{
g_lastWith[ victim ] = id;
g_lastWith[ id ] = victim;
lastName[ 0 ] = EOS;
last_strip( id, victim );
switch( g_lastChosen )
{
case 0:
{
lastName = "#Last: Couteaux";
}
case 1:
{
lastName = "#Last: Deagle";
for( new i = 0, _id; i < 2; i ++ )
{
_id = i ? victim : id;
weapon[ _id ] = give_item( _id, "weapon_deagle" );
cs_set_weapon_ammo( weapon[ _id ], 1 );
cs_set_user_bpammo( _id, CSW_DEAGLE, 9999 );
}
}
case 2:
{
lastName = "#Last: Scout";
set_user_weapons( id, "weapon_scout", CSW_SCOUT, 9999 );
set_user_weapons( victim, "weapon_scout", CSW_SCOUT, 9999 );
}
case 3:
{
lastName = "#Last: Awp";
set_user_weapons( id, "weapon_awp", CSW_AWP, 9999 );
set_user_weapons( victim, "weapon_awp", CSW_AWP, 9999 );
}
case 4:
{
lastName = "#Last: Grenade";
set_user_weapons( id, "weapon_hegrenade", CSW_HEGRENADE, 999 );
set_user_weapons( victim, "weapon_hegrenade", CSW_HEGRENADE, 999 );
}
case 5:
{
lastName = "#Last: M3 ( 500 HP )";
health = 500.0;
set_user_weapons( id, "weapon_m3", CSW_M3, 9999 );
set_user_weapons( victim, "weapon_m3", CSW_M3, 9999 );
}
case 6:
{
lastName = "#Last: Ak47 ( 250 HP )";
health = 250.0;
set_user_weapons( id, "weapon_ak47", CSW_AK47, 9999 );
set_user_weapons( victim, "weapon_ak47", CSW_AK47, 9999 );
}
case 7:
{
lastName = "#Last: M4A1 ( 250 HP )";
health = 250.0;
set_user_weapons( id, "weapon_m4a1", CSW_M4A1, 9999 );
set_user_weapons( victim, "weapon_m4a1", CSW_M4A1, 9999 );
}
case 8:
{
lastName = "#Last: Hasard ( 100 HP )";
new randomWeapons, weaponName[ 32 ];
for( new i = 0, _id; i < 2; i ++ )
{
_id = i ? victim : id;
randomWeapons = 0;
while( !randomWeapons || randomWeapons == 9 || randomWeapons == 25 || randomWeapons == 6 )
{
randomWeapons = random_num( 3, 28 );
}
get_weaponname( randomWeapons, weaponName, charsmax( weaponName ) );
set_user_weapons( _id, weaponName, randomWeapons, 999 );
}
}
}
get_user_name( id, name[ 0 ], 31 );
get_user_name( victim, name[ 1 ], 31 );
client_print( 0, print_center, "%s <%s> VS <%s>", lastName, name[ 0 ], name[ 1 ] );
format( lastName, charsmax( lastName ), "^3%s^1 <^4%s^1> VS <^4%s^1>", lastName, name[ 0 ], name[ 1 ] );
for( osef = 1; osef <= g_maxPlayers; osef ++ )
{
if( g_playerTeam[ osef ] != CS_TEAM_UNASSIGNED )
{
printColor( osef, lastName );
if( g_isAlive[ osef ] && osef != id && osef != victim )
{
set_user_footsteps( osef, 1 )
}
}
}
set_pev( id, pev_health, health );
set_pev( victim, pev_health, health );
g_fwAddToFullPack = register_forward( FM_AddToFullPack, "fwAddToFullPack", true );
g_fwTouch = register_forward( FM_Touch, "fwTouch", false );
EnableHamForward( g_fwTraceAttack );
EnableHamForward( g_fwTakeDamage );
EnableHamForward( g_fwThinkGrenade );
}
else
{
fwMenu_lastHandler( id, g_lastMenu, g_lastChosen );
}
}
menu_destroy( menu );
}
stock getOneTerrorist( )
{
new count;
for( new id = 1; id <= g_maxPlayers; id ++ )
{
if( g_isAlive[ id ] && g_playerTeam[ id ] == CS_TEAM_T )
{
if( count )
{
count = 0;
break;
}
else
{
count = id;
}
}
}
return count;
}
Serv info :
PHP Code:
#include < amxmodx >
new const szPre[ ] = {
"[ Info ]"
}
public plugin_init( ) {
register_plugin( "Serv Info" , "1.0" , "Aooka" );
}
public client_connect( id ) {
new szMap[ 36 ];
get_mapname( szMap , sizeof( szMap ) - 1 );
new iPlr[ 32 ] , iNum;
new iPlr2;
for( new i = 0 ; i < iNum ; i ++ ) {
iPlr2 = iPlr[ i ];
}
new szPseudo[ 32 ];
get_user_info( id , "name" , szPseudo , sizeof( szPseudo ) - 1 );
client_print( 0 , print_chat ,
"%s Les %d joueurs accueillent %s sur la map %s" ,
szPre , iPlr2 , szPseudo , szMap );
}
Un shop que javais fais jsais plus sil marche ou pas :
PHP Code:
/*
Aooka-Production
*/
#include < amxmodx >
#include < fun >
#include < fakemeta >
#include < cstrike >
#include < hamsandwich >
new bool: g_bHasSuperSpeed[ 33 ];
new const SHOP_CT[ ] = "[ Shop Gardien ]";
new const SHOP_TE[ ] = "[ Shop Prisonnier ]";
public plugin_init( )
{
register_plugin( "Shop" , "1.4" , "Aooka" );
RegisterHam( Ham_Item_PreFrame , "player" , "Player_ResetMaxSpeed" , 1 );
RegisterHam( Ham_Spawn , "player" , "Player_Spawn" , 0 );
register_logevent( "round_end" , 2 , "1=Round_End" );
register_clcmd( "say shop" , "menu" );
register_clcmd( "say /shop" , "menu" );
register_clcmd( "say !shop" , "menu" );
}
public Player_Spawn( id )
{
if( is_user_alive( id ) )
{
g_bHasSuperSpeed[ id ] = false;
}
}
public round_end( id )
{
g_bHasSuperSpeed[ id ] = false;
}
public clientputinserver( id )
{
g_bHasSuperSpeed[ id ] = false;
}
public menu( id )
{
if( is_user_alive( id ) )
{
if( cs_get_user_team( id ) == CS_TEAM_CT )
{
new Menu = menu_create( "\yShop CT :", "shopct" );
menu_additem( Menu , "\wSmoke [ \r1 000 $ \w]" , "0" );
menu_additem( Menu , "\wFlash [ \r2 000 $ \w]" , "1" );
menu_additem( Menu , "\wGravity [ \r10 000 $ \w]" , "2" );
menu_additem( Menu , "\wVitesse [ \r12 000 $ \w]" , "3" );
menu_additem( Menu , "\w+150 [ \r16 000 $ \w]" , "4" );
menu_setprop( Menu , MPROP_EXITNAME, "Sortir" );
menu_display( id , Menu );
}
else
{
new Menu1 = menu_create( "\yShop TERRO :", "shopte" );
menu_additem( Menu1 , "\wSmoke [ \r1 000 $ \w]" , "0" );
menu_additem( Menu1 , "\wHE + Flash [ \r5 000 $ \w]" , "1" );
menu_additem( Menu1 , "\wVitesse [ \r10 000 $ \w]" , "2" );
menu_additem( Menu1 , "\w1 balle de deagle [ \r14 000 $ \w]" , "3" );
menu_additem( Menu1 , "\wMac10 (\yPiou Piou \w) [ \r16 000 $ \w]" , "4" );
menu_setprop( Menu1 , MPROP_EXITNAME, "Sortir" );
menu_display( id , Menu1 );
}
}
else
{
client_print( id , print_chat , "[ Shop Erreur ] Vous devez etre vivant pour pouvoir acceder au shop !" );
}
}
public shopct( id , Menu , item )
{
if( item == MENU_EXIT )
{
menu_destroy( Menu );
return PLUGIN_CONTINUE;
}
switch( item )
{
case 0:
{
if( user_has_weapon( id , CSW_SMOKEGRENADE ) )
{
client_print( id , print_chat , "%s Tu as deja cet item !" , SHOP_CT );
return PLUGIN_HANDLED;
}
else if( cs_take_user_money( id , 1000 ) )
{
give_item( id , "weapon_smokegrenade" );
client_print( id , print_chat , "%s Vous avez pris une smoke !" , SHOP_CT );
}
}
case 1:
{
if( user_has_weapon( id , CSW_FLASHBANG ) )
{
client_print( id , print_chat , "%s Tu as deja cet item !" , SHOP_CT );
return PLUGIN_HANDLED;
}
else if( cs_take_user_money( id , 2000 ) )
{
give_item( id , "weapon_flashbang" );
client_print( id , print_chat , "%s Vous avez pris une flash !" , SHOP_CT );
}
}
case 2:
{
if( cs_take_user_money( id , 10000 ) )
{
set_user_gravity( id , 0.4 );
client_print( id , print_chat , "%s Vous avez pris de la gravity !" , SHOP_CT );
}
}
case 3:
{
if( g_bHasSuperSpeed[ id ] )
{
client_print( id , print_chat , "%s Tu as deja cet item !" , SHOP_CT );
return PLUGIN_HANDLED;
}
else if( cs_take_user_money( id , 12000 ) )
{
g_bHasSuperSpeed[ id ] = true;
client_print( id , print_chat , "%s Vous avez pris de la vitesse !" , SHOP_CT );
}
}
case 4:
{
if( cs_take_user_money( id , 16000 ) )
{
set_user_health( id , get_user_health( id ) +150 );
client_print( id , print_chat , "%s Vous avez pris + 150 hp !" , SHOP_CT );
}
}
}
menu_destroy( Menu );
return PLUGIN_HANDLED;
}
public shopte( id , Menu1 , item )
{
if( item == MENU_EXIT )
{
menu_destroy( Menu1 );
return PLUGIN_CONTINUE;
}
switch( item )
{
case 0:
{
if( user_has_weapon( id , CSW_SMOKEGRENADE ) )
{
client_print( id, print_chat, "%s Tu as deja cet item !" , SHOP_TE );
return PLUGIN_HANDLED;
}
else if( cs_take_user_money( id , 1000 ) )
{
give_item( id , "weapon_smokegrenade" );
client_print( id , print_chat , "%s Vous avez pris une smokegrenade !" , SHOP_TE );
}
}
case 1:
{
if( user_has_weapon( id , CSW_HEGRENADE || CSW_FLASHBANG ) )
{
client_print( id , print_chat , "%s Tu as deja cet item !" , SHOP_TE );
return PLUGIN_HANDLED;
}
else if( cs_take_user_money( id , 5000 ) )
{
give_item( id , "weapon_hegrenade" );
give_item( id , "weapon_flashbang" );
client_print( id , print_chat , "%s Vous avez pris une he et une flash !" , SHOP_TE );
}
}
case 2:
{
if( g_bHasSuperSpeed[ id ] )
{
client_print( id , print_chat , "%s Tu as deja cet item !" , SHOP_TE );
return PLUGIN_HANDLED;
}
else if( cs_take_user_money( id , 10000 ) )
{
g_bHasSuperSpeed[ id ] = true;
client_print( id , print_chat , "%s Vous avez pris de la vitesse !" , SHOP_TE );
}
}
case 3:
{
if( user_has_weapon( id , CSW_DEAGLE ) )
{
client_print( id , print_chat , "%s Tu as deja cet item !" , SHOP_TE );
return PLUGIN_HANDLED;
}
else if( cs_take_user_money( id , 14000 ) )
{
give_item( id , "weapon_deagle" );
client_print( id , print_chat , "%s Vous avez pris un deagle avec une balle !" , SHOP_TE );
}
}
case 4:
{
if( user_has_weapon( id , CSW_MAC10 ) )
{
client_print( id , print_chat , "%s Tu as deja cet item !" , SHOP_TE );
return PLUGIN_HANDLED;
}
else if( cs_take_user_money( id , 16000 ) )
{
give_item( id , "weapon_mac10" );
cs_set_user_bpammo( id , CSW_MAC10 , 250 );
client_print( id , print_chat , "%s Vous avez pris un Piou Piou !" , SHOP_TE );
}
}
}
menu_destroy( Menu1 );
return PLUGIN_HANDLED;
}
stock cs_take_user_money( id , amount )
{
new money = cs_get_user_money( id );
if( money < amount )
{
client_print( id , print_chat , "[ Shop ] Tu n'as pas assez d'argent" );
return 0;
}
cs_set_user_money( id , min( (money-amount) , 16000 ) );
return 1;
}
public Player_ResetMaxSpeed( id )
{
if( is_user_alive( id ) && g_bHasSuperSpeed[ id ] && get_user_maxspeed( id ) != 1.0 )
{
set_pev( id , pev_maxspeed , 480.0 );
}
}
Jail classe avec menu
PHP Code:
#include <amxmodx>
#include <fun>
#include <fakemeta>
#include <cstrike>
#include <hamsandwich>
#define VERSION "1.0"
new g_PlayersSpeed
public plugin_init()
{
register_plugin("Armes", VERSION, "R@pid0'")
RegisterHam(Ham_Spawn, "player", "PlayerSpawn", 1)
g_PlayersSpeed = register_cvar("players_speed", "700")
}
public PlayerSpawn(id)
{
if(is_user_alive(id))
{
strip_user_weapons(id)
set_pdata_int(id, 116, 0)
give_item(id, "weapon_knife")
switch(cs_get_user_team(id))
{
case CS_TEAM_T: terro(id);
case CS_TEAM_CT: race(id);
}
}
}
public race(id)
{
new menu = menu_create("Choisis ta classe de Garde", "furien_menu")
menu_additem(menu, "\wMilitaire \y- \w[ \rM4 \w+ \rDeagle \w]", "1")
menu_additem(menu, "\wSniper \y- \w[ \rAwp \w+ \rDeagle \w]", "2")
menu_additem(menu, "\wMarine \y- \w[ \rMitrailleuse \w+ \rUsp \w]", "3")
menu_additem(menu, "\wGarde \y- \w[ \rAk47 \w+ \rDeagle \w+ \rFlash \w]", "4")
menu_setprop(menu, MPROP_EXITNAME, "Quitter")
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, menu)
}
public terro(id)
{
new menu = menu_create("Choisis ta classe de Prisonnier", "terro_menu")
menu_additem(menu, "\wAssasin \y- \w[ \rGravite \w+ \rArmure \w]", "1")
menu_additem(menu, "\wDealer \y- \w[ \r140Hp \w+ \rArmure \w]", "2")
menu_additem(menu, "\wPedophile \y- \w[ \rVitesse \w+ \rArmure \w]", "3")
menu_additem(menu, "\wTerroriste \y- \w[ \rHe \w+ \rArmure \w]", "4")
menu_setprop(menu, MPROP_EXITNAME, "Quitter")
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, menu)
}
public furien_menu(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED;
}
new info[3]
new access, callback
menu_item_getinfo(menu, item, access, info, 6, _, _, callback)
if(is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT)
{
new key = str_to_num(info)
switch(key)
{
case 1:
{
give_item(id, "weapon_m4a1")
cs_set_user_bpammo(id, CSW_M4A1, 9000)
give_item(id, "weapon_deagle")
cs_set_user_bpammo(id, CSW_DEAGLE, 3500)
}
case 2:
{
give_item(id, "weapon_awp")
cs_set_user_bpammo(id, CSW_AWP, 9000)
give_item(id, "weapon_deagle")
cs_set_user_bpammo(id, CSW_DEAGLE, 3500)
}
case 3:
{
give_item(id,"weapon_m249")
cs_set_user_bpammo(id, CSW_M249, 9000)
give_item(id, "weapon_usp")
cs_set_user_bpammo(id, CSW_USP, 3500)
}
case 4:
{
give_item(id, "weapon_ak47")
cs_set_user_bpammo(id, CSW_AK47, 9000)
give_item(id, "weapon_deagle")
cs_set_user_bpammo(id, CSW_DEAGLE, 3500)
give_item(id, "weapon_flashbang")
}
}
}
return PLUGIN_CONTINUE;
}
public terro_menu(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED;
}
new info[3]
new access, callback
menu_item_getinfo(menu, item, access, info, 6, _, _, callback)
if(is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_T)
{
new key = str_to_num(info)
switch(key)
{
case 1:
{
set_user_gravity(id,0.400)
cs_set_user_armor(id,100, CS_ARMOR_VESTHELM)
}
case 2:
{
set_user_health( id, get_user_health(id) + 40 )
cs_set_user_armor(id,100, CS_ARMOR_VESTHELM)
}
case 3:
{
set_user_maxspeed(id, get_pcvar_float(g_PlayersSpeed))
cs_set_user_armor(id,100, CS_ARMOR_VESTHELM)
}
case 4:
{
give_item(id, "weapon_hegrenade")
cs_set_user_armor(id,100, CS_ARMOR_VESTHELM)
}
}
}
return PLUGIN_CONTINUE;
}
Classe sans menu
PHP Code:
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#define VERSION "1.0"
#define OFFSET_PRIMARYWEAPON 116
public plugin_init()
{
register_plugin("Jail Give Weapons", "1.0", "XXX")
RegisterHam(Ham_Spawn, "player", "Player_Spawn_Post", 1)
}
public Player_Spawn_Post( id )
{
if( is_user_alive(id) )
{
strip_user_weapons(id)
set_pdata_int(id, OFFSET_PRIMARYWEAPON, 0)
if( cs_get_user_team(id) == CS_TEAM_CT )
{
give_item(id, "weapon_knife")
give_item(id, "weapon_deagle")
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
give_item(id, "weapon_m4a1")
cs_set_user_bpammo(id, CSW_M4A1, 90)
cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM)
}
if( cs_get_user_team(id) == CS_TEAM_T )
{
give_item(id, "weapon_knife")
}
}
}
3D view :
PHP Code:
#include < amxmodx >
#include < engine >
#include < fakemeta >
#define CAMERA_NONE 0
#define CAMERA_3RDPERSON 1
#define CAMERA_UPLEFT 2
#define CAMERA_TOPDOWN 3
public plugin_init( ) {
register_plugin( "All view in CS" , "1.0" , "Aooka" );
register_clcmd( "say /view" , "ClCmd_View" );
register_clcmd( "say_team /view" , "ClCmd_View" );
}
public ClCmd_View( const id ) {
new iMenu = menu_create( "# Choisis ta vue :" , "Handler_Menu" );
menu_additem( iMenu , "# Vue en 3D" );
menu_additem( iMenu , "# Vue de haut a gauche" );
menu_additem( iMenu , "# Vue de haut^n" );
menu_additem( iMenu , "# Aucune vue, merci" );
menu_display( id , iMenu , 0 );
}
public Handler_Menu( const id , const iMenu , const item ) {
switch( item )
{
case 0: {
set_view( id , 1 );
client_print( id , print_chat , "Vue en 3D" );
}
case 1: {
set_view( id , 2 );
client_print( id , print_chat , "Vue de haut a gauche" );
}
case 2: {
set_view( id , 3 );
client_print( id , print_chat , "Vue de haut" );
}
case 3: {
set_view( id , 0 );
client_print( id , print_chat , "Pas de cue special" );
}
}
}
Pour pas que des gamins nique votre serveur (j'évite de nomer ^^)
PHP Code:
#include < amxmodx >
new const Plugin[ ] = "%s fix";
new const Version[ ] = "0.0.1";
public plugin_init( )
{
register_clcmd( "say", "hookSay" );
register_clcmd( "say_team", "hookSay" );
}
public hookSay( id )
{
new szArgs[ 124 ]
read_args( szArgs, 123 );
remove_quotes( szArgs );
replace_all( szArgs, 123, "%s", " s" );
}
public client_infochanged( id )
{
new szName[ 32 ];
get_user_info( id, "name", szName, 31 );
replace_all( szName, 32, "%s", " s" );
}
fix auto buy bug :
PHP Code:
#include <amxmodx>
#define PLUGIN_NAME "Fix AutoBuy Bug"
#define PLUGIN_VERSION "1.1"
#define PLUGIN_AUTHOR "PomanoB & UFPS.Team"
new g_logfile[64]
public plugin_init( )
{
register_plugin( PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR )
register_clcmd( "cl_setautobuy", "cmd_check" )
register_clcmd( "cl_setrebuy", "cmd_check" )
get_time ( "autobuy_%Y%m.log", g_logfile, charsmax ( g_logfile ) )
}
public cmd_check( id )
{
static arg[512], args, i
args = read_argc( )
for( i = 1; i < args; ++i )
{
read_argv( i, arg, charsmax( arg ) )
if( is_cmd_long( arg, charsmax( arg ) ) )
{
log_autobuy( id )
return PLUGIN_HANDLED
}
}
return PLUGIN_CONTINUE
}
stock bool:is_cmd_long( string[], const len )
{
static cmd[512]
while( strlen( string ) )
{
strtok( string, cmd, charsmax( cmd ), string, len , ' ', 1 )
if( strlen( cmd ) > 31 ) return true
}
return false
}
stock log_autobuy( id )
{
static name[32], steamid[44], ip[16]
get_user_ip( id, ip, charsmax( ip ), 1 )
get_user_authid( id, steamid, charsmax( steamid ) )
get_user_name( id, name, charsmax( name ) )
log_to_file( g_logfile, "Autobuy bug use: %s [%s] <%s>", name, ip, steamid )
}
hide terro
PHP Code:
#include <amxmodx>
#include <cstrike>
#define PLUGIN "Silent CT Kill"
#define AUTHOR "ConnorMcLeod"
#define VERSION "0.0.1"
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_message( get_user_msgid("DeathMsg"), "Message_DeathMsg" )
}
public Message_DeathMsg()
{
new iKiller = get_msg_arg_int(1)
if( is_user_alive(iKiller)
&& cs_get_user_team(iKiller) == CS_TEAM_T )
{
new iVictim = get_msg_arg_int(2)
if( cs_get_user_team(iVictim) == CS_TEAM_CT )
{
set_msg_arg_int(1, ARG_BYTE, iVictim)
}
}
}
sound (creer un dossier en mettant vos son ..)
PHP Code:
#include <amxmodx>
#include <cstrike>
#define VERSION "0.0.1"
new const LastCtMp3[] = "sound/LastSoundJail/LastCT.mp3"
new const LastTMp3[] = "sound/LastSoundJail/LastT.mp3"
new bool:g_bLastCtSoundAlreadyPlayed
new bool:g_bLastTSoundAlreadyPlayed
public plugin_init()
{
register_plugin("Last Sound Jail", "0.0.1", "XXXXX")
register_event("HLTV", "Event_HLTV_New_Round", "a", "1=0", "2=0")
register_event("DeathMsg", "Event_DeathMsg", "a")
}
public plugin_precache()
{
precache_generic(LastCtMp3)
precache_generic(LastTMp3)
}
public Event_HLTV_New_Round()
{
g_bLastCtSoundAlreadyPlayed = false
g_bLastTSoundAlreadyPlayed = false
}
public Event_DeathMsg()
{
new iPlayers[32], iNum, iNumT, iNumCt
get_players(iPlayers, iNum, "a")
for(new i; i<iNum; i++)
{
switch(cs_get_user_team(iPlayers[i]))
{
case CS_TEAM_T:
{
iNumT++
}
case CS_TEAM_CT:
{
iNumCt++
}
}
}
if(!g_bLastCtSoundAlreadyPlayed)
{
if(iNumCt == 1)
{
g_bLastCtSoundAlreadyPlayed = true
client_cmd(0, "mp3 play %s", LastCtMp3)
}
}
if(!g_bLastTSoundAlreadyPlayed)
{
if(iNumT == 1)
{
g_bLastTSoundAlreadyPlayed = true
client_cmd(0, "mp3 play %s", LastTMp3)
}
}
}
No buy
PHP Code:
#include <amxmodx>
#include <engine>
new CVAR_NAME[] = "amx_team_nobuy"
#define CVAR_DEFAULT "3"
new PLUGIN_STATE
new PLUGIN_STATE_STR[2]
new ENT_CLASS[] = "info_map_parameters"
new ENT_INDEX
new ICON_NAME[] = "buyzone"
new TEXT_MSG_ID
#define BIT_CENTER_TEXT (1<<2)
new MESSAGE_TEXT[3][] = {"", "#Terrorist_cant_buy", "#CT_cant_buy"}
public plugin_precache() {
PLUGIN_STATE = get_cvar_num(CVAR_NAME)
if (PLUGIN_STATE < 1 || PLUGIN_STATE > 3)
return
num_to_str(PLUGIN_STATE, PLUGIN_STATE_STR, 1)
ENT_INDEX = create_entity(ENT_CLASS)
DispatchKeyValue(ENT_INDEX, "buying", PLUGIN_STATE_STR)
DispatchKeyValue(ENT_INDEX, "bombradius", "500")
DispatchSpawn(ENT_INDEX)
}
public pfn_keyvalue(entid) {
if (!PLUGIN_STATE)
return
new class[24], temp1[2], temp2[2]
copy_keyvalue(class, 23, temp1, 1, temp2, 1)
if (equal(class, ENT_CLASS)) { // is map contains own "info_map_parameters" entity?
if (ENT_INDEX) {
// remove "info_map_parameters" entity which was created in plugin_precache
// in other case map custom bomb explosion radius may be messed
remove_entity(ENT_INDEX)
ENT_INDEX = 0
}
DispatchKeyValue(entid, "buying", PLUGIN_STATE_STR)
}
}
public plugin_init() {
register_plugin("Team No Buy", "0.2", "VEN")
register_cvar(CVAR_NAME, CVAR_DEFAULT)
if (!PLUGIN_STATE)
return
register_message(get_user_msgid("StatusIcon"), "message_status_icon")
TEXT_MSG_ID = get_user_msgid("TextMsg")
register_clcmd("buy", "block_menu")
register_clcmd("buyequip", "block_menu")
set_cvar_num("sv_restartround", 1)
}
public message_status_icon(msg_id, msg_dest, id) {
if (!(PLUGIN_STATE & get_user_teamid(id)))
return PLUGIN_CONTINUE
new icon[8]
get_msg_arg_string(2, icon, 7)
if (equal(icon, ICON_NAME))
return PLUGIN_HANDLED
return PLUGIN_CONTINUE
}
public block_menu(id) {
if (!is_user_alive(id))
return PLUGIN_CONTINUE
new team = get_user_teamid(id)
if (!(PLUGIN_STATE & team))
return PLUGIN_CONTINUE
msg_team_cant_buy(id, team)
return PLUGIN_HANDLED
}
/* ************************************************** Stocks *************************************************** */
stock get_user_teamid(id) {
new tchar[2]
get_user_team(id, tchar, 1)
switch (tchar[0]) {
case 'T': return 1
case 'C': return 2
}
return 0
}
stock msg_team_cant_buy(id, team) {
message_begin(MSG_ONE, TEXT_MSG_ID, {0, 0, 0}, id)
write_byte(BIT_CENTER_TEXT)
write_string(MESSAGE_TEXT[team])
message_end()
}
/* **************************************************** EOF **************************************************** */
rules
PHP Code:
#include < amxmodx >
#include < hamsandwich >
new g_iMenu, g_bFirstSpawn[ 33 ];
public plugin_init( )
{
RegisterHam( Ham_Spawn, "player", "CBasePlayer_Spawn_Post", true );
register_clcmd( "say /rules", "DisplayRules" );
g_iMenu = menu_create( "Regles du serveur", "handler" );
menu_additem( g_iMenu, "Lire les regles", "1" );
menu_additem( g_iMenu, "Ne pas lire les regles", "2" );
}
public CBasePlayer_Spawn_Post( id )
{
if( is_user_alive( id ) && g_bFirstSpawn[ id ] )
{
menu_display( id, g_iMenu );
g_bFirstSpawn[ id ] = false;
}
}
public handler( id, menu, item )
{
if( item == MENU_EXIT )
{
return PLUGIN_HANDLED;
}
switch( item )
{
case 0:DisplayRules( id );
case 1:return PLUGIN_HANDLED;
}
return PLUGIN_HANDLED;
}
public DisplayRules( id )
{
show_motd( id, "addons/amxmodx/data/lang/jailrules.txt" );
}
public client_putinserver( id )
{
g_bFirstSpawn[ id ] = true
}
ScopeAlert
PHP Code:
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#pragma semicolon 1
new g_Enabled;
new g_msgScreenFade;
new bool:g_AlreadyZoomed[33];
public plugin_init() {
register_plugin( "Scope Alert", "1.1", "xPaw" );
register_forward( FM_PlayerPreThink, "fwdPlayerPreThink" );
g_Enabled = register_cvar( "sv_scopealert", "1" );
g_msgScreenFade = get_user_msgid( "ScreenFade" );
}
public fwdPlayerPreThink( id ) {
if( get_pcvar_num(g_Enabled) && is_user_alive(id) ) {
new iTarget, iBody;
get_user_aiming( id, iTarget, iBody );
if( is_user_alive(iTarget) && !g_AlreadyZoomed[iTarget] && get_user_team(id) != get_user_team(iTarget) ) {
if ( CS_SET_FIRST_ZOOM <= cs_get_user_zoom(id) <= CS_SET_SECOND_ZOOM ) {
message_begin( MSG_ONE_UNRELIABLE, g_msgScreenFade, _, iTarget );
write_short( 500 ); // duration
write_short( 500 ); // hold time
write_short( SF_FADE_IN ); // flags
write_byte( 255 ); // red
write_byte( 010 ); // green
write_byte( 010 ); // blue
write_byte( 60 ); // alpha
message_end();
// Doing delay, to prevent total red screen on target. :)
g_AlreadyZoomed[iTarget] = true;
set_task(2.0, "fnRemoveZoomed", iTarget);
}
}
}
}
public client_connect( id )
if( get_pcvar_num(g_Enabled) )
g_AlreadyZoomed[id] = false;
public fnRemoveZoomed( id )
g_AlreadyZoomed[id] = false;
team join
PHP Code:
#include <amxmodx>
enum
{
TEAM_NONE = 0,
TEAM_T,
TEAM_CT,
TEAM_SPEC,
MAX_TEAMS
};
new const g_cTeamChars[MAX_TEAMS] =
{
'U',
'T',
'C',
'S'
};
new const g_sTeamNums[MAX_TEAMS][] =
{
"0",
"1",
"2",
"3"
};
new const g_sClassNums[MAX_TEAMS][] =
{
"1",
"2",
"3",
"4"
};
// Old Style Menus
stock const FIRST_JOIN_MSG[] = "#Team_Select";
stock const FIRST_JOIN_MSG_SPEC[] = "#Team_Select_Spect";
stock const INGAME_JOIN_MSG[] = "#IG_Team_Select";
stock const INGAME_JOIN_MSG_SPEC[] = "#IG_Team_Select_Spect";
const iMaxLen = sizeof(INGAME_JOIN_MSG_SPEC);
// New VGUI Menus
stock const VGUI_JOIN_TEAM_NUM = 2;
new g_iTeam[33];
new g_iPlayers[MAX_TEAMS];
new tjm_join_team;
new tjm_switch_team;
new tjm_class[MAX_TEAMS];
new tjm_block_change;
public plugin_init()
{
register_plugin("Team Join Management", "0.3", "Exolent");
register_event("TeamInfo", "event_TeamInfo", "a");
register_message(get_user_msgid("ShowMenu"), "message_ShowMenu");
register_message(get_user_msgid("VGUIMenu"), "message_VGUIMenu");
tjm_join_team = register_cvar("tjm_join_team", "1");
tjm_switch_team = register_cvar("tjm_switch_team", "1");
tjm_class[TEAM_T] = register_cvar("tjm_class_t", "2");
tjm_class[TEAM_CT] = register_cvar("tjm_class_ct", "4");
tjm_block_change = register_cvar("tjm_block_change", "1");
}
public plugin_cfg()
{
set_cvar_num("mp_limitteams", 32);
set_cvar_num("sv_restart", 1);
}
public client_disconnect(id)
{
remove_task(id);
}
public event_TeamInfo()
{
new id = read_data(1);
new sTeam[32], iTeam;
read_data(2, sTeam, sizeof(sTeam) - 1);
for(new i = 0; i < MAX_TEAMS; i++)
{
if(g_cTeamChars[i] == sTeam[0])
{
iTeam = i;
break;
}
}
if(g_iTeam[id] != iTeam)
{
g_iPlayers[g_iTeam[id]]--;
g_iTeam[id] = iTeam;
g_iPlayers[iTeam]++;
}
}
public message_ShowMenu(iMsgid, iDest, id)
{
static sMenuCode[iMaxLen];
get_msg_arg_string(4, sMenuCode, sizeof(sMenuCode) - 1);
if(equal(sMenuCode, FIRST_JOIN_MSG) || equal(sMenuCode, FIRST_JOIN_MSG_SPEC))
{
if(should_autojoin(id))
{
set_autojoin_task(id, iMsgid);
return PLUGIN_HANDLED;
}
}
else if(equal(sMenuCode, INGAME_JOIN_MSG) || equal(sMenuCode, INGAME_JOIN_MSG_SPEC))
{
if(should_autoswitch(id))
{
set_autoswitch_task(id, iMsgid);
return PLUGIN_HANDLED;
}
else if(get_pcvar_num(tjm_block_change))
{
return PLUGIN_HANDLED;
}
}
return PLUGIN_CONTINUE;
}
public message_VGUIMenu(iMsgid, iDest, id)
{
if(get_msg_arg_int(1) != VGUI_JOIN_TEAM_NUM)
{
return PLUGIN_CONTINUE;
}
if(should_autojoin(id))
{
set_autojoin_task(id, iMsgid);
return PLUGIN_HANDLED;
}
else if(should_autoswitch(id))
{
set_autoswitch_task(id, iMsgid);
return PLUGIN_HANDLED;
}
else if((TEAM_NONE < g_iTeam[id] < TEAM_SPEC) && get_pcvar_num(tjm_block_change))
{
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
public task_Autojoin(iParam[], id)
{
new iTeam = get_new_team(get_pcvar_num(tjm_join_team));
if(iTeam != -1)
{
handle_join(id, iParam[0], iTeam);
}
}
public task_Autoswitch(iParam[], id)
{
new iTeam = get_switch_team(id);
if(iTeam != -1)
{
handle_join(id, iParam[0], iTeam);
}
}
stock handle_join(id, iMsgid, iTeam)
{
new iMsgBlock = get_msg_block(iMsgid);
set_msg_block(iMsgid, BLOCK_SET);
engclient_cmd(id, "jointeam", g_sTeamNums[iTeam]);
new iClass = get_team_class(iTeam);
if(1 <= iClass <= 4)
{
engclient_cmd(id, "joinclass", g_sClassNums[iClass - 1]);
}
set_msg_block(iMsgid, iMsgBlock);
}
stock get_new_team(iCvar)
{
switch(iCvar)
{
case 1:
{
return TEAM_T;
}
case 2:
{
return TEAM_CT;
}
case 3:
{
return TEAM_SPEC;
}
case 4:
{
new iTCount = g_iPlayers[TEAM_T];
new iCTCount = g_iPlayers[TEAM_CT];
if(iTCount < iCTCount)
{
return TEAM_T;
}
else if(iTCount > iCTCount)
{
return TEAM_CT;
}
else
{
return random_num(TEAM_T, TEAM_CT);
}
}
}
return -1;
}
stock get_switch_team(id)
{
new iTeam;
new iTCount = g_iPlayers[TEAM_T];
new iCTCount = g_iPlayers[TEAM_CT];
switch(g_iTeam[id])
{
case TEAM_T: iTCount--;
case TEAM_CT: iCTCount--;
}
if(iTCount < iCTCount)
{
iTeam = TEAM_T;
}
else if(iTCount > iCTCount)
{
iTeam = TEAM_CT;
}
else
{
iTeam = random_num(TEAM_T, TEAM_CT);
}
if(iTeam != g_iTeam[id])
{
return iTeam;
}
return -1;
}
stock get_team_class(iTeam)
{
new iClass;
if(TEAM_NONE < iTeam < TEAM_SPEC)
{
iClass = get_pcvar_num(tjm_class[iTeam]);
if(iClass < 1 || iClass > 4)
{
iClass = random_num(1, 4);
}
}
return iClass;
}
stock set_autojoin_task(id, iMsgid)
{
new iParam[2];
iParam[0] = iMsgid;
set_task(0.1, "task_Autojoin", id, iParam, sizeof(iParam));
}
stock set_autoswitch_task(id, iMsgid)
{
new iParam[2];
iParam[0] = iMsgid;
set_task(0.1, "task_Autoswitch", id, iParam, sizeof(iParam));
}
stock bool:should_autojoin(id)
{
return ((5 > get_pcvar_num(tjm_join_team) > 0) && is_user_connected(id) && !(TEAM_NONE < g_iTeam[id] < TEAM_SPEC) && !task_exists(id));
}
stock bool:should_autoswitch(id)
{
return (get_pcvar_num(tjm_switch_team) && is_user_connected(id) && (TEAM_NONE < g_iTeam[id] < TEAM_SPEC) && !task_exists(id));
}
weapon trail
PHP Code:
#include <amxmodx>
#include <fakemeta>
#define PLUGIN "Weapon Trail"
#define VERSION "2.0"
#define AUTHOR "anakin_cstrike"
#define MAX_PLAYERS 32
#define OFFSET_ENT_TO_INDEX 43
enum droptype
{
droptype_manual,
droptype_ondeath
}
new
toggle,light,vel,g_max_clients,g_max_entities;
new const g_drop[] = "drop";
new const g_wbox_class[] = "weaponbox";
new const g_wbox_model[] = "models/w_weaponbox.mdl";
new const g_wbox_model_prefix[] = "models/w_";
new const g_start_client_index = 1;
new g_command[MAX_PLAYERS + 1][sizeof g_drop + 1];
new g_trail,r,g,b;
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
register_forward(FM_SetModel, "fw_setmodel");
register_forward(FM_Touch,"fw_touch");
toggle = register_cvar("weapontrail","1");
light = register_cvar("weapontrail_light","1");
vel = register_cvar("weapontrail_vel","1");
g_max_clients = global_get(glb_maxClients);
g_max_entities = global_get(glb_maxEntities);
}
public plugin_precache()
g_trail = precache_model("sprites/smoke.spr");
public client_command(id)
read_argv(0, g_command[id], sizeof g_drop);
public fw_setmodel(ent, const model[])
{
if(get_pcvar_num(toggle) != 1)
return FMRES_IGNORED;
if(!pev_valid(ent) || !equal(model, g_wbox_model_prefix, sizeof g_wbox_model_prefix - 1) || equal(model, g_wbox_model))
return FMRES_IGNORED;
new id = pev(ent, pev_owner)
if(!(g_start_client_index <= id <= g_max_clients))
return FMRES_IGNORED;
static class[32],i;
pev(ent,pev_classname,class, sizeof class - 1)
if(!equal(class,g_wbox_class))
return FMRES_IGNORED;
for(i = g_max_clients + 1;i < g_max_entities;++i)
{
if(!pev_valid(i) || ent != pev(i, pev_owner))
continue;
new wid = get_pdata_int(i,OFFSET_ENT_TO_INDEX);
if(wid != CSW_C4)
{
new droptype:drop_type;
if(!is_user_alive(id))
drop_type = droptype_ondeath;
else if(equal(g_command[id], g_drop))
drop_type = droptype_manual;
else
return FMRES_IGNORED;
switch(drop_type)
{
case droptype_ondeath: {
if(get_user_team(id) == 1){r=255;g=0;b=0;}
else if(get_user_team(id) == 2){r=0;g=0;b=255;}
}
case droptype_manual: {
r = random(255);
g = random(255);
b = random(255);
}
}
if(get_pcvar_num(vel) == 1)
{
new Float:vel[3];
vel[0] = float(random(300));
vel[1] = float(random(300));
vel[2] = float(random(300));
set_pev(ent,pev_velocity,vel);
}
message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(TE_BEAMFOLLOW);
write_short(ent);
write_short(g_trail);
write_byte(5);
write_byte(5);
write_byte(r);
write_byte(g);
write_byte(b);
write_byte(195);
message_end();
}
}
return FMRES_IGNORED;
}
public fw_touch(touched, toucher)
{
if(get_pcvar_num(toggle) != 1)
return FMRES_IGNORED;
if(get_pcvar_num(light) != 1)
return FMRES_IGNORED;
static class[32];
pev(toucher, pev_classname, class, sizeof class - 1);
if(containi(class, "weapon") != -1 && !touched)
{
new Float:origin[3];
pev(toucher, pev_origin, origin);
message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(TE_DLIGHT);
write_coord(floatround(origin[0]));
write_coord(floatround(origin[1]));
write_coord(floatround(origin[2]));
write_byte(20);
write_byte(r);
write_byte(g);
write_byte(b);
write_byte(5);
write_byte(20);
message_end();
}
return FMRES_IGNORED;
}
Vous pouvez aussi télécharger des plugins qui se trouvent sur le net :
plugin trail
plugin specinfo
Skin
stuck.amxx
trail gun
weaponphys
eim.amxx
chier, pisser, ejaculer, vomir
anti fk etc
etc.
amxx.cfg
Code:
//******************************************************************************************************//
// General
//******************************************************************************************************//
sv_voicequality 3
sv_alltalk 1
mp_friendlyfire 0
mp_timelimit 30
mp_freezetime 0
mp_c4timer 35
sv_maxrate 30000
sv_minrate 5000
sv_maxupdaterate 101
sv_minupdaterate 30
sv_airaccelerate 800
mp_roundtime 4
mp_buytime 0.1
sv_cheats 0
sv_aim 0
pausable 0
mp_friendly_grenade_damage "1"
mp_falldamage "0.5"
mp_startmoney "16000"
//******************************************************************************************************//
// weapon_physics
//******************************************************************************************************//
weapon_physics_enabled "1"
weapon_physics_shoot_weapons "1"
weapon_physics_weapons_clatter "1"
//******************************************************************************************************//
// Team join management
//******************************************************************************************************//
tjm_block_change 1
tjm_join_team 4
__________________
Pawn ? Useless
|
|