hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.06.04. 20:48



Jelenlévő felhasználók

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

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: nincs regisztrált felhasználó 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  [ 6 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Jail banda shop
HozzászólásElküldve: 2015.12.14. 19:50 
Offline
Félisten

Csatlakozott: 2012.06.19. 15:12
Hozzászólások: 926
Megköszönt másnak: 109 alkalommal
Megköszönték neki: 31 alkalommal
Valaki tudna bele írni egy shopot 2. menüpontként és ha lehet 1 itemet.

[ablak]
  1. #include < amxmodx >
  2.         #include < amxmisc >
  3.         #include < sqlvault_ex >
  4.         #include < cstrike >
  5.         #include < colorchat >
  6.         #include < hamsandwich >
  7.         #include < fun >
  8.  
  9.     /* Defines */
  10.    
  11.         #define ADMIN_CREATE    ADMIN_LEVEL_B
  12.  
  13.     /* Constants */
  14.    
  15.         new const g_szVersion[ ] = "1.1.2";
  16.  
  17.         enum _:GangInfo
  18.         {
  19.             Trie:GangMembers,
  20.             GangName[ 64 ],
  21.             GangHP,
  22.             GangStealing,
  23.             GangGravity,
  24.             GangDamage,
  25.             GangStamina,
  26.             GangWeaponDrop,
  27.             GangKills,
  28.             NumMembers
  29.         };
  30.            
  31.         enum
  32.         {
  33.             VALUE_HP,
  34.             VALUE_STEALING,
  35.             VALUE_GRAVITY,
  36.             VALUE_DAMAGE,
  37.             VALUE_STAMINA,
  38.             VALUE_WEAPONDROP,
  39.             VALUE_KILLS
  40.         }
  41.  
  42.         enum
  43.         {
  44.             STATUS_NONE,
  45.             STATUS_MEMBER,
  46.             STATUS_ADMIN,
  47.             STATUS_LEADER
  48.         };
  49.  
  50.         new const g_szGangValues[ ][ ] =
  51.         {
  52.             "HP",
  53.             "Stealing",
  54.             "Gravity",
  55.             "Damage",
  56.             "Stamina",
  57.             "WeaponDrop",
  58.             "Kills"
  59.         };
  60.  
  61.         new const g_szPrefix[ ] = "^04[Gang System]^01";
  62.  
  63.     /* Tries */
  64.    
  65.         new Trie:g_tGangNames;
  66.         new Trie:g_tGangValues;
  67.  
  68.     /* Vault */
  69.    
  70.         new SQLVault:g_hVault;
  71.         new SQLVault:g_hPointsVault;
  72.  
  73.     /* Arrays */
  74.    
  75.         new Array:g_aGangs;
  76.  
  77.     /* Pcvars */
  78.    
  79.         new g_pCreateCost;
  80.  
  81.         new g_pHealthCost;
  82.         new g_pStealingCost;
  83.         new g_pGravityCost;
  84.         new g_pDamageCost;
  85.         new g_pStaminaCost;
  86.         new g_pWeaponDropCost;
  87.  
  88.         new g_pHealthMax;
  89.         new g_pStealingMax;
  90.         new g_pGravityMax;
  91.         new g_pDamageMax;
  92.         new g_pStaminaMax;
  93.         new g_pWeaponDropMax;
  94.  
  95.         new g_pHealthPerLevel;
  96.         new g_pStealingPerLevel;
  97.         new g_pGravityPerLevel;
  98.         new g_pDamagePerLevel;
  99.         new g_pStaminaPerLevel;
  100.         new g_pWeaponDropPerLevel;
  101.  
  102.         new g_pPointsPerKill;
  103.         new g_pHeadshotBonus;
  104.  
  105.         new g_pMaxMembers;
  106.         new g_pAdminCreate;
  107.  
  108.     /* Integers */
  109.    
  110.         new g_iGang[ 33 ];
  111.         new g_iPoints[ 33 ];
  112.        
  113.  
  114.     public plugin_init()
  115.     {
  116.         register_plugin( "Jailbreak Gang System", g_szVersion, "H3avY Ra1n" );
  117.        
  118.         g_aGangs                = ArrayCreate( GangInfo );
  119.  
  120.         g_tGangValues           = TrieCreate();
  121.         g_tGangNames            = TrieCreate();
  122.        
  123.         g_hVault                = sqlv_open_local( "jb_gangs", false );
  124.         sqlv_init_ex( g_hVault );
  125.  
  126.         g_hPointsVault          = sqlv_open_local( "jb_points", true );
  127.        
  128.         g_pCreateCost           = register_cvar( "jb_gang_cost",        "50" );
  129.         g_pHealthCost           = register_cvar( "jb_health_cost",      "20" );
  130.         g_pStealingCost         = register_cvar( "jb_stealing_cost",    "20" );
  131.         g_pGravityCost          = register_cvar( "jb_gravity_cost",     "20" );
  132.         g_pDamageCost           = register_cvar( "jb_damage_cost",      "20" );
  133.         g_pStaminaCost          = register_cvar( "jb_stamina_cost",     "20" );
  134.         g_pWeaponDropCost       = register_cvar( "jb_weapondrop_cost",  "20" );
  135.  
  136.         g_pHealthMax            = register_cvar( "jb_health_max",       "10" );
  137.         g_pStealingMax          = register_cvar( "jb_stealing_max",     "10" );
  138.         g_pGravityMax           = register_cvar( "jb_gravity_max",      "10" ); // Max * Gravity Per Level must be LESS than 800
  139.         g_pDamageMax            = register_cvar( "jb_damage_max",       "10" );
  140.         g_pStaminaMax           = register_cvar( "jb_stamina_max",      "10" );
  141.         g_pWeaponDropMax        = register_cvar( "jb_weapondrop_max",   "10" );
  142.  
  143.         g_pHealthPerLevel       = register_cvar( "jb_health_per",       "10"    );
  144.         g_pStealingPerLevel     = register_cvar( "jb_stealing_per",     "0.05"  );
  145.         g_pGravityPerLevel      = register_cvar( "jb_gravity_per",      "50"    );
  146.         g_pDamagePerLevel       = register_cvar( "jb_damage_per",       "3"     );
  147.         g_pStaminaPerLevel      = register_cvar( "jb_stamina_per",      "3"     );
  148.         g_pWeaponDropPerLevel   = register_cvar( "jb_weapondrop_per",   "1"     );
  149.  
  150.         g_pPointsPerKill        = register_cvar( "jb_points_per_kill""3" );
  151.         g_pHeadshotBonus        = register_cvar( "jb_headshot_bonus",   "2" );
  152.        
  153.         g_pMaxMembers           = register_cvar( "jb_max_members",      "10" );
  154.         g_pAdminCreate          = register_cvar( "jb_admin_create",     "0" ); // Admins can create gangs without points
  155.        
  156.         register_cvar( "jb_gang_version", g_szVersion, FCVAR_SPONLY | FCVAR_SERVER );
  157.        
  158.         register_menu( "Gang Menu", 1023, "GangMenu_Handler" );
  159.         register_menu( "Skills Menu", 1023, "SkillsMenu_Handler" );
  160.        
  161.         for( new i = 0; i < sizeof g_szGangValues; i++ )
  162.         {
  163.             TrieSetCell( g_tGangValues, g_szGangValues[ i ], i );
  164.         }
  165.  
  166.         RegisterHam( Ham_Spawn, "player", "Ham_PlayerSpawn_Post", 1 );
  167.         RegisterHam( Ham_TakeDamage, "player", "Ham_TakeDamage_Pre", 0 );
  168.         RegisterHam( Ham_TakeDamage, "player", "Ham_TakeDamage_Post", 1 );
  169.         RegisterHam( Ham_Item_PreFrame, "player", "Ham_PlayerResetSpeedPost", 1);
  170.        
  171.         register_event( "DeathMsg", "Event_DeathMsg", "a" );
  172.                
  173.         register_clcmd( "say /gang", "Cmd_Gang" );
  174.         register_clcmd( "gang_name", "Cmd_CreateGang" );
  175.        
  176.         LoadGangs();
  177.     }
  178.  
  179.     public client_disconnect( id )
  180.     {
  181.         g_iGang[ id ] = -1;
  182.        
  183.         new szAuthID[ 35 ];
  184.         get_user_authid( id, szAuthID, charsmax( szAuthID ) );
  185.        
  186.         sqlv_set_num( g_hPointsVault, szAuthID, g_iPoints[ id ] );
  187.     }
  188.  
  189.     public client_putinserver( id )
  190.     {
  191.         g_iGang[ id ] = get_user_gang( id );
  192.         new szAuthID[ 35 ];
  193.         get_user_authid( id, szAuthID, charsmax( szAuthID ) );
  194.        
  195.         g_iPoints[ id ] = sqlv_get_num( g_hPointsVault, szAuthID );
  196.     }
  197.  
  198.     public plugin_end()
  199.     {
  200.         SaveGangs();
  201.         sqlv_close( g_hVault );
  202.     }
  203.  
  204.     public Ham_PlayerSpawn_Post( id )
  205.     {
  206.         if( !is_user_alive( id ) || cs_get_user_team( id ) != CS_TEAM_T )
  207.             return HAM_IGNORED;
  208.            
  209.         if( g_iGang[ id ] == -1 )
  210.         {
  211.             return HAM_IGNORED;
  212.         }
  213.            
  214.         new aData[ GangInfo ];
  215.         ArrayGetArray( g_aGangs, g_iGang[ id ], aData );
  216.        
  217.         new iHealth = 100 + aData[ GangHP ] * get_pcvar_num( g_pHealthPerLevel );
  218.         set_user_health( id, iHealth );
  219.        
  220.         new iGravity = 800 - ( get_pcvar_num( g_pGravityPerLevel ) * aData[ GangGravity ] );
  221.         set_user_gravity( id, float( iGravity ) / 800.0 );
  222.            
  223.         return HAM_IGNORED;
  224.     }
  225.  
  226.     public Ham_TakeDamage_Pre( iVictim, iInflictor, iAttacker, Float:flDamage, iBits )
  227.     {
  228.         if( !is_user_alive( iAttacker ) || cs_get_user_team( iAttacker ) != CS_TEAM_T )
  229.             return HAM_IGNORED;
  230.            
  231.         if( g_iGang[ iAttacker ] == -1 )
  232.             return HAM_IGNORED;
  233.        
  234.         new aData[ GangInfo ];
  235.         ArrayGetArray( g_aGangs, g_iGang[ iAttacker ], aData );
  236.        
  237.         SetHamParamFloat( 4, flDamage + ( get_pcvar_num( g_pDamagePerLevel ) * ( aData[ GangDamage ] ) ) );
  238.        
  239.         return HAM_IGNORED;
  240.     }
  241.  
  242.     public Ham_TakeDamage_Post( iVictim, iInflictor, iAttacker, Float:flDamage, iBits )
  243.     {
  244.         if( !is_user_alive( iAttacker ) || g_iGang[ iAttacker ] == -1 || get_user_weapon( iAttacker ) != CSW_KNIFE || cs_get_user_team( iAttacker ) != CS_TEAM_T  )
  245.         {
  246.             return HAM_IGNORED;
  247.         }
  248.        
  249.         new aData[ GangInfo ];
  250.         ArrayGetArray( g_aGangs, g_iGang[ iAttacker ], aData );
  251.        
  252.         new iChance = aData[ GangWeaponDrop ] * get_pcvar_num( g_pWeaponDropPerLevel );
  253.        
  254.         if( iChance == 0 )
  255.             return HAM_IGNORED;
  256.        
  257.         new bool:bDrop = ( random_num( 1, 100 ) <= iChance );
  258.        
  259.         if( bDrop )
  260.             client_cmd( iVictim, "drop" );
  261.        
  262.         return HAM_IGNORED;
  263.     }
  264.  
  265.     public Ham_PlayerResetSpeedPost( id )
  266.     {
  267.         if( g_iGang[ id ] == -1 || !is_user_alive( id ) || cs_get_user_team( id ) != CS_TEAM_T )
  268.         {
  269.             return HAM_IGNORED;
  270.         }
  271.        
  272.         new aData[ GangInfo ];
  273.         ArrayGetArray( g_aGangs, g_iGang[ id ], aData );
  274.        
  275.         if( aData[ GangStamina ] > 0 && get_user_maxspeed( id ) > 1.0 )
  276.             set_user_maxspeed( id, 250.0 + ( aData[ GangStamina ] * get_pcvar_num( g_pStaminaPerLevel ) ) );
  277.            
  278.         return HAM_IGNORED;
  279.     }
  280.  
  281.     public Event_DeathMsg()
  282.     {
  283.         new iKiller = read_data( 1 );
  284.         new iVictim = read_data( 2 );
  285.        
  286.         if( !is_user_alive( iKiller ) || cs_get_user_team( iVictim ) != CS_TEAM_CT || cs_get_user_team( iKiller ) != CS_TEAM_T )
  287.             return PLUGIN_CONTINUE;
  288.        
  289.         new iTotal = get_pcvar_num( g_pPointsPerKill ) + ( bool:read_data( 3 ) ? get_pcvar_num( g_pHeadshotBonus ) : 0 );
  290.        
  291.         if( g_iGang[ iKiller ] > -1 )
  292.         {
  293.             new aData[ GangInfo ];
  294.             ArrayGetArray( g_aGangs, g_iGang[ iKiller ], aData );
  295.             aData[ GangKills ]++;
  296.             ArraySetArray( g_aGangs, g_iGang[ iKiller ], aData );
  297.            
  298.             iTotal += iTotal * ( aData[ GangStealing ] * get_pcvar_num( g_pStealingPerLevel ) );
  299.         }
  300.        
  301.         g_iPoints[ iKiller ] += iTotal;
  302.        
  303.         return PLUGIN_CONTINUE;
  304.     }
  305.  
  306.     public Cmd_Gang( id )
  307.     {  
  308.         if( !is_user_connected( id ) || cs_get_user_team( id ) != CS_TEAM_T )
  309.         {
  310.             ColorChat( id, NORMAL, "%s Only ^03prisoners ^01can access this menu.", g_szPrefix );
  311.             return PLUGIN_HANDLED;
  312.         }
  313.        
  314.         static szMenu[ 512 ], iLen, aData[ GangInfo ], iKeys, iStatus;
  315.        
  316.         iKeys = MENU_KEY_0 | MENU_KEY_4;
  317.        
  318.         iStatus = getStatus( id, g_iGang[ id ] );
  319.        
  320.         if( g_iGang[ id ] > -1 )
  321.         {
  322.             ArrayGetArray( g_aGangs, g_iGang[ id ], aData );
  323.             iLen    =   formatex( szMenu, charsmax( szMenu ),  "\yGang Menu^n\wCurrent Gang:\y %s^n", aData[ GangName ] );
  324.             iLen    +=  formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\yJB Points: \w%i^n^n", g_iPoints[ id ] );
  325.             iLen    +=  formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r1. \dCreate a Gang [%i Points]^n", get_pcvar_num( g_pCreateCost ) );
  326.         }
  327.        
  328.         else
  329.         {
  330.             iLen    =   formatex( szMenu, charsmax( szMenu ),  "\yGang Menu^n\wCurrent Gang:\r None^n" );
  331.             iLen    +=  formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\yJB Points: \w%i^n^n", g_iPoints[ id ] );
  332.             iLen    +=  formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r1. \wCreate a Gang [%i Points]^n", get_pcvar_num( g_pCreateCost ) );
  333.            
  334.             iKeys |= MENU_KEY_1;
  335.         }
  336.        
  337.        
  338.         if( iStatus > STATUS_MEMBER && g_iGang[ id ] > -1 && get_pcvar_num( g_pMaxMembers ) > aData[ NumMembers ] )
  339.         {
  340.             iLen    +=  formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r2. \wInvite Player to Gang^n" );
  341.             iKeys |= MENU_KEY_2;
  342.         }
  343.         else
  344.             iLen    +=  formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r2. \dInvite Player to Gang^n" );
  345.        
  346.         if( g_iGang[ id ] > -1 )
  347.         {
  348.             iLen    +=  formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r3. \wSkills^n" );
  349.             iKeys |= MENU_KEY_3;
  350.         }
  351.        
  352.         else
  353.             iLen    +=  formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r3. \dSkills^n" );
  354.            
  355.         iLen    +=  formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r4. \wTop-10^n" );
  356.        
  357.         if( g_iGang[ id ] > -1 )
  358.         {
  359.             iLen    +=  formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r5. \wLeave Gang^n" );
  360.             iKeys |= MENU_KEY_5;
  361.         }
  362.        
  363.         else
  364.             iLen    +=  formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r5. \dLeave Gang^n" );
  365.        
  366.        
  367.         if( iStatus > STATUS_MEMBER )
  368.         {
  369.             iLen    +=  formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r6. \wGang Admin Menu^n" );
  370.             iKeys |= MENU_KEY_6;
  371.         }
  372.        
  373.         else
  374.             iLen    +=  formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r6. \dGang Admin Menu^n" );
  375.        
  376.         if( g_iGang[ id ] > -1 )
  377.         {
  378.             iLen    +=  formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r7. \wOnline Members^n" );
  379.             iKeys |= MENU_KEY_7;
  380.         }
  381.            
  382.         else
  383.             iLen    +=  formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r7. \dOnline Members^n" );
  384.        
  385.         iLen    +=  formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "^n\r0. \wExit" );
  386.        
  387.         show_menu( id, iKeys, szMenu, -1, "Gang Menu" );
  388.        
  389.         return PLUGIN_CONTINUE;
  390.     }
  391.  
  392.     public GangMenu_Handler( id, iKey )
  393.     {
  394.         switch( ( iKey + 1 ) % 10 )
  395.         {
  396.             case 0: return PLUGIN_HANDLED;
  397.            
  398.             case 1:
  399.             {
  400.                 if( get_pcvar_num( g_pAdminCreate ) && get_user_flags( id ) & ADMIN_CREATE )
  401.                 {
  402.                     client_cmd( id, "messagemode gang_name" );
  403.                 }
  404.                
  405.                 else if( g_iPoints[ id ] < get_pcvar_num( g_pCreateCost ) )
  406.                 {
  407.                     ColorChat( id, NORMAL, "%s You do not have enough points to create a gang!", g_szPrefix );
  408.                     return PLUGIN_HANDLED;
  409.                 }
  410.                
  411.                 else
  412.                     client_cmd( id, "messagemode gang_name" );
  413.             }
  414.            
  415.             case 2:
  416.             {
  417.                 ShowInviteMenu( id );
  418.             }
  419.            
  420.             case 3:
  421.             {
  422.                 ShowSkillsMenu( id );
  423.             }
  424.            
  425.             case 4:
  426.             {
  427.                 Cmd_Top10( id );
  428.             }
  429.            
  430.             case 5:
  431.             {
  432.                 ShowLeaveConfirmMenu( id );
  433.             }
  434.            
  435.             case 6:
  436.             {
  437.                 ShowLeaderMenu( id );
  438.             }
  439.            
  440.             case 7:
  441.             {
  442.                 ShowMembersMenu( id );
  443.             }
  444.         }
  445.        
  446.         return PLUGIN_HANDLED;
  447.     }
  448.  
  449.     public Cmd_CreateGang( id )
  450.     {
  451.         new bool:bAdmin = false;
  452.        
  453.         if( get_pcvar_num( g_pAdminCreate ) && get_user_flags( id ) & ADMIN_CREATE )
  454.         {
  455.             bAdmin = true;
  456.         }
  457.        
  458.         else if( g_iPoints[ id ] < get_pcvar_num( g_pCreateCost ) )
  459.         {
  460.             ColorChat( id, NORMAL, "%s You do not have enough points to create a gang.", g_szPrefix );
  461.             return PLUGIN_HANDLED;
  462.         }
  463.        
  464.         else if( g_iGang[ id ] > -1 )
  465.         {
  466.             ColorChat( id, NORMAL, "%s You cannot create a gang if you are already in one!", g_szPrefix );
  467.             return PLUGIN_HANDLED;
  468.         }
  469.        
  470.         else if( cs_get_user_team( id ) != CS_TEAM_T )
  471.         {
  472.             ColorChat( id, NORMAL, "%s Only ^03prisoners ^01can create gangs!", g_szPrefix );
  473.             return PLUGIN_HANDLED;
  474.         }
  475.        
  476.         new szArgs[ 60 ];
  477.         read_args( szArgs, charsmax( szArgs ) );
  478.        
  479.         remove_quotes( szArgs );
  480.        
  481.         if( TrieKeyExists( g_tGangNames, szArgs ) )
  482.         {
  483.             ColorChat( id, NORMAL, "%s That gang with that name already exists.", g_szPrefix );
  484.             Cmd_Gang( id );
  485.             return PLUGIN_HANDLED;
  486.         }
  487.        
  488.         new aData[ GangInfo ];
  489.        
  490.         aData[ GangName ]       = szArgs;
  491.         aData[ GangHP ]         = 0;
  492.         aData[ GangStealing ]   = 0;
  493.         aData[ GangGravity ]    = 0;
  494.         aData[ GangStamina ]    = 0;
  495.         aData[ GangWeaponDrop ] = 0;
  496.         aData[ GangDamage ]     = 0;
  497.         aData[ NumMembers ]     = 0;
  498.         aData[ GangMembers ]    = _:TrieCreate();
  499.        
  500.         ArrayPushArray( g_aGangs, aData );
  501.        
  502.         if( !bAdmin )
  503.             g_iPoints[ id ] -= get_pcvar_num( g_pCreateCost );
  504.        
  505.         set_user_gang( id, ArraySize( g_aGangs ) - 1, STATUS_LEADER );
  506.        
  507.         ColorChat( id, NORMAL, "%s You have successfully created gang '^03%s^01'.", g_szPrefix, szArgs );
  508.        
  509.         return PLUGIN_HANDLED;
  510.     }
  511.  
  512.     public ShowInviteMenu( id )
  513.     {  
  514.         new iPlayers[ 32 ], iNum;
  515.         get_players( iPlayers, iNum );
  516.        
  517.         new szInfo[ 6 ], hMenu;
  518.         hMenu = menu_create( "Choose a Player to Invite:", "InviteMenu_Handler" );
  519.         new szName[ 32 ];
  520.        
  521.         for( new i = 0, iPlayer; i < iNum; i++ )
  522.         {
  523.             iPlayer = iPlayers[ i ];
  524.            
  525.            
  526.             if( iPlayer == id || g_iGang[ iPlayer ] == g_iGang[ id ] || cs_get_user_team( iPlayer ) != CS_TEAM_T )
  527.                 continue;
  528.                
  529.             get_user_name( iPlayer, szName, charsmax( szName ) );
  530.            
  531.             num_to_str( iPlayer, szInfo, charsmax( szInfo ) );
  532.            
  533.             menu_additem( hMenu, szName, szInfo );
  534.         }
  535.            
  536.         menu_display( id, hMenu, 0 );
  537.     }
  538.  
  539.     public InviteMenu_Handler( id, hMenu, iItem )
  540.     {
  541.         if( iItem == MENU_EXIT )
  542.         {
  543.             Cmd_Gang( id );
  544.             return PLUGIN_HANDLED;
  545.         }
  546.        
  547.         new szData[ 6 ], iAccess, hCallback, szName[ 32 ];
  548.         menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, szName, 31, hCallback );
  549.        
  550.         new iPlayer = str_to_num( szData );
  551.  
  552.         if( !is_user_connected( iPlayer ) )
  553.             return PLUGIN_HANDLED;
  554.            
  555.         ShowInviteConfirmMenu( id, iPlayer );
  556.  
  557.         ColorChat( id, NORMAL, "%s You have successfully invited %s to join your gang.", g_szPrefix, szName );
  558.        
  559.         Cmd_Gang( id );
  560.         return PLUGIN_HANDLED;
  561.     }
  562.  
  563.     public ShowInviteConfirmMenu( id, iPlayer )
  564.     {
  565.         new szName[ 32 ];
  566.         get_user_name( id, szName, charsmax( szName ) );
  567.        
  568.         new aData[ GangInfo ];
  569.         ArrayGetArray( g_aGangs, g_iGang[ id ], aData );
  570.        
  571.         new szMenuTitle[ 128 ];
  572.         formatex( szMenuTitle, charsmax( szMenuTitle ), "%s Invited You to Join %s", szName, aData[ GangName ] );
  573.         new hMenu = menu_create( szMenuTitle, "InviteConfirmMenu_Handler" );
  574.        
  575.         new szInfo[ 6 ];
  576.         num_to_str( g_iGang[ id ], szInfo, 5 );
  577.        
  578.         menu_additem( hMenu, "Accept Invitation", szInfo );
  579.         menu_additem( hMenu, "Decline Invitation", "-1" );
  580.        
  581.         menu_display( iPlayer, hMenu, 0 )
  582.     }
  583.  
  584.     public InviteConfirmMenu_Handler( id, hMenu, iItem )
  585.     {
  586.         if( iItem == MENU_EXIT )
  587.             return PLUGIN_HANDLED;
  588.        
  589.         new szData[ 6 ], iAccess, hCallback;
  590.         menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback );
  591.        
  592.         new iGang = str_to_num( szData );
  593.        
  594.         if( iGang == -1 )
  595.             return PLUGIN_HANDLED;
  596.        
  597.         if( getStatus( id, g_iGang[ id ] ) == STATUS_LEADER )
  598.         {
  599.             ColorChat( id, NORMAL, "%s You cannot leave your gang while you are the leader.", g_szPrefix );
  600.             return PLUGIN_HANDLED;
  601.         }
  602.        
  603.         set_user_gang( id, iGang );
  604.        
  605.         new aData[ GangInfo ];
  606.         ArrayGetArray( g_aGangs, iGang, aData );
  607.        
  608.         ColorChat( id, NORMAL, "%s You have successfully joined the gang ^03%s^01.", g_szPrefix, aData[ GangName ] );
  609.        
  610.         return PLUGIN_HANDLED;
  611.     }
  612.        
  613.  
  614.     public ShowSkillsMenu( id )
  615.     {  
  616.         static szMenu[ 512 ], iLen, iKeys, aData[ GangInfo ];
  617.        
  618.         if( !iKeys )
  619.         {
  620.             iKeys = MENU_KEY_1 | MENU_KEY_2 | MENU_KEY_3 | MENU_KEY_4 | MENU_KEY_5 | MENU_KEY_6 | MENU_KEY_0;
  621.         }
  622.        
  623.         ArrayGetArray( g_aGangs, g_iGang[ id ], aData );
  624.        
  625.         iLen    =   formatex( szMenu, charsmax( szMenu ), "\ySkills Menu^n^n" );
  626.         iLen    +=  formatex( szMenu[ iLen ], 511 - iLen, "\r1. \wHealth Upgrade [\rCost: \y%i Points\w] \y[Level:%i/%i]^n", get_pcvar_num( g_pHealthCost ), aData[ GangHP ], get_pcvar_num( g_pHealthMax ) );
  627.         iLen    +=  formatex( szMenu[ iLen ], 511 - iLen, "\r2. \wStealing Upgrade [\rCost: \y%i Points\w] \y[Level:%i/%i]^n", get_pcvar_num( g_pStealingCost ), aData[ GangStealing ], get_pcvar_num( g_pStealingMax ) );
  628.         iLen    +=  formatex( szMenu[ iLen ], 511 - iLen, "\r3. \wGravity Upgrade [\rCost: \y%i Points\w] \y[Level:%i/%i]^n", get_pcvar_num( g_pGravityCost ), aData[ GangGravity ], get_pcvar_num( g_pGravityMax ) );
  629.         iLen    +=  formatex( szMenu[ iLen ], 511 - iLen, "\r4. \wDamage Upgrade [\rCost: \y%i Points\w] \y[Level:%i/%i]^n", get_pcvar_num( g_pDamageCost ), aData[ GangDamage ], get_pcvar_num( g_pDamageMax ) );
  630.         iLen    +=  formatex( szMenu[ iLen ], 511 - iLen, "\r5. \wWeapon Drop Upgrade [\rCost: \y%i Points\w] \y[Level:%i/%i]^n", get_pcvar_num( g_pWeaponDropCost ), aData[ GangWeaponDrop ], get_pcvar_num( g_pWeaponDropMax ) );
  631.         iLen    +=  formatex( szMenu[ iLen ], 511 - iLen, "\r6. \wSpeed Upgrade [\rCost: \y%i Points\w] \y[Level:%i/%i]^n", get_pcvar_num( g_pStaminaCost ), aData[ GangStamina ], get_pcvar_num( g_pStaminaMax ) );
  632.        
  633.         iLen    +=  formatex( szMenu[ iLen ], 511 - iLen, "^n\r0. \wExit" );
  634.        
  635.         show_menu( id, iKeys, szMenu, -1, "Skills Menu" );
  636.     }
  637.  
  638.     public SkillsMenu_Handler( id, iKey )
  639.     {
  640.         new aData[ GangInfo ];
  641.         ArrayGetArray( g_aGangs, g_iGang[ id ], aData );
  642.        
  643.         switch( ( iKey + 1 ) % 10 )
  644.         {
  645.             case 0:
  646.             {
  647.                 Cmd_Gang( id );
  648.                 return PLUGIN_HANDLED;
  649.             }
  650.            
  651.             case 1:
  652.             {
  653.                 if( aData[ GangHP ] == get_pcvar_num( g_pHealthMax ) )
  654.                 {
  655.                     ColorChat( id, NORMAL, "%s Your gang is already at the max level for that skill.", g_szPrefix  );
  656.                     ShowSkillsMenu( id );
  657.                     return PLUGIN_HANDLED;
  658.                 }
  659.                
  660.                 new iRemaining = g_iPoints[ id ] - get_pcvar_num( g_pHealthCost );
  661.                
  662.                 if( iRemaining < 0 )
  663.                 {
  664.                     ColorChat( id, NORMAL, "%s You don't have enough points for that.", g_szPrefix );
  665.                     ShowSkillsMenu( id );
  666.                     return PLUGIN_HANDLED;
  667.                 }
  668.                
  669.                 aData[ GangHP ]++;
  670.                
  671.                 g_iPoints[ id ] = iRemaining;
  672.             }
  673.            
  674.             case 2:
  675.             {
  676.                 if( aData[ GangStealing ] == get_pcvar_num( g_pStealingMax ) )
  677.                 {
  678.                     ColorChat( id, NORMAL, "%s Your gang is already at the max level for that skill.", g_szPrefix  );
  679.                     ShowSkillsMenu( id );
  680.                     return PLUGIN_HANDLED;
  681.                 }
  682.                
  683.                 new iRemaining = g_iPoints[ id ] - get_pcvar_num( g_pStealingCost );
  684.                
  685.                 if( iRemaining < 0 )
  686.                 {
  687.                     ColorChat( id, NORMAL, "%s You don't have enough points for that.", g_szPrefix );
  688.                     ShowSkillsMenu( id );
  689.                     return PLUGIN_HANDLED;
  690.                 }
  691.                
  692.                 aData[ GangStealing ]++;
  693.                
  694.                 g_iPoints[ id ] = iRemaining;
  695.             }
  696.            
  697.             case 3:
  698.             {
  699.                 if( aData[ GangGravity ] == get_pcvar_num( g_pGravityMax ) )
  700.                 {
  701.                     ColorChat( id, NORMAL, "%s Your gang is already at the max level for that skill.", g_szPrefix  );
  702.                     ShowSkillsMenu( id );
  703.                     return PLUGIN_HANDLED;
  704.                 }
  705.                
  706.                 new iRemaining = g_iPoints[ id ] - get_pcvar_num( g_pGravityCost );
  707.                
  708.                 if( iRemaining < 0 )
  709.                 {
  710.                     ColorChat( id, NORMAL, "%s You don't have enough points for that.", g_szPrefix );
  711.                     ShowSkillsMenu( id );
  712.                     return PLUGIN_HANDLED;
  713.                 }
  714.                
  715.                 aData[ GangGravity ]++;
  716.                
  717.                 g_iPoints[ id ] = iRemaining;
  718.             }
  719.            
  720.             case 4:
  721.             {
  722.                 if( aData[ GangDamage ] == get_pcvar_num( g_pDamageMax ) )
  723.                 {
  724.                     ColorChat( id, NORMAL, "%s Your gang is already at the max level for that skill.", g_szPrefix  );
  725.                     ShowSkillsMenu( id );
  726.                     return PLUGIN_HANDLED;
  727.                 }
  728.                
  729.                 new iRemaining = g_iPoints[ id ] - get_pcvar_num( g_pDamageCost );
  730.                
  731.                 if( iRemaining < 0 )
  732.                 {
  733.                     ColorChat( id, NORMAL, "%s You don't have enough points for that.", g_szPrefix );
  734.                     ShowSkillsMenu( id );
  735.                     return PLUGIN_HANDLED;
  736.                 }
  737.                
  738.                 aData[ GangDamage ]++;
  739.                
  740.                 g_iPoints[ id ] = iRemaining;
  741.             }
  742.            
  743.             case 5:
  744.             {
  745.                 if( aData[ GangWeaponDrop ] == get_pcvar_num( g_pWeaponDropMax ) )
  746.                 {
  747.                     ColorChat( id, NORMAL, "%s Your gang is already at the max level for that skill.", g_szPrefix  );
  748.                     ShowSkillsMenu( id );
  749.                     return PLUGIN_HANDLED;
  750.                 }
  751.                
  752.                 new iRemaining = g_iPoints[ id ] - get_pcvar_num( g_pWeaponDropCost );
  753.                
  754.                 if( iRemaining < 0 )
  755.                 {
  756.                     ColorChat( id, NORMAL, "%s You don't have enough points for that.", g_szPrefix );
  757.                     ShowSkillsMenu( id );
  758.                     return PLUGIN_HANDLED;
  759.                 }
  760.                
  761.                 aData[ GangWeaponDrop ]++;
  762.                
  763.                 g_iPoints[ id ] = iRemaining;
  764.             }
  765.            
  766.             case 6:
  767.             {
  768.                 if( aData[ GangStamina ] == get_pcvar_num( g_pStaminaMax ) )
  769.                 {
  770.                     ColorChat( id, NORMAL, "%s Your gang is already at the max level for that skill.", g_szPrefix  );
  771.                     ShowSkillsMenu( id );
  772.                     return PLUGIN_HANDLED;
  773.                 }
  774.                
  775.                 new iRemaining = g_iPoints[ id ] - get_pcvar_num( g_pStaminaCost );
  776.                
  777.                 if( iRemaining < 0 )
  778.                 {
  779.                     ColorChat( id, NORMAL, "%s You don't have enough points for that.", g_szPrefix );
  780.                     ShowSkillsMenu( id );
  781.                     return PLUGIN_HANDLED;
  782.                 }
  783.                
  784.                 aData[ GangStamina ]++;
  785.                
  786.                 g_iPoints[ id ] = iRemaining;
  787.             }
  788.         }
  789.        
  790.         ArraySetArray( g_aGangs, g_iGang[ id ], aData );
  791.        
  792.         new iPlayers[ 32 ], iNum, iPlayer;
  793.         new szName[ 32 ];
  794.         get_players( iPlayers, iNum );
  795.        
  796.         for( new i = 0; i < iNum; i++ )
  797.         {
  798.             iPlayer = iPlayers[ i ];
  799.            
  800.             if( iPlayer == id || g_iGang[ iPlayer ] != g_iGang[ id ] )
  801.                 continue;
  802.                
  803.             ColorChat( iPlayer, NORMAL, "%s ^03%s ^01has just upgraded one of your gang's skills.", g_szPrefix, szName );
  804.         }
  805.        
  806.         ColorChat( id, NORMAL, "%s You have successfully upgraded your gang.", g_szPrefix );
  807.        
  808.         ShowSkillsMenu( id );
  809.        
  810.         return PLUGIN_HANDLED;
  811.     }
  812.            
  813.        
  814.     public Cmd_Top10( id )
  815.     {
  816.         new iSize = ArraySize( g_aGangs );
  817.        
  818.         new iOrder[ 100 ][ 2 ];
  819.        
  820.         new aData[ GangInfo ];
  821.        
  822.         for( new i = 0; i < iSize; i++ )
  823.         {
  824.             ArrayGetArray( g_aGangs, i, aData );
  825.            
  826.             iOrder[ i ][ 0 ] = i;
  827.             iOrder[ i ][ 1 ] = aData[ GangKills ];
  828.         }
  829.        
  830.         SortCustom2D( iOrder, iSize, "Top10_Sort" );
  831.        
  832.         new szMessage[ 2048 ];
  833.         formatex( szMessage, charsmax( szMessage ), "<body bgcolor=#000000><font color=#FFB000><pre>" );
  834.         format( szMessage, charsmax( szMessage ), "%s%2s %-22.22s %7s %4s %10s %9s %9s %11s %8s^n", szMessage, "#", "Name", "Kills", "HP", "Stealing",
  835.             "Gravity", "Stamina", "WeaponDrop", "Damage" );
  836.            
  837.         for( new i = 0; i < min( 10, iSize ); i++ )
  838.         {
  839.             ArrayGetArray( g_aGangs, iOrder[ i ][ 0 ], aData );
  840.            
  841.             format( szMessage, charsmax( szMessage ), "%s%-2d %22.22s %7d %4d %10d %9d %9d %11d %8d^n", szMessage, i + 1, aData[ GangName ],
  842.             aData[ GangKills ], aData[ GangHP ], aData[ GangStealing ], aData[ GangGravity ], aData[ GangStamina], aData[ GangWeaponDrop ], aData[ GangDamage ] );
  843.         }
  844.        
  845.         show_motd( id, szMessage, "Gang Top 10" );
  846.     }
  847.  
  848.     public Top10_Sort( const iElement1[ ], const iElement2[ ], const iArray[ ], szData[], iSize )
  849.     {
  850.         if( iElement1[ 1 ] > iElement2[ 1 ] )
  851.             return -1;
  852.        
  853.         else if( iElement1[ 1 ] < iElement2[ 1 ] )
  854.             return 1;
  855.        
  856.         return 0;
  857.     }
  858.  
  859.     public ShowLeaveConfirmMenu( id )
  860.     {
  861.         new hMenu = menu_create( "Are you sure you want to leave?", "LeaveConfirmMenu_Handler" );
  862.         menu_additem( hMenu, "Yes, Leave Now", "0" );
  863.         menu_additem( hMenu, "No, Don't Leave", "1" );
  864.        
  865.         menu_display( id, hMenu, 0 );
  866.     }
  867.  
  868.     public LeaveConfirmMenu_Handler( id, hMenu, iItem )
  869.     {
  870.         if( iItem == MENU_EXIT )
  871.             return PLUGIN_HANDLED;
  872.        
  873.         new szData[ 6 ], iAccess, hCallback;
  874.         menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback );
  875.        
  876.         switch( str_to_num( szData ) )
  877.         {
  878.             case 0:
  879.             {
  880.                 if( getStatus( id, g_iGang[ id ] ) == STATUS_LEADER )
  881.                 {
  882.                     ColorChat( id, NORMAL, "%s You must transfer leadership before leaving this gang.", g_szPrefix );
  883.                     Cmd_Gang( id );
  884.                    
  885.                     return PLUGIN_HANDLED;
  886.                 }
  887.                
  888.                 ColorChat( id, NORMAL, "%s You have successfully left your gang.", g_szPrefix );
  889.                 set_user_gang( id, -1 );
  890.                 Cmd_Gang( id );
  891.             }
  892.            
  893.             case 1: Cmd_Gang( id );
  894.         }
  895.        
  896.         return PLUGIN_HANDLED;
  897.     }
  898.  
  899.     public ShowLeaderMenu( id )
  900.     {
  901.         new hMenu = menu_create( "Gang Leader Menu", "LeaderMenu_Handler" );
  902.        
  903.         new iStatus = getStatus( id, g_iGang[ id ] );
  904.        
  905.         if( iStatus == STATUS_LEADER )
  906.         {
  907.             menu_additem( hMenu, "Disband Gang", "0" );
  908.             menu_additem( hMenu, "Transfer Leadership", "1" );
  909.             menu_additem( hMenu, "Add An Admin", "4" );
  910.             menu_additem( hMenu, "Remove An Admin", "5" );
  911.         }
  912.        
  913.         menu_additem( hMenu, "Kick From Gang", "2" );
  914.         menu_additem( hMenu, "Change Gang Name", "3" );
  915.        
  916.        
  917.         menu_display( id, hMenu, 0 );
  918.     }
  919.  
  920.     public LeaderMenu_Handler( id, hMenu, iItem )
  921.     {
  922.         if( iItem == MENU_EXIT )
  923.         {
  924.             Cmd_Gang( id );
  925.             return PLUGIN_HANDLED;
  926.         }
  927.        
  928.         new iAccess, hCallback, szData[ 6 ];
  929.         menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback );
  930.        
  931.         switch( str_to_num( szData ) )
  932.         {
  933.             case 0:
  934.             {
  935.                 ShowDisbandConfirmMenu( id );
  936.             }
  937.            
  938.             case 1:
  939.             {
  940.                 ShowTransferMenu( id );
  941.             }
  942.            
  943.             case 2:
  944.             {
  945.                 ShowKickMenu( id );
  946.             }
  947.            
  948.             case 3:
  949.             {
  950.                 client_cmd( id, "messagemode New_Name" );
  951.             }
  952.            
  953.             case 4:
  954.             {
  955.                 ShowAddAdminMenu( id );
  956.             }
  957.            
  958.             case 5:
  959.             {
  960.                 ShowRemoveAdminMenu( id );
  961.             }
  962.         }
  963.        
  964.         return PLUGIN_HANDLED;
  965.     }
  966.  
  967.     public ShowDisbandConfirmMenu( id )
  968.     {
  969.         new hMenu = menu_create( "Are you sure you want to disband the gang?", "DisbandConfirmMenu_Handler" );
  970.         menu_additem( hMenu, "Yes, Disband Now", "0" );
  971.         menu_additem( hMenu, "No, Don't Disband", "1" );
  972.        
  973.         menu_display( id, hMenu, 0 );
  974.     }
  975.  
  976.     public DisbandConfirmMenu_Handler( id, hMenu, iItem )
  977.     {
  978.         if( iItem == MENU_EXIT )
  979.             return PLUGIN_HANDLED;
  980.        
  981.         new szData[ 6 ], iAccess, hCallback;
  982.         menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback );
  983.        
  984.         switch( str_to_num( szData ) )
  985.         {
  986.             case 0:
  987.             {
  988.                
  989.                 ColorChat( id, NORMAL, "%s You have successfully disbanded your gang.", g_szPrefix );
  990.                
  991.                 new iPlayers[ 32 ], iNum;
  992.                
  993.                 get_players( iPlayers, iNum );
  994.                
  995.                 new iPlayer;
  996.                
  997.                 for( new i = 0; i < iNum; i++ )
  998.                 {
  999.                     iPlayer = iPlayers[ i ];
  1000.                    
  1001.                     if( iPlayer == id )
  1002.                         continue;
  1003.                    
  1004.                     if( g_iGang[ id ] != g_iGang[ iPlayer ] )
  1005.                         continue;
  1006.  
  1007.                     ColorChat( iPlayer, NORMAL, "%s Your gang has been disband by its leader.", g_szPrefix );
  1008.                     set_user_gang( iPlayer, -1 );
  1009.                 }
  1010.                
  1011.                 new iGang = g_iGang[ id ];
  1012.                
  1013.                 set_user_gang( id, -1 );
  1014.                
  1015.                 ArrayDeleteItem( g_aGangs, iGang );
  1016.  
  1017.                 Cmd_Gang( id );
  1018.             }
  1019.            
  1020.             case 1: Cmd_Gang( id );
  1021.         }
  1022.        
  1023.         return PLUGIN_HANDLED;
  1024.     }
  1025.  
  1026.     public ShowTransferMenu( id )
  1027.     {
  1028.         new iPlayers[ 32 ], iNum;
  1029.         get_players( iPlayers, iNum, "e", "TERRORIST" );
  1030.        
  1031.         new hMenu = menu_create( "Transfer Leadership to:", "TransferMenu_Handler" );
  1032.         new szName[ 32 ], szData[ 6 ];
  1033.        
  1034.         for( new i = 0, iPlayer; i < iNum; i++ )
  1035.         {
  1036.             iPlayer = iPlayers[ i ];
  1037.            
  1038.             if( g_iGang[ iPlayer ] != g_iGang[ id ] || id == iPlayer )
  1039.                 continue;
  1040.                
  1041.             get_user_name( iPlayer, szName, charsmax( szName ) );
  1042.             num_to_str( iPlayer, szData, charsmax( szData ) );
  1043.            
  1044.             menu_additem( hMenu, szName, szData );
  1045.         }
  1046.        
  1047.         menu_display( id, hMenu, 0 );
  1048.     }
  1049.  
  1050.     public TransferMenu_Handler( id, hMenu, iItem )
  1051.     {
  1052.         if( iItem == MENU_EXIT )
  1053.         {
  1054.             ShowLeaderMenu( id );
  1055.             return PLUGIN_HANDLED;
  1056.         }
  1057.        
  1058.         new iAccess, hCallback, szData[ 6 ], szName[ 32 ];
  1059.        
  1060.         menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, szName, charsmax( szName ), hCallback );
  1061.        
  1062.         new iPlayer = str_to_num( szData );
  1063.        
  1064.         if( !is_user_connected( iPlayer ) )
  1065.         {
  1066.             ColorChat( id, NORMAL, "%s That player is no longer connected.", g_szPrefix );
  1067.             ShowTransferMenu( id );
  1068.             return PLUGIN_HANDLED;
  1069.         }
  1070.        
  1071.         set_user_gang( iPlayer, g_iGang[ id ], STATUS_LEADER );
  1072.         set_user_gang( id, g_iGang[ id ], STATUS_ADMIN );
  1073.        
  1074.         Cmd_Gang( id );
  1075.        
  1076.         new iPlayers[ 32 ], iNum, iTemp;
  1077.         get_players( iPlayers, iNum );
  1078.  
  1079.         for( new i = 0; i < iNum; i++ )
  1080.         {
  1081.             iTemp = iPlayers[ i ];
  1082.            
  1083.             if( iTemp == iPlayer )
  1084.             {
  1085.                 ColorChat( iTemp, NORMAL, "%s You are the new leader of your gang.", g_szPrefix );
  1086.                 continue;
  1087.             }
  1088.            
  1089.             else if( g_iGang[ iTemp ] != g_iGang[ id ] )
  1090.                 continue;
  1091.            
  1092.             ColorChat( iTemp, NORMAL, "%s ^03%s^01 is the new leader of your gang.", g_szPrefix, szName );
  1093.         }
  1094.        
  1095.         return PLUGIN_HANDLED;
  1096.     }
  1097.  
  1098.  
  1099.     public ShowKickMenu( id )
  1100.     {
  1101.         new iPlayers[ 32 ], iNum;
  1102.         get_players( iPlayers, iNum );
  1103.        
  1104.         new hMenu = menu_create( "Kick Player From Gang:", "KickMenu_Handler" );
  1105.         new szName[ 32 ], szData[ 6 ];
  1106.        
  1107.        
  1108.         for( new i = 0, iPlayer; i < iNum; i++ )
  1109.         {
  1110.             iPlayer = iPlayers[ i ];
  1111.            
  1112.             if( g_iGang[ iPlayer ] != g_iGang[ id ] || id == iPlayer )
  1113.                 continue;
  1114.                
  1115.             get_user_name( iPlayer, szName, charsmax( szName ) );
  1116.             num_to_str( iPlayer, szData, charsmax( szData ) );
  1117.            
  1118.             menu_additem( hMenu, szName, szData );
  1119.         }
  1120.        
  1121.         menu_display( id, hMenu, 0 );
  1122.     }
  1123.  
  1124.     public KickMenu_Handler( id, hMenu, iItem )
  1125.     {
  1126.         if( iItem == MENU_EXIT )
  1127.         {
  1128.             ShowLeaderMenu( id );
  1129.             return PLUGIN_HANDLED;
  1130.         }
  1131.        
  1132.         new iAccess, hCallback, szData[ 6 ], szName[ 32 ];
  1133.        
  1134.         menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, szName, charsmax( szName ), hCallback );
  1135.        
  1136.         new iPlayer = str_to_num( szData );
  1137.        
  1138.         if( !is_user_connected( iPlayer ) )
  1139.         {
  1140.             ColorChat( id, NORMAL, "%s That player is no longer connected.", g_szPrefix );
  1141.             ShowTransferMenu( id );
  1142.             return PLUGIN_HANDLED;
  1143.         }
  1144.        
  1145.         set_user_gang( iPlayer, -1 );
  1146.        
  1147.         Cmd_Gang( id );
  1148.        
  1149.         new iPlayers[ 32 ], iNum, iTemp;
  1150.         get_players( iPlayers, iNum );
  1151.        
  1152.         for( new i = 0; i < iNum; i++ )
  1153.         {
  1154.             iTemp = iPlayers[ i ];
  1155.            
  1156.             if( iTemp == iPlayer || g_iGang[ iTemp ] != g_iGang[ id ] )
  1157.                 continue;
  1158.            
  1159.             ColorChat( iTemp, NORMAL, "%s ^03%s^01 has been kicked from the gang.", g_szPrefix, szName );
  1160.         }
  1161.        
  1162.         ColorChat( iPlayer, NORMAL, "%s You have been kicked from your gang.", g_szPrefix, szName );
  1163.        
  1164.         return PLUGIN_HANDLED;
  1165.     }
  1166.  
  1167.     public ChangeName_Handler( id )
  1168.     {
  1169.         if( g_iGang[ id ] == -1 || getStatus( id, g_iGang[ id ] ) == STATUS_MEMBER )
  1170.         {
  1171.             return;
  1172.         }
  1173.        
  1174.         new iGang = g_iGang[ id ];
  1175.        
  1176.         new szArgs[ 64 ];
  1177.         read_args( szArgs, charsmax( szArgs ) );
  1178.        
  1179.         new iPlayers[ 32 ], iNum;
  1180.         get_players( iPlayers, iNum );
  1181.        
  1182.         new bool:bInGang[ 33 ];
  1183.         new iStatus[ 33 ];
  1184.        
  1185.         for( new i = 0, iPlayer; i < iNum; i++ )
  1186.         {
  1187.             iPlayer = iPlayers[ i ];
  1188.            
  1189.             if( g_iGang[ id ] != g_iGang[ iPlayer ] )
  1190.                 continue;
  1191.        
  1192.             bInGang[ iPlayer ] = true;
  1193.             iStatus[ iPlayer ] = getStatus( id, iGang );
  1194.            
  1195.             set_user_gang( iPlayer, -1 );
  1196.         }
  1197.        
  1198.         new aData[ GangInfo ];
  1199.         ArrayGetArray( g_aGangs, iGang, aData );
  1200.        
  1201.         aData[ GangName ] = szArgs;
  1202.        
  1203.         ArraySetArray( g_aGangs, iGang, aData );
  1204.        
  1205.         for( new i = 0, iPlayer; i < iNum; i++ )
  1206.         {
  1207.             iPlayer = iPlayers[ i ];
  1208.            
  1209.             if( !bInGang[ iPlayer ] )
  1210.                 continue;
  1211.            
  1212.             set_user_gang( iPlayer, iGang, iStatus[ id ] );
  1213.         }
  1214.     }
  1215.        
  1216.     public ShowAddAdminMenu( id )
  1217.     {
  1218.         new iPlayers[ 32 ], iNum;
  1219.         new szName[ 32 ], szData[ 6 ];
  1220.         new hMenu = menu_create( "Choose a Player to Promote:", "AddAdminMenu_Handler" );
  1221.        
  1222.         get_players( iPlayers, iNum );
  1223.        
  1224.         for( new i = 0, iPlayer; i < iNum; i++ )
  1225.         {
  1226.             iPlayer = iPlayers[ i ];
  1227.            
  1228.             if( g_iGang[ id ] != g_iGang[ iPlayer ] || getStatus( iPlayer, g_iGang[ iPlayer ] ) > STATUS_MEMBER )
  1229.                 continue;
  1230.            
  1231.             get_user_name( iPlayer, szName, charsmax( szName ) );
  1232.            
  1233.             num_to_str( iPlayer, szData, charsmax( szData ) );
  1234.            
  1235.             menu_additem( hMenu, szName, szData );
  1236.         }
  1237.        
  1238.         menu_display( id, hMenu, 0 );
  1239.     }
  1240.  
  1241.     public AddAdminMenu_Handler( id, hMenu, iItem )
  1242.     {
  1243.         if( iItem == MENU_EXIT )
  1244.         {
  1245.             menu_destroy( hMenu );
  1246.             ShowLeaderMenu( id );
  1247.             return PLUGIN_HANDLED;
  1248.         }
  1249.        
  1250.         new iAccess, hCallback, szData[ 6 ], szName[ 32 ];
  1251.        
  1252.         menu_item_getinfo( hMenu, iItem, iAccess, szData, charsmax( szData ), szName, charsmax( szName ), hCallback );
  1253.        
  1254.         new iChosen = str_to_num( szData );
  1255.        
  1256.         if( !is_user_connected( iChosen ) )
  1257.         {
  1258.             menu_destroy( hMenu );
  1259.             ShowLeaderMenu( id );
  1260.             return PLUGIN_HANDLED;
  1261.         }
  1262.        
  1263.         set_user_gang( iChosen, g_iGang[ id ], STATUS_LEADER );
  1264.        
  1265.         new iPlayers[ 32 ], iNum;
  1266.         get_players( iPlayers, iNum );
  1267.        
  1268.         for( new i = 0, iPlayer; i < iNum; i++ )
  1269.         {
  1270.             iPlayer = iPlayers[ i ];
  1271.            
  1272.             if( g_iGang[ iPlayer ] != g_iGang[ id ] || iPlayer == iChosen )
  1273.                 continue;
  1274.            
  1275.             ColorChat( iPlayer, NORMAL, "%s ^03%s ^01has been promoted to an admin of your gang.", g_szPrefix, szName );
  1276.         }
  1277.        
  1278.         ColorChat( iChosen, NORMAL, "%s ^01You have been promoted to an admin of your gang.", g_szPrefix );
  1279.        
  1280.         menu_destroy( hMenu );
  1281.         return PLUGIN_HANDLED;
  1282.     }
  1283.  
  1284.     public ShowRemoveAdminMenu( id )
  1285.     {
  1286.         new iPlayers[ 32 ], iNum;
  1287.         new szName[ 32 ], szData[ 6 ];
  1288.         new hMenu = menu_create( "Choose a Player to Demote:", "RemoveAdminMenu_Handler" );
  1289.        
  1290.         get_players( iPlayers, iNum );
  1291.        
  1292.         for( new i = 0, iPlayer; i < iNum; i++ )
  1293.         {
  1294.             iPlayer = iPlayers[ i ];
  1295.            
  1296.             if( g_iGang[ id ] != g_iGang[ iPlayer ] || getStatus( iPlayer, g_iGang[ iPlayer ] ) != STATUS_ADMIN )
  1297.                 continue;
  1298.            
  1299.             get_user_name( iPlayer, szName, charsmax( szName ) );
  1300.            
  1301.             num_to_str( iPlayer, szData, charsmax( szData ) );
  1302.            
  1303.             menu_additem( hMenu, szName, szData );
  1304.         }
  1305.        
  1306.         menu_display( id, hMenu, 0 );
  1307.     }
  1308.  
  1309.     public RemoveAdminMenu_Handler( id, hMenu, iItem )
  1310.     {
  1311.         if( iItem == MENU_EXIT )
  1312.         {
  1313.             menu_destroy( hMenu );
  1314.             ShowLeaderMenu( id );
  1315.             return PLUGIN_HANDLED;
  1316.         }
  1317.        
  1318.         new iAccess, hCallback, szData[ 6 ], szName[ 32 ];
  1319.        
  1320.         menu_item_getinfo( hMenu, iItem, iAccess, szData, charsmax( szData ), szName, charsmax( szName ), hCallback );
  1321.        
  1322.         new iChosen = str_to_num( szData );
  1323.        
  1324.         if( !is_user_connected( iChosen ) )
  1325.         {
  1326.             menu_destroy( hMenu );
  1327.             ShowLeaderMenu( id );
  1328.             return PLUGIN_HANDLED;
  1329.         }
  1330.        
  1331.         set_user_gang( iChosen, g_iGang[ id ], STATUS_MEMBER );
  1332.        
  1333.         new iPlayers[ 32 ], iNum;
  1334.         get_players( iPlayers, iNum );
  1335.        
  1336.         for( new i = 0, iPlayer; i < iNum; i++ )
  1337.         {
  1338.             iPlayer = iPlayers[ i ];
  1339.            
  1340.             if( g_iGang[ iPlayer ] != g_iGang[ id ] || iPlayer == iChosen )
  1341.                 continue;
  1342.            
  1343.             ColorChat( iPlayer, NORMAL, "%s ^03%s ^01has been demoted from being an admin of your gang.", g_szPrefix, szName );
  1344.         }
  1345.        
  1346.         ColorChat( iChosen, NORMAL, "%s ^01You have been demoted from being an admin of your gang.", g_szPrefix );
  1347.        
  1348.         menu_destroy( hMenu );
  1349.         return PLUGIN_HANDLED;
  1350.     }
  1351.        
  1352.     public ShowMembersMenu( id )
  1353.     {
  1354.         new szName[ 64 ], iPlayers[ 32 ], iNum;
  1355.         get_players( iPlayers, iNum );
  1356.        
  1357.         new hMenu = menu_create( "Online Members:", "MemberMenu_Handler" );
  1358.        
  1359.         for( new i = 0, iPlayer; i < iNum; i++ )
  1360.         {
  1361.             iPlayer = iPlayers[ i ];
  1362.            
  1363.             if( g_iGang[ id ] != g_iGang[ iPlayer ] )
  1364.                 continue;
  1365.            
  1366.             get_user_name( iPlayer, szName, charsmax( szName ) );
  1367.            
  1368.             switch( getStatus( iPlayer, g_iGang[ id ] ) )
  1369.             {
  1370.                 case STATUS_MEMBER:
  1371.                 {
  1372.                     add( szName, charsmax( szName ), " \r[Member]" );
  1373.                 }
  1374.                
  1375.                 case STATUS_ADMIN:
  1376.                 {
  1377.                     add( szName, charsmax( szName ), " \r[Admin]" );
  1378.                 }
  1379.                
  1380.                 case STATUS_LEADER:
  1381.                 {
  1382.                     add( szName, charsmax( szName ), " \r[Leader]" );
  1383.                 }
  1384.             }
  1385.  
  1386.             menu_additem( hMenu, szName );
  1387.         }
  1388.        
  1389.         menu_display( id, hMenu, 0 );
  1390.     }
  1391.  
  1392.     public MemberMenu_Handler( id, hMenu, iItem )
  1393.     {
  1394.         if( iItem == MENU_EXIT )
  1395.         {
  1396.             menu_destroy( hMenu );
  1397.             Cmd_Gang( id );
  1398.             return PLUGIN_HANDLED;
  1399.         }
  1400.        
  1401.         menu_destroy( hMenu );
  1402.        
  1403.         ShowMembersMenu( id )
  1404.         return PLUGIN_HANDLED;
  1405.     }
  1406.  
  1407.     // Credits to Tirant from zombie mod and xOR from xRedirect
  1408.     public LoadGangs()
  1409.     {
  1410.         new szConfigsDir[ 60 ];
  1411.         get_configsdir( szConfigsDir, charsmax( szConfigsDir ) );
  1412.         add( szConfigsDir, charsmax( szConfigsDir ), "/jb_gangs.ini" );
  1413.        
  1414.         new iFile = fopen( szConfigsDir, "rt" );
  1415.        
  1416.         new aData[ GangInfo ];
  1417.        
  1418.         new szBuffer[ 512 ], szData[ 6 ], szValue[ 6 ], i, iCurGang;
  1419.        
  1420.         while( !feof( iFile ) )
  1421.         {
  1422.             fgets( iFile, szBuffer, charsmax( szBuffer ) );
  1423.            
  1424.             trim( szBuffer );
  1425.             remove_quotes( szBuffer );
  1426.            
  1427.             if( !szBuffer[ 0 ] || szBuffer[ 0 ] == ';' )
  1428.             {
  1429.                 continue;
  1430.             }
  1431.            
  1432.             if( szBuffer[ 0 ] == '[' && szBuffer[ strlen( szBuffer ) - 1 ] == ']' )
  1433.             {
  1434.                 copy( aData[ GangName ], strlen( szBuffer ) - 2, szBuffer[ 1 ] );
  1435.                 aData[ GangHP ] = 0;
  1436.                 aData[ GangStealing ] = 0;
  1437.                 aData[ GangGravity ] = 0;
  1438.                 aData[ GangStamina ] = 0;
  1439.                 aData[ GangWeaponDrop ] = 0;
  1440.                 aData[ GangDamage ] = 0;
  1441.                 aData[ GangKills ] = 0;
  1442.                 aData[ NumMembers ] = 0;
  1443.                 aData[ GangMembers ] = _:TrieCreate();
  1444.                
  1445.                 if( TrieKeyExists( g_tGangNames, aData[ GangName ] ) )
  1446.                 {
  1447.                     new szError[ 256 ];
  1448.                     formatex( szError, charsmax( szError ), "[JB Gangs] Gang already exists: %s", aData[ GangName ] );
  1449.                     set_fail_state( szError );
  1450.                 }
  1451.                
  1452.                 ArrayPushArray( g_aGangs, aData );
  1453.                
  1454.                 TrieSetCell( g_tGangNames, aData[ GangName ], iCurGang );
  1455.  
  1456.                 log_amx( "Gang Created: %s", aData[ GangName ] );
  1457.                
  1458.                 iCurGang++;
  1459.                
  1460.                 continue;
  1461.             }
  1462.            
  1463.             strtok( szBuffer, szData, 31, szValue, 511, '=' );
  1464.             trim( szData );
  1465.             trim( szValue );
  1466.            
  1467.             if( TrieGetCell( g_tGangValues, szData, i ) )
  1468.             {
  1469.                 ArrayGetArray( g_aGangs, iCurGang - 1, aData );
  1470.                
  1471.                 switch( i )
  1472.                 {                  
  1473.                     case VALUE_HP:
  1474.                         aData[ GangHP ] = str_to_num( szValue );
  1475.                    
  1476.                     case VALUE_STEALING:
  1477.                         aData[ GangStealing ] = str_to_num( szValue );
  1478.                    
  1479.                     case VALUE_GRAVITY:
  1480.                         aData[ GangGravity ] = str_to_num( szValue );
  1481.                    
  1482.                     case VALUE_STAMINA:
  1483.                         aData[ GangStamina ] = str_to_num( szValue );
  1484.                    
  1485.                     case VALUE_WEAPONDROP:
  1486.                         aData[ GangWeaponDrop ] = str_to_num( szValue );
  1487.                        
  1488.                     case VALUE_DAMAGE:
  1489.                         aData[ GangDamage ] = str_to_num( szValue );
  1490.                    
  1491.                     case VALUE_KILLS:
  1492.                         aData[ GangKills ] = str_to_num( szValue );
  1493.                 }
  1494.                
  1495.                 ArraySetArray( g_aGangs, iCurGang - 1, aData );
  1496.             }
  1497.         }
  1498.        
  1499.         new Array:aSQL;
  1500.         sqlv_read_all_ex( g_hVault, aSQL );
  1501.        
  1502.         new aVaultData[ SQLVaultEntryEx ];
  1503.        
  1504.         new iGang;
  1505.        
  1506.         for( i = 0; i < ArraySize( aSQL ); i++ )
  1507.         {
  1508.             ArrayGetArray( aSQL, i, aVaultData );
  1509.            
  1510.             if( TrieGetCell( g_tGangNames, aVaultData[ SQLVEx_Key2 ], iGang ) )
  1511.             {
  1512.                 ArrayGetArray( g_aGangs, iGang, aData );
  1513.                
  1514.                 TrieSetCell( aData[ GangMembers ], aVaultData[ SQLVEx_Key1 ], str_to_num( aVaultData[ SQLVEx_Data ] ) );
  1515.                
  1516.                 aData[ NumMembers ]++;
  1517.                
  1518.                 ArraySetArray( g_aGangs, iGang, aData );
  1519.             }
  1520.         }
  1521.        
  1522.         fclose( iFile );
  1523.     }
  1524.  
  1525.     public SaveGangs()
  1526.     {
  1527.         new szConfigsDir[ 64 ];
  1528.         get_configsdir( szConfigsDir, charsmax( szConfigsDir ) );
  1529.        
  1530.         add( szConfigsDir, charsmax( szConfigsDir ), "/jb_gangs.ini" );
  1531.        
  1532.         if( file_exists( szConfigsDir ) )
  1533.             delete_file( szConfigsDir );
  1534.            
  1535.         new iFile = fopen( szConfigsDir, "wt" );
  1536.            
  1537.         new aData[ GangInfo ];
  1538.        
  1539.         new szBuffer[ 256 ];
  1540.  
  1541.         for( new i = 0; i < ArraySize( g_aGangs ); i++ )
  1542.         {
  1543.             ArrayGetArray( g_aGangs, i, aData );
  1544.            
  1545.             formatex( szBuffer, charsmax( szBuffer ), "[%s]^n", aData[ GangName ] );
  1546.             fputs( iFile, szBuffer );
  1547.            
  1548.             formatex( szBuffer, charsmax( szBuffer ), "HP=%i^n", aData[ GangHP ] );
  1549.             fputs( iFile, szBuffer );
  1550.            
  1551.             formatex( szBuffer, charsmax( szBuffer ), "Stealing=%i^n", aData[ GangStealing ] );
  1552.             fputs( iFile, szBuffer );
  1553.            
  1554.             formatex( szBuffer, charsmax( szBuffer ), "Gravity=%i^n", aData[ GangGravity ] );
  1555.             fputs( iFile, szBuffer );
  1556.            
  1557.             formatex( szBuffer, charsmax( szBuffer ), "Stamina=%i^n", aData[ GangStamina ] );
  1558.             fputs( iFile, szBuffer );
  1559.            
  1560.             formatex( szBuffer, charsmax( szBuffer ), "WeaponDrop=%i^n", aData[ GangWeaponDrop ] );
  1561.             fputs( iFile, szBuffer );
  1562.            
  1563.             formatex( szBuffer, charsmax( szBuffer ), "Damage=%i^n", aData[ GangDamage ] );
  1564.             fputs( iFile, szBuffer );
  1565.            
  1566.             formatex( szBuffer, charsmax( szBuffer ), "Kills=%i^n^n", aData[ GangKills ] );
  1567.             fputs( iFile, szBuffer );
  1568.         }
  1569.        
  1570.         fclose( iFile );
  1571.     }
  1572.        
  1573.        
  1574.  
  1575.     set_user_gang( id, iGang, iStatus=STATUS_MEMBER )
  1576.     {
  1577.         new szAuthID[ 35 ];
  1578.         get_user_authid( id, szAuthID, charsmax( szAuthID ) );
  1579.  
  1580.         new aData[ GangInfo ];
  1581.        
  1582.         if( g_iGang[ id ] > -1 )
  1583.         {
  1584.             ArrayGetArray( g_aGangs, g_iGang[ id ], aData );
  1585.             TrieDeleteKey( aData[ GangMembers ], szAuthID );
  1586.             aData[ NumMembers ]--;
  1587.             ArraySetArray( g_aGangs, g_iGang[ id ], aData );
  1588.            
  1589.             sqlv_remove_ex( g_hVault, szAuthID, aData[ GangName ] );
  1590.         }
  1591.  
  1592.         if( iGang > -1 )
  1593.         {
  1594.             ArrayGetArray( g_aGangs, iGang, aData );
  1595.             TrieSetCell( aData[ GangMembers ], szAuthID, iStatus );
  1596.             aData[ NumMembers ]++;
  1597.             ArraySetArray( g_aGangs, iGang, aData );
  1598.            
  1599.             sqlv_set_num_ex( g_hVault, szAuthID, aData[ GangName ], iStatus );     
  1600.         }
  1601.  
  1602.         g_iGang[ id ] = iGang;
  1603.        
  1604.         return 1;
  1605.     }
  1606.        
  1607.     get_user_gang( id )
  1608.     {
  1609.         new szAuthID[ 35 ];
  1610.         get_user_authid( id, szAuthID, charsmax( szAuthID ) );
  1611.        
  1612.         new aData[ GangInfo ];
  1613.        
  1614.         for( new i = 0; i < ArraySize( g_aGangs ); i++ )
  1615.         {
  1616.             ArrayGetArray( g_aGangs, i, aData );
  1617.            
  1618.             if( TrieKeyExists( aData[ GangMembers ], szAuthID ) )
  1619.                 return i;
  1620.         }
  1621.        
  1622.         return -1;
  1623.     }
  1624.                
  1625.     getStatus( id, iGang )
  1626.     {
  1627.         if( !is_user_connected( id ) || iGang == -1 )
  1628.             return STATUS_NONE;
  1629.            
  1630.         new aData[ GangInfo ];
  1631.         ArrayGetArray( g_aGangs, iGang, aData );
  1632.        
  1633.         new szAuthID[ 35 ];
  1634.         get_user_authid( id, szAuthID, charsmax( szAuthID ) );
  1635.        
  1636.         new iStatus;
  1637.         TrieGetCell( aData[ GangMembers ], szAuthID, iStatus );
  1638.        
  1639.         return iStatus;
  1640.     }
[/ablak]

_________________
Kép


A hozzászólást 3 alkalommal szerkesztették, utoljára Tomos 2015.12.19. 10:32-kor.

Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Jail banda shop
HozzászólásElküldve: 2015.12.19. 10:13 
Offline
Felfüggesztve
Avatar

Csatlakozott: 2013.06.09. 18:47
Hozzászólások: 2004
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 220 alkalommal
Ez meg mi a... Az egész AlliedModderst kimásoltad? Hát a pofám leszakad.. :lol: :lol:

Kérlek javítsd, hogy görgő kímélőbb legyen. Köszipuszi

_________________
Ha elnyerte valamelyik témában a hozzászólásom a tetszésedet melyet olvastál, akkor egy egyszerű gombnyomással kifejezheted, hogy tetszett.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Jail banda shop
HozzászólásElküldve: 2015.12.19. 10:27 
Offline
Félisten

Csatlakozott: 2012.06.19. 15:12
Hozzászólások: 926
Megköszönt másnak: 109 alkalommal
Megköszönték neki: 31 alkalommal
Anonymous1337 írta:
Ez meg mi a... Az egész AlliedModderst kimásoltad? Hát a pofám leszakad.. :lol: :lol:

Kérlek javítsd, hogy görgő kímélőbb legyen. Köszipuszi


Javítva.

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Jail banda shop
HozzászólásElküldve: 2015.12.19. 10:29 
Offline
Felfüggesztve
Avatar

Csatlakozott: 2013.06.09. 18:47
Hozzászólások: 2004
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 220 alkalommal
Használd a szöveg kiemelőt. Úgy legalább van mindet kijelöl gomb. Ne ezt a lenyíló ablakot..

_________________
Ha elnyerte valamelyik témában a hozzászólásom a tetszésedet melyet olvastál, akkor egy egyszerű gombnyomással kifejezheted, hogy tetszett.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Jail banda shop
HozzászólásElküldve: 2015.12.19. 10:33 
Offline
Félisten

Csatlakozott: 2012.06.19. 15:12
Hozzászólások: 926
Megköszönt másnak: 109 alkalommal
Megköszönték neki: 31 alkalommal
Anonymous1337 írta:
Használd a szöveg kiemelőt. Úgy legalább van mindet kijelöl gomb. Ne ezt a lenyíló ablakot..


Most jó?

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Jail banda shop
HozzászólásElküldve: 2015.12.19. 10:52 
Offline
Felfüggesztve
Avatar

Csatlakozott: 2013.06.09. 18:47
Hozzászólások: 2004
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 220 alkalommal
Igen.

_________________
Ha elnyerte valamelyik témában a hozzászólásom a tetszésedet melyet olvastál, akkor egy egyszerű gombnyomással kifejezheted, hogy tetszett.


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  [ 6 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 37 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