Advertisement
iXdoctor

HitAndRun Team Alliance

May 14th, 2014
412
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 7.22 KB | None | 0 0
  1. /* Plugin generated by AMXX-Studio */
  2.  
  3. #include < amxmodx >
  4. #include < amxmisc >
  5. #include < cstrike >
  6. #include < hamsandwich >
  7. #include < fakemeta_util >
  8.  
  9. new const Tag[] = "AMXX"
  10.  
  11. new bool:HasBrit[ 33 ] = false, bool: SameBrit[ 33 ], iMaxPlayers;
  12.  
  13.  
  14. public plugin_init() {
  15.     register_plugin( "HitAndRun Team Alliance", "1.0", "Xdoctor" )
  16.    
  17.     register_clcmd("say /brit","britmenu" )
  18.    
  19.     register_logevent( "event_round_start", 2, "1=Round_Start" );
  20.    
  21.     RegisterHam( Ham_TakeDamage, "player", "fwTakeDamage" )
  22.    
  23.     iMaxPlayers = get_maxplayers();
  24. }
  25.  
  26. public event_round_start(id)
  27. {
  28.     HasBrit[id] = false
  29. }
  30.  
  31. public britmenu(id)
  32. {
  33.     if(cs_get_user_team( id ) == CS_TEAM_CT || is_user_bot( id ) || is_user_hltv( id ) )
  34.         return 1;
  35.    
  36.     if( !is_user_alive( id ) )
  37.     {
  38.         ColorChat( id, "^4Team Alliance^1 is not ^3allowed^1 for ^4deads!^1." );
  39.         return PLUGIN_HANDLED;
  40.     }
  41.    
  42.     new title[30];
  43.     formatex(title, charsmax(title), "[%s Team Alliance Menu: ]^n[Your Status :%s]", Tag, HasBrit[id] ? "Has Alliance" : "Dosent Haven Alliance" );
  44.    
  45.     new Bmenu = menu_create(title, "BritMenuHandler");
  46.    
  47.     menu_additem( Bmenu, "\y Create Alliance\d [ \yOne Round\d ]", "1")
  48.    
  49.     menu_additem( Bmenu, "\y Leave Team Alliance", "2" );
  50.    
  51.     menu_setprop( Bmenu, MPROP_EXIT, MEXIT_ALL );
  52.    
  53.     menu_setprop( Bmenu, MPROP_EXITNAME, "\wExit\d ( \yBye Bye \d)" )
  54.    
  55.     menu_display(id, Bmenu);
  56.    
  57.     return 1;
  58. }
  59.  
  60.  
  61. public BritMenuHandler(id, Bmenu, item)
  62. {
  63.     if( item == MENU_EXIT )
  64.     {
  65.         menu_destroy(Bmenu)
  66.         return PLUGIN_HANDLED
  67.     }
  68.    
  69.     if( !is_user_alive( id ) )
  70.     {
  71.         ColorChat( id, "^4Team Alliance^1 is not ^3allowed^1 for ^4deads!^1." );
  72.         return PLUGIN_HANDLED;
  73.     }
  74.    
  75.     new Data[6], iName[64], Access, Callback
  76.     menu_item_getinfo(Bmenu, item, Access, Data, 5, iName, 63, Callback)
  77.    
  78.     new Key = str_to_num( Data )
  79.    
  80.     switch( Key )
  81.     {
  82.        
  83.         case 1: return choose_Player( id );
  84.            
  85.         case 2: return remove_Player( id );
  86.     }
  87.    
  88.     return PLUGIN_HANDLED;
  89. }
  90.  
  91. public remove_Player( id )
  92. {
  93.     new szMenu[ 128 ];
  94.    
  95.     formatex( szMenu, charsmax( szMenu ), "\d [ \y%s Team Alliance\d ] \y Leave Alliance Team\w", Tag );
  96.    
  97.     new Menu = menu_create( szMenu, "removePlayerHandler" );
  98.    
  99.     for( new i = 0; i < iMaxPlayers; i++ )
  100.     {
  101.         if( !is_user_alive( i ) && SameBrit[ i ] == true )
  102.             continue;
  103.            
  104.         formatex( szMenu, charsmax( szMenu ), "\rDelte Team Alliance\w: \yWith \d[ \y%s\d ]", GetUserName( i ) )
  105.            
  106.         menu_additem( Menu, szMenu );
  107.            
  108.     }
  109.        
  110.     menu_destroy( Menu );
  111.    
  112.     return 1;
  113.    
  114. }
  115.  
  116. public removePlayerHandler( id, Menu, Item )
  117. {
  118.     if( Item == MENU_EXIT )
  119.     {
  120.         menu_destroy( Menu );
  121.        
  122.         return 1;
  123.        
  124.     }
  125.    
  126.     new data[ 6 ], szName[ 64 ], access, callback;
  127.    
  128.     menu_item_getinfo( iMenu, item, access, data, charsmax( data ), szName, charsmax( szName ), callback );
  129.    
  130.     new player = str_to_num( data );
  131.    
  132.     SendLeaveRequest( id );
  133.    
  134. }
  135.  
  136. public sendLeaveRequest( id, player );
  137. {
  138.    
  139.     new szMenu[ 128 ];
  140.    
  141.     formatex( szMenu, charsmax( szMenu ), "\r%s Are you sure you want to leave your Team Alliance with %s", GetUserName( id ), GetUserName( player ) );
  142.    
  143.     new menu = menu_create(Title, "LeaveRequestHandler");
  144.    
  145.     menu_additem(menu, "\yLeave", "1" );
  146.     menu_additem(menu, "\yStay", "2" );
  147.    
  148.     menu_display(player, menu);
  149.    
  150.     return 1;
  151.    
  152. }
  153.  
  154. public LeaveRequestHandler( id, player, item, menu)
  155. {
  156.  
  157.     switch(item)
  158.     {
  159.         case 0:
  160.         {
  161.             HasBrit[id] = false; HasBrit[player] = false;
  162.            
  163.             SameBrit[ id ] = false; SameBrit[ player ] = false;
  164.            
  165.             ColorChat( 0, "^4%s^1 Just Deleted Is Alliace with^1 %s", GetUserName( id ), GetUserName( player ) );
  166.            
  167.             if( HasBrit[ id ] && HasBrit[ player ] )
  168.            
  169.         }
  170.        
  171.         case 1:
  172.        
  173.         {
  174.                
  175.             ColorChat( id, "^4%s^1 Your Team Alliace With ^4%s^1 Is Still Activate.", GetUserName( id ), GetUserName( player ) );
  176.            
  177.             HasBrit[id] = false;
  178.         }
  179.     }
  180.        
  181.     return 1;
  182. }
  183.  
  184. public choose_Player(id)
  185. {
  186.     if( !is_user_alive( id ) )
  187.     {
  188.         ColorChat( id, "^4Team Alliance^1 is not ^3allowed^1 for ^4deads!^1." );
  189.         return PLUGIN_HANDLED;
  190.     }
  191.    
  192.     static opcion[64]
  193.    
  194.     formatex(opcion, charsmax(opcion),"\d[\y %s\d ]\y Choose Your Team Alliance\w:", Tag)
  195.     new iMenu = menu_create(opcion, "ChooseplayerHandler")
  196.    
  197.     new players[32], pnum, tempid;
  198.     new szName[32], szUserId[32];
  199.     get_players( players, pnum, "ache", "TERRORIST" );
  200.    
  201.     for ( new i; i<pnum; i++ )
  202.     {
  203.         if( is_user_alive(i) )
  204.             continue;
  205.            
  206.         tempid = players[i];
  207.         get_user_name( tempid, szName, charsmax( szName ) );
  208.         formatex( szUserId, charsmax( szUserId ), "%d", get_user_userid( tempid ) );
  209.        
  210.         menu_additem( iMenu, szName, szUserId);
  211.     }
  212.     menu_display( id, iMenu);
  213.    
  214.     return 1;
  215. }
  216.  
  217.  
  218. public ChooseplayerHandler( id, iMenu, item )
  219. {
  220.     if ( item == MENU_EXIT )
  221.     {
  222.         menu_destroy( iMenu );
  223.         return 1;
  224.     }
  225.    
  226.     if( !is_user_alive( id ) )
  227.     {
  228.         ColorChat( id, "^4Team Alliance^1 is not ^3allowed^1 for ^4deads!^1." );
  229.         return PLUGIN_HANDLED;
  230.     }
  231.    
  232.     new data[ 6 ], szName[ 64 ], access, callback;
  233.    
  234.     menu_item_getinfo( iMenu, item, access, data, charsmax( data ), szName, charsmax( szName ), callback );
  235.    
  236.     new player = str_to_num( data );
  237.    
  238.     ColorChat( id, "^3Your Team Alliance Request has been sended to to^1:^4 %s", GetUserName( player ) );
  239.    
  240.     BritRequestMenu( id, player )
  241.    
  242.     return 1;
  243. }
  244.  
  245. public BritRequestMenu(id, player)
  246. {
  247.  
  248.     HasBrit[id] = false;
  249.    
  250.     new Title[64];
  251.    
  252.     formatex(Title, charsmax(Title), "\r%s\y Invited You To Create A Team Alliance\W:", GetUserName( player ) );
  253.    
  254.     new menu = menu_create(Title, "BritRequestMenuHandler");
  255.    
  256.     menu_additem(menu, "\yYaaa man", "1" );
  257.     menu_additem(menu, "\yNah im good", "2" );
  258.    
  259.     menu_display(player, menu);
  260.    
  261.     return 1;
  262. }
  263.  
  264. public BritRequestMenuHandler(id, player, item, menu)
  265. {
  266.     if( !is_user_alive( id ) )
  267.     {
  268.         ColorChat( id, "^4Team Alliance^1 is not ^3allowed^1 for ^4deads!^1." );
  269.         return PLUGIN_HANDLED;
  270.     }
  271.    
  272.     switch(item)
  273.     {
  274.         case 0:
  275.         {
  276.             HasBrit[id] = true; HasBrit[player] = true;
  277.            
  278.             ColorChat( 0, "^4%s^1 Just Started A Team Alliace With^1 %s", GetUserName( id ), GetUserName( player ) );
  279.            
  280.             if( HasBrit[ id ] && HasBrit[ player ] )
  281.             {
  282.                 SameBrit[ id ] = true; SameBrit[ player ] = true;
  283.                
  284.             }
  285.                
  286.             }
  287.            
  288.             case 1:
  289.             {
  290.                
  291.             ColorChat( id, "^4%s^1 Your Team Alliace RequestTo ^4%s^1 Has Been Denied.", GetUserName( id ), GetUserName( player ) );
  292.            
  293.             HasBrit[id] = false;
  294.         }
  295.     }
  296.        
  297.     return 1;
  298. }
  299.  
  300. public fw_TakeDamage( id, Victim, idinflictor, Attacker, Float:damage, damagebits )
  301. {
  302.     if( Attacker && Victim )
  303.     {
  304.         if( HasBrit[ id ] == true )
  305.         {
  306.             return HAM_IGNORED;
  307.            
  308.         }
  309.     }
  310.    
  311.     return HAM_SUPERCEDE;
  312.        
  313. }
  314.  
  315. stock GetUserName( const Index )
  316. {
  317.     static gName[ 32 ];
  318.    
  319.     get_user_name( Index, gName, charsmax( gName ) );
  320.    
  321.     return gName;
  322. }
  323.  
  324. stock ColorChat(const id, const string[], {Float, Sql, Resul,_}:...)
  325. {
  326.     new msg[191], players[32], count = 1
  327.    
  328.     static len
  329.     len = formatex(msg, charsmax(msg), "^1[ ^4AMXX ^1] ")
  330.     vformat(msg[len], charsmax(msg) - len, string, 3)
  331.    
  332.     if(id)    players[0] = id
  333.     else    get_players(players,count,"ch")
  334.    
  335.     for (new i = 0; i < count; i++)
  336.     {
  337.         if(is_user_connected(players[i]))
  338.         {
  339.             message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"),_, players[i])
  340.             write_byte(players[i])
  341.             write_string(msg)
  342.             message_end()
  343.         }
  344.     }
  345. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement