hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2025.06.16. 22:10



Jelenlévő felhasználók

Jelenleg 341 felhasználó van jelen :: 1 regisztrált, 0 rejtett és 340 vendég

A legtöbb felhasználó (2761 fő) 2025.01.09. 20:06-kor tartózkodott itt.

Regisztrált felhasználók: Google [Bot]az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása Hozzászólás a témához  [3 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Csapat váltás letiltás
HozzászólásElküldve:2012.08.09. 16:39 
Offline
Őskövület
Avatar

Csatlakozott:2011.12.28. 00:35
Hozzászólások:2736
Megköszönt másnak: 56 alkalommal
Megköszönték neki: 275 alkalommal
Hali.

A csapat váltást, hogy lehet letiltani? Úgy, hogy az M betűt lehessen használni.

Itt ez a baj, hogy bejön egy menü, hogy melyik csapatba akarsz állni, és közbe bejön a csapat váltás is amikor belépsz a szerverre. És nekem csak az a menü kell ami ebben az sma-ban van. Valaki segítsen + meg a T-nek add a fegyvert azt, hogy lehet elvenni tőle??

Kód:
  1. #include < amxmodx >

  2. #include < engine >

  3. #include < cstrike >

  4. #include < fun >

  5. #include < fakemeta >

  6. #include < hamsandwich >

  7.  

  8. #define MAX_BUTTONS 100

  9. #define m_flWait 44

  10.  

  11. // Comment this line if you do not want to have fake player !

  12. #define FAKE_PLAYER

  13.  

  14. // Bot name

  15. #if defined FAKE_PLAYER

  16.         new const g_szBotName[ ] = "www.facebook.com/smclan";

  17. #endif

  18.  

  19. // Messages prefix

  20. new const g_szPrefix[ ] = "[S][M] DR]";

  21.  

  22. // Global Variables

  23. new bool:g_bHauntedHouse, bool:g_bGamerFun, bool:g_bRandromized, bool:g_bStarting, bool:g_bFirstRound;

  24. new bool:g_bEnabled, bool:g_bRestart, bool:g_bConnected[ 33 ];

  25.  

  26. new g_pRemoveBuyZone, g_pHideHuds, g_pBlockMoney, g_pLifeSystem, g_pSvRestart, g_pAutoBalance, g_pLimitTeams;

  27. new g_pNoFallDmg, g_pGameName, g_pToggle, g_pBlockSpray, g_pBlockRadio, g_pSemiclip, g_pGiveUsp, g_pBlockKill;

  28.  

  29. new g_iMsgHideWeapon, g_iMsgCrosshair, g_iMsgMoney, g_iMsgTeamInfo, g_iMsgSayText;

  30. new g_iMaxplayers, g_iHudSync, g_iHudSync2, g_iLastTerr, g_iThinker;

  31. new g_iSemiClip[ 33 ], g_Lifes[ 33 ];

  32.  

  33. #if defined FAKE_PLAYER

  34.         new g_iFakeplayer;

  35. #endif

  36.  

  37. // Macros

  38. #if cellbits == 32

  39.         #define OFFSET_BZ 235

  40. #else

  41.         #define OFFSET_BZ 268

  42. #endif

  43.  

  44. // Colorchat

  45. enum Color {

  46.         NORMAL = 1,

  47.         GREEN,

  48.         RED,

  49.         BLUE

  50. };

  51.  

  52. new TeamName[ ][ ] = {

  53.         "",

  54.         "TERRORIST",

  55.         "CT",

  56.         "SPECTATOR"

  57. };

  58.  

  59. new giPointer=0;

  60.  

  61. new gEnt[MAX_BUTTONS];

  62. new gUsed[MAX_BUTTONS];

  63. new gOnStart[MAX_BUTTONS];

  64.  

  65. new Float:gDelay[MAX_BUTTONS];

  66. new Float:gDefaultDelay[MAX_BUTTONS];

  67.  

  68. new bool:gbFreeRun=false;

  69.  

  70. //Retry

  71. #define MAX_PLAYERS 32

  72. new madmin // Menu

  73. new mcbadmin // Menu Callback

  74.  

  75. new pID[MAX_PLAYERS][22];

  76.  

  77. // =======================================================================================

  78.  

  79. public plugin_init( ) {

  80.         set_task(300.0, "hirdetes");

  81.         new const VERSION[ ] = "3.0.3";

  82.        

  83.         register_plugin( "Deathrun Manager", VERSION, "xPaw" );

  84.        

  85.         g_pToggle        = register_cvar( "deathrun_toggle",     "1" );

  86.         g_pBlockSpray    = register_cvar( "deathrun_spray",      "1" );

  87.         g_pBlockRadio    = register_cvar( "deathrun_radio",      "1" );

  88.         g_pBlockKill     = register_cvar( "deathrun_blockkill",  "1" );

  89.         g_pBlockMoney    = register_cvar( "deathrun_blockmoney", "1" );

  90.         g_pSemiclip      = register_cvar( "deathrun_semiclip",   "1" );

  91.         g_pGiveUsp       = register_cvar( "deathrun_giveusp",    "1" );

  92.         g_pHideHuds      = register_cvar( "deathrun_hidehud",    "1" );

  93.         g_pLifeSystem    = register_cvar( "deathrun_lifesystem", "1" );

  94.         g_pGameName      = register_cvar( "deathrun_gamename",   "0" );

  95.         g_pNoFallDmg     = register_cvar( "deathrun_terrnfd",    "1" );

  96.         g_pRemoveBuyZone = register_cvar( "deathrun_removebz",   "1" );

  97.        

  98.         // Lets get map name...

  99.         new szMapName[ 64 ];

  100.         get_mapname( szMapName, 63 );

  101.        

  102.         if( contain( szMapName, "deathrun_" ) != -1 || contain( szMapName, "dr_" ) != -1) {

  103.                 set_pcvar_num( g_pToggle, 1 );

  104.                

  105.                 if( contain( szMapName, "hauntedhouse" ) != -1 )

  106.                         g_bHauntedHouse = true;

  107.                 else {

  108.                         g_bHauntedHouse = false;

  109.                        

  110.                         if( equal( szMapName, "deathrun_gamerfun" ) )

  111.                                 g_bGamerFun = true;

  112.                         else

  113.                                 g_bGamerFun = false;

  114.                 }

  115.         } else

  116.                 set_pcvar_num( g_pToggle, 0 );

  117.        

  118.         g_pSvRestart   = get_cvar_pointer( "sv_restart" );

  119.         g_pAutoBalance = get_cvar_pointer( "mp_autoteambalance" );

  120.         g_pLimitTeams  = get_cvar_pointer( "mp_limitteams" );

  121.        

  122.         register_cvar( "deathrun_version", VERSION, FCVAR_SERVER | FCVAR_SPONLY );

  123.         set_cvar_string( "deathrun_version", VERSION );

  124.        

  125.         // Registering Language file

  126.         register_dictionary( "deathrun.txt" );

  127.        

  128.         // Logging Events

  129.         register_logevent( "EventRoundStart", 2, "1=Round_Start" );

  130.         register_logevent( "EventRandromize", 2, "1=Round_End" );

  131.         register_event( "SendAudio", "EventTerrsWin",   "a", "2&%!MRAD_terwin" );

  132.         register_event( "TextMsg",       "EventRandromize", "a", "2&#Game_w" );

  133.         register_event( "DeathMsg",      "EventDeath",      "a");

  134.         register_event( "Money",         "EventMoney",      "b" );

  135.         register_event( "ResetHUD",      "EventResetHud",   "be" );

  136.        

  137.         //Free

  138.         register_clcmd("say /free", "free");

  139.         register_logevent("end",2,"1=Round_End");

  140.         if( engfunc(EngFunc_FindEntityByString,-1 ,"classname", "func_button"))

  141.                 RegisterHam(Ham_Use, "func_button", "fwButtonUsed");

  142.        

  143.         if(engfunc(EngFunc_FindEntityByString,-1 ,"classname","func_rot_button"))

  144.                 RegisterHam(Ham_Use, "func_rot_button", "fwButtonUsed");

  145.                

  146.         if(engfunc(EngFunc_FindEntityByString,-1 ,"classname", "button_target"))

  147.                 RegisterHam(Ham_Use, "button_target", "fwButtonUsed");

  148.                

  149.         register_logevent( "ResetButtons", 2, "0=World triggered", "1=Round_Start");

  150.            

  151.         fillButtons("func_button");

  152.         fillButtons("func_rot_button");

  153.         fillButtons("button_target");

  154.         register_event( "CurWeapon", "fegyvervaltas", "be", "1=1", "2!29" );

  155.        

  156.         //Retry

  157.         register_cvar("amx_retrytime","10");

  158.         register_cvar("amx_retrykick","0");

  159.         register_cvar("amx_retryshow","1");

  160.         register_cvar("amx_retrychat","1");

  161.        

  162.         // %s is the player name, %t is amx_retrytime

  163.         register_cvar("amx_retrymsg","[S][M] DR] Nincs reconnect a szerveren, %s");

  164.         register_cvar("amx_retrykickmsg","[S][M] DR] A gyors reconnect nem megengedett");

  165.         register_cvar("amx_retrychatmsg","[S][M] DR] | %s kickelve, mivel ujracsatlakozott %t masodpercen belul");

  166.        

  167.         //menu

  168.         register_clcmd("chooseteam", "menu_megnyit")

  169.         register_clcmd("jointeam", "menu_megnyit")

  170.        

  171.         g_bFirstRound    = true;

  172.         g_iMaxplayers    = get_maxplayers( );

  173.         g_iMsgHideWeapon = get_user_msgid( "HideWeapon" );

  174.         g_iMsgCrosshair  = get_user_msgid( "Crosshair" );

  175.         g_iMsgMoney      = get_user_msgid( "Money" );

  176.         g_iMsgSayText    = get_user_msgid( "SayText" );

  177.         g_iMsgTeamInfo   = get_user_msgid( "TeamInfo" );

  178.        

  179.         g_iHudSync       = CreateHudSyncObj( );

  180.         g_iHudSync2      = CreateHudSyncObj( );

  181.        

  182.         if( get_pcvar_num( g_pToggle ) ) {

  183.                 RegisterHam( Ham_TakeDamage, "player", "FwdHamPlayerDamage" );

  184.                 RegisterHam( Ham_Spawn,      "player", "FwdHamPlayerSpawn", 1 );

  185.                 register_forward( FM_ClientKill,       "FwdClientKill" );

  186.                 register_impulse( 201, "FwdImpulse_201" );

  187.                

  188.                 if( get_pcvar_num( g_pGameName ) )

  189.                         register_forward( FM_GetGameDescription, "FwdGameDesc" );

  190.                

  191.                 register_clcmd( "say /lifes", "CmdShowlifes" );

  192.                 register_clcmd( "say /lives", "CmdShowlifes" );

  193.                

  194.                 register_clcmd( "radio1", "CmdRadio" );

  195.                 register_clcmd( "radio2", "CmdRadio" );

  196.                 /* Menu admin */

  197.                 /* Use menu_display(id, madmin, 0) to show the menu to an user. */

  198.                 madmin = menu_create("admin", "mh_admin")

  199.                 mcbadmin = menu_makecallback("mcb_admin")

  200.                 menu_additem(madmin, "deathrunmanager", "ma_admin", ADMIN_ALL, mcbadmin)

  201.                 /* Menu End */

  202.  

  203.                 register_clcmd( "radio3", "CmdRadio" );

  204.                

  205.                 // Terrorist Check

  206.                 g_iThinker= create_entity( "info_target" );

  207.                

  208.                 if( is_valid_ent( g_iThinker ) ) {

  209.                         entity_set_string( g_iThinker, EV_SZ_classname, "DeathrunThinker" );

  210.                         entity_set_float( g_iThinker, EV_FL_nextthink, get_gametime( ) + 20.0 );

  211.                        

  212.                         g_bRestart = true;

  213.                        

  214.                         // First think will happen in 20.0, Restart will be done there.

  215.                        

  216.                         register_think( "DeathrunThinker", "FwdThinker" );

  217.                 } else {

  218.                         set_task( 15.0, "CheckTerrorists", _, _, _, "b" );

  219.                        

  220.                         // Lets make restart after 20 seconds from map start.

  221.                         set_task( 20.0, "RestartRound" );

  222.                 }

  223.                

  224.                 if( get_pcvar_num( g_pRemoveBuyZone ) ) {

  225.                         register_message( get_user_msgid( "StatusIcon" ), "MsgStatusIcon" ); // BuyZone Icon

  226.                        

  227.                         // Remove buyzone on map

  228.                         remove_entity_name( "info_map_parameters" );

  229.                         remove_entity_name( "func_buyzone" );

  230.                        

  231.                         // Create own entity to block buying

  232.                         new iEntity = create_entity( "info_map_parameters" );

  233.                        

  234.                         DispatchKeyValue( iEntity, "buying", "3" );

  235.                         DispatchSpawn( iEntity );

  236.                 }

  237.                

  238.                 if( get_pcvar_num( g_pSemiclip ) ) {

  239.                         register_forward( FM_StartFrame,        "FwdStartFrame", 0 );

  240.                         register_forward( FM_AddToFullPack,     "FwdFullPack",   1 );

  241.                 }

  242.                

  243.                 g_bEnabled = true;

  244.                

  245.         #if defined FAKE_PLAYER

  246.                 new iEntity, iCount;

  247.                

  248.                 while( ( iEntity = find_ent_by_class( iEntity, "info_player_deathmatch" ) ) > 0 )

  249.                         if( iCount++ > 1 )

  250.                                 break;

  251.                

  252.                 if( iCount <= 1 )

  253.                         g_iFakeplayer = -1;

  254.                

  255.                 set_task( 5.0, "UpdateBot" );

  256.                

  257.                 register_message( get_user_msgid( "DeathMsg" ), "MsgDeathMsg" );

  258.         #endif

  259.         } else

  260.                 g_bEnabled = false;

  261. }

  262.  

  263. // FAKEPLAYER

  264. ///////////////////////////////////////////

  265. #if defined FAKE_PLAYER

  266.         public UpdateBot( ) {

  267.                 if( g_iFakeplayer == -1 )

  268.                         return;

  269.                

  270.                 new id = find_player( "i" );

  271.                

  272.                 if( !id ) {

  273.                         id = engfunc( EngFunc_CreateFakeClient, g_szBotName );

  274.                         if( pev_valid( id ) ) {

  275.                                 engfunc( EngFunc_FreeEntPrivateData, id );

  276.                                 dllfunc( MetaFunc_CallGameEntity, "player", id );

  277.                                 set_user_info( id, "rate", "3500" );

  278.                                 set_user_info( id, "cl_updaterate", "25" );

  279.                                 set_user_info( id, "cl_lw", "1" );

  280.                                 set_user_info( id, "cl_lc", "1" );

  281.                                 set_user_info( id, "cl_dlmax", "128" );

  282.                                 set_user_info( id, "cl_righthand", "1" );

  283.                                 set_user_info( id, "_vgui_menus", "0" );

  284.                                 set_user_info( id, "_ah", "0" );

  285.                                 set_user_info( id, "dm", "0" );

  286.                                 set_user_info( id, "tracker", "0" );

  287.                                 set_user_info( id, "friends", "0" );

  288.                                 set_user_info( id, "*bot", "1" );

  289.                                 set_pev( id, pev_flags, pev( id, pev_flags ) | FL_FAKECLIENT );

  290.                                 set_pev( id, pev_colormap, id );

  291.                                

  292.                                 new szMsg[ 128 ];

  293.                                 dllfunc( DLLFunc_ClientConnect, id, g_szBotName, "127.0.0.1", szMsg );

  294.                                 dllfunc( DLLFunc_ClientPutInServer, id );

  295.                                

  296.                                 cs_set_user_team( id, CS_TEAM_T );

  297.                                 ExecuteHamB( Ham_CS_RoundRespawn, id );

  298.                                

  299.                                 set_pev( id, pev_effects, pev( id, pev_effects ) | EF_NODRAW );

  300.                                 set_pev( id, pev_solid, SOLID_NOT );

  301.                                 dllfunc( DLLFunc_Think, id );

  302.                                

  303.                                 g_iFakeplayer = id;

  304.                         }

  305.                 }

  306.         }

  307.        

  308.         public MsgDeathMsg( const iMsgId, const iMsgDest, const id ) {

  309.                 if( get_msg_arg_int( 2 ) == g_iFakeplayer )

  310.                         return PLUGIN_HANDLED;

  311.                

  312.                 return PLUGIN_CONTINUE;

  313.         }

  314. #endif

  315. //Menü

  316. public menu_megnyit(id)

  317. {

  318.     new menu = menu_create("Melyik csapatba akarsz allni?", "menu_handler");

  319.     menu_additem(menu, "Counter Terrorist", "1", 0);

  320.     menu_additem(menu, "Spectator", "2", 0);

  321.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);

  322.     menu_display(id, menu, 0);

  323. }

  324. public menu_handler(id, menu, item)

  325. {

  326.     if( item == MENU_EXIT )

  327.     {

  328.         menu_destroy(menu);

  329.         return PLUGIN_HANDLED;

  330.     }

  331.  

  332.     new data[6], szName[64];

  333.     new access, callback;

  334.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);

  335.  

  336.     new key = str_to_num(data);

  337.     switch(key)

  338.     {

  339.         case 1:

  340.         {

  341.             user_silentkill(id)

  342.             cs_set_user_team(id, CS_TEAM_CT)

  343.            

  344.         }

  345.         case 2:

  346.         {

  347.             user_silentkill(id)

  348.             cs_set_user_team(id, CS_TEAM_SPECTATOR)

  349.         }

  350.     }

  351.     menu_destroy(menu);

  352.     return PLUGIN_HANDLED;

  353. }

  354.  

  355. //Hirdetés

  356. public hirdetes()

  357. {

  358.         ColorChat(0, GREEN, "^x03[S][M] DR] ^x01 A Szerveren [S][M] DR MOD 1.2.2 fut. keszitette: ^x04.Valaki");

  359. }

  360.  

  361. //Free

  362. public fegyvervaltas(id)

  363.     if(gbFreeRun)

  364.         freeweapon(id);

  365.    

  366. freeweapon(id)

  367.     engclient_cmd( id, "weapon_knife" );

  368. public free()

  369.         nincsgomb();

  370.        

  371. public end() {

  372.     alapgombok();

  373. }

  374. public plugin_cfg() {

  375.     alapgombok();

  376. }

  377. public fwButtonUsed(this, idcaller, idactivator, use_type, Float:value){

  378.     if(idcaller!=idactivator) return HAM_IGNORED;

  379.    

  380.     if(pev(this, pev_frame) > 0.0)

  381.          return HAM_IGNORED;

  382.     new index=get_ent_index(this);

  383.     if(index==-1)

  384.         return HAM_IGNORED;

  385.     if(get_user_team(idcaller)&1){

  386.        

  387.         if(gbFreeRun){

  388.             ColorChat(idcaller,GREEN, "[S][M] DR]^x01 Freerun van - Nem nyomhatsz gombokat!");

  389.             return HAM_SUPERCEDE;

  390.         }

  391.         else if(gUsed[index]<=0 && gOnStart[index]!=-1){

  392.             set_hudmessage(0, 255, 255, 0.3, 0.2, 0, 6.0, 12.0);

  393.             show_hudmessage(idcaller, "Egy gombot csak^negyszer hasznalhatsz!");

  394.             return HAM_SUPERCEDE;

  395.         }

  396.         else{

  397.             if(gUsed[index]>0)

  398.                 if(--gUsed[index]){

  399.                     ColorChat(idcaller, GREEN, "[S][M] DR]^x01 Ezt a csapdat meg hasznalhatod!");

  400.                 }else

  401.                     ColorChat(idcaller, GREEN, "[S][M] DR]^x01 Ezt a csapdat mar nem hasznalhatod tobbszor!");

  402.         }

  403.     }

  404.    

  405.     set_task(0.1,"setDelay",this);

  406.    

  407.     return HAM_IGNORED;

  408. }

  409. public setDelay(this){

  410.     new index=get_ent_index(this);

  411.     set_pev(this, pev_nextthink, pev(this, pev_ltime)+gDelay[index]+0.01);

  412. }

  413.  

  414. public ResetButtons(){

  415.     gbFreeRun=false;

  416.     for(new i=0;i<MAX_BUTTONS;i++){

  417.         gUsed[i]=gOnStart[i];

  418.         restoreButton(gEnt[i]);

  419.     }

  420. }

  421.  

  422. alapgombok(){

  423.     new iDef= 1;

  424.     for(new i=0;i<giPointer;i++){

  425.         gUsed[i]=iDef;

  426.         gOnStart[i]=iDef;

  427.         gDelay[i]=get_pdata_float(gEnt[i],m_flWait);

  428.         gDefaultDelay[i]=gDelay[i];

  429.     }

  430. }

  431.  

  432. nincsgomb(bool:bFR=true){

  433.     gbFreeRun=bFR;

  434.  

  435.  

  436.     if(gbFreeRun){

  437.         ColorChat(0, GREEN, "[S][M] DR] ^3FREE ^1VAN ! ^1FREE ^3VAN ! ^4FREE ^1VAN !");

  438.         ColorChat(0, GREEN, "[S][M] DR] ^1FREE ^3VAN ! ^3FREE ^4VAN ! ^3FREE ^4VAN !");

  439.         ColorChat(0, GREEN, "[S][M] DR] ^3FREE ^4VAN ! ^3FREE ^1VAN ! ^1FREE ^3VAN !");

  440.     }

  441.    

  442. }

  443.  

  444. fillButtons(const szClass[]){

  445.     new ent = -1;

  446.     while((ent = engfunc(EngFunc_FindEntityByString,ent ,"classname", szClass)) != 0){

  447.         gEnt[giPointer++]=ent;

  448.         set_pev(ent, pev_iuser4, giPointer);

  449.     }

  450. }

  451.  

  452. restoreButton(ent){

  453.     if(pev(ent, pev_frame) > 0.0){

  454.         new Float:Life;

  455.         pev(ent, pev_nextthink, Life);

  456.         set_pev(ent, pev_ltime, Life-0.01);

  457.     }

  458. }

  459.  

  460. get_ent_index(ent){

  461.     return pev(ent, pev_iuser4)-1;

  462. }  

  463. // NEW TERRORIST

  464. ///////////////////////////////////////////

  465. public EventRandromize( ) {

  466.         if( !g_bEnabled || g_bFirstRound || g_bRandromized )

  467.                 return PLUGIN_CONTINUE;

  468.        

  469.         g_bRandromized = true;

  470.        

  471.         new i, iPlayers[ 32 ], iNum, iPlayer;

  472.         get_players( iPlayers, iNum, "c" );

  473.        

  474.         if( iNum <= 1 )

  475.                 return PLUGIN_CONTINUE;

  476.        

  477.         for( i = 0; i < iNum; i++ ) {

  478.                 iPlayer = iPlayers[ i ];

  479.                

  480.                 if( cs_get_user_team( iPlayer ) == CS_TEAM_T )

  481.                         cs_set_user_team( iPlayer, CS_TEAM_CT );

  482.         }

  483.        

  484.         new iRandomPlayer, CsTeams:iTeam;

  485.        

  486.         while( ( iRandomPlayer = iPlayers[ random_num( 0, iNum - 1 ) ] ) == g_iLastTerr ) { }

  487.        

  488.         g_iLastTerr = iRandomPlayer;

  489.        

  490.         iTeam = cs_get_user_team( iRandomPlayer );

  491.        

  492.         if( iTeam == CS_TEAM_T || iTeam == CS_TEAM_CT ) {

  493.                 cs_set_user_team(iRandomPlayer, CS_TEAM_T);

  494.                

  495.                 new szName[ 32 ];

  496.                 get_user_name( iRandomPlayer, szName, 31 );

  497.                

  498.                 for( i = 0; i < iNum; i++ )

  499.                         ColorChat(iPlayers[ i ], RED, "%s^4 %L", g_szPrefix, iPlayers[ i ], "DR_NOW_TERR", szName);

  500.                

  501.                 if( !g_bRestart && is_valid_ent( g_iThinker ) )

  502.                         entity_set_float( g_iThinker, EV_FL_nextthink, get_gametime( ) + 15.0 );

  503.         } else {

  504.                 g_bRandromized = false;

  505.                 EventRandromize( );

  506.         }

  507.        

  508.         return PLUGIN_CONTINUE;

  509. }

  510.  

  511. // NEW ROUND

  512. ///////////////////////////////////////////

  513. public EventRoundStart( ) {

  514.         if( !g_bEnabled )

  515.                 return PLUGIN_CONTINUE;

  516.        

  517.         g_bRandromized  = false;

  518.         g_bStarting     = false;

  519.        

  520.         new i, iPlayers[ 32 ], iNum, iRealPlayers, CsTeams:iTeam;

  521.         get_players( iPlayers, iNum, "c" );

  522.        

  523.         if( iNum <= 1 )

  524.                 return PLUGIN_CONTINUE;

  525.        

  526.         for( i = 0; i < iNum; i++ ) {

  527.                 iTeam = cs_get_user_team( iPlayers[ i ] );

  528.                

  529.                 if( iTeam == CS_TEAM_T || iTeam == CS_TEAM_CT )

  530.                         iRealPlayers++;

  531.         }

  532.        

  533.         if( iRealPlayers <= 1 ) {

  534.                 set_hudmessage( 0, 255, 255, -1.0, 0.1, 0, 4.0, 4.0, 0.5, 0.5, 4 );

  535.                

  536.                 for( i = 0; i < iNum; i++ )

  537.                         ShowSyncHudMsg( iPlayers[ i ], g_iHudSync, "%L", iPlayers[ i ], "DR_NOT_ENOUGH" );

  538.                

  539.                 return PLUGIN_CONTINUE;

  540.         }

  541.        

  542.         set_pcvar_num( g_pAutoBalance, 0 );

  543.         set_pcvar_num( g_pLimitTeams, 0 );

  544.        

  545.         if( g_bFirstRound ) {

  546.                 set_hudmessage( 0, 255, 255, -1.0, 0.1, 0, 4.0, 4.0, 0.5, 0.5, 4 );

  547.                

  548.                 for( i = 0; i < iNum; i++ ) {

  549.                         ShowSyncHudMsg( iPlayers[ i ], g_iHudSync, "%L", iPlayers[ i ], "DR_STARTING" );

  550.                         set_hudmessage(0, 255, 255, 0.3, 0.2, 0, 6.0, 12.0);

  551.                         show_hudmessage(iPlayers[ i ], "")

  552.                         ColorChat( iPlayers[ i ], RED, "%s^1 %L", g_szPrefix, iPlayers[ i ], "DR_STARTING_CC" );

  553.                 }

  554.                

  555.                 if( is_valid_ent( g_iThinker ) ) {

  556.                         g_bRestart = true;

  557.                        

  558.                         entity_set_float( g_iThinker, EV_FL_nextthink, get_gametime( ) + 19.0 );

  559.                 } else

  560.                         set_task( 19.0, "RestartRound" );

  561.                

  562.                 g_bStarting = true;

  563.                 g_bFirstRound = false;

  564.         }

  565.        

  566.         return PLUGIN_CONTINUE;

  567. }

  568.  

  569. // CHECK TERRORIST

  570. ///////////////////////////////////////////

  571. public FwdThinker( iEntity ) {

  572.         if( g_bRestart ) {

  573.                 g_bRestart = false;

  574.                

  575.                 RestartRound( );

  576.         } else

  577.                 CheckTerrorists( );

  578.        

  579.         entity_set_float( iEntity, EV_FL_nextthink, get_gametime( ) + 15.0 );

  580. }

  581.  

  582. public CheckTerrorists( ) {

  583.         if( !g_bEnabled || g_bFirstRound || g_bStarting )

  584.                 return PLUGIN_CONTINUE;

  585.        

  586.         new i, iPlayers[ 32 ], iTerrors, iNum, iRealPlayers, CsTeams:iTeam;

  587.         get_players( iPlayers, iNum, "c" );

  588.        

  589.         if( iNum <= 1 )

  590.                 return PLUGIN_CONTINUE;

  591.        

  592.         for( i = 0; i < iNum; i++ ) {

  593.                 iTeam = cs_get_user_team( iPlayers[ i ] );

  594.                

  595.                 if( iTeam == CS_TEAM_T )

  596.                         iTerrors++;

  597.                

  598.                 if( iTeam == CS_TEAM_T || iTeam == CS_TEAM_CT )

  599.                         iRealPlayers++;

  600.         }

  601.        

  602.         if( iRealPlayers <= 1 ) {

  603.                 set_hudmessage( 0, 255, 255, -1.0, 0.1, 0, 4.0, 4.0, 0.5, 0.5, 4 );

  604.                

  605.                 for( i = 0; i < iNum; i++ )

  606.                         ShowSyncHudMsg( iPlayers[ i ], g_iHudSync, "%L", iPlayers[ i ], "DR_NOT_ENOUGH" );

  607.                

  608.                 return PLUGIN_CONTINUE;

  609.         }

  610.        

  611.         if( iTerrors == 0 ) {

  612.                 for( i = 0; i < iNum; i++ ) {

  613.                         ColorChat(iPlayers[ i ], RED, "%s^1 %L", g_szPrefix, iPlayers[ i ], "DR_NO_DETECT");

  614.                        

  615.                         if( is_user_alive( iPlayers[ i ] ) && cs_get_user_team( iPlayers[ i ] ) == CS_TEAM_CT )

  616.                                 user_silentkill( iPlayers[ i ] );

  617.                 }

  618.                

  619.                 set_task( 0.5, "EventRandromize" );

  620.         }

  621.        

  622.         return PLUGIN_CONTINUE;

  623. }

  624.  

  625. // LIFE SYSTEM

  626. ///////////////////////////////////////////

  627. public EventTerrsWin( ) {

  628.         if( !g_bEnabled || g_bFirstRound )

  629.                 return PLUGIN_CONTINUE;

  630.        

  631.         new iPlayers[ 32 ], iNum, iPlayer;

  632.         get_players( iPlayers, iNum, "c" );

  633.        

  634.         if( iNum <= 1 )

  635.                 return PLUGIN_CONTINUE;

  636.        

  637.         new iLifeCvar = get_pcvar_num( g_pLifeSystem );

  638.        

  639.         for( new i = 0; i < iNum; i++ ) {

  640.                 iPlayer = iPlayers[ i ];

  641.                

  642.                 if( cs_get_user_team( iPlayer ) == CS_TEAM_T ) {

  643.                         set_user_frags( iPlayer, get_user_frags( iPlayer ) + 3 );

  644.                        

  645.                         if( iLifeCvar == 2 )

  646.                                 g_Lifes[ iPlayer ]++;

  647.                 }

  648.         }

  649.        

  650.         return PLUGIN_CONTINUE;

  651. }

  652.  

  653. public EventDeath( ) {

  654.         if( !g_bEnabled )

  655.                 return PLUGIN_CONTINUE;

  656.        

  657. #if defined FAKE_PLAYER

  658.         new iVictim = read_data( 2 );

  659.         new iTeam = get_user_team( iVictim );

  660.        

  661.         if( iTeam == 1 && is_user_alive( g_iFakeplayer ) )

  662.                 fakedamage( g_iFakeplayer, "worldspawn", 100.0, DMG_GENERIC );

  663.        

  664.         if( !get_pcvar_num( g_pLifeSystem ) )

  665.                 return PLUGIN_CONTINUE;

  666. #else

  667.         if( !get_pcvar_num( g_pLifeSystem ) )

  668.                 return PLUGIN_CONTINUE;

  669.        

  670.         new iVictim = read_data( 2 );

  671.         new iTeam = get_user_team( iVictim );

  672. #endif

  673.        

  674.         new iKiller = read_data( 1 );

  675.        

  676.         if( iKiller != iVictim && get_user_team(iKiller) != iTeam )

  677.                 g_Lifes[iKiller]++;

  678.        

  679.         if( cs_get_user_team( iVictim ) == CS_TEAM_CT && g_Lifes[ iVictim ] > 0 ) {

  680.                 new iCTcount;

  681.                 for( new i = 1; i <= g_iMaxplayers; i++ ) {

  682.                         if( is_user_alive( i ) && cs_get_user_team( i ) == CS_TEAM_CT )

  683.                                 iCTcount++;

  684.                 }

  685.                

  686.                 if( iCTcount > 1 ) {

  687.                         set_task(3.2, "fnRevivePlayer", iVictim);

  688.                        

  689.                         ColorChat( iVictim, RED, "%s^1 %L", g_szPrefix, iVictim, "DR_LIFE_RESPAWN" );

  690.                 }

  691.                 /*else

  692.                         ColorChat( iVictim, RED, "%s^1 %L", g_szPrefix, iVictim, "DR_LIFE_CANT" );*/

  693.         }

  694.        

  695.         return PLUGIN_CONTINUE;

  696. }

  697.  

  698. public fnRevivePlayer( id ) {

  699.         if( g_bConnected[ id ] ) {

  700.                 if( cs_get_user_team( id ) == CS_TEAM_CT ) {

  701.                         new iCTcount;

  702.                         for( new i = 1; i <= g_iMaxplayers; i++ )

  703.                                 if( is_user_alive( i ) && cs_get_user_team( i ) == CS_TEAM_CT )

  704.                                         iCTcount++;

  705.                        

  706.                         if( iCTcount > 1 ) {

  707.                                 ExecuteHamB( Ham_CS_RoundRespawn, id );

  708.                                

  709.                                 g_Lifes[ id ]--;

  710.                         }

  711.                 }

  712.         }

  713. }

  714.  

  715. public CmdShowlifes( id ) {

  716.         if( get_pcvar_num( g_pLifeSystem ) == 0 ) {

  717.                 ColorChat( id, RED, "%s^1 %L", g_szPrefix, id, "DR_LIFE_DISABLE" );

  718.                 return PLUGIN_HANDLED;

  719.         }

  720.        

  721.         if( g_Lifes[ id ] > 0 )

  722.                 ColorChat( id, RED, "%s^1 %L", g_szPrefix, id, "DR_LIFE_CC_COUNT", g_Lifes[ id ] );

  723.         else

  724.                 ColorChat( id, RED, "%s^1 %L", g_szPrefix, id, "DR_LIFE_CC_NO" );

  725.        

  726.         return PLUGIN_HANDLED;

  727. }

  728.  

  729. public Showlifes( id ) {

  730.         set_hudmessage( 0, 255, 255, 0.04, 0.71, 0, 2.5, 2.5, 0.5, 0.5, 3 );

  731.        

  732.         if( g_Lifes[ id ] > 0 )

  733.                 ShowSyncHudMsg( id, g_iHudSync2, "%L", id, "DR_LIFE_COUNT", g_Lifes[ id ] );

  734.         else

  735.                 ShowSyncHudMsg( id, g_iHudSync2, "%L", id, "DR_LIFE_NO" );

  736. }

  737.  

  738. // EVENTS

  739. ///////////////////////////////////////////

  740. public EventResetHud( id ) {

  741.         if( g_bEnabled && get_pcvar_num( g_pHideHuds ) && !is_user_bot( id ) ) {

  742.                 message_begin( MSG_ONE_UNRELIABLE, g_iMsgHideWeapon, _, id );

  743.                 write_byte( ( 1<<4 | 1<<5 ) );

  744.                 message_end( );

  745.                

  746.                 message_begin( MSG_ONE_UNRELIABLE, g_iMsgCrosshair, _, id );

  747.                 write_byte( 0 );

  748.                 message_end( );

  749.         }

  750. }

  751.  

  752. public EventMoney( id ) {

  753.         if( g_bEnabled && get_pcvar_num( g_pBlockMoney ) ) {

  754.                 set_pdata_int( id, 115, 0 );

  755.                

  756.                 message_begin( MSG_ONE_UNRELIABLE, g_iMsgMoney, _, id );

  757.                 write_long ( 0 );

  758.                 write_byte ( 1 );

  759.                 message_end( );

  760.         }

  761. }

  762.  

  763. public client_putinserver( id )

  764. {

  765.         g_bConnected[ id ] = true;

  766.         if ((is_user_bot(id)) || (get_user_flags(id)&ADMIN_IMMUNITY)) {

  767.                 return PLUGIN_HANDLED;

  768.         }

  769.         cs_set_user_team(id, CS_TEAM_CT)

  770.        

  771.         // gather info

  772.         new ip[22];

  773.         get_user_ip(id,ip,21);

  774.        

  775.         for(new i = 1; i < MAX_PLAYERS; i++) {

  776.                 if (equal(ip, pID[i], 21)) {

  777.                        

  778.                         new name[34];

  779.                         get_user_name(id, name, 33);

  780.                        

  781.                         if (get_cvar_num("amx_retryshow")) {

  782.                                 new uID[1];

  783.                                 uID[0] = id;

  784.                                 set_task(2.0,"showMsg", id, uID, 1);

  785.                         }

  786.                        

  787.                         if (get_cvar_num("amx_retrychat")) {

  788.                                 new txt[128]

  789.                                 get_cvar_string("amx_retrychatmsg", txt, 127)

  790.                                 new sec[6]

  791.                                 num_to_str(get_cvar_num("amx_retrytime"),sec, 5)

  792.                                

  793.                                 replace(txt, 127, "%s", name)

  794.                                 replace(txt, 127, "%t", sec)

  795.                                

  796.                                 client_print( 0, print_chat, "[AMXX] %s", txt)

  797.                         }

  798.                                                

  799.                         if (get_cvar_num("amx_retrykick")) {

  800.                                 new uID[1]

  801.                                 uID[0] = get_user_userid(id)

  802.                                                                

  803.                                 // delayed kick

  804.                                 set_task(7.0,"kick",77,uID,1)

  805.                                

  806.                         }

  807.                        

  808.                         break

  809.                 }

  810.         }

  811.        

  812.         return PLUGIN_HANDLED;

  813. }

  814.  

  815. public client_disconnect( id ) {

  816.         g_bConnected[ id ] = false;

  817.         CheckTerrorists( );

  818.        

  819.         if( !g_bRestart && is_valid_ent( g_iThinker ) )

  820.                 entity_set_float( g_iThinker, EV_FL_nextthink, get_gametime( ) + 15.0 );

  821.        

  822. #if defined FAKE_PLAYER

  823.         if( g_iFakeplayer == id ) {

  824.                 set_task( 1.5, "UpdateBot" );

  825.                

  826.                 g_iFakeplayer = 0;

  827.         }

  828. #endif

  829.         if ((is_user_bot(id)) || (get_user_flags(id)&ADMIN_IMMUNITY)) {

  830.         return PLUGIN_HANDLED; }

  831.  

  832.         // gather info

  833.         new ip[22]

  834.         get_user_ip(id,ip,21)

  835.         new found = 0;

  836.        

  837.         for(new i = 1; i < MAX_PLAYERS; i++) {

  838.                 if (equal(ip, pID[i], 21)) {

  839.                         // this user has been already kicked

  840.                         found = 1

  841.                         break

  842.                 }

  843.         }

  844.        

  845.         if (found == 0) {

  846.                 for(new i = 1; i < MAX_PLAYERS; i++) {

  847.                         if (pID[i][0] == 0) {   // found empty slot

  848.                                 get_user_ip(id, pID[i], 21)

  849.                                 new aID[1]

  850.                                 aID[0] = i

  851.                                 set_task( get_cvar_float("amx_retrytime"), "cleanID", (id + MAX_PLAYERS),aID,1)

  852.                                                

  853.                                 break

  854.                         }

  855.                 }

  856.         }

  857.         return PLUGIN_HANDLED;

  858. }

  859. public cleanID(i[]) {

  860.         pID[i[0]][0] = 0

  861. }

  862.  

  863. public showMsg(pID[]) {

  864.         new txt[128]

  865.         get_cvar_string("amx_retrymsg", txt, 127)

  866.        

  867.         new playername[34]

  868.         get_user_name(pID[0], playername, 33)

  869.        

  870.         new sec[6]

  871.         num_to_str(get_cvar_num("amx_retrytime"),sec, 5)

  872.        

  873.         replace(txt, 127, "%s", playername)

  874.         replace(txt, 127, "%t", sec)

  875.        

  876.         set_hudmessage(255, 255, 255, 0.05, 0.72, 0, 5.0, 10.0, 2.0, 0.15, 3)

  877.         show_hudmessage(pID[0],txt)

  878. }

  879.  

  880. public kick(id[]) {

  881.         new txt[128]

  882.         get_cvar_string("amx_retrykickmsg", txt, 127)

  883.         server_cmd("kick #%d ^"%s^"", id[0], txt)

  884. }

  885.  

  886.  

  887. // SEMICLIP

  888. ///////////////////////////////////////////

  889. public FwdFullPack( es, e, ent, host, flags, player, pSet ) {

  890.         if( !g_bEnabled )

  891.                 return FMRES_IGNORED;

  892.        

  893.         if( player && g_iSemiClip[ ent ] && g_iSemiClip[ host ] ) {

  894.                 set_es( es, ES_Solid, SOLID_NOT );

  895.                 set_es( es, ES_RenderMode, kRenderTransAlpha );

  896.                 set_es( es, ES_RenderAmt, 85 );

  897.         }

  898.        

  899.         return FMRES_IGNORED;

  900. }

  901.  

  902. public FwdStartFrame( ) {

  903.         if( !g_bEnabled )

  904.                 return FMRES_IGNORED;

  905.        

  906.         static iPlayers[ 32 ], iNum, iPlayer, iPlayer2, i, j;

  907.         get_players( iPlayers, iNum, "ache", "CT" );

  908.        

  909.         arrayset( g_iSemiClip, 0, 32 );

  910.        

  911.         if( iNum <= 1 )

  912.                 return FMRES_IGNORED;

  913.        

  914.         for( i = 0; i < iNum; i++ ) {

  915.                 iPlayer = iPlayers[ i ];

  916.                

  917.                 for( j = 0; j < iNum; j++ ) {

  918.                         iPlayer2 = iPlayers[ j ];

  919.                        

  920.                         if( iPlayer == iPlayer2 )

  921.                                 continue;

  922.                        

  923.                         if( g_iSemiClip[ iPlayer ] && g_iSemiClip[ iPlayer2 ] )

  924.                                 continue;

  925.                        

  926.                         if( entity_range( iPlayer, iPlayer2 ) < 128 ) {

  927.                                 g_iSemiClip[ iPlayer ]  = true;

  928.                                 g_iSemiClip[ iPlayer2 ] = true;

  929.                         }

  930.                 }

  931.         }

  932.        

  933.         for( i = 0; i < iNum; i++ ) {

  934.                 iPlayer = iPlayers[ i ];

  935.                

  936.                 set_pev( iPlayer, pev_solid, g_iSemiClip[ iPlayer ] ? SOLID_NOT : SOLID_SLIDEBOX );

  937.         }

  938.        

  939.         return FMRES_IGNORED;

  940. }

  941.  

  942. // FORWARDS

  943. ///////////////////////////////////////////

  944. public FwdHamPlayerSpawn( id ) {

  945.         if( !g_bEnabled || !is_user_alive( id ) )

  946.                 return HAM_IGNORED;

  947.        

  948.         if( get_pcvar_num( g_pBlockRadio ) ) // thanks to ConnorMcLeod for this good way :)

  949.                 set_pdata_int( id, 192, 0 );

  950.        

  951. #if defined FAKE_PLAYER

  952.         if( g_iFakeplayer == id ) {

  953.                 set_pev( id, pev_frags, -1000.0 );

  954.                 cs_set_user_deaths( id, -1000 );

  955.                

  956.                 set_pev( id, pev_effects, pev( id, pev_effects ) | EF_NODRAW );

  957.                 set_pev( id, pev_solid, SOLID_NOT );

  958.                 entity_set_origin( id, Float:{ 999999.0, 999999.0, 999999.0 } );

  959.                 dllfunc( DLLFunc_Think, id );

  960.         } else {

  961. #endif

  962.                 new CsTeams:iTeam = cs_get_user_team( id );

  963.                

  964.                 // An small delay for message

  965.                 if( get_pcvar_num( g_pLifeSystem ) != 0 && iTeam == CS_TEAM_CT )

  966.                         set_task( 0.8, "Showlifes", id );

  967.                

  968.                 strip_user_weapons( id );

  969.                 give_item( id, "weapon_knife" );

  970.                

  971.                 set_pdata_int( id, 116, 0 ); // Pickup fix by ConnorMcLeod

  972.                

  973.                 if( g_bGamerFun && iTeam == CS_TEAM_CT )

  974.                         give_item( id, "weapon_smokegrenade" );

  975.                

  976.                 if( get_pcvar_num( g_pGiveUsp ) && iTeam == CS_TEAM_CT && !g_bHauntedHouse )

  977.                         set_task( 1.0, "GiveUsp", id );

  978.  

  979. #if defined FAKE_PLAYER

  980.         }

  981. #endif

  982.        

  983.         return HAM_IGNORED;

  984. }

  985.  

  986. public GiveUsp( const id ) {

  987.         if( is_user_alive( id ) ) {

  988.                 give_item( id, "weapon_usp" );

  989.                 cs_set_user_bpammo( id, CSW_USP, 100 );

  990.         }

  991. }

  992.  

  993. public FwdGameDesc( ) {

  994.         static const GameName[ ] = "[S][M] EASY DR";

  995.        

  996.         forward_return( FMV_STRING, GameName );

  997.        

  998.         return FMRES_SUPERCEDE;

  999. }

  1000.  

  1001. public FwdClientKill( const id ) {

  1002.         if( !g_bEnabled || !is_user_alive(id) )

  1003.                 return FMRES_IGNORED;

  1004.        

  1005.         if( get_pcvar_num( g_pBlockKill ) || cs_get_user_team( id ) == CS_TEAM_T ) {

  1006.                 client_print( id, print_center, "%L", id, "DR_BLOCK_KILL" );

  1007.                 client_print( id, print_console, "%L", id, "DR_BLOCK_KILL" );

  1008.                

  1009.                 return FMRES_SUPERCEDE;

  1010.         }

  1011.        

  1012.         return FMRES_IGNORED;

  1013. }

  1014.  

  1015. public FwdImpulse_201( const id ) {

  1016.         if( g_bEnabled && get_pcvar_num( g_pBlockSpray ) ) {

  1017.                 if( is_user_alive( id ) )

  1018.                         client_print( id, print_center, "%L", id, "DR_BLOCK_SPRAY" );

  1019.                

  1020.                 return PLUGIN_HANDLED_MAIN;

  1021.         }

  1022.        

  1023.         return PLUGIN_CONTINUE;

  1024. }

  1025.  

  1026. public FwdHamPlayerDamage( id, idInflictor, idAttacker, Float:flDamage, iDamageBits ) {

  1027.         if( get_pcvar_num( g_pNoFallDmg ) )

  1028.                 if( iDamageBits & DMG_FALL )

  1029.                         if( get_user_team( id ) == 1 )

  1030.                                 return HAM_SUPERCEDE;

  1031.        

  1032.         return HAM_IGNORED;

  1033. }

  1034.  

  1035. public MsgStatusIcon( msg_id, msg_dest, id ) {

  1036.         new szIcon[ 8 ];

  1037.         get_msg_arg_string( 2, szIcon, 7 );

  1038.        

  1039.         static const BuyZone[ ] = "buyzone";

  1040.        

  1041.         if( equal( szIcon, BuyZone ) ) {

  1042.                 set_pdata_int( id, OFFSET_BZ, get_pdata_int( id, OFFSET_BZ, 5 ) & ~( 1 << 0 ), 5 );

  1043.                

  1044.                 return PLUGIN_HANDLED;

  1045.         }

  1046.        

  1047.         return PLUGIN_CONTINUE;

  1048. }

  1049.  

  1050. public CmdRadio( id ) {

  1051.         if( get_pcvar_num( g_pBlockRadio ) )

  1052.                 return PLUGIN_HANDLED_MAIN;

  1053.        

  1054.         return PLUGIN_CONTINUE;

  1055. }

  1056.  

  1057. public RestartRound( )

  1058.         set_pcvar_num( g_pSvRestart, 1 );

  1059.  

  1060. // COLORCHAT

  1061. /////////////////////////////////////////////

  1062. ColorChat( id, Color:type, const szMessage[], {Float,Sql,Result,_}:... ) {

  1063.         if( !get_playersnum( ) ) return;

  1064.        

  1065.         new message[ 256 ];

  1066.        

  1067.         switch( type ) {

  1068.                 case NORMAL: message[0] = 0x01;

  1069.                 case GREEN: message[0] = 0x04;

  1070.                 default: message[0] = 0x03;

  1071.         }

  1072.        

  1073.         vformat( message[ 1 ], 251, szMessage, 4 );

  1074.        

  1075.         message[ 192 ] = '^0';

  1076.        

  1077.         replace_all( message, 191, "YEL", "^1" );

  1078.         replace_all( message, 191, "GRN", "^4" );

  1079.         replace_all( message, 191, "TEM", "^3" );

  1080.        

  1081.         new iTeam, ColorChange, index, MSG_Type;

  1082.        

  1083.         if( id ) {

  1084.                 MSG_Type = MSG_ONE_UNRELIABLE;

  1085.                 index = id;

  1086.         } else {

  1087.                 index = CC_FindPlayer();

  1088.                 MSG_Type = MSG_BROADCAST;

  1089.         }

  1090.        

  1091.         iTeam = get_user_team( index );

  1092.         ColorChange = CC_ColorSelection(index, MSG_Type, type);

  1093.  

  1094.         CC_ShowColorMessage(index, MSG_Type, message);

  1095.        

  1096.         if( ColorChange )

  1097.                 CC_Team_Info(index, MSG_Type, TeamName[iTeam]);

  1098. }

  1099.  

  1100. CC_ShowColorMessage( id, type, message[] ) {

  1101.         message_begin( type, g_iMsgSayText, _, id );

  1102.         write_byte( id );      

  1103.         write_string( message );

  1104.         message_end( );

  1105. }

  1106.  

  1107. CC_Team_Info( id, type, team[] ) {

  1108.         message_begin( type, g_iMsgTeamInfo, _, id );

  1109.         write_byte( id );

  1110.         write_string( team );

  1111.         message_end( );

  1112.        

  1113.         return 1;

  1114. }

  1115.  

  1116. CC_ColorSelection( index, type, Color:Type ) {

  1117.         switch( Type ) {

  1118.                 case RED: return CC_Team_Info( index, type, TeamName[ 1 ] );

  1119.                 case BLUE: return CC_Team_Info( index, type, TeamName[ 2 ] );

  1120.         }

  1121.        

  1122.         return 0;

  1123. }

  1124.  

  1125. CC_FindPlayer( ) {

  1126.         for( new i = 1; i <= g_iMaxplayers; i++ )

  1127.                 if( g_bConnected[ i ] )

  1128.                         return i;

  1129.        

  1130.         return -1;

  1131. }

_________________
****


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Csapat váltás letiltás
HozzászólásElküldve:2013.01.02. 09:00 
Offline
Veterán
Avatar

Csatlakozott:2012.09.01. 22:19
Hozzászólások:1697
Megköszönt másnak: 26 alkalommal
Megköszönték neki: 302 alkalommal
Ezzel a pluginnal meg tudod oldani, nekem is ez volt a gondom régen: http://forums.alliedmods.net/showthread.php?p=610161

_________________
Valami új kezdete...
Kép
Egyedi pluginok készítése pénzért (Banki átutalás, PayPal) -> Privát üzenet


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Csapat váltás letiltás
HozzászólásElküldve:2013.01.02. 20:16 
Offline
Őskövület
Avatar

Csatlakozott:2011.12.28. 00:35
Hozzászólások:2736
Megköszönt másnak: 56 alkalommal
Megköszönték neki: 275 alkalommal
Köszi. de ez már kb fél éves témám.
+ már rég meg oldottam.

_________________
****


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése: Rendezés 
Új téma nyitása Hozzászólás a témához  [3 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 28 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole