çete menu yardım hata alıyorum
Moderatör: Moderatörler
-
Kaan874
Konu Sahibi - Mesajlar: 131
- Kayıt: Pzr Eyl 08, 2019 4:14 pm
- Server Ip/DNS: cs49.csduragi.com
- Clan İsmi: WildFire
çete menu yardım hata alıyorum
iyi günler elimde çete menüsü var ancak bu menuyu yukleyemıyorum hata veriyor acaba anlayan birisi yardım edebılırmı.
sma sını atıyorum 2 tane (.inc) dosyaları vardır
sma sını atıyorum 2 tane (.inc) dosyaları vardır
Bu mesaja eklenen dosyaları görüntülemek için gerekli izinlere sahip değilsiniz.
| Link: | |
| Linklerini gizle |
-
LoseBasgan
- Mesajlar: 1402
- Kayıt: Sal Oca 29, 2019 11:28 pm
- Clan İsmi: MoonGaming
-
Kaan874
Konu Sahibi - Mesajlar: 131
- Kayıt: Pzr Eyl 08, 2019 4:14 pm
- Server Ip/DNS: cs49.csduragi.com
- Clan İsmi: WildFire
çete menu yardım hata alıyorum
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(31) : error 021: symbol already defined: "client_print_color"
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(34) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(36) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(39) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(45) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(49) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(56) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(58) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(62) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(67) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(70) : error 021: symbol already defined: "get_user_team"
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(74) : error 021: symbol already defined: "id"
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(74) : warning 218: old style prototypes used with optional semicolumns
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(77) : error 021: symbol already defined: "id"
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(77) : warning 218: old style prototypes used with optional semicolumns
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(80) : error 021: symbol already defined: "id"
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(80) : warning 218: old style prototypes used with optional semicolumns
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(81) : error 054: unmatched closing brace
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(82) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(84) : warning 218: old style prototypes used with optional semicolumns
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(85) : error 054: unmatched closing brace
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(89) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(95) : error 021: symbol already defined: "get_players"
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(96) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(98) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(105) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(107) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(110) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(114) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(115) : error 010: invalid function or declaration
Compilation aborted.
26 Errors.
Done.
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(34) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(36) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(39) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(45) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(49) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(56) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(58) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(62) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(67) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(70) : error 021: symbol already defined: "get_user_team"
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(74) : error 021: symbol already defined: "id"
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(74) : warning 218: old style prototypes used with optional semicolumns
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(77) : error 021: symbol already defined: "id"
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(77) : warning 218: old style prototypes used with optional semicolumns
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(80) : error 021: symbol already defined: "id"
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(80) : warning 218: old style prototypes used with optional semicolumns
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(81) : error 054: unmatched closing brace
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(82) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(84) : warning 218: old style prototypes used with optional semicolumns
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(85) : error 054: unmatched closing brace
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(89) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(95) : error 021: symbol already defined: "get_players"
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(96) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(98) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(105) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(107) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(110) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(114) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(115) : error 010: invalid function or declaration
Compilation aborted.
26 Errors.
Done.
| Link: | |
| Linklerini gizle |
-
LoseBasgan
- Mesajlar: 1402
- Kayıt: Sal Oca 29, 2019 11:28 pm
- Clan İsmi: MoonGaming
-
Kaan874
Konu Sahibi - Mesajlar: 131
- Kayıt: Pzr Eyl 08, 2019 4:14 pm
- Server Ip/DNS: cs49.csduragi.com
- Clan İsmi: WildFire
çete menu yardım hata alıyorum
Kod: Tümünü seç
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(31) : error 021: symbol already defined: "client_print_color"
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(34) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(36) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(39) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(45) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(49) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(56) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(58) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(62) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(67) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(70) : error 021: symbol already defined: "get_user_team"
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(74) : error 021: symbol already defined: "id"
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(74) : warning 218: old style prototypes used with optional semicolumns
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(77) : error 021: symbol already defined: "id"
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(77) : warning 218: old style prototypes used with optional semicolumns
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(80) : error 021: symbol already defined: "id"
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(80) : warning 218: old style prototypes used with optional semicolumns
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(81) : error 054: unmatched closing brace
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(82) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(84) : warning 218: old style prototypes used with optional semicolumns
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(85) : error 054: unmatched closing brace
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(89) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(95) : error 021: symbol already defined: "get_players"
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(96) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(98) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(105) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(107) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(110) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(114) : error 010: invalid function or declaration
/cstrike/addons/amxmodx/scripting/include/colorchat.inc(115) : error 010: invalid function or declaration
| Link: | |
| Linklerini gizle |
-
ENESIZM
- Mesajlar: 2193
- Kayıt: Prş Tem 06, 2017 10:44 pm
- Konum: Mersin
- Server Ip/DNS: MoonDeveloperTeam
- İletişim:
çete menu yardım hata alıyorum
Bu eklenti bu haliyle csd panelinde çalışmaz. Çok köklü bir düzenleme alması gerekiyor
En son ENESIZM tarafından Cmt Ara 28, 2019 12:56 am tarihinde düzenlendi, toplamda 1 kere düzenlendi.
| Link: | |
| Linklerini gizle |
-
Kaan874
Konu Sahibi - Mesajlar: 131
- Kayıt: Pzr Eyl 08, 2019 4:14 pm
- Server Ip/DNS: cs49.csduragi.com
- Clan İsmi: WildFire
çete menu yardım hata alıyorum
evet onun farkındayım ama bu tarz bir plugin çıkmıyor eğer editleyebilcek birisi varsa diye attımENESIZM yazdı: Cmt Ara 28, 2019 12:51 am Bu eklenti, bu rezil haliyle csd panelinde çalışmaz. Çok köklü bir düzenleme alması gerekiyor
| Link: | |
| Linklerini gizle |
-
ENESIZM
- Mesajlar: 2193
- Kayıt: Prş Tem 06, 2017 10:44 pm
- Konum: Mersin
- Server Ip/DNS: MoonDeveloperTeam
- İletişim:
çete menu yardım hata alıyorum
eğer 1 hata verirse altta ismini verdiğim kütüphaneyi yükle. benim derleyicide yüklüydü, hata vermedi. csd panelinde yüklü olmayabilir
test eder misin ?
ek olarak, yazılar renkli değildi biraz renklendirdim
Kod: Tümünü seç
#include <sqlvault_ex>ek olarak, yazılar renkli değildi biraz renklendirdim
Kod: Tümünü seç
/*
CVARS
-----
jb_gang_cost - The cost to create a gang.
jb_health_cost - The cost to upgrade gang health.
jb_stealing_cost - The cost to upgrade gang money earning.
jb_gravity_cost - The cost to upgrade gang gravity.
jb_damage_cost - The cost to upgrade gang damage.
jb_stamina_cost - The cost to upgrade gang stamina (speed).
jb_weapondrop_cost - The cost to upgrade gang weapon drop percentage.
jb_points_per_kill - The amount of points you get for a kill
jb_headshot_bonus - The amount of points you get for a headshot
jb_max_members - The max amount of members a gang can hold
jb_admin_create - Whether or not an admin can create gangs without using points
*/
/* Includes */
#include <amxmodx>
#include <amxmisc>
#include <sqlvault_ex>
#include <cstrike>
#include <reapi>
#include <hamsandwich>
#include <fun>
/* Defines */
#define ADMIN_CREATE ADMIN_LEVEL_B
/* Constants */
new const g_szVersion[ ] = "1.1.2";
enum _:GangInfo
{
Trie:GangMembers,
GangName[ 64 ],
GangHP,
GangStealing,
GangGravity,
GangDamage,
GangStamina,
GangWeaponDrop,
GangKills,
NumMembers
};
enum
{
VALUE_HP,
VALUE_STEALING,
VALUE_GRAVITY,
VALUE_DAMAGE,
VALUE_STAMINA,
VALUE_WEAPONDROP,
VALUE_KILLS
}
enum
{
STATUS_NONE,
STATUS_MEMBER,
STATUS_ADMIN,
STATUS_LEADER
};
new const g_szGangValues[ ][ ] =
{
"HP",
"Stealing",
"Gravity",
"Damage",
"Stamina",
"WeaponDrop",
"Kills"
};
new const g_szPrefix[ ] = "[CSduragi]";
/* Tries */
new Trie:g_tGangNames;
new Trie:g_tGangValues;
/* Vault */
new SQLVault:g_hVault;
new SQLVault:g_hPointsVault;
/* Arrays */
new Array:g_aGangs;
/* Pcvars */
new g_pCreateCost;
new g_pHealthCost;
new g_pStealingCost;
new g_pGravityCost;
new g_pDamageCost;
new g_pStaminaCost;
new g_pWeaponDropCost;
new g_pHealthMax;
new g_pStealingMax;
new g_pGravityMax;
new g_pDamageMax;
new g_pStaminaMax;
new g_pWeaponDropMax;
new g_pHealthPerLevel;
new g_pStealingPerLevel;
new g_pGravityPerLevel;
new g_pDamagePerLevel;
new g_pStaminaPerLevel;
new g_pWeaponDropPerLevel;
new g_pPointsPerKill;
new g_pHeadshotBonus;
new g_pMaxMembers;
new g_pAdminCreate;
/* Integers */
new g_iGang[ 33 ];
new g_iPoints[ 33 ];
public plugin_init()
{
register_plugin( "Jailbreak Gang System", g_szVersion, "H3avY Ra1n" );
g_aGangs = ArrayCreate( GangInfo );
g_tGangValues = TrieCreate();
g_tGangNames = TrieCreate();
g_hVault = sqlv_open_local( "jb_gangs", false );
sqlv_init_ex( g_hVault );
g_hPointsVault = sqlv_open_local( "jb_points", true );
g_pCreateCost = register_cvar( "jb_gang_cost", "300" );
g_pHealthCost = register_cvar( "jb_health_cost", "20" );
g_pStealingCost = register_cvar( "jb_stealing_cost", "20" );
g_pGravityCost = register_cvar( "jb_gravity_cost", "20" );
g_pDamageCost = register_cvar( "jb_damage_cost", "20" );
g_pStaminaCost = register_cvar( "jb_stamina_cost", "20" );
g_pWeaponDropCost = register_cvar( "jb_weapondrop_cost", "20" );
g_pHealthMax = register_cvar( "jb_health_max", "10" );
g_pStealingMax = register_cvar( "jb_stealing_max", "10" );
g_pGravityMax = register_cvar( "jb_gravity_max", "10" ); // Max * Gravity Per Level must be LESS than 800
g_pDamageMax = register_cvar( "jb_damage_max", "10" );
g_pStaminaMax = register_cvar( "jb_stamina_max", "10" );
g_pWeaponDropMax = register_cvar( "jb_weapondrop_max", "10" );
g_pHealthPerLevel = register_cvar( "jb_health_per", "10" );
g_pStealingPerLevel = register_cvar( "jb_stealing_per", "0.05" );
g_pGravityPerLevel = register_cvar( "jb_gravity_per", "50" );
g_pDamagePerLevel = register_cvar( "jb_damage_per", "3" );
g_pStaminaPerLevel = register_cvar( "jb_stamina_per", "3" );
g_pWeaponDropPerLevel = register_cvar( "jb_weapondrop_per", "1" );
g_pPointsPerKill = register_cvar( "jb_points_per_kill", "3" );
g_pHeadshotBonus = register_cvar( "jb_headshot_bonus", "2" );
g_pMaxMembers = register_cvar( "jb_max_members", "10" );
g_pAdminCreate = register_cvar( "jb_admin_create", "0" ); // Admins can create gangs without points
register_cvar( "jb_gang_version", g_szVersion, FCVAR_SPONLY | FCVAR_SERVER );
register_menu( "Gang Menu", 1023, "GangMenu_Handler" );
register_menu( "Skills Menu", 1023, "SkillsMenu_Handler" );
for( new i = 0; i < sizeof g_szGangValues; i++ )
{
TrieSetCell( g_tGangValues, g_szGangValues[ i ], i );
}
RegisterHam( Ham_Spawn, "player", "Ham_PlayerSpawn_Post", 1 );
RegisterHam( Ham_TakeDamage, "player", "Ham_TakeDamage_Pre", 0 );
RegisterHam( Ham_TakeDamage, "player", "Ham_TakeDamage_Post", 1 );
RegisterHam( Ham_Item_PreFrame, "player", "Ham_PlayerResetSpeedPost", 1);
register_event( "DeathMsg", "Event_DeathMsg", "a" );
register_clcmd( "say /cete", "Cmd_Gang" );
register_clcmd( "gang_name", "Cmd_CreateGang" );
LoadGangs();
}
public client_disconnected(id)
{
g_iGang[ id ] = -1;
new szAuthID[ 35 ];
get_user_authid( id, szAuthID, charsmax( szAuthID ) );
sqlv_set_num( g_hPointsVault, szAuthID, g_iPoints[ id ] );
}
public client_putinserver( id )
{
g_iGang[ id ] = get_user_gang( id );
new szAuthID[ 35 ];
get_user_authid( id, szAuthID, charsmax( szAuthID ) );
g_iPoints[ id ] = sqlv_get_num( g_hPointsVault, szAuthID );
}
public plugin_end()
{
SaveGangs();
sqlv_close( g_hVault );
}
public Ham_PlayerSpawn_Post( id )
{
if( !is_user_alive( id ) || cs_get_user_team( id ) != CS_TEAM_T )
return HAM_IGNORED;
if( g_iGang[ id ] == -1 )
{
return HAM_IGNORED;
}
new aData[ GangInfo ];
ArrayGetArray( g_aGangs, g_iGang[ id ], aData );
new iHealth = 100 + aData[ GangHP ] * get_pcvar_num( g_pHealthPerLevel );
set_user_health( id, iHealth );
new iGravity = 800 - ( get_pcvar_num( g_pGravityPerLevel ) * aData[ GangGravity ] );
set_user_gravity( id, float( iGravity ) / 800.0 );
return HAM_IGNORED;
}
public Ham_TakeDamage_Pre( iVictim, iInflictor, iAttacker, Float:flDamage, iBits )
{
if( !is_user_alive( iAttacker ) || cs_get_user_team( iAttacker ) != CS_TEAM_T )
return HAM_IGNORED;
if( g_iGang[ iAttacker ] == -1 )
return HAM_IGNORED;
new aData[ GangInfo ];
ArrayGetArray( g_aGangs, g_iGang[ iAttacker ], aData );
SetHamParamFloat( 4, flDamage + ( get_pcvar_num( g_pDamagePerLevel ) * ( aData[ GangDamage ] ) ) );
return HAM_IGNORED;
}
public Ham_TakeDamage_Post( iVictim, iInflictor, iAttacker, Float:flDamage, iBits )
{
if( !is_user_alive( iAttacker ) || g_iGang[ iAttacker ] == -1 || get_user_weapon( iAttacker ) != CSW_KNIFE || cs_get_user_team( iAttacker ) != CS_TEAM_T )
{
return HAM_IGNORED;
}
new aData[ GangInfo ];
ArrayGetArray( g_aGangs, g_iGang[ iAttacker ], aData );
new iChance = aData[ GangWeaponDrop ] * get_pcvar_num( g_pWeaponDropPerLevel );
if( iChance == 0 )
return HAM_IGNORED;
new bool:bDrop = ( random_num( 1, 100 ) <= iChance );
if( bDrop )
client_cmd( iVictim, "drop" );
return HAM_IGNORED;
}
public Ham_PlayerResetSpeedPost( id )
{
if( g_iGang[ id ] == -1 || !is_user_alive( id ) || cs_get_user_team( id ) != CS_TEAM_T )
{
return HAM_IGNORED;
}
new aData[ GangInfo ];
ArrayGetArray( g_aGangs, g_iGang[ id ], aData );
if( aData[ GangStamina ] > 0 && get_user_maxspeed( id ) > 1.0 )
set_user_maxspeed( id, 250.0 + ( aData[ GangStamina ] * get_pcvar_num( g_pStaminaPerLevel ) ) );
return HAM_IGNORED;
}
public Event_DeathMsg()
{
new iKiller = read_data( 1 );
if( !is_user_alive( iKiller ) )
return PLUGIN_CONTINUE;
new iTotal = get_pcvar_num( g_pPointsPerKill ) + ( bool:read_data( 3 ) ? get_pcvar_num( g_pHeadshotBonus ) : 0 );
if( g_iGang[ iKiller ] > -1 )
{
new aData[ GangInfo ];
ArrayGetArray( g_aGangs, g_iGang[ iKiller ], aData );
aData[ GangKills ]++;
ArraySetArray( g_aGangs, g_iGang[ iKiller ], aData );
iTotal += iTotal * ( aData[ GangStealing ] * get_pcvar_num( g_pStealingPerLevel ) );
}
g_iPoints[ iKiller ] += iTotal;
return PLUGIN_CONTINUE;
}
public Cmd_Gang( id )
{
static szMenu[ 512 ], iLen, aData[ GangInfo ], iKeys, iStatus;
iKeys = MENU_KEY_0 | MENU_KEY_3;
iStatus = getStatus( id, g_iGang[ id ] );
if( g_iGang[ id ] > -1 )
{
ArrayGetArray( g_aGangs, g_iGang[ id ], aData );
iLen = formatex( szMenu, charsmax( szMenu ), "\yCete Menu^n\wMevcut Cete:\y %s^n", aData[ GangName ] );
iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\yCSDuragiCoins Miktari: \w%i^n^n", g_iPoints[ id ] );
iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r1. \dCete Olustur [%i CSDuragiCoins]^n", get_pcvar_num( g_pCreateCost ) );
}
else
{
iLen = formatex( szMenu, charsmax( szMenu ), "\yCete Menu^n\wMevcut Cete:\r Yok^n" );
iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\yCSDuragiCoins Miktari: \w%i^n^n", g_iPoints[ id ] );
iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r1. \wCete Olustur [%i CSDuragiCoins]^n", get_pcvar_num( g_pCreateCost ) );
iKeys |= MENU_KEY_1;
}
if( iStatus > STATUS_MEMBER && g_iGang[ id ] > -1 && get_pcvar_num( g_pMaxMembers ) > aData[ NumMembers ] )
{
iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r2. \wCetene Oyuncu Davet Et^n" );
iKeys |= MENU_KEY_2;
}
else
iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r2. \dCetene Oyuncu Davet Et^n" );
iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r3. \wTop-10^n" );
if( g_iGang[ id ] > -1 )
{
iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r4. \wCeteden Ayril^n" );
iKeys |= MENU_KEY_4;
}
else
iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r4. \dCeteden Ayril^n" );
if( iStatus > STATUS_MEMBER )
{
iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r5. \wCete Admin Menu^n" );
iKeys |= MENU_KEY_5;
}
else
iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r5. \dCete Admin Menu^n" );
if( g_iGang[ id ] > -1 )
{
iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r6. \wAktif Uyeler^n" );
iKeys |= MENU_KEY_6;
}
else
iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r6. \dAktif Uyeler^n" );
iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "^n\r0. \wMenuyu Kapat" );
show_menu( id, iKeys, szMenu, -1, "Gang Menu" );
return PLUGIN_CONTINUE;
}
public GangMenu_Handler( id, iKey )
{
switch( ( iKey + 1 ) % 10 )
{
case 0: return PLUGIN_HANDLED;
case 1:
{
if( get_pcvar_num( g_pAdminCreate ) && get_user_flags( id ) & ADMIN_CREATE )
{
client_cmd( id, "messagemode gang_name" );
}
else if( g_iPoints[ id ] < get_pcvar_num( g_pCreateCost ) )
{
client_print_color(id, id, "^3%s ^4Bir çete oluþturmak için yeterli ^2CSDuragiCoins^4 yok!", g_szPrefix );
return PLUGIN_HANDLED;
}
else
client_cmd( id, "messagemode gang_name" );
}
case 2:
{
ShowInviteMenu( id );
}
case 3:
{
Cmd_Top10( id );
}
case 4:
{
ShowLeaveConfirmMenu( id );
}
case 5:
{
ShowLeaderMenu( id );
}
case 6:
{
ShowMembersMenu( id );
}
}
return PLUGIN_HANDLED;
}
public Cmd_CreateGang( id )
{
new bool:bAdmin = false;
if( get_pcvar_num( g_pAdminCreate ) && get_user_flags( id ) & ADMIN_CREATE )
{
bAdmin = true;
}
else if( g_iPoints[ id ] < get_pcvar_num( g_pCreateCost ) )
{
client_print_color(id, id, "^3%s ^4Bir çete oluþturmak için yeterli ^2CSDuragiCoins^4 yok!", g_szPrefix );
return PLUGIN_HANDLED;
}
else if( g_iGang[ id ] > -1 )
{
client_print_color(id, id, "^3%s ^4Zaten bir cetedesin.", g_szPrefix );
return PLUGIN_HANDLED;
}
new szArgs[ 60 ];
read_args( szArgs, charsmax( szArgs ) );
remove_quotes( szArgs );
if( TrieKeyExists( g_tGangNames, szArgs ) )
{
client_print_color(id, id, "^3%s ^4Bu cete ismi ^2zaten ^4kullanimda lutfen baska bi isim deneyin.", g_szPrefix );
Cmd_Gang( id );
return PLUGIN_HANDLED;
}
new aData[ GangInfo ];
aData[ GangName ] = szArgs;
aData[ GangHP ] = 0;
aData[ GangStealing ] = 0;
aData[ GangGravity ] = 0;
aData[ GangStamina ] = 0;
aData[ GangWeaponDrop ] = 0;
aData[ GangDamage ] = 0;
aData[ NumMembers ] = 0;
aData[ GangMembers ] = _:TrieCreate();
ArrayPushArray( g_aGangs, aData );
if( !bAdmin )
g_iPoints[ id ] -= get_pcvar_num( g_pCreateCost );
set_user_gang( id, ArraySize( g_aGangs ) - 1, STATUS_LEADER );
client_print_color(id, id, "^3%s ^4Tebrikler.^2Basariyla ^4cete olusturuldu. '^03%s^01'.", g_szPrefix, szArgs );
return PLUGIN_HANDLED;
}
public ShowInviteMenu( id )
{
new iPlayers[ 32 ], iNum;
get_players( iPlayers, iNum );
new szInfo[ 6 ], hMenu;
hMenu = menu_create( "Bir Oyuncu Davet etmek için seçin:", "InviteMenu_Handler" );
new szName[ 32 ];
for( new i = 0, iPlayer; i < iNum; i++ )
{
iPlayer = iPlayers[ i ];
if( iPlayer == id || g_iGang[ iPlayer ] == g_iGang[ id ])
continue;
get_user_name( iPlayer, szName, charsmax( szName ) );
num_to_str( iPlayer, szInfo, charsmax( szInfo ) );
menu_additem( hMenu, szName, szInfo );
}
menu_display( id, hMenu, 0 );
}
public InviteMenu_Handler( id, hMenu, iItem )
{
if( iItem == MENU_EXIT )
{
Cmd_Gang( id );
return PLUGIN_HANDLED;
}
new szData[ 6 ], iAccess, hCallback, szName[ 32 ];
menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, szName, 31, hCallback );
new iPlayer = str_to_num( szData );
if( !is_user_connected( iPlayer ) )
return PLUGIN_HANDLED;
ShowInviteConfirmMenu( id, iPlayer );
client_print_color(id, id, "^3%s ^4Ceteye katilma istegi var ^2%s ", g_szPrefix, szName );
Cmd_Gang( id );
return PLUGIN_HANDLED;
}
public ShowInviteConfirmMenu( id, iPlayer )
{
new szName[ 32 ];
get_user_name( id, szName, charsmax( szName ) );
new aData[ GangInfo ];
ArrayGetArray( g_aGangs, g_iGang[ id ], aData );
new szMenuTitle[ 128 ];
formatex( szMenuTitle, charsmax( szMenuTitle ), "%s Size katilmak icin davet var %s", szName, aData[ GangName ] );
new hMenu = menu_create( szMenuTitle, "InviteConfirmMenu_Handler" );
new szInfo[ 6 ];
num_to_str( g_iGang[ id ], szInfo, 5 );
menu_additem( hMenu, "Daveti kabul et.", szInfo );
menu_additem( hMenu, "Reddet", "-1" );
menu_display( iPlayer, hMenu, 0 );
}
public InviteConfirmMenu_Handler( id, hMenu, iItem )
{
if( iItem == MENU_EXIT )
return PLUGIN_HANDLED;
new szData[ 6 ], iAccess, hCallback;
menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback );
new iGang = str_to_num( szData );
if( iGang == -1 )
return PLUGIN_HANDLED;
if( getStatus( id, g_iGang[ id ] ) == STATUS_LEADER )
{
client_print_color(id, id, "^3%s ^4Lider iken çete birakamazsin.", g_szPrefix );
return PLUGIN_HANDLED;
}
set_user_gang( id, iGang );
new aData[ GangInfo ];
ArrayGetArray( g_aGangs, iGang, aData );
client_print_color(id, id, "^3%s ^4Basariyla ceteye ^2uye^4 olundu. ^03%s^01.", g_szPrefix, aData[ GangName ] );
return PLUGIN_HANDLED;
}
public ShowSkillsMenu( id )
{
static szMenu[ 512 ], iLen, iKeys, aData[ GangInfo ];
if( !iKeys )
{
iKeys = MENU_KEY_1 | MENU_KEY_2 | MENU_KEY_3 | MENU_KEY_4 | MENU_KEY_5 | MENU_KEY_6 | MENU_KEY_0;
}
ArrayGetArray( g_aGangs, g_iGang[ id ], aData );
iLen = formatex( szMenu, charsmax( szMenu ), "\ySkills Menu^n^n" );
iLen += formatex( szMenu[ iLen ], 511 - iLen, "\r1. \wHP Yukselt [\rMaliyet: \y%i CSDuragiCoins\w] \y[Level:%i/%i]^n", get_pcvar_num( g_pHealthCost ), aData[ GangHP ], get_pcvar_num( g_pHealthMax ) );
iLen += formatex( szMenu[ iLen ], 511 - iLen, "\r2. \wHirsizlik Yukselt [\rMaliyet: \y%i CSDuragiCoins\w] \y[Level:%i/%i]^n", get_pcvar_num( g_pStealingCost ), aData[ GangStealing ], get_pcvar_num( g_pStealingMax ) );
iLen += formatex( szMenu[ iLen ], 511 - iLen, "\r3. \wYercekimi Yukselt [\rMaliyet: \y%i CSDuragiCoins\w] \y[Level:%i/%i]^n", get_pcvar_num( g_pGravityCost ), aData[ GangGravity ], get_pcvar_num( g_pGravityMax ) );
iLen += formatex( szMenu[ iLen ], 511 - iLen, "\r4. \wHasar Yukselt [\rMaliyet: \y%i CSDuragiCoins\w] \y[Level:%i/%i]^n", get_pcvar_num( g_pDamageCost ), aData[ GangDamage ], get_pcvar_num( g_pDamageMax ) );
iLen += formatex( szMenu[ iLen ], 511 - iLen, "\r5. \wSilah Birakma Yukselt [\rMaliyet: \y%i CSDuragiCoins\w] \y[Level:%i/%i]^n", get_pcvar_num( g_pWeaponDropCost ), aData[ GangWeaponDrop ], get_pcvar_num( g_pWeaponDropMax ) );
iLen += formatex( szMenu[ iLen ], 511 - iLen, "\r6. \wHiz Yukselt [\rMaliyet: \y%i CSDuragiCoins\w] \y[Level:%i/%i]^n", get_pcvar_num( g_pStaminaCost ), aData[ GangStamina ], get_pcvar_num( g_pStaminaMax ) );
iLen += formatex( szMenu[ iLen ], 511 - iLen, "^n\r0. \wMenuyu Kapat" );
show_menu( id, iKeys, szMenu, -1, "Skills Menu" );
}
public SkillsMenu_Handler( id, iKey )
{
new aData[ GangInfo ];
ArrayGetArray( g_aGangs, g_iGang[ id ], aData );
switch( ( iKey + 1 ) % 10 )
{
case 0:
{
Cmd_Gang( id );
return PLUGIN_HANDLED;
}
case 1:
{
if( aData[ GangHP ] == get_pcvar_num( g_pHealthMax ) )
{
client_print_color(id, id, "^3%s ^4Cete icin ^2bu beceri en yuksek^4 seviyede.", g_szPrefix );
ShowSkillsMenu( id );
return PLUGIN_HANDLED;
}
new iRemaining = g_iPoints[ id ] - get_pcvar_num( g_pHealthCost );
if( iRemaining < 0 )
{
client_print_color(id, id, "^3%s ^4Bunun icin yeterli ^2CSDuragiCoins^4 yok.", g_szPrefix );
ShowSkillsMenu( id );
return PLUGIN_HANDLED;
}
aData[ GangHP ]++;
g_iPoints[ id ] = iRemaining;
}
case 2:
{
if( aData[ GangStealing ] == get_pcvar_num( g_pStealingMax ) )
{
client_print_color(id, id, "^3%s ^4Cete icin ^2bu beceri en yuksek^4 seviyede.", g_szPrefix );
ShowSkillsMenu( id );
return PLUGIN_HANDLED;
}
new iRemaining = g_iPoints[ id ] - get_pcvar_num( g_pStealingCost );
if( iRemaining < 0 )
{
client_print_color(id, id, "^3%s ^4Bunun icin yeterli ^2CSDuragiCoins^4 yok.", g_szPrefix );
ShowSkillsMenu( id );
return PLUGIN_HANDLED;
}
aData[ GangStealing ]++;
g_iPoints[ id ] = iRemaining;
}
case 3:
{
if( aData[ GangGravity ] == get_pcvar_num( g_pGravityMax ) )
{
client_print_color(id, id, "^3%s ^4Cete icin ^2bu beceri en yuksek^4 seviyede.", g_szPrefix );
ShowSkillsMenu( id );
return PLUGIN_HANDLED;
}
new iRemaining = g_iPoints[ id ] - get_pcvar_num( g_pGravityCost );
if( iRemaining < 0 )
{
client_print_color(id, id, "^3%s ^4Bunun icin yeterli ^2CSDuragiCoins^4 yok.", g_szPrefix );
ShowSkillsMenu( id );
return PLUGIN_HANDLED;
}
aData[ GangGravity ]++;
g_iPoints[ id ] = iRemaining;
}
case 4:
{
if( aData[ GangDamage ] == get_pcvar_num( g_pDamageMax ) )
{
client_print_color(id, id, "^3%s ^4Cete icin ^2bu beceri en yuksek^4 seviyede.", g_szPrefix );
ShowSkillsMenu( id );
return PLUGIN_HANDLED;
}
new iRemaining = g_iPoints[ id ] - get_pcvar_num( g_pDamageCost );
if( iRemaining < 0 )
{
client_print_color(id, id, "^3%s ^4Bunun icin yeterli ^2CSDuragiCoins^4 yok.", g_szPrefix );
ShowSkillsMenu( id );
return PLUGIN_HANDLED;
}
aData[ GangDamage ]++;
g_iPoints[ id ] = iRemaining;
}
case 5:
{
if( aData[ GangWeaponDrop ] == get_pcvar_num( g_pWeaponDropMax ) )
{
client_print_color(id, id, "^3%s ^4Cete icin ^2bu beceri en yuksek^4 seviyede.", g_szPrefix );
ShowSkillsMenu( id );
return PLUGIN_HANDLED;
}
new iRemaining = g_iPoints[ id ] - get_pcvar_num( g_pWeaponDropCost );
if( iRemaining < 0 )
{
client_print_color(id, id, "^3%s ^4Bunun icin yeterli ^2CSDuragiCoins^4 yok.", g_szPrefix );
ShowSkillsMenu( id );
return PLUGIN_HANDLED;
}
aData[ GangWeaponDrop ]++;
g_iPoints[ id ] = iRemaining;
}
case 6:
{
if( aData[ GangStamina ] == get_pcvar_num( g_pStaminaMax ) )
{
client_print_color(id, id, "^3%s ^4Cete icin ^2bu beceri en yuksek^4 seviyede.", g_szPrefix );
ShowSkillsMenu( id );
return PLUGIN_HANDLED;
}
new iRemaining = g_iPoints[ id ] - get_pcvar_num( g_pStaminaCost );
if( iRemaining < 0 )
{
client_print_color(id, id, "^3%s ^4Bunun icin yeterli ^2CSDuragiCoins^4 yok.", g_szPrefix );
ShowSkillsMenu( id );
return PLUGIN_HANDLED;
}
aData[ GangStamina ]++;
g_iPoints[ id ] = iRemaining;
}
}
ArraySetArray( g_aGangs, g_iGang[ id ], aData );
new iPlayers[ 32 ], iNum, iPlayer;
new szName[ 32 ];
get_players( iPlayers, iNum );
for( new i = 0; i < iNum; i++ )
{
iPlayer = iPlayers[ i ];
if( iPlayer == id || g_iGang[ iPlayer ] != g_iGang[ id ] )
continue;
client_print_color(iPlayer, id, "^3%s ^2%s ^4Yetenek bir seviye yukseltildi.", g_szPrefix, szName );
}
client_print_color(id, id, "^3%s ^4Basariyla ^3cetenin seviyesini^4 yukselttiniz.", g_szPrefix );
ShowSkillsMenu( id );
return PLUGIN_HANDLED;
}
public Cmd_Top10( id )
{
new iSize = ArraySize( g_aGangs );
new iOrder[ 100 ][ 2 ];
new aData[ GangInfo ];
for( new i = 0; i < iSize; i++ )
{
ArrayGetArray( g_aGangs, i, aData );
iOrder[ i ][ 0 ] = i;
iOrder[ i ][ 1 ] = aData[ GangKills ];
}
SortCustom2D( iOrder, iSize, "Top10_Sort" );
new szMessage[ 2048 ];
formatex( szMessage, charsmax( szMessage ), "<body bgcolor=#000000><font color=#FFB000><pre>" );
format( szMessage, charsmax( szMessage ), "%s%2s %-22.22s %7s %4s %10s %9s %9s %11s %8s^n", szMessage, "#", "Isim", "Oldurmeler", "HP", "Calma",
"Yercekimi", "Dayaniklilik", "Silah Dusurme", "Hasar" );
for( new i = 0; i < min( 10, iSize ); i++ )
{
ArrayGetArray( g_aGangs, iOrder[ i ][ 0 ], aData );
format( szMessage, charsmax( szMessage ), "%s%-2d %22.22s %7d %4d %10d %9d %9d %11d %8d^n", szMessage, i + 1, aData[ GangName ],
aData[ GangKills ], aData[ GangHP ], aData[ GangStealing ], aData[ GangGravity ], aData[ GangStamina], aData[ GangWeaponDrop ], aData[ GangDamage ] );
}
show_motd( id, szMessage, "CSDuragi | Cete Top 10" );
}
public Top10_Sort( const iElement1[ ], const iElement2[ ], const iArray[ ], szData[], iSize )
{
if( iElement1[ 1 ] > iElement2[ 1 ] )
return -1;
else if( iElement1[ 1 ] < iElement2[ 1 ] )
return 1;
return 0;
}
public ShowLeaveConfirmMenu( id )
{
new hMenu = menu_create( "Ceteden ayrilmak istediginize emin misiniz ?", "LeaveConfirmMenu_Handler" );
menu_additem( hMenu, "Evet,Ayril", "0" );
menu_additem( hMenu, "Hayir,Kal", "1" );
menu_display( id, hMenu, 0 );
}
public LeaveConfirmMenu_Handler( id, hMenu, iItem )
{
if( iItem == MENU_EXIT )
return PLUGIN_HANDLED;
new szData[ 6 ], iAccess, hCallback;
menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback );
switch( str_to_num( szData ) )
{
case 0:
{
if( getStatus( id, g_iGang[ id ] ) == STATUS_LEADER )
{
client_print_color(id, id, "^3%s ^4Bu ceteden ^2ayrilmadan once liderligi ^4baskasina aktarmaniz gerekir!", g_szPrefix );
Cmd_Gang( id );
return PLUGIN_HANDLED;
}
client_print_color(id, id, "^3%s ^4Basariyla ^2cete ^4kaldi.", g_szPrefix );
set_user_gang( id, -1 );
Cmd_Gang( id );
}
case 1: Cmd_Gang( id );
}
return PLUGIN_HANDLED;
}
public ShowLeaderMenu( id )
{
new hMenu = menu_create( "Cete Yonetici Menu", "LeaderMenu_Handler" );
new iStatus = getStatus( id, g_iGang[ id ] );
if( iStatus == STATUS_LEADER )
{
menu_additem( hMenu, "Ceteyi Dagit", "0" );
menu_additem( hMenu, "Liderligi Devret", "1" );
menu_additem( hMenu, "Yetkili Ekle", "4" );
menu_additem( hMenu, "Yetkili Kaldir", "5" );
}
menu_additem( hMenu, "Ceteden At", "2" );
menu_additem( hMenu, "Cete Adini Degistir", "3" );
menu_display( id, hMenu, 0 );
}
public LeaderMenu_Handler( id, hMenu, iItem )
{
if( iItem == MENU_EXIT )
{
Cmd_Gang( id );
return PLUGIN_HANDLED;
}
new iAccess, hCallback, szData[ 6 ];
menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback );
switch( str_to_num( szData ) )
{
case 0:
{
ShowDisbandConfirmMenu( id );
}
case 1:
{
ShowTransferMenu( id );
}
case 2:
{
ShowKickMenu( id );
}
case 3:
{
client_cmd( id, "messagemode New_Name" );
}
case 4:
{
ShowAddAdminMenu( id );
}
case 5:
{
ShowRemoveAdminMenu( id );
}
}
return PLUGIN_HANDLED;
}
public ShowDisbandConfirmMenu( id )
{
new hMenu = menu_create( "Ceteyi dagitmak istediginizden emin misiniz ?", "DisbandConfirmMenu_Handler" );
menu_additem( hMenu, "Evet, Simdi Dagit", "0" );
menu_additem( hMenu, "Hayir", "1" );
menu_display( id, hMenu, 0 );
}
public DisbandConfirmMenu_Handler( id, hMenu, iItem )
{
if( iItem == MENU_EXIT )
return PLUGIN_HANDLED;
new szData[ 6 ], iAccess, hCallback;
menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback );
switch( str_to_num( szData ) )
{
case 0:
{
client_print_color(id, id, "^3%s ^4Basariyla ^2cete ^4dagitildi.", g_szPrefix );
new iPlayers[ 32 ], iNum;
get_players( iPlayers, iNum );
new iPlayer;
for( new i = 0; i < iNum; i++ )
{
iPlayer = iPlayers[ i ];
if( iPlayer == id )
continue;
if( g_iGang[ id ] != g_iGang[ iPlayer ] )
continue;
client_print_color(iPlayer, id, "^3%s ^4Cete ^2lider tarafindan^4 dagitildi..", g_szPrefix );
set_user_gang( iPlayer, -1 );
}
new iGang = g_iGang[ id ];
set_user_gang( id, -1 );
ArrayDeleteItem( g_aGangs, iGang );
Cmd_Gang( id );
}
case 1: Cmd_Gang( id );
}
return PLUGIN_HANDLED;
}
public ShowTransferMenu( id )
{
new iPlayers[ 32 ], iNum;
get_players( iPlayers, iNum, "e", "TERRORIST" );
new hMenu = menu_create( "Liderligi transfer etmek istedigini sec:", "TransferMenu_Handler" );
new szName[ 32 ], szData[ 6 ];
for( new i = 0, iPlayer; i < iNum; i++ )
{
iPlayer = iPlayers[ i ];
if( g_iGang[ iPlayer ] != g_iGang[ id ] || id == iPlayer )
continue;
get_user_name( iPlayer, szName, charsmax( szName ) );
num_to_str( iPlayer, szData, charsmax( szData ) );
menu_additem( hMenu, szName, szData );
}
menu_display( id, hMenu, 0 );
}
public TransferMenu_Handler( id, hMenu, iItem )
{
if( iItem == MENU_EXIT )
{
ShowLeaderMenu( id );
return PLUGIN_HANDLED;
}
new iAccess, hCallback, szData[ 6 ], szName[ 32 ];
menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, szName, charsmax( szName ), hCallback );
new iPlayer = str_to_num( szData );
if( !is_user_connected( iPlayer ) )
{
client_print_color(id, id, "^3%s ^4Bu oyuncu artik bagli.", g_szPrefix );
ShowTransferMenu( id );
return PLUGIN_HANDLED;
}
set_user_gang( iPlayer, g_iGang[ id ], STATUS_LEADER );
set_user_gang( id, g_iGang[ id ], STATUS_ADMIN );
Cmd_Gang( id );
new iPlayers[ 32 ], iNum, iTemp;
get_players( iPlayers, iNum );
for( new i = 0; i < iNum; i++ )
{
iTemp = iPlayers[ i ];
if( iTemp == iPlayer )
{
client_print_color(iTemp, id, "^3%s ^4Cetenin yeni lideri sensin.", g_szPrefix );
continue;
}
else if( g_iGang[ iTemp ] != g_iGang[ id ] )
continue;
client_print_color(iTemp, id, "^3%s ^2%s^4 Cetenin yeni lideri oldu..", g_szPrefix, szName );
}
return PLUGIN_HANDLED;
}
public ShowKickMenu( id )
{
new iPlayers[ 32 ], iNum;
get_players( iPlayers, iNum );
new hMenu = menu_create( "Cetenden Uye At:", "KickMenu_Handler" );
new szName[ 32 ], szData[ 6 ];
for( new i = 0, iPlayer; i < iNum; i++ )
{
iPlayer = iPlayers[ i ];
if( g_iGang[ iPlayer ] != g_iGang[ id ] || id == iPlayer )
continue;
get_user_name( iPlayer, szName, charsmax( szName ) );
num_to_str( iPlayer, szData, charsmax( szData ) );
menu_additem( hMenu, szName, szData );
}
menu_display( id, hMenu, 0 );
}
public KickMenu_Handler( id, hMenu, iItem )
{
if( iItem == MENU_EXIT )
{
ShowLeaderMenu( id );
return PLUGIN_HANDLED;
}
new iAccess, hCallback, szData[ 6 ], szName[ 32 ];
menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, szName, charsmax( szName ), hCallback );
new iPlayer = str_to_num( szData );
if( !is_user_connected( iPlayer ) )
{
client_print_color(id, id, "^3%s ^4Bu oyuncu artik bagli.", g_szPrefix );
ShowTransferMenu( id );
return PLUGIN_HANDLED;
}
set_user_gang( iPlayer, -1 );
Cmd_Gang( id );
new iPlayers[ 32 ], iNum, iTemp;
get_players( iPlayers, iNum );
for( new i = 0; i < iNum; i++ )
{
iTemp = iPlayers[ i ];
if( iTemp == iPlayer || g_iGang[ iTemp ] != g_iGang[ id ] )
continue;
client_print_color(iTemp, id, "^3%s ^2%s^4 Ceteden atildi.", g_szPrefix, szName );
}
client_print_color(iPlayer, id, "^3%s ^4Ceteden atildiniz.", g_szPrefix, szName );
return PLUGIN_HANDLED;
}
public ChangeName_Handler( id )
{
if( g_iGang[ id ] == -1 || getStatus( id, g_iGang[ id ] ) == STATUS_MEMBER )
{
return;
}
new iGang = g_iGang[ id ];
new szArgs[ 64 ];
read_args( szArgs, charsmax( szArgs ) );
new iPlayers[ 32 ], iNum;
get_players( iPlayers, iNum );
new bool:bInGang[ 33 ];
new iStatus[ 33 ];
for( new i = 0, iPlayer; i < iNum; i++ )
{
iPlayer = iPlayers[ i ];
if( g_iGang[ id ] != g_iGang[ iPlayer ] )
continue;
bInGang[ iPlayer ] = true;
iStatus[ iPlayer ] = getStatus( id, iGang );
set_user_gang( iPlayer, -1 );
}
new aData[ GangInfo ];
ArrayGetArray( g_aGangs, iGang, aData );
aData[ GangName ] = szArgs;
ArraySetArray( g_aGangs, iGang, aData );
for( new i = 0, iPlayer; i < iNum; i++ )
{
iPlayer = iPlayers[ i ];
if( !bInGang[ iPlayer ] )
continue;
set_user_gang( iPlayer, iGang, iStatus[ id ] );
}
}
public ShowAddAdminMenu( id )
{
new iPlayers[ 32 ], iNum;
new szName[ 32 ], szData[ 6 ];
new hMenu = menu_create( "Oyuncuyu terfi et:", "AddAdminMenu_Handler" );
get_players( iPlayers, iNum );
for( new i = 0, iPlayer; i < iNum; i++ )
{
iPlayer = iPlayers[ i ];
if( g_iGang[ id ] != g_iGang[ iPlayer ] || getStatus( iPlayer, g_iGang[ iPlayer ] ) > STATUS_MEMBER )
continue;
get_user_name( iPlayer, szName, charsmax( szName ) );
num_to_str( iPlayer, szData, charsmax( szData ) );
menu_additem( hMenu, szName, szData );
}
menu_display( id, hMenu, 0 );
}
public AddAdminMenu_Handler( id, hMenu, iItem )
{
if( iItem == MENU_EXIT )
{
menu_destroy( hMenu );
ShowLeaderMenu( id );
return PLUGIN_HANDLED;
}
new iAccess, hCallback, szData[ 6 ], szName[ 32 ];
menu_item_getinfo( hMenu, iItem, iAccess, szData, charsmax( szData ), szName, charsmax( szName ), hCallback );
new iChosen = str_to_num( szData );
if( !is_user_connected( iChosen ) )
{
menu_destroy( hMenu );
ShowLeaderMenu( id );
return PLUGIN_HANDLED;
}
set_user_gang( iChosen, g_iGang[ id ], STATUS_LEADER );
new iPlayers[ 32 ], iNum;
get_players( iPlayers, iNum );
for( new i = 0, iPlayer; i < iNum; i++ )
{
iPlayer = iPlayers[ i ];
if( g_iGang[ iPlayer ] != g_iGang[ id ] || iPlayer == iChosen )
continue;
client_print_color(iPlayer, id, "^3%s ^2%s ^4Cetenin yoneticisi atandi.", g_szPrefix, szName );
}
client_print_color(iChosen, id, "^3%s ^4Cetenin yoneticisi terfi edildi", g_szPrefix );
menu_destroy( hMenu );
return PLUGIN_HANDLED;
}
public ShowRemoveAdminMenu( id )
{
new iPlayers[ 32 ], iNum;
new szName[ 32 ], szData[ 6 ];
new hMenu = menu_create( "Alt sinifa indirmek istediginiz uyeyi secin:", "RemoveAdminMenu_Handler" );
get_players( iPlayers, iNum );
for( new i = 0, iPlayer; i < iNum; i++ )
{
iPlayer = iPlayers[ i ];
if( g_iGang[ id ] != g_iGang[ iPlayer ] || getStatus( iPlayer, g_iGang[ iPlayer ] ) != STATUS_ADMIN )
continue;
get_user_name( iPlayer, szName, charsmax( szName ) );
num_to_str( iPlayer, szData, charsmax( szData ) );
menu_additem( hMenu, szName, szData );
}
menu_display( id, hMenu, 0 );
}
public RemoveAdminMenu_Handler( id, hMenu, iItem )
{
if( iItem == MENU_EXIT )
{
menu_destroy( hMenu );
ShowLeaderMenu( id );
return PLUGIN_HANDLED;
}
new iAccess, hCallback, szData[ 6 ], szName[ 32 ];
menu_item_getinfo( hMenu, iItem, iAccess, szData, charsmax( szData ), szName, charsmax( szName ), hCallback );
new iChosen = str_to_num( szData );
if( !is_user_connected( iChosen ) )
{
menu_destroy( hMenu );
ShowLeaderMenu( id );
return PLUGIN_HANDLED;
}
set_user_gang( iChosen, g_iGang[ id ], STATUS_MEMBER );
new iPlayers[ 32 ], iNum;
get_players( iPlayers, iNum );
for( new i = 0, iPlayer; i < iNum; i++ )
{
iPlayer = iPlayers[ i ];
if( g_iGang[ iPlayer ] != g_iGang[ id ] || iPlayer == iChosen )
continue;
client_print_color(iPlayer, id, "^3%s ^2%s ^4Cete yoneticiliginden dusuruldu.", g_szPrefix, szName );
}
client_print_color(iChosen, id, "^3%s ^4Cete yoneticiliginden dusuruldu.", g_szPrefix );
menu_destroy( hMenu );
return PLUGIN_HANDLED;
}
public ShowMembersMenu( id )
{
new szName[ 64 ], iPlayers[ 32 ], iNum;
get_players( iPlayers, iNum );
new hMenu = menu_create( "Online Uyeler:", "MemberMenu_Handler" );
for( new i = 0, iPlayer; i < iNum; i++ )
{
iPlayer = iPlayers[ i ];
if( g_iGang[ id ] != g_iGang[ iPlayer ] )
continue;
get_user_name( iPlayer, szName, charsmax( szName ) );
switch( getStatus( iPlayer, g_iGang[ id ] ) )
{
case STATUS_MEMBER:
{
add( szName, charsmax( szName ), " \r[Uye]" );
}
case STATUS_ADMIN:
{
add( szName, charsmax( szName ), " \r[Yetkili]" );
}
case STATUS_LEADER:
{
add( szName, charsmax( szName ), " \r[Yonetici]" );
}
}
menu_additem( hMenu, szName );
}
menu_display( id, hMenu, 0 );
}
public MemberMenu_Handler( id, hMenu, iItem )
{
if( iItem == MENU_EXIT )
{
menu_destroy( hMenu );
Cmd_Gang( id );
return PLUGIN_HANDLED;
}
menu_destroy( hMenu );
ShowMembersMenu( id )
return PLUGIN_HANDLED;
}
// Credits to Tirant from zombie mod and xOR from xRedirect
public LoadGangs()
{
new szConfigsDir[ 60 ];
get_configsdir( szConfigsDir, charsmax( szConfigsDir ) );
add( szConfigsDir, charsmax( szConfigsDir ), "/jb_gangs.ini" );
new iFile = fopen( szConfigsDir, "rt" );
new aData[ GangInfo ];
new szBuffer[ 512 ], szData[ 6 ], szValue[ 6 ], i, iCurGang;
while( !feof( iFile ) )
{
fgets( iFile, szBuffer, charsmax( szBuffer ) );
trim( szBuffer );
remove_quotes( szBuffer );
if( !szBuffer[ 0 ] || szBuffer[ 0 ] == ';' )
{
continue;
}
if( szBuffer[ 0 ] == '[' && szBuffer[ strlen( szBuffer ) - 1 ] == ']' )
{
copy( aData[ GangName ], strlen( szBuffer ) - 2, szBuffer[ 1 ] );
aData[ GangHP ] = 0;
aData[ GangStealing ] = 0;
aData[ GangGravity ] = 0;
aData[ GangStamina ] = 0;
aData[ GangWeaponDrop ] = 0;
aData[ GangDamage ] = 0;
aData[ NumMembers ] = 0;
aData[ GangKills ] = 0;
aData[ GangMembers ] = _:TrieCreate();
if( TrieKeyExists( g_tGangNames, aData[ GangName ] ) )
{
new szError[ 256 ];
formatex( szError, charsmax( szError ), "[CSDuragi] Zaten bir cete var: %s", aData[ GangName ] );
set_fail_state( szError );
}
ArrayPushArray( g_aGangs, aData );
TrieSetCell( g_tGangNames, aData[ GangName ], iCurGang );
log_amx( "Gang Created: %s", aData[ GangName ] );
iCurGang++;
continue;
}
strtok( szBuffer, szData, 31, szValue, 511, '=' );
trim( szData );
trim( szValue );
if( TrieGetCell( g_tGangValues, szData, i ) )
{
ArrayGetArray( g_aGangs, iCurGang - 1, aData );
switch( i )
{
case VALUE_HP:
aData[ GangHP ] = str_to_num( szValue );
case VALUE_STEALING:
aData[ GangStealing ] = str_to_num( szValue );
case VALUE_GRAVITY:
aData[ GangGravity ] = str_to_num( szValue );
case VALUE_STAMINA:
aData[ GangStamina ] = str_to_num( szValue );
case VALUE_WEAPONDROP:
aData[ GangWeaponDrop ] = str_to_num( szValue );
case VALUE_DAMAGE:
aData[ GangDamage ] = str_to_num( szValue );
case VALUE_KILLS:
aData[ GangKills ] = str_to_num( szValue );
}
ArraySetArray( g_aGangs, iCurGang - 1, aData );
}
}
new Array:aSQL;
sqlv_read_all_ex( g_hVault, aSQL );
new aVaultData[ SQLVaultEntryEx ];
new iGang;
for( i = 0; i < ArraySize( aSQL ); i++ )
{
ArrayGetArray( aSQL, i, aVaultData );
if( TrieGetCell( g_tGangNames, aVaultData[ SQLVEx_Key2 ], iGang ) )
{
ArrayGetArray( g_aGangs, iGang, aData );
TrieSetCell( aData[ GangMembers ], aVaultData[ SQLVEx_Key1 ], str_to_num( aVaultData[ SQLVEx_Data ] ) );
aData[ NumMembers ]++;
ArraySetArray( g_aGangs, iGang, aData );
}
}
fclose( iFile );
}
public SaveGangs()
{
new szConfigsDir[ 64 ];
get_configsdir( szConfigsDir, charsmax( szConfigsDir ) );
add( szConfigsDir, charsmax( szConfigsDir ), "/jb_gangs.ini" );
if( file_exists( szConfigsDir ) )
delete_file( szConfigsDir );
new iFile = fopen( szConfigsDir, "wt" );
new aData[ GangInfo ];
new szBuffer[ 256 ];
for( new i = 0; i < ArraySize( g_aGangs ); i++ )
{
ArrayGetArray( g_aGangs, i, aData );
formatex( szBuffer, charsmax( szBuffer ), "[%s]^n", aData[ GangName ] );
fputs( iFile, szBuffer );
formatex( szBuffer, charsmax( szBuffer ), "HP=%i^n", aData[ GangHP ] );
fputs( iFile, szBuffer );
formatex( szBuffer, charsmax( szBuffer ), "Hirsizlik=%i^n", aData[ GangStealing ] );
fputs( iFile, szBuffer );
formatex( szBuffer, charsmax( szBuffer ), "Yer Cekimi=%i^n", aData[ GangGravity ] );
fputs( iFile, szBuffer );
formatex( szBuffer, charsmax( szBuffer ), "Dayaniklilik=%i^n", aData[ GangStamina ] );
fputs( iFile, szBuffer );
formatex( szBuffer, charsmax( szBuffer ), "Silah Dusurme=%i^n", aData[ GangWeaponDrop ] );
fputs( iFile, szBuffer );
formatex( szBuffer, charsmax( szBuffer ), "Hasar=%i^n", aData[ GangDamage ] );
fputs( iFile, szBuffer );
formatex( szBuffer, charsmax( szBuffer ), "Oldurmeler=%i^n^n", aData[ GangKills ] );
fputs( iFile, szBuffer );
}
fclose( iFile );
}
set_user_gang( id, iGang, iStatus=STATUS_MEMBER )
{
new szAuthID[ 35 ];
get_user_authid( id, szAuthID, charsmax( szAuthID ) );
new aData[ GangInfo ];
if( g_iGang[ id ] > -1 )
{
ArrayGetArray( g_aGangs, g_iGang[ id ], aData );
TrieDeleteKey( aData[ GangMembers ], szAuthID );
aData[ NumMembers ]--;
ArraySetArray( g_aGangs, g_iGang[ id ], aData );
sqlv_remove_ex( g_hVault, szAuthID, aData[ GangName ] );
}
if( iGang > -1 )
{
ArrayGetArray( g_aGangs, iGang, aData );
TrieSetCell( aData[ GangMembers ], szAuthID, iStatus );
aData[ NumMembers ]++;
ArraySetArray( g_aGangs, iGang, aData );
sqlv_set_num_ex( g_hVault, szAuthID, aData[ GangName ], iStatus );
}
g_iGang[ id ] = iGang;
return 1;
}
get_user_gang( id )
{
new szAuthID[ 35 ];
get_user_authid( id, szAuthID, charsmax( szAuthID ) );
new aData[ GangInfo ];
for( new i = 0; i < ArraySize( g_aGangs ); i++ )
{
ArrayGetArray( g_aGangs, i, aData );
if( TrieKeyExists( aData[ GangMembers ], szAuthID ) )
return i;
}
return -1;
}
getStatus( id, iGang )
{
if( !is_user_connected( id ) || iGang == -1 )
return STATUS_NONE;
new aData[ GangInfo ];
ArrayGetArray( g_aGangs, iGang, aData );
new szAuthID[ 35 ];
get_user_authid( id, szAuthID, charsmax( szAuthID ) );
new iStatus;
TrieGetCell( aData[ GangMembers ], szAuthID, iStatus );
return iStatus;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1055\\ f0\\ fs16 \n\\ par }
*/
| Link: | |
| Linklerini gizle |
-
Kaan874
Konu Sahibi - Mesajlar: 131
- Kayıt: Pzr Eyl 08, 2019 4:14 pm
- Server Ip/DNS: cs49.csduragi.com
- Clan İsmi: WildFire
çete menu yardım hata alıyorum
çok teşekkür ederim eklenti başarıyla çalıştı elinize sağlıkENESIZM yazdı: Cmt Ara 28, 2019 1:25 am eğer 1 hata verirse altta ismini verdiğim kütüphaneyi yükle. benim derleyicide yüklüydü, hata vermedi. csd panelinde yüklü olmayabilirtest eder misin ?Kod: Tümünü seç
#include <sqlvault_ex>
ek olarak, yazılar renkli değildi biraz renklendirdimKod: Tümünü seç
/* CVARS ----- jb_gang_cost - The cost to create a gang. jb_health_cost - The cost to upgrade gang health. jb_stealing_cost - The cost to upgrade gang money earning. jb_gravity_cost - The cost to upgrade gang gravity. jb_damage_cost - The cost to upgrade gang damage. jb_stamina_cost - The cost to upgrade gang stamina (speed). jb_weapondrop_cost - The cost to upgrade gang weapon drop percentage. jb_points_per_kill - The amount of points you get for a kill jb_headshot_bonus - The amount of points you get for a headshot jb_max_members - The max amount of members a gang can hold jb_admin_create - Whether or not an admin can create gangs without using points */ /* Includes */ #include <amxmodx> #include <amxmisc> #include <sqlvault_ex> #include <cstrike> #include <reapi> #include <hamsandwich> #include <fun> /* Defines */ #define ADMIN_CREATE ADMIN_LEVEL_B /* Constants */ new const g_szVersion[ ] = "1.1.2"; enum _:GangInfo { Trie:GangMembers, GangName[ 64 ], GangHP, GangStealing, GangGravity, GangDamage, GangStamina, GangWeaponDrop, GangKills, NumMembers }; enum { VALUE_HP, VALUE_STEALING, VALUE_GRAVITY, VALUE_DAMAGE, VALUE_STAMINA, VALUE_WEAPONDROP, VALUE_KILLS } enum { STATUS_NONE, STATUS_MEMBER, STATUS_ADMIN, STATUS_LEADER }; new const g_szGangValues[ ][ ] = { "HP", "Stealing", "Gravity", "Damage", "Stamina", "WeaponDrop", "Kills" }; new const g_szPrefix[ ] = "[CSduragi]"; /* Tries */ new Trie:g_tGangNames; new Trie:g_tGangValues; /* Vault */ new SQLVault:g_hVault; new SQLVault:g_hPointsVault; /* Arrays */ new Array:g_aGangs; /* Pcvars */ new g_pCreateCost; new g_pHealthCost; new g_pStealingCost; new g_pGravityCost; new g_pDamageCost; new g_pStaminaCost; new g_pWeaponDropCost; new g_pHealthMax; new g_pStealingMax; new g_pGravityMax; new g_pDamageMax; new g_pStaminaMax; new g_pWeaponDropMax; new g_pHealthPerLevel; new g_pStealingPerLevel; new g_pGravityPerLevel; new g_pDamagePerLevel; new g_pStaminaPerLevel; new g_pWeaponDropPerLevel; new g_pPointsPerKill; new g_pHeadshotBonus; new g_pMaxMembers; new g_pAdminCreate; /* Integers */ new g_iGang[ 33 ]; new g_iPoints[ 33 ]; public plugin_init() { register_plugin( "Jailbreak Gang System", g_szVersion, "H3avY Ra1n" ); g_aGangs = ArrayCreate( GangInfo ); g_tGangValues = TrieCreate(); g_tGangNames = TrieCreate(); g_hVault = sqlv_open_local( "jb_gangs", false ); sqlv_init_ex( g_hVault ); g_hPointsVault = sqlv_open_local( "jb_points", true ); g_pCreateCost = register_cvar( "jb_gang_cost", "300" ); g_pHealthCost = register_cvar( "jb_health_cost", "20" ); g_pStealingCost = register_cvar( "jb_stealing_cost", "20" ); g_pGravityCost = register_cvar( "jb_gravity_cost", "20" ); g_pDamageCost = register_cvar( "jb_damage_cost", "20" ); g_pStaminaCost = register_cvar( "jb_stamina_cost", "20" ); g_pWeaponDropCost = register_cvar( "jb_weapondrop_cost", "20" ); g_pHealthMax = register_cvar( "jb_health_max", "10" ); g_pStealingMax = register_cvar( "jb_stealing_max", "10" ); g_pGravityMax = register_cvar( "jb_gravity_max", "10" ); // Max * Gravity Per Level must be LESS than 800 g_pDamageMax = register_cvar( "jb_damage_max", "10" ); g_pStaminaMax = register_cvar( "jb_stamina_max", "10" ); g_pWeaponDropMax = register_cvar( "jb_weapondrop_max", "10" ); g_pHealthPerLevel = register_cvar( "jb_health_per", "10" ); g_pStealingPerLevel = register_cvar( "jb_stealing_per", "0.05" ); g_pGravityPerLevel = register_cvar( "jb_gravity_per", "50" ); g_pDamagePerLevel = register_cvar( "jb_damage_per", "3" ); g_pStaminaPerLevel = register_cvar( "jb_stamina_per", "3" ); g_pWeaponDropPerLevel = register_cvar( "jb_weapondrop_per", "1" ); g_pPointsPerKill = register_cvar( "jb_points_per_kill", "3" ); g_pHeadshotBonus = register_cvar( "jb_headshot_bonus", "2" ); g_pMaxMembers = register_cvar( "jb_max_members", "10" ); g_pAdminCreate = register_cvar( "jb_admin_create", "0" ); // Admins can create gangs without points register_cvar( "jb_gang_version", g_szVersion, FCVAR_SPONLY | FCVAR_SERVER ); register_menu( "Gang Menu", 1023, "GangMenu_Handler" ); register_menu( "Skills Menu", 1023, "SkillsMenu_Handler" ); for( new i = 0; i < sizeof g_szGangValues; i++ ) { TrieSetCell( g_tGangValues, g_szGangValues[ i ], i ); } RegisterHam( Ham_Spawn, "player", "Ham_PlayerSpawn_Post", 1 ); RegisterHam( Ham_TakeDamage, "player", "Ham_TakeDamage_Pre", 0 ); RegisterHam( Ham_TakeDamage, "player", "Ham_TakeDamage_Post", 1 ); RegisterHam( Ham_Item_PreFrame, "player", "Ham_PlayerResetSpeedPost", 1); register_event( "DeathMsg", "Event_DeathMsg", "a" ); register_clcmd( "say /cete", "Cmd_Gang" ); register_clcmd( "gang_name", "Cmd_CreateGang" ); LoadGangs(); } public client_disconnected(id) { g_iGang[ id ] = -1; new szAuthID[ 35 ]; get_user_authid( id, szAuthID, charsmax( szAuthID ) ); sqlv_set_num( g_hPointsVault, szAuthID, g_iPoints[ id ] ); } public client_putinserver( id ) { g_iGang[ id ] = get_user_gang( id ); new szAuthID[ 35 ]; get_user_authid( id, szAuthID, charsmax( szAuthID ) ); g_iPoints[ id ] = sqlv_get_num( g_hPointsVault, szAuthID ); } public plugin_end() { SaveGangs(); sqlv_close( g_hVault ); } public Ham_PlayerSpawn_Post( id ) { if( !is_user_alive( id ) || cs_get_user_team( id ) != CS_TEAM_T ) return HAM_IGNORED; if( g_iGang[ id ] == -1 ) { return HAM_IGNORED; } new aData[ GangInfo ]; ArrayGetArray( g_aGangs, g_iGang[ id ], aData ); new iHealth = 100 + aData[ GangHP ] * get_pcvar_num( g_pHealthPerLevel ); set_user_health( id, iHealth ); new iGravity = 800 - ( get_pcvar_num( g_pGravityPerLevel ) * aData[ GangGravity ] ); set_user_gravity( id, float( iGravity ) / 800.0 ); return HAM_IGNORED; } public Ham_TakeDamage_Pre( iVictim, iInflictor, iAttacker, Float:flDamage, iBits ) { if( !is_user_alive( iAttacker ) || cs_get_user_team( iAttacker ) != CS_TEAM_T ) return HAM_IGNORED; if( g_iGang[ iAttacker ] == -1 ) return HAM_IGNORED; new aData[ GangInfo ]; ArrayGetArray( g_aGangs, g_iGang[ iAttacker ], aData ); SetHamParamFloat( 4, flDamage + ( get_pcvar_num( g_pDamagePerLevel ) * ( aData[ GangDamage ] ) ) ); return HAM_IGNORED; } public Ham_TakeDamage_Post( iVictim, iInflictor, iAttacker, Float:flDamage, iBits ) { if( !is_user_alive( iAttacker ) || g_iGang[ iAttacker ] == -1 || get_user_weapon( iAttacker ) != CSW_KNIFE || cs_get_user_team( iAttacker ) != CS_TEAM_T ) { return HAM_IGNORED; } new aData[ GangInfo ]; ArrayGetArray( g_aGangs, g_iGang[ iAttacker ], aData ); new iChance = aData[ GangWeaponDrop ] * get_pcvar_num( g_pWeaponDropPerLevel ); if( iChance == 0 ) return HAM_IGNORED; new bool:bDrop = ( random_num( 1, 100 ) <= iChance ); if( bDrop ) client_cmd( iVictim, "drop" ); return HAM_IGNORED; } public Ham_PlayerResetSpeedPost( id ) { if( g_iGang[ id ] == -1 || !is_user_alive( id ) || cs_get_user_team( id ) != CS_TEAM_T ) { return HAM_IGNORED; } new aData[ GangInfo ]; ArrayGetArray( g_aGangs, g_iGang[ id ], aData ); if( aData[ GangStamina ] > 0 && get_user_maxspeed( id ) > 1.0 ) set_user_maxspeed( id, 250.0 + ( aData[ GangStamina ] * get_pcvar_num( g_pStaminaPerLevel ) ) ); return HAM_IGNORED; } public Event_DeathMsg() { new iKiller = read_data( 1 ); if( !is_user_alive( iKiller ) ) return PLUGIN_CONTINUE; new iTotal = get_pcvar_num( g_pPointsPerKill ) + ( bool:read_data( 3 ) ? get_pcvar_num( g_pHeadshotBonus ) : 0 ); if( g_iGang[ iKiller ] > -1 ) { new aData[ GangInfo ]; ArrayGetArray( g_aGangs, g_iGang[ iKiller ], aData ); aData[ GangKills ]++; ArraySetArray( g_aGangs, g_iGang[ iKiller ], aData ); iTotal += iTotal * ( aData[ GangStealing ] * get_pcvar_num( g_pStealingPerLevel ) ); } g_iPoints[ iKiller ] += iTotal; return PLUGIN_CONTINUE; } public Cmd_Gang( id ) { static szMenu[ 512 ], iLen, aData[ GangInfo ], iKeys, iStatus; iKeys = MENU_KEY_0 | MENU_KEY_3; iStatus = getStatus( id, g_iGang[ id ] ); if( g_iGang[ id ] > -1 ) { ArrayGetArray( g_aGangs, g_iGang[ id ], aData ); iLen = formatex( szMenu, charsmax( szMenu ), "\yCete Menu^n\wMevcut Cete:\y %s^n", aData[ GangName ] ); iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\yCSDuragiCoins Miktari: \w%i^n^n", g_iPoints[ id ] ); iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r1. \dCete Olustur [%i CSDuragiCoins]^n", get_pcvar_num( g_pCreateCost ) ); } else { iLen = formatex( szMenu, charsmax( szMenu ), "\yCete Menu^n\wMevcut Cete:\r Yok^n" ); iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\yCSDuragiCoins Miktari: \w%i^n^n", g_iPoints[ id ] ); iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r1. \wCete Olustur [%i CSDuragiCoins]^n", get_pcvar_num( g_pCreateCost ) ); iKeys |= MENU_KEY_1; } if( iStatus > STATUS_MEMBER && g_iGang[ id ] > -1 && get_pcvar_num( g_pMaxMembers ) > aData[ NumMembers ] ) { iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r2. \wCetene Oyuncu Davet Et^n" ); iKeys |= MENU_KEY_2; } else iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r2. \dCetene Oyuncu Davet Et^n" ); iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r3. \wTop-10^n" ); if( g_iGang[ id ] > -1 ) { iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r4. \wCeteden Ayril^n" ); iKeys |= MENU_KEY_4; } else iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r4. \dCeteden Ayril^n" ); if( iStatus > STATUS_MEMBER ) { iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r5. \wCete Admin Menu^n" ); iKeys |= MENU_KEY_5; } else iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r5. \dCete Admin Menu^n" ); if( g_iGang[ id ] > -1 ) { iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r6. \wAktif Uyeler^n" ); iKeys |= MENU_KEY_6; } else iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r6. \dAktif Uyeler^n" ); iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "^n\r0. \wMenuyu Kapat" ); show_menu( id, iKeys, szMenu, -1, "Gang Menu" ); return PLUGIN_CONTINUE; } public GangMenu_Handler( id, iKey ) { switch( ( iKey + 1 ) % 10 ) { case 0: return PLUGIN_HANDLED; case 1: { if( get_pcvar_num( g_pAdminCreate ) && get_user_flags( id ) & ADMIN_CREATE ) { client_cmd( id, "messagemode gang_name" ); } else if( g_iPoints[ id ] < get_pcvar_num( g_pCreateCost ) ) { client_print_color(id, id, "^3%s ^4Bir çete oluþturmak için yeterli ^2CSDuragiCoins^4 yok!", g_szPrefix ); return PLUGIN_HANDLED; } else client_cmd( id, "messagemode gang_name" ); } case 2: { ShowInviteMenu( id ); } case 3: { Cmd_Top10( id ); } case 4: { ShowLeaveConfirmMenu( id ); } case 5: { ShowLeaderMenu( id ); } case 6: { ShowMembersMenu( id ); } } return PLUGIN_HANDLED; } public Cmd_CreateGang( id ) { new bool:bAdmin = false; if( get_pcvar_num( g_pAdminCreate ) && get_user_flags( id ) & ADMIN_CREATE ) { bAdmin = true; } else if( g_iPoints[ id ] < get_pcvar_num( g_pCreateCost ) ) { client_print_color(id, id, "^3%s ^4Bir çete oluþturmak için yeterli ^2CSDuragiCoins^4 yok!", g_szPrefix ); return PLUGIN_HANDLED; } else if( g_iGang[ id ] > -1 ) { client_print_color(id, id, "^3%s ^4Zaten bir cetedesin.", g_szPrefix ); return PLUGIN_HANDLED; } new szArgs[ 60 ]; read_args( szArgs, charsmax( szArgs ) ); remove_quotes( szArgs ); if( TrieKeyExists( g_tGangNames, szArgs ) ) { client_print_color(id, id, "^3%s ^4Bu cete ismi ^2zaten ^4kullanimda lutfen baska bi isim deneyin.", g_szPrefix ); Cmd_Gang( id ); return PLUGIN_HANDLED; } new aData[ GangInfo ]; aData[ GangName ] = szArgs; aData[ GangHP ] = 0; aData[ GangStealing ] = 0; aData[ GangGravity ] = 0; aData[ GangStamina ] = 0; aData[ GangWeaponDrop ] = 0; aData[ GangDamage ] = 0; aData[ NumMembers ] = 0; aData[ GangMembers ] = _:TrieCreate(); ArrayPushArray( g_aGangs, aData ); if( !bAdmin ) g_iPoints[ id ] -= get_pcvar_num( g_pCreateCost ); set_user_gang( id, ArraySize( g_aGangs ) - 1, STATUS_LEADER ); client_print_color(id, id, "^3%s ^4Tebrikler.^2Basariyla ^4cete olusturuldu. '^03%s^01'.", g_szPrefix, szArgs ); return PLUGIN_HANDLED; } public ShowInviteMenu( id ) { new iPlayers[ 32 ], iNum; get_players( iPlayers, iNum ); new szInfo[ 6 ], hMenu; hMenu = menu_create( "Bir Oyuncu Davet etmek için seçin:", "InviteMenu_Handler" ); new szName[ 32 ]; for( new i = 0, iPlayer; i < iNum; i++ ) { iPlayer = iPlayers[ i ]; if( iPlayer == id || g_iGang[ iPlayer ] == g_iGang[ id ]) continue; get_user_name( iPlayer, szName, charsmax( szName ) ); num_to_str( iPlayer, szInfo, charsmax( szInfo ) ); menu_additem( hMenu, szName, szInfo ); } menu_display( id, hMenu, 0 ); } public InviteMenu_Handler( id, hMenu, iItem ) { if( iItem == MENU_EXIT ) { Cmd_Gang( id ); return PLUGIN_HANDLED; } new szData[ 6 ], iAccess, hCallback, szName[ 32 ]; menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, szName, 31, hCallback ); new iPlayer = str_to_num( szData ); if( !is_user_connected( iPlayer ) ) return PLUGIN_HANDLED; ShowInviteConfirmMenu( id, iPlayer ); client_print_color(id, id, "^3%s ^4Ceteye katilma istegi var ^2%s ", g_szPrefix, szName ); Cmd_Gang( id ); return PLUGIN_HANDLED; } public ShowInviteConfirmMenu( id, iPlayer ) { new szName[ 32 ]; get_user_name( id, szName, charsmax( szName ) ); new aData[ GangInfo ]; ArrayGetArray( g_aGangs, g_iGang[ id ], aData ); new szMenuTitle[ 128 ]; formatex( szMenuTitle, charsmax( szMenuTitle ), "%s Size katilmak icin davet var %s", szName, aData[ GangName ] ); new hMenu = menu_create( szMenuTitle, "InviteConfirmMenu_Handler" ); new szInfo[ 6 ]; num_to_str( g_iGang[ id ], szInfo, 5 ); menu_additem( hMenu, "Daveti kabul et.", szInfo ); menu_additem( hMenu, "Reddet", "-1" ); menu_display( iPlayer, hMenu, 0 ); } public InviteConfirmMenu_Handler( id, hMenu, iItem ) { if( iItem == MENU_EXIT ) return PLUGIN_HANDLED; new szData[ 6 ], iAccess, hCallback; menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback ); new iGang = str_to_num( szData ); if( iGang == -1 ) return PLUGIN_HANDLED; if( getStatus( id, g_iGang[ id ] ) == STATUS_LEADER ) { client_print_color(id, id, "^3%s ^4Lider iken çete birakamazsin.", g_szPrefix ); return PLUGIN_HANDLED; } set_user_gang( id, iGang ); new aData[ GangInfo ]; ArrayGetArray( g_aGangs, iGang, aData ); client_print_color(id, id, "^3%s ^4Basariyla ceteye ^2uye^4 olundu. ^03%s^01.", g_szPrefix, aData[ GangName ] ); return PLUGIN_HANDLED; } public ShowSkillsMenu( id ) { static szMenu[ 512 ], iLen, iKeys, aData[ GangInfo ]; if( !iKeys ) { iKeys = MENU_KEY_1 | MENU_KEY_2 | MENU_KEY_3 | MENU_KEY_4 | MENU_KEY_5 | MENU_KEY_6 | MENU_KEY_0; } ArrayGetArray( g_aGangs, g_iGang[ id ], aData ); iLen = formatex( szMenu, charsmax( szMenu ), "\ySkills Menu^n^n" ); iLen += formatex( szMenu[ iLen ], 511 - iLen, "\r1. \wHP Yukselt [\rMaliyet: \y%i CSDuragiCoins\w] \y[Level:%i/%i]^n", get_pcvar_num( g_pHealthCost ), aData[ GangHP ], get_pcvar_num( g_pHealthMax ) ); iLen += formatex( szMenu[ iLen ], 511 - iLen, "\r2. \wHirsizlik Yukselt [\rMaliyet: \y%i CSDuragiCoins\w] \y[Level:%i/%i]^n", get_pcvar_num( g_pStealingCost ), aData[ GangStealing ], get_pcvar_num( g_pStealingMax ) ); iLen += formatex( szMenu[ iLen ], 511 - iLen, "\r3. \wYercekimi Yukselt [\rMaliyet: \y%i CSDuragiCoins\w] \y[Level:%i/%i]^n", get_pcvar_num( g_pGravityCost ), aData[ GangGravity ], get_pcvar_num( g_pGravityMax ) ); iLen += formatex( szMenu[ iLen ], 511 - iLen, "\r4. \wHasar Yukselt [\rMaliyet: \y%i CSDuragiCoins\w] \y[Level:%i/%i]^n", get_pcvar_num( g_pDamageCost ), aData[ GangDamage ], get_pcvar_num( g_pDamageMax ) ); iLen += formatex( szMenu[ iLen ], 511 - iLen, "\r5. \wSilah Birakma Yukselt [\rMaliyet: \y%i CSDuragiCoins\w] \y[Level:%i/%i]^n", get_pcvar_num( g_pWeaponDropCost ), aData[ GangWeaponDrop ], get_pcvar_num( g_pWeaponDropMax ) ); iLen += formatex( szMenu[ iLen ], 511 - iLen, "\r6. \wHiz Yukselt [\rMaliyet: \y%i CSDuragiCoins\w] \y[Level:%i/%i]^n", get_pcvar_num( g_pStaminaCost ), aData[ GangStamina ], get_pcvar_num( g_pStaminaMax ) ); iLen += formatex( szMenu[ iLen ], 511 - iLen, "^n\r0. \wMenuyu Kapat" ); show_menu( id, iKeys, szMenu, -1, "Skills Menu" ); } public SkillsMenu_Handler( id, iKey ) { new aData[ GangInfo ]; ArrayGetArray( g_aGangs, g_iGang[ id ], aData ); switch( ( iKey + 1 ) % 10 ) { case 0: { Cmd_Gang( id ); return PLUGIN_HANDLED; } case 1: { if( aData[ GangHP ] == get_pcvar_num( g_pHealthMax ) ) { client_print_color(id, id, "^3%s ^4Cete icin ^2bu beceri en yuksek^4 seviyede.", g_szPrefix ); ShowSkillsMenu( id ); return PLUGIN_HANDLED; } new iRemaining = g_iPoints[ id ] - get_pcvar_num( g_pHealthCost ); if( iRemaining < 0 ) { client_print_color(id, id, "^3%s ^4Bunun icin yeterli ^2CSDuragiCoins^4 yok.", g_szPrefix ); ShowSkillsMenu( id ); return PLUGIN_HANDLED; } aData[ GangHP ]++; g_iPoints[ id ] = iRemaining; } case 2: { if( aData[ GangStealing ] == get_pcvar_num( g_pStealingMax ) ) { client_print_color(id, id, "^3%s ^4Cete icin ^2bu beceri en yuksek^4 seviyede.", g_szPrefix ); ShowSkillsMenu( id ); return PLUGIN_HANDLED; } new iRemaining = g_iPoints[ id ] - get_pcvar_num( g_pStealingCost ); if( iRemaining < 0 ) { client_print_color(id, id, "^3%s ^4Bunun icin yeterli ^2CSDuragiCoins^4 yok.", g_szPrefix ); ShowSkillsMenu( id ); return PLUGIN_HANDLED; } aData[ GangStealing ]++; g_iPoints[ id ] = iRemaining; } case 3: { if( aData[ GangGravity ] == get_pcvar_num( g_pGravityMax ) ) { client_print_color(id, id, "^3%s ^4Cete icin ^2bu beceri en yuksek^4 seviyede.", g_szPrefix ); ShowSkillsMenu( id ); return PLUGIN_HANDLED; } new iRemaining = g_iPoints[ id ] - get_pcvar_num( g_pGravityCost ); if( iRemaining < 0 ) { client_print_color(id, id, "^3%s ^4Bunun icin yeterli ^2CSDuragiCoins^4 yok.", g_szPrefix ); ShowSkillsMenu( id ); return PLUGIN_HANDLED; } aData[ GangGravity ]++; g_iPoints[ id ] = iRemaining; } case 4: { if( aData[ GangDamage ] == get_pcvar_num( g_pDamageMax ) ) { client_print_color(id, id, "^3%s ^4Cete icin ^2bu beceri en yuksek^4 seviyede.", g_szPrefix ); ShowSkillsMenu( id ); return PLUGIN_HANDLED; } new iRemaining = g_iPoints[ id ] - get_pcvar_num( g_pDamageCost ); if( iRemaining < 0 ) { client_print_color(id, id, "^3%s ^4Bunun icin yeterli ^2CSDuragiCoins^4 yok.", g_szPrefix ); ShowSkillsMenu( id ); return PLUGIN_HANDLED; } aData[ GangDamage ]++; g_iPoints[ id ] = iRemaining; } case 5: { if( aData[ GangWeaponDrop ] == get_pcvar_num( g_pWeaponDropMax ) ) { client_print_color(id, id, "^3%s ^4Cete icin ^2bu beceri en yuksek^4 seviyede.", g_szPrefix ); ShowSkillsMenu( id ); return PLUGIN_HANDLED; } new iRemaining = g_iPoints[ id ] - get_pcvar_num( g_pWeaponDropCost ); if( iRemaining < 0 ) { client_print_color(id, id, "^3%s ^4Bunun icin yeterli ^2CSDuragiCoins^4 yok.", g_szPrefix ); ShowSkillsMenu( id ); return PLUGIN_HANDLED; } aData[ GangWeaponDrop ]++; g_iPoints[ id ] = iRemaining; } case 6: { if( aData[ GangStamina ] == get_pcvar_num( g_pStaminaMax ) ) { client_print_color(id, id, "^3%s ^4Cete icin ^2bu beceri en yuksek^4 seviyede.", g_szPrefix ); ShowSkillsMenu( id ); return PLUGIN_HANDLED; } new iRemaining = g_iPoints[ id ] - get_pcvar_num( g_pStaminaCost ); if( iRemaining < 0 ) { client_print_color(id, id, "^3%s ^4Bunun icin yeterli ^2CSDuragiCoins^4 yok.", g_szPrefix ); ShowSkillsMenu( id ); return PLUGIN_HANDLED; } aData[ GangStamina ]++; g_iPoints[ id ] = iRemaining; } } ArraySetArray( g_aGangs, g_iGang[ id ], aData ); new iPlayers[ 32 ], iNum, iPlayer; new szName[ 32 ]; get_players( iPlayers, iNum ); for( new i = 0; i < iNum; i++ ) { iPlayer = iPlayers[ i ]; if( iPlayer == id || g_iGang[ iPlayer ] != g_iGang[ id ] ) continue; client_print_color(iPlayer, id, "^3%s ^2%s ^4Yetenek bir seviye yukseltildi.", g_szPrefix, szName ); } client_print_color(id, id, "^3%s ^4Basariyla ^3cetenin seviyesini^4 yukselttiniz.", g_szPrefix ); ShowSkillsMenu( id ); return PLUGIN_HANDLED; } public Cmd_Top10( id ) { new iSize = ArraySize( g_aGangs ); new iOrder[ 100 ][ 2 ]; new aData[ GangInfo ]; for( new i = 0; i < iSize; i++ ) { ArrayGetArray( g_aGangs, i, aData ); iOrder[ i ][ 0 ] = i; iOrder[ i ][ 1 ] = aData[ GangKills ]; } SortCustom2D( iOrder, iSize, "Top10_Sort" ); new szMessage[ 2048 ]; formatex( szMessage, charsmax( szMessage ), "<body bgcolor=#000000><font color=#FFB000><pre>" ); format( szMessage, charsmax( szMessage ), "%s%2s %-22.22s %7s %4s %10s %9s %9s %11s %8s^n", szMessage, "#", "Isim", "Oldurmeler", "HP", "Calma", "Yercekimi", "Dayaniklilik", "Silah Dusurme", "Hasar" ); for( new i = 0; i < min( 10, iSize ); i++ ) { ArrayGetArray( g_aGangs, iOrder[ i ][ 0 ], aData ); format( szMessage, charsmax( szMessage ), "%s%-2d %22.22s %7d %4d %10d %9d %9d %11d %8d^n", szMessage, i + 1, aData[ GangName ], aData[ GangKills ], aData[ GangHP ], aData[ GangStealing ], aData[ GangGravity ], aData[ GangStamina], aData[ GangWeaponDrop ], aData[ GangDamage ] ); } show_motd( id, szMessage, "CSDuragi | Cete Top 10" ); } public Top10_Sort( const iElement1[ ], const iElement2[ ], const iArray[ ], szData[], iSize ) { if( iElement1[ 1 ] > iElement2[ 1 ] ) return -1; else if( iElement1[ 1 ] < iElement2[ 1 ] ) return 1; return 0; } public ShowLeaveConfirmMenu( id ) { new hMenu = menu_create( "Ceteden ayrilmak istediginize emin misiniz ?", "LeaveConfirmMenu_Handler" ); menu_additem( hMenu, "Evet,Ayril", "0" ); menu_additem( hMenu, "Hayir,Kal", "1" ); menu_display( id, hMenu, 0 ); } public LeaveConfirmMenu_Handler( id, hMenu, iItem ) { if( iItem == MENU_EXIT ) return PLUGIN_HANDLED; new szData[ 6 ], iAccess, hCallback; menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback ); switch( str_to_num( szData ) ) { case 0: { if( getStatus( id, g_iGang[ id ] ) == STATUS_LEADER ) { client_print_color(id, id, "^3%s ^4Bu ceteden ^2ayrilmadan once liderligi ^4baskasina aktarmaniz gerekir!", g_szPrefix ); Cmd_Gang( id ); return PLUGIN_HANDLED; } client_print_color(id, id, "^3%s ^4Basariyla ^2cete ^4kaldi.", g_szPrefix ); set_user_gang( id, -1 ); Cmd_Gang( id ); } case 1: Cmd_Gang( id ); } return PLUGIN_HANDLED; } public ShowLeaderMenu( id ) { new hMenu = menu_create( "Cete Yonetici Menu", "LeaderMenu_Handler" ); new iStatus = getStatus( id, g_iGang[ id ] ); if( iStatus == STATUS_LEADER ) { menu_additem( hMenu, "Ceteyi Dagit", "0" ); menu_additem( hMenu, "Liderligi Devret", "1" ); menu_additem( hMenu, "Yetkili Ekle", "4" ); menu_additem( hMenu, "Yetkili Kaldir", "5" ); } menu_additem( hMenu, "Ceteden At", "2" ); menu_additem( hMenu, "Cete Adini Degistir", "3" ); menu_display( id, hMenu, 0 ); } public LeaderMenu_Handler( id, hMenu, iItem ) { if( iItem == MENU_EXIT ) { Cmd_Gang( id ); return PLUGIN_HANDLED; } new iAccess, hCallback, szData[ 6 ]; menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback ); switch( str_to_num( szData ) ) { case 0: { ShowDisbandConfirmMenu( id ); } case 1: { ShowTransferMenu( id ); } case 2: { ShowKickMenu( id ); } case 3: { client_cmd( id, "messagemode New_Name" ); } case 4: { ShowAddAdminMenu( id ); } case 5: { ShowRemoveAdminMenu( id ); } } return PLUGIN_HANDLED; } public ShowDisbandConfirmMenu( id ) { new hMenu = menu_create( "Ceteyi dagitmak istediginizden emin misiniz ?", "DisbandConfirmMenu_Handler" ); menu_additem( hMenu, "Evet, Simdi Dagit", "0" ); menu_additem( hMenu, "Hayir", "1" ); menu_display( id, hMenu, 0 ); } public DisbandConfirmMenu_Handler( id, hMenu, iItem ) { if( iItem == MENU_EXIT ) return PLUGIN_HANDLED; new szData[ 6 ], iAccess, hCallback; menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback ); switch( str_to_num( szData ) ) { case 0: { client_print_color(id, id, "^3%s ^4Basariyla ^2cete ^4dagitildi.", g_szPrefix ); new iPlayers[ 32 ], iNum; get_players( iPlayers, iNum ); new iPlayer; for( new i = 0; i < iNum; i++ ) { iPlayer = iPlayers[ i ]; if( iPlayer == id ) continue; if( g_iGang[ id ] != g_iGang[ iPlayer ] ) continue; client_print_color(iPlayer, id, "^3%s ^4Cete ^2lider tarafindan^4 dagitildi..", g_szPrefix ); set_user_gang( iPlayer, -1 ); } new iGang = g_iGang[ id ]; set_user_gang( id, -1 ); ArrayDeleteItem( g_aGangs, iGang ); Cmd_Gang( id ); } case 1: Cmd_Gang( id ); } return PLUGIN_HANDLED; } public ShowTransferMenu( id ) { new iPlayers[ 32 ], iNum; get_players( iPlayers, iNum, "e", "TERRORIST" ); new hMenu = menu_create( "Liderligi transfer etmek istedigini sec:", "TransferMenu_Handler" ); new szName[ 32 ], szData[ 6 ]; for( new i = 0, iPlayer; i < iNum; i++ ) { iPlayer = iPlayers[ i ]; if( g_iGang[ iPlayer ] != g_iGang[ id ] || id == iPlayer ) continue; get_user_name( iPlayer, szName, charsmax( szName ) ); num_to_str( iPlayer, szData, charsmax( szData ) ); menu_additem( hMenu, szName, szData ); } menu_display( id, hMenu, 0 ); } public TransferMenu_Handler( id, hMenu, iItem ) { if( iItem == MENU_EXIT ) { ShowLeaderMenu( id ); return PLUGIN_HANDLED; } new iAccess, hCallback, szData[ 6 ], szName[ 32 ]; menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, szName, charsmax( szName ), hCallback ); new iPlayer = str_to_num( szData ); if( !is_user_connected( iPlayer ) ) { client_print_color(id, id, "^3%s ^4Bu oyuncu artik bagli.", g_szPrefix ); ShowTransferMenu( id ); return PLUGIN_HANDLED; } set_user_gang( iPlayer, g_iGang[ id ], STATUS_LEADER ); set_user_gang( id, g_iGang[ id ], STATUS_ADMIN ); Cmd_Gang( id ); new iPlayers[ 32 ], iNum, iTemp; get_players( iPlayers, iNum ); for( new i = 0; i < iNum; i++ ) { iTemp = iPlayers[ i ]; if( iTemp == iPlayer ) { client_print_color(iTemp, id, "^3%s ^4Cetenin yeni lideri sensin.", g_szPrefix ); continue; } else if( g_iGang[ iTemp ] != g_iGang[ id ] ) continue; client_print_color(iTemp, id, "^3%s ^2%s^4 Cetenin yeni lideri oldu..", g_szPrefix, szName ); } return PLUGIN_HANDLED; } public ShowKickMenu( id ) { new iPlayers[ 32 ], iNum; get_players( iPlayers, iNum ); new hMenu = menu_create( "Cetenden Uye At:", "KickMenu_Handler" ); new szName[ 32 ], szData[ 6 ]; for( new i = 0, iPlayer; i < iNum; i++ ) { iPlayer = iPlayers[ i ]; if( g_iGang[ iPlayer ] != g_iGang[ id ] || id == iPlayer ) continue; get_user_name( iPlayer, szName, charsmax( szName ) ); num_to_str( iPlayer, szData, charsmax( szData ) ); menu_additem( hMenu, szName, szData ); } menu_display( id, hMenu, 0 ); } public KickMenu_Handler( id, hMenu, iItem ) { if( iItem == MENU_EXIT ) { ShowLeaderMenu( id ); return PLUGIN_HANDLED; } new iAccess, hCallback, szData[ 6 ], szName[ 32 ]; menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, szName, charsmax( szName ), hCallback ); new iPlayer = str_to_num( szData ); if( !is_user_connected( iPlayer ) ) { client_print_color(id, id, "^3%s ^4Bu oyuncu artik bagli.", g_szPrefix ); ShowTransferMenu( id ); return PLUGIN_HANDLED; } set_user_gang( iPlayer, -1 ); Cmd_Gang( id ); new iPlayers[ 32 ], iNum, iTemp; get_players( iPlayers, iNum ); for( new i = 0; i < iNum; i++ ) { iTemp = iPlayers[ i ]; if( iTemp == iPlayer || g_iGang[ iTemp ] != g_iGang[ id ] ) continue; client_print_color(iTemp, id, "^3%s ^2%s^4 Ceteden atildi.", g_szPrefix, szName ); } client_print_color(iPlayer, id, "^3%s ^4Ceteden atildiniz.", g_szPrefix, szName ); return PLUGIN_HANDLED; } public ChangeName_Handler( id ) { if( g_iGang[ id ] == -1 || getStatus( id, g_iGang[ id ] ) == STATUS_MEMBER ) { return; } new iGang = g_iGang[ id ]; new szArgs[ 64 ]; read_args( szArgs, charsmax( szArgs ) ); new iPlayers[ 32 ], iNum; get_players( iPlayers, iNum ); new bool:bInGang[ 33 ]; new iStatus[ 33 ]; for( new i = 0, iPlayer; i < iNum; i++ ) { iPlayer = iPlayers[ i ]; if( g_iGang[ id ] != g_iGang[ iPlayer ] ) continue; bInGang[ iPlayer ] = true; iStatus[ iPlayer ] = getStatus( id, iGang ); set_user_gang( iPlayer, -1 ); } new aData[ GangInfo ]; ArrayGetArray( g_aGangs, iGang, aData ); aData[ GangName ] = szArgs; ArraySetArray( g_aGangs, iGang, aData ); for( new i = 0, iPlayer; i < iNum; i++ ) { iPlayer = iPlayers[ i ]; if( !bInGang[ iPlayer ] ) continue; set_user_gang( iPlayer, iGang, iStatus[ id ] ); } } public ShowAddAdminMenu( id ) { new iPlayers[ 32 ], iNum; new szName[ 32 ], szData[ 6 ]; new hMenu = menu_create( "Oyuncuyu terfi et:", "AddAdminMenu_Handler" ); get_players( iPlayers, iNum ); for( new i = 0, iPlayer; i < iNum; i++ ) { iPlayer = iPlayers[ i ]; if( g_iGang[ id ] != g_iGang[ iPlayer ] || getStatus( iPlayer, g_iGang[ iPlayer ] ) > STATUS_MEMBER ) continue; get_user_name( iPlayer, szName, charsmax( szName ) ); num_to_str( iPlayer, szData, charsmax( szData ) ); menu_additem( hMenu, szName, szData ); } menu_display( id, hMenu, 0 ); } public AddAdminMenu_Handler( id, hMenu, iItem ) { if( iItem == MENU_EXIT ) { menu_destroy( hMenu ); ShowLeaderMenu( id ); return PLUGIN_HANDLED; } new iAccess, hCallback, szData[ 6 ], szName[ 32 ]; menu_item_getinfo( hMenu, iItem, iAccess, szData, charsmax( szData ), szName, charsmax( szName ), hCallback ); new iChosen = str_to_num( szData ); if( !is_user_connected( iChosen ) ) { menu_destroy( hMenu ); ShowLeaderMenu( id ); return PLUGIN_HANDLED; } set_user_gang( iChosen, g_iGang[ id ], STATUS_LEADER ); new iPlayers[ 32 ], iNum; get_players( iPlayers, iNum ); for( new i = 0, iPlayer; i < iNum; i++ ) { iPlayer = iPlayers[ i ]; if( g_iGang[ iPlayer ] != g_iGang[ id ] || iPlayer == iChosen ) continue; client_print_color(iPlayer, id, "^3%s ^2%s ^4Cetenin yoneticisi atandi.", g_szPrefix, szName ); } client_print_color(iChosen, id, "^3%s ^4Cetenin yoneticisi terfi edildi", g_szPrefix ); menu_destroy( hMenu ); return PLUGIN_HANDLED; } public ShowRemoveAdminMenu( id ) { new iPlayers[ 32 ], iNum; new szName[ 32 ], szData[ 6 ]; new hMenu = menu_create( "Alt sinifa indirmek istediginiz uyeyi secin:", "RemoveAdminMenu_Handler" ); get_players( iPlayers, iNum ); for( new i = 0, iPlayer; i < iNum; i++ ) { iPlayer = iPlayers[ i ]; if( g_iGang[ id ] != g_iGang[ iPlayer ] || getStatus( iPlayer, g_iGang[ iPlayer ] ) != STATUS_ADMIN ) continue; get_user_name( iPlayer, szName, charsmax( szName ) ); num_to_str( iPlayer, szData, charsmax( szData ) ); menu_additem( hMenu, szName, szData ); } menu_display( id, hMenu, 0 ); } public RemoveAdminMenu_Handler( id, hMenu, iItem ) { if( iItem == MENU_EXIT ) { menu_destroy( hMenu ); ShowLeaderMenu( id ); return PLUGIN_HANDLED; } new iAccess, hCallback, szData[ 6 ], szName[ 32 ]; menu_item_getinfo( hMenu, iItem, iAccess, szData, charsmax( szData ), szName, charsmax( szName ), hCallback ); new iChosen = str_to_num( szData ); if( !is_user_connected( iChosen ) ) { menu_destroy( hMenu ); ShowLeaderMenu( id ); return PLUGIN_HANDLED; } set_user_gang( iChosen, g_iGang[ id ], STATUS_MEMBER ); new iPlayers[ 32 ], iNum; get_players( iPlayers, iNum ); for( new i = 0, iPlayer; i < iNum; i++ ) { iPlayer = iPlayers[ i ]; if( g_iGang[ iPlayer ] != g_iGang[ id ] || iPlayer == iChosen ) continue; client_print_color(iPlayer, id, "^3%s ^2%s ^4Cete yoneticiliginden dusuruldu.", g_szPrefix, szName ); } client_print_color(iChosen, id, "^3%s ^4Cete yoneticiliginden dusuruldu.", g_szPrefix ); menu_destroy( hMenu ); return PLUGIN_HANDLED; } public ShowMembersMenu( id ) { new szName[ 64 ], iPlayers[ 32 ], iNum; get_players( iPlayers, iNum ); new hMenu = menu_create( "Online Uyeler:", "MemberMenu_Handler" ); for( new i = 0, iPlayer; i < iNum; i++ ) { iPlayer = iPlayers[ i ]; if( g_iGang[ id ] != g_iGang[ iPlayer ] ) continue; get_user_name( iPlayer, szName, charsmax( szName ) ); switch( getStatus( iPlayer, g_iGang[ id ] ) ) { case STATUS_MEMBER: { add( szName, charsmax( szName ), " \r[Uye]" ); } case STATUS_ADMIN: { add( szName, charsmax( szName ), " \r[Yetkili]" ); } case STATUS_LEADER: { add( szName, charsmax( szName ), " \r[Yonetici]" ); } } menu_additem( hMenu, szName ); } menu_display( id, hMenu, 0 ); } public MemberMenu_Handler( id, hMenu, iItem ) { if( iItem == MENU_EXIT ) { menu_destroy( hMenu ); Cmd_Gang( id ); return PLUGIN_HANDLED; } menu_destroy( hMenu ); ShowMembersMenu( id ) return PLUGIN_HANDLED; } // Credits to Tirant from zombie mod and xOR from xRedirect public LoadGangs() { new szConfigsDir[ 60 ]; get_configsdir( szConfigsDir, charsmax( szConfigsDir ) ); add( szConfigsDir, charsmax( szConfigsDir ), "/jb_gangs.ini" ); new iFile = fopen( szConfigsDir, "rt" ); new aData[ GangInfo ]; new szBuffer[ 512 ], szData[ 6 ], szValue[ 6 ], i, iCurGang; while( !feof( iFile ) ) { fgets( iFile, szBuffer, charsmax( szBuffer ) ); trim( szBuffer ); remove_quotes( szBuffer ); if( !szBuffer[ 0 ] || szBuffer[ 0 ] == ';' ) { continue; } if( szBuffer[ 0 ] == '[' && szBuffer[ strlen( szBuffer ) - 1 ] == ']' ) { copy( aData[ GangName ], strlen( szBuffer ) - 2, szBuffer[ 1 ] ); aData[ GangHP ] = 0; aData[ GangStealing ] = 0; aData[ GangGravity ] = 0; aData[ GangStamina ] = 0; aData[ GangWeaponDrop ] = 0; aData[ GangDamage ] = 0; aData[ NumMembers ] = 0; aData[ GangKills ] = 0; aData[ GangMembers ] = _:TrieCreate(); if( TrieKeyExists( g_tGangNames, aData[ GangName ] ) ) { new szError[ 256 ]; formatex( szError, charsmax( szError ), "[CSDuragi] Zaten bir cete var: %s", aData[ GangName ] ); set_fail_state( szError ); } ArrayPushArray( g_aGangs, aData ); TrieSetCell( g_tGangNames, aData[ GangName ], iCurGang ); log_amx( "Gang Created: %s", aData[ GangName ] ); iCurGang++; continue; } strtok( szBuffer, szData, 31, szValue, 511, '=' ); trim( szData ); trim( szValue ); if( TrieGetCell( g_tGangValues, szData, i ) ) { ArrayGetArray( g_aGangs, iCurGang - 1, aData ); switch( i ) { case VALUE_HP: aData[ GangHP ] = str_to_num( szValue ); case VALUE_STEALING: aData[ GangStealing ] = str_to_num( szValue ); case VALUE_GRAVITY: aData[ GangGravity ] = str_to_num( szValue ); case VALUE_STAMINA: aData[ GangStamina ] = str_to_num( szValue ); case VALUE_WEAPONDROP: aData[ GangWeaponDrop ] = str_to_num( szValue ); case VALUE_DAMAGE: aData[ GangDamage ] = str_to_num( szValue ); case VALUE_KILLS: aData[ GangKills ] = str_to_num( szValue ); } ArraySetArray( g_aGangs, iCurGang - 1, aData ); } } new Array:aSQL; sqlv_read_all_ex( g_hVault, aSQL ); new aVaultData[ SQLVaultEntryEx ]; new iGang; for( i = 0; i < ArraySize( aSQL ); i++ ) { ArrayGetArray( aSQL, i, aVaultData ); if( TrieGetCell( g_tGangNames, aVaultData[ SQLVEx_Key2 ], iGang ) ) { ArrayGetArray( g_aGangs, iGang, aData ); TrieSetCell( aData[ GangMembers ], aVaultData[ SQLVEx_Key1 ], str_to_num( aVaultData[ SQLVEx_Data ] ) ); aData[ NumMembers ]++; ArraySetArray( g_aGangs, iGang, aData ); } } fclose( iFile ); } public SaveGangs() { new szConfigsDir[ 64 ]; get_configsdir( szConfigsDir, charsmax( szConfigsDir ) ); add( szConfigsDir, charsmax( szConfigsDir ), "/jb_gangs.ini" ); if( file_exists( szConfigsDir ) ) delete_file( szConfigsDir ); new iFile = fopen( szConfigsDir, "wt" ); new aData[ GangInfo ]; new szBuffer[ 256 ]; for( new i = 0; i < ArraySize( g_aGangs ); i++ ) { ArrayGetArray( g_aGangs, i, aData ); formatex( szBuffer, charsmax( szBuffer ), "[%s]^n", aData[ GangName ] ); fputs( iFile, szBuffer ); formatex( szBuffer, charsmax( szBuffer ), "HP=%i^n", aData[ GangHP ] ); fputs( iFile, szBuffer ); formatex( szBuffer, charsmax( szBuffer ), "Hirsizlik=%i^n", aData[ GangStealing ] ); fputs( iFile, szBuffer ); formatex( szBuffer, charsmax( szBuffer ), "Yer Cekimi=%i^n", aData[ GangGravity ] ); fputs( iFile, szBuffer ); formatex( szBuffer, charsmax( szBuffer ), "Dayaniklilik=%i^n", aData[ GangStamina ] ); fputs( iFile, szBuffer ); formatex( szBuffer, charsmax( szBuffer ), "Silah Dusurme=%i^n", aData[ GangWeaponDrop ] ); fputs( iFile, szBuffer ); formatex( szBuffer, charsmax( szBuffer ), "Hasar=%i^n", aData[ GangDamage ] ); fputs( iFile, szBuffer ); formatex( szBuffer, charsmax( szBuffer ), "Oldurmeler=%i^n^n", aData[ GangKills ] ); fputs( iFile, szBuffer ); } fclose( iFile ); } set_user_gang( id, iGang, iStatus=STATUS_MEMBER ) { new szAuthID[ 35 ]; get_user_authid( id, szAuthID, charsmax( szAuthID ) ); new aData[ GangInfo ]; if( g_iGang[ id ] > -1 ) { ArrayGetArray( g_aGangs, g_iGang[ id ], aData ); TrieDeleteKey( aData[ GangMembers ], szAuthID ); aData[ NumMembers ]--; ArraySetArray( g_aGangs, g_iGang[ id ], aData ); sqlv_remove_ex( g_hVault, szAuthID, aData[ GangName ] ); } if( iGang > -1 ) { ArrayGetArray( g_aGangs, iGang, aData ); TrieSetCell( aData[ GangMembers ], szAuthID, iStatus ); aData[ NumMembers ]++; ArraySetArray( g_aGangs, iGang, aData ); sqlv_set_num_ex( g_hVault, szAuthID, aData[ GangName ], iStatus ); } g_iGang[ id ] = iGang; return 1; } get_user_gang( id ) { new szAuthID[ 35 ]; get_user_authid( id, szAuthID, charsmax( szAuthID ) ); new aData[ GangInfo ]; for( new i = 0; i < ArraySize( g_aGangs ); i++ ) { ArrayGetArray( g_aGangs, i, aData ); if( TrieKeyExists( aData[ GangMembers ], szAuthID ) ) return i; } return -1; } getStatus( id, iGang ) { if( !is_user_connected( id ) || iGang == -1 ) return STATUS_NONE; new aData[ GangInfo ]; ArrayGetArray( g_aGangs, iGang, aData ); new szAuthID[ 35 ]; get_user_authid( id, szAuthID, charsmax( szAuthID ) ); new iStatus; TrieGetCell( aData[ GangMembers ], szAuthID, iStatus ); return iStatus; } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1055\\ f0\\ fs16 \n\\ par } */
| Link: | |
| Linklerini gizle |
-
ENESIZM
- Mesajlar: 2193
- Kayıt: Prş Tem 06, 2017 10:44 pm
- Konum: Mersin
- Server Ip/DNS: MoonDeveloperTeam
- İletişim:
çete menu yardım hata alıyorum
Güzel günlerde kullanın.Kaan874 yazdı: Cmt Ara 28, 2019 2:15 pmçok teşekkür ederim eklenti başarıyla çalıştı elinize sağlıkENESIZM yazdı: Cmt Ara 28, 2019 1:25 am eğer 1 hata verirse altta ismini verdiğim kütüphaneyi yükle. benim derleyicide yüklüydü, hata vermedi. csd panelinde yüklü olmayabilirtest eder misin ?Kod: Tümünü seç
#include <sqlvault_ex>
ek olarak, yazılar renkli değildi biraz renklendirdimKod: Tümünü seç
/* CVARS ----- jb_gang_cost - The cost to create a gang. jb_health_cost - The cost to upgrade gang health. jb_stealing_cost - The cost to upgrade gang money earning. jb_gravity_cost - The cost to upgrade gang gravity. jb_damage_cost - The cost to upgrade gang damage. jb_stamina_cost - The cost to upgrade gang stamina (speed). jb_weapondrop_cost - The cost to upgrade gang weapon drop percentage. jb_points_per_kill - The amount of points you get for a kill jb_headshot_bonus - The amount of points you get for a headshot jb_max_members - The max amount of members a gang can hold jb_admin_create - Whether or not an admin can create gangs without using points */ /* Includes */ #include <amxmodx> #include <amxmisc> #include <sqlvault_ex> #include <cstrike> #include <reapi> #include <hamsandwich> #include <fun> /* Defines */ #define ADMIN_CREATE ADMIN_LEVEL_B /* Constants */ new const g_szVersion[ ] = "1.1.2"; enum _:GangInfo { Trie:GangMembers, GangName[ 64 ], GangHP, GangStealing, GangGravity, GangDamage, GangStamina, GangWeaponDrop, GangKills, NumMembers }; enum { VALUE_HP, VALUE_STEALING, VALUE_GRAVITY, VALUE_DAMAGE, VALUE_STAMINA, VALUE_WEAPONDROP, VALUE_KILLS } enum { STATUS_NONE, STATUS_MEMBER, STATUS_ADMIN, STATUS_LEADER }; new const g_szGangValues[ ][ ] = { "HP", "Stealing", "Gravity", "Damage", "Stamina", "WeaponDrop", "Kills" }; new const g_szPrefix[ ] = "[CSduragi]"; /* Tries */ new Trie:g_tGangNames; new Trie:g_tGangValues; /* Vault */ new SQLVault:g_hVault; new SQLVault:g_hPointsVault; /* Arrays */ new Array:g_aGangs; /* Pcvars */ new g_pCreateCost; new g_pHealthCost; new g_pStealingCost; new g_pGravityCost; new g_pDamageCost; new g_pStaminaCost; new g_pWeaponDropCost; new g_pHealthMax; new g_pStealingMax; new g_pGravityMax; new g_pDamageMax; new g_pStaminaMax; new g_pWeaponDropMax; new g_pHealthPerLevel; new g_pStealingPerLevel; new g_pGravityPerLevel; new g_pDamagePerLevel; new g_pStaminaPerLevel; new g_pWeaponDropPerLevel; new g_pPointsPerKill; new g_pHeadshotBonus; new g_pMaxMembers; new g_pAdminCreate; /* Integers */ new g_iGang[ 33 ]; new g_iPoints[ 33 ]; public plugin_init() { register_plugin( "Jailbreak Gang System", g_szVersion, "H3avY Ra1n" ); g_aGangs = ArrayCreate( GangInfo ); g_tGangValues = TrieCreate(); g_tGangNames = TrieCreate(); g_hVault = sqlv_open_local( "jb_gangs", false ); sqlv_init_ex( g_hVault ); g_hPointsVault = sqlv_open_local( "jb_points", true ); g_pCreateCost = register_cvar( "jb_gang_cost", "300" ); g_pHealthCost = register_cvar( "jb_health_cost", "20" ); g_pStealingCost = register_cvar( "jb_stealing_cost", "20" ); g_pGravityCost = register_cvar( "jb_gravity_cost", "20" ); g_pDamageCost = register_cvar( "jb_damage_cost", "20" ); g_pStaminaCost = register_cvar( "jb_stamina_cost", "20" ); g_pWeaponDropCost = register_cvar( "jb_weapondrop_cost", "20" ); g_pHealthMax = register_cvar( "jb_health_max", "10" ); g_pStealingMax = register_cvar( "jb_stealing_max", "10" ); g_pGravityMax = register_cvar( "jb_gravity_max", "10" ); // Max * Gravity Per Level must be LESS than 800 g_pDamageMax = register_cvar( "jb_damage_max", "10" ); g_pStaminaMax = register_cvar( "jb_stamina_max", "10" ); g_pWeaponDropMax = register_cvar( "jb_weapondrop_max", "10" ); g_pHealthPerLevel = register_cvar( "jb_health_per", "10" ); g_pStealingPerLevel = register_cvar( "jb_stealing_per", "0.05" ); g_pGravityPerLevel = register_cvar( "jb_gravity_per", "50" ); g_pDamagePerLevel = register_cvar( "jb_damage_per", "3" ); g_pStaminaPerLevel = register_cvar( "jb_stamina_per", "3" ); g_pWeaponDropPerLevel = register_cvar( "jb_weapondrop_per", "1" ); g_pPointsPerKill = register_cvar( "jb_points_per_kill", "3" ); g_pHeadshotBonus = register_cvar( "jb_headshot_bonus", "2" ); g_pMaxMembers = register_cvar( "jb_max_members", "10" ); g_pAdminCreate = register_cvar( "jb_admin_create", "0" ); // Admins can create gangs without points register_cvar( "jb_gang_version", g_szVersion, FCVAR_SPONLY | FCVAR_SERVER ); register_menu( "Gang Menu", 1023, "GangMenu_Handler" ); register_menu( "Skills Menu", 1023, "SkillsMenu_Handler" ); for( new i = 0; i < sizeof g_szGangValues; i++ ) { TrieSetCell( g_tGangValues, g_szGangValues[ i ], i ); } RegisterHam( Ham_Spawn, "player", "Ham_PlayerSpawn_Post", 1 ); RegisterHam( Ham_TakeDamage, "player", "Ham_TakeDamage_Pre", 0 ); RegisterHam( Ham_TakeDamage, "player", "Ham_TakeDamage_Post", 1 ); RegisterHam( Ham_Item_PreFrame, "player", "Ham_PlayerResetSpeedPost", 1); register_event( "DeathMsg", "Event_DeathMsg", "a" ); register_clcmd( "say /cete", "Cmd_Gang" ); register_clcmd( "gang_name", "Cmd_CreateGang" ); LoadGangs(); } public client_disconnected(id) { g_iGang[ id ] = -1; new szAuthID[ 35 ]; get_user_authid( id, szAuthID, charsmax( szAuthID ) ); sqlv_set_num( g_hPointsVault, szAuthID, g_iPoints[ id ] ); } public client_putinserver( id ) { g_iGang[ id ] = get_user_gang( id ); new szAuthID[ 35 ]; get_user_authid( id, szAuthID, charsmax( szAuthID ) ); g_iPoints[ id ] = sqlv_get_num( g_hPointsVault, szAuthID ); } public plugin_end() { SaveGangs(); sqlv_close( g_hVault ); } public Ham_PlayerSpawn_Post( id ) { if( !is_user_alive( id ) || cs_get_user_team( id ) != CS_TEAM_T ) return HAM_IGNORED; if( g_iGang[ id ] == -1 ) { return HAM_IGNORED; } new aData[ GangInfo ]; ArrayGetArray( g_aGangs, g_iGang[ id ], aData ); new iHealth = 100 + aData[ GangHP ] * get_pcvar_num( g_pHealthPerLevel ); set_user_health( id, iHealth ); new iGravity = 800 - ( get_pcvar_num( g_pGravityPerLevel ) * aData[ GangGravity ] ); set_user_gravity( id, float( iGravity ) / 800.0 ); return HAM_IGNORED; } public Ham_TakeDamage_Pre( iVictim, iInflictor, iAttacker, Float:flDamage, iBits ) { if( !is_user_alive( iAttacker ) || cs_get_user_team( iAttacker ) != CS_TEAM_T ) return HAM_IGNORED; if( g_iGang[ iAttacker ] == -1 ) return HAM_IGNORED; new aData[ GangInfo ]; ArrayGetArray( g_aGangs, g_iGang[ iAttacker ], aData ); SetHamParamFloat( 4, flDamage + ( get_pcvar_num( g_pDamagePerLevel ) * ( aData[ GangDamage ] ) ) ); return HAM_IGNORED; } public Ham_TakeDamage_Post( iVictim, iInflictor, iAttacker, Float:flDamage, iBits ) { if( !is_user_alive( iAttacker ) || g_iGang[ iAttacker ] == -1 || get_user_weapon( iAttacker ) != CSW_KNIFE || cs_get_user_team( iAttacker ) != CS_TEAM_T ) { return HAM_IGNORED; } new aData[ GangInfo ]; ArrayGetArray( g_aGangs, g_iGang[ iAttacker ], aData ); new iChance = aData[ GangWeaponDrop ] * get_pcvar_num( g_pWeaponDropPerLevel ); if( iChance == 0 ) return HAM_IGNORED; new bool:bDrop = ( random_num( 1, 100 ) <= iChance ); if( bDrop ) client_cmd( iVictim, "drop" ); return HAM_IGNORED; } public Ham_PlayerResetSpeedPost( id ) { if( g_iGang[ id ] == -1 || !is_user_alive( id ) || cs_get_user_team( id ) != CS_TEAM_T ) { return HAM_IGNORED; } new aData[ GangInfo ]; ArrayGetArray( g_aGangs, g_iGang[ id ], aData ); if( aData[ GangStamina ] > 0 && get_user_maxspeed( id ) > 1.0 ) set_user_maxspeed( id, 250.0 + ( aData[ GangStamina ] * get_pcvar_num( g_pStaminaPerLevel ) ) ); return HAM_IGNORED; } public Event_DeathMsg() { new iKiller = read_data( 1 ); if( !is_user_alive( iKiller ) ) return PLUGIN_CONTINUE; new iTotal = get_pcvar_num( g_pPointsPerKill ) + ( bool:read_data( 3 ) ? get_pcvar_num( g_pHeadshotBonus ) : 0 ); if( g_iGang[ iKiller ] > -1 ) { new aData[ GangInfo ]; ArrayGetArray( g_aGangs, g_iGang[ iKiller ], aData ); aData[ GangKills ]++; ArraySetArray( g_aGangs, g_iGang[ iKiller ], aData ); iTotal += iTotal * ( aData[ GangStealing ] * get_pcvar_num( g_pStealingPerLevel ) ); } g_iPoints[ iKiller ] += iTotal; return PLUGIN_CONTINUE; } public Cmd_Gang( id ) { static szMenu[ 512 ], iLen, aData[ GangInfo ], iKeys, iStatus; iKeys = MENU_KEY_0 | MENU_KEY_3; iStatus = getStatus( id, g_iGang[ id ] ); if( g_iGang[ id ] > -1 ) { ArrayGetArray( g_aGangs, g_iGang[ id ], aData ); iLen = formatex( szMenu, charsmax( szMenu ), "\yCete Menu^n\wMevcut Cete:\y %s^n", aData[ GangName ] ); iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\yCSDuragiCoins Miktari: \w%i^n^n", g_iPoints[ id ] ); iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r1. \dCete Olustur [%i CSDuragiCoins]^n", get_pcvar_num( g_pCreateCost ) ); } else { iLen = formatex( szMenu, charsmax( szMenu ), "\yCete Menu^n\wMevcut Cete:\r Yok^n" ); iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\yCSDuragiCoins Miktari: \w%i^n^n", g_iPoints[ id ] ); iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r1. \wCete Olustur [%i CSDuragiCoins]^n", get_pcvar_num( g_pCreateCost ) ); iKeys |= MENU_KEY_1; } if( iStatus > STATUS_MEMBER && g_iGang[ id ] > -1 && get_pcvar_num( g_pMaxMembers ) > aData[ NumMembers ] ) { iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r2. \wCetene Oyuncu Davet Et^n" ); iKeys |= MENU_KEY_2; } else iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r2. \dCetene Oyuncu Davet Et^n" ); iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r3. \wTop-10^n" ); if( g_iGang[ id ] > -1 ) { iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r4. \wCeteden Ayril^n" ); iKeys |= MENU_KEY_4; } else iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r4. \dCeteden Ayril^n" ); if( iStatus > STATUS_MEMBER ) { iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r5. \wCete Admin Menu^n" ); iKeys |= MENU_KEY_5; } else iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r5. \dCete Admin Menu^n" ); if( g_iGang[ id ] > -1 ) { iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r6. \wAktif Uyeler^n" ); iKeys |= MENU_KEY_6; } else iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r6. \dAktif Uyeler^n" ); iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "^n\r0. \wMenuyu Kapat" ); show_menu( id, iKeys, szMenu, -1, "Gang Menu" ); return PLUGIN_CONTINUE; } public GangMenu_Handler( id, iKey ) { switch( ( iKey + 1 ) % 10 ) { case 0: return PLUGIN_HANDLED; case 1: { if( get_pcvar_num( g_pAdminCreate ) && get_user_flags( id ) & ADMIN_CREATE ) { client_cmd( id, "messagemode gang_name" ); } else if( g_iPoints[ id ] < get_pcvar_num( g_pCreateCost ) ) { client_print_color(id, id, "^3%s ^4Bir çete oluþturmak için yeterli ^2CSDuragiCoins^4 yok!", g_szPrefix ); return PLUGIN_HANDLED; } else client_cmd( id, "messagemode gang_name" ); } case 2: { ShowInviteMenu( id ); } case 3: { Cmd_Top10( id ); } case 4: { ShowLeaveConfirmMenu( id ); } case 5: { ShowLeaderMenu( id ); } case 6: { ShowMembersMenu( id ); } } return PLUGIN_HANDLED; } public Cmd_CreateGang( id ) { new bool:bAdmin = false; if( get_pcvar_num( g_pAdminCreate ) && get_user_flags( id ) & ADMIN_CREATE ) { bAdmin = true; } else if( g_iPoints[ id ] < get_pcvar_num( g_pCreateCost ) ) { client_print_color(id, id, "^3%s ^4Bir çete oluþturmak için yeterli ^2CSDuragiCoins^4 yok!", g_szPrefix ); return PLUGIN_HANDLED; } else if( g_iGang[ id ] > -1 ) { client_print_color(id, id, "^3%s ^4Zaten bir cetedesin.", g_szPrefix ); return PLUGIN_HANDLED; } new szArgs[ 60 ]; read_args( szArgs, charsmax( szArgs ) ); remove_quotes( szArgs ); if( TrieKeyExists( g_tGangNames, szArgs ) ) { client_print_color(id, id, "^3%s ^4Bu cete ismi ^2zaten ^4kullanimda lutfen baska bi isim deneyin.", g_szPrefix ); Cmd_Gang( id ); return PLUGIN_HANDLED; } new aData[ GangInfo ]; aData[ GangName ] = szArgs; aData[ GangHP ] = 0; aData[ GangStealing ] = 0; aData[ GangGravity ] = 0; aData[ GangStamina ] = 0; aData[ GangWeaponDrop ] = 0; aData[ GangDamage ] = 0; aData[ NumMembers ] = 0; aData[ GangMembers ] = _:TrieCreate(); ArrayPushArray( g_aGangs, aData ); if( !bAdmin ) g_iPoints[ id ] -= get_pcvar_num( g_pCreateCost ); set_user_gang( id, ArraySize( g_aGangs ) - 1, STATUS_LEADER ); client_print_color(id, id, "^3%s ^4Tebrikler.^2Basariyla ^4cete olusturuldu. '^03%s^01'.", g_szPrefix, szArgs ); return PLUGIN_HANDLED; } public ShowInviteMenu( id ) { new iPlayers[ 32 ], iNum; get_players( iPlayers, iNum ); new szInfo[ 6 ], hMenu; hMenu = menu_create( "Bir Oyuncu Davet etmek için seçin:", "InviteMenu_Handler" ); new szName[ 32 ]; for( new i = 0, iPlayer; i < iNum; i++ ) { iPlayer = iPlayers[ i ]; if( iPlayer == id || g_iGang[ iPlayer ] == g_iGang[ id ]) continue; get_user_name( iPlayer, szName, charsmax( szName ) ); num_to_str( iPlayer, szInfo, charsmax( szInfo ) ); menu_additem( hMenu, szName, szInfo ); } menu_display( id, hMenu, 0 ); } public InviteMenu_Handler( id, hMenu, iItem ) { if( iItem == MENU_EXIT ) { Cmd_Gang( id ); return PLUGIN_HANDLED; } new szData[ 6 ], iAccess, hCallback, szName[ 32 ]; menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, szName, 31, hCallback ); new iPlayer = str_to_num( szData ); if( !is_user_connected( iPlayer ) ) return PLUGIN_HANDLED; ShowInviteConfirmMenu( id, iPlayer ); client_print_color(id, id, "^3%s ^4Ceteye katilma istegi var ^2%s ", g_szPrefix, szName ); Cmd_Gang( id ); return PLUGIN_HANDLED; } public ShowInviteConfirmMenu( id, iPlayer ) { new szName[ 32 ]; get_user_name( id, szName, charsmax( szName ) ); new aData[ GangInfo ]; ArrayGetArray( g_aGangs, g_iGang[ id ], aData ); new szMenuTitle[ 128 ]; formatex( szMenuTitle, charsmax( szMenuTitle ), "%s Size katilmak icin davet var %s", szName, aData[ GangName ] ); new hMenu = menu_create( szMenuTitle, "InviteConfirmMenu_Handler" ); new szInfo[ 6 ]; num_to_str( g_iGang[ id ], szInfo, 5 ); menu_additem( hMenu, "Daveti kabul et.", szInfo ); menu_additem( hMenu, "Reddet", "-1" ); menu_display( iPlayer, hMenu, 0 ); } public InviteConfirmMenu_Handler( id, hMenu, iItem ) { if( iItem == MENU_EXIT ) return PLUGIN_HANDLED; new szData[ 6 ], iAccess, hCallback; menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback ); new iGang = str_to_num( szData ); if( iGang == -1 ) return PLUGIN_HANDLED; if( getStatus( id, g_iGang[ id ] ) == STATUS_LEADER ) { client_print_color(id, id, "^3%s ^4Lider iken çete birakamazsin.", g_szPrefix ); return PLUGIN_HANDLED; } set_user_gang( id, iGang ); new aData[ GangInfo ]; ArrayGetArray( g_aGangs, iGang, aData ); client_print_color(id, id, "^3%s ^4Basariyla ceteye ^2uye^4 olundu. ^03%s^01.", g_szPrefix, aData[ GangName ] ); return PLUGIN_HANDLED; } public ShowSkillsMenu( id ) { static szMenu[ 512 ], iLen, iKeys, aData[ GangInfo ]; if( !iKeys ) { iKeys = MENU_KEY_1 | MENU_KEY_2 | MENU_KEY_3 | MENU_KEY_4 | MENU_KEY_5 | MENU_KEY_6 | MENU_KEY_0; } ArrayGetArray( g_aGangs, g_iGang[ id ], aData ); iLen = formatex( szMenu, charsmax( szMenu ), "\ySkills Menu^n^n" ); iLen += formatex( szMenu[ iLen ], 511 - iLen, "\r1. \wHP Yukselt [\rMaliyet: \y%i CSDuragiCoins\w] \y[Level:%i/%i]^n", get_pcvar_num( g_pHealthCost ), aData[ GangHP ], get_pcvar_num( g_pHealthMax ) ); iLen += formatex( szMenu[ iLen ], 511 - iLen, "\r2. \wHirsizlik Yukselt [\rMaliyet: \y%i CSDuragiCoins\w] \y[Level:%i/%i]^n", get_pcvar_num( g_pStealingCost ), aData[ GangStealing ], get_pcvar_num( g_pStealingMax ) ); iLen += formatex( szMenu[ iLen ], 511 - iLen, "\r3. \wYercekimi Yukselt [\rMaliyet: \y%i CSDuragiCoins\w] \y[Level:%i/%i]^n", get_pcvar_num( g_pGravityCost ), aData[ GangGravity ], get_pcvar_num( g_pGravityMax ) ); iLen += formatex( szMenu[ iLen ], 511 - iLen, "\r4. \wHasar Yukselt [\rMaliyet: \y%i CSDuragiCoins\w] \y[Level:%i/%i]^n", get_pcvar_num( g_pDamageCost ), aData[ GangDamage ], get_pcvar_num( g_pDamageMax ) ); iLen += formatex( szMenu[ iLen ], 511 - iLen, "\r5. \wSilah Birakma Yukselt [\rMaliyet: \y%i CSDuragiCoins\w] \y[Level:%i/%i]^n", get_pcvar_num( g_pWeaponDropCost ), aData[ GangWeaponDrop ], get_pcvar_num( g_pWeaponDropMax ) ); iLen += formatex( szMenu[ iLen ], 511 - iLen, "\r6. \wHiz Yukselt [\rMaliyet: \y%i CSDuragiCoins\w] \y[Level:%i/%i]^n", get_pcvar_num( g_pStaminaCost ), aData[ GangStamina ], get_pcvar_num( g_pStaminaMax ) ); iLen += formatex( szMenu[ iLen ], 511 - iLen, "^n\r0. \wMenuyu Kapat" ); show_menu( id, iKeys, szMenu, -1, "Skills Menu" ); } public SkillsMenu_Handler( id, iKey ) { new aData[ GangInfo ]; ArrayGetArray( g_aGangs, g_iGang[ id ], aData ); switch( ( iKey + 1 ) % 10 ) { case 0: { Cmd_Gang( id ); return PLUGIN_HANDLED; } case 1: { if( aData[ GangHP ] == get_pcvar_num( g_pHealthMax ) ) { client_print_color(id, id, "^3%s ^4Cete icin ^2bu beceri en yuksek^4 seviyede.", g_szPrefix ); ShowSkillsMenu( id ); return PLUGIN_HANDLED; } new iRemaining = g_iPoints[ id ] - get_pcvar_num( g_pHealthCost ); if( iRemaining < 0 ) { client_print_color(id, id, "^3%s ^4Bunun icin yeterli ^2CSDuragiCoins^4 yok.", g_szPrefix ); ShowSkillsMenu( id ); return PLUGIN_HANDLED; } aData[ GangHP ]++; g_iPoints[ id ] = iRemaining; } case 2: { if( aData[ GangStealing ] == get_pcvar_num( g_pStealingMax ) ) { client_print_color(id, id, "^3%s ^4Cete icin ^2bu beceri en yuksek^4 seviyede.", g_szPrefix ); ShowSkillsMenu( id ); return PLUGIN_HANDLED; } new iRemaining = g_iPoints[ id ] - get_pcvar_num( g_pStealingCost ); if( iRemaining < 0 ) { client_print_color(id, id, "^3%s ^4Bunun icin yeterli ^2CSDuragiCoins^4 yok.", g_szPrefix ); ShowSkillsMenu( id ); return PLUGIN_HANDLED; } aData[ GangStealing ]++; g_iPoints[ id ] = iRemaining; } case 3: { if( aData[ GangGravity ] == get_pcvar_num( g_pGravityMax ) ) { client_print_color(id, id, "^3%s ^4Cete icin ^2bu beceri en yuksek^4 seviyede.", g_szPrefix ); ShowSkillsMenu( id ); return PLUGIN_HANDLED; } new iRemaining = g_iPoints[ id ] - get_pcvar_num( g_pGravityCost ); if( iRemaining < 0 ) { client_print_color(id, id, "^3%s ^4Bunun icin yeterli ^2CSDuragiCoins^4 yok.", g_szPrefix ); ShowSkillsMenu( id ); return PLUGIN_HANDLED; } aData[ GangGravity ]++; g_iPoints[ id ] = iRemaining; } case 4: { if( aData[ GangDamage ] == get_pcvar_num( g_pDamageMax ) ) { client_print_color(id, id, "^3%s ^4Cete icin ^2bu beceri en yuksek^4 seviyede.", g_szPrefix ); ShowSkillsMenu( id ); return PLUGIN_HANDLED; } new iRemaining = g_iPoints[ id ] - get_pcvar_num( g_pDamageCost ); if( iRemaining < 0 ) { client_print_color(id, id, "^3%s ^4Bunun icin yeterli ^2CSDuragiCoins^4 yok.", g_szPrefix ); ShowSkillsMenu( id ); return PLUGIN_HANDLED; } aData[ GangDamage ]++; g_iPoints[ id ] = iRemaining; } case 5: { if( aData[ GangWeaponDrop ] == get_pcvar_num( g_pWeaponDropMax ) ) { client_print_color(id, id, "^3%s ^4Cete icin ^2bu beceri en yuksek^4 seviyede.", g_szPrefix ); ShowSkillsMenu( id ); return PLUGIN_HANDLED; } new iRemaining = g_iPoints[ id ] - get_pcvar_num( g_pWeaponDropCost ); if( iRemaining < 0 ) { client_print_color(id, id, "^3%s ^4Bunun icin yeterli ^2CSDuragiCoins^4 yok.", g_szPrefix ); ShowSkillsMenu( id ); return PLUGIN_HANDLED; } aData[ GangWeaponDrop ]++; g_iPoints[ id ] = iRemaining; } case 6: { if( aData[ GangStamina ] == get_pcvar_num( g_pStaminaMax ) ) { client_print_color(id, id, "^3%s ^4Cete icin ^2bu beceri en yuksek^4 seviyede.", g_szPrefix ); ShowSkillsMenu( id ); return PLUGIN_HANDLED; } new iRemaining = g_iPoints[ id ] - get_pcvar_num( g_pStaminaCost ); if( iRemaining < 0 ) { client_print_color(id, id, "^3%s ^4Bunun icin yeterli ^2CSDuragiCoins^4 yok.", g_szPrefix ); ShowSkillsMenu( id ); return PLUGIN_HANDLED; } aData[ GangStamina ]++; g_iPoints[ id ] = iRemaining; } } ArraySetArray( g_aGangs, g_iGang[ id ], aData ); new iPlayers[ 32 ], iNum, iPlayer; new szName[ 32 ]; get_players( iPlayers, iNum ); for( new i = 0; i < iNum; i++ ) { iPlayer = iPlayers[ i ]; if( iPlayer == id || g_iGang[ iPlayer ] != g_iGang[ id ] ) continue; client_print_color(iPlayer, id, "^3%s ^2%s ^4Yetenek bir seviye yukseltildi.", g_szPrefix, szName ); } client_print_color(id, id, "^3%s ^4Basariyla ^3cetenin seviyesini^4 yukselttiniz.", g_szPrefix ); ShowSkillsMenu( id ); return PLUGIN_HANDLED; } public Cmd_Top10( id ) { new iSize = ArraySize( g_aGangs ); new iOrder[ 100 ][ 2 ]; new aData[ GangInfo ]; for( new i = 0; i < iSize; i++ ) { ArrayGetArray( g_aGangs, i, aData ); iOrder[ i ][ 0 ] = i; iOrder[ i ][ 1 ] = aData[ GangKills ]; } SortCustom2D( iOrder, iSize, "Top10_Sort" ); new szMessage[ 2048 ]; formatex( szMessage, charsmax( szMessage ), "<body bgcolor=#000000><font color=#FFB000><pre>" ); format( szMessage, charsmax( szMessage ), "%s%2s %-22.22s %7s %4s %10s %9s %9s %11s %8s^n", szMessage, "#", "Isim", "Oldurmeler", "HP", "Calma", "Yercekimi", "Dayaniklilik", "Silah Dusurme", "Hasar" ); for( new i = 0; i < min( 10, iSize ); i++ ) { ArrayGetArray( g_aGangs, iOrder[ i ][ 0 ], aData ); format( szMessage, charsmax( szMessage ), "%s%-2d %22.22s %7d %4d %10d %9d %9d %11d %8d^n", szMessage, i + 1, aData[ GangName ], aData[ GangKills ], aData[ GangHP ], aData[ GangStealing ], aData[ GangGravity ], aData[ GangStamina], aData[ GangWeaponDrop ], aData[ GangDamage ] ); } show_motd( id, szMessage, "CSDuragi | Cete Top 10" ); } public Top10_Sort( const iElement1[ ], const iElement2[ ], const iArray[ ], szData[], iSize ) { if( iElement1[ 1 ] > iElement2[ 1 ] ) return -1; else if( iElement1[ 1 ] < iElement2[ 1 ] ) return 1; return 0; } public ShowLeaveConfirmMenu( id ) { new hMenu = menu_create( "Ceteden ayrilmak istediginize emin misiniz ?", "LeaveConfirmMenu_Handler" ); menu_additem( hMenu, "Evet,Ayril", "0" ); menu_additem( hMenu, "Hayir,Kal", "1" ); menu_display( id, hMenu, 0 ); } public LeaveConfirmMenu_Handler( id, hMenu, iItem ) { if( iItem == MENU_EXIT ) return PLUGIN_HANDLED; new szData[ 6 ], iAccess, hCallback; menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback ); switch( str_to_num( szData ) ) { case 0: { if( getStatus( id, g_iGang[ id ] ) == STATUS_LEADER ) { client_print_color(id, id, "^3%s ^4Bu ceteden ^2ayrilmadan once liderligi ^4baskasina aktarmaniz gerekir!", g_szPrefix ); Cmd_Gang( id ); return PLUGIN_HANDLED; } client_print_color(id, id, "^3%s ^4Basariyla ^2cete ^4kaldi.", g_szPrefix ); set_user_gang( id, -1 ); Cmd_Gang( id ); } case 1: Cmd_Gang( id ); } return PLUGIN_HANDLED; } public ShowLeaderMenu( id ) { new hMenu = menu_create( "Cete Yonetici Menu", "LeaderMenu_Handler" ); new iStatus = getStatus( id, g_iGang[ id ] ); if( iStatus == STATUS_LEADER ) { menu_additem( hMenu, "Ceteyi Dagit", "0" ); menu_additem( hMenu, "Liderligi Devret", "1" ); menu_additem( hMenu, "Yetkili Ekle", "4" ); menu_additem( hMenu, "Yetkili Kaldir", "5" ); } menu_additem( hMenu, "Ceteden At", "2" ); menu_additem( hMenu, "Cete Adini Degistir", "3" ); menu_display( id, hMenu, 0 ); } public LeaderMenu_Handler( id, hMenu, iItem ) { if( iItem == MENU_EXIT ) { Cmd_Gang( id ); return PLUGIN_HANDLED; } new iAccess, hCallback, szData[ 6 ]; menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback ); switch( str_to_num( szData ) ) { case 0: { ShowDisbandConfirmMenu( id ); } case 1: { ShowTransferMenu( id ); } case 2: { ShowKickMenu( id ); } case 3: { client_cmd( id, "messagemode New_Name" ); } case 4: { ShowAddAdminMenu( id ); } case 5: { ShowRemoveAdminMenu( id ); } } return PLUGIN_HANDLED; } public ShowDisbandConfirmMenu( id ) { new hMenu = menu_create( "Ceteyi dagitmak istediginizden emin misiniz ?", "DisbandConfirmMenu_Handler" ); menu_additem( hMenu, "Evet, Simdi Dagit", "0" ); menu_additem( hMenu, "Hayir", "1" ); menu_display( id, hMenu, 0 ); } public DisbandConfirmMenu_Handler( id, hMenu, iItem ) { if( iItem == MENU_EXIT ) return PLUGIN_HANDLED; new szData[ 6 ], iAccess, hCallback; menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback ); switch( str_to_num( szData ) ) { case 0: { client_print_color(id, id, "^3%s ^4Basariyla ^2cete ^4dagitildi.", g_szPrefix ); new iPlayers[ 32 ], iNum; get_players( iPlayers, iNum ); new iPlayer; for( new i = 0; i < iNum; i++ ) { iPlayer = iPlayers[ i ]; if( iPlayer == id ) continue; if( g_iGang[ id ] != g_iGang[ iPlayer ] ) continue; client_print_color(iPlayer, id, "^3%s ^4Cete ^2lider tarafindan^4 dagitildi..", g_szPrefix ); set_user_gang( iPlayer, -1 ); } new iGang = g_iGang[ id ]; set_user_gang( id, -1 ); ArrayDeleteItem( g_aGangs, iGang ); Cmd_Gang( id ); } case 1: Cmd_Gang( id ); } return PLUGIN_HANDLED; } public ShowTransferMenu( id ) { new iPlayers[ 32 ], iNum; get_players( iPlayers, iNum, "e", "TERRORIST" ); new hMenu = menu_create( "Liderligi transfer etmek istedigini sec:", "TransferMenu_Handler" ); new szName[ 32 ], szData[ 6 ]; for( new i = 0, iPlayer; i < iNum; i++ ) { iPlayer = iPlayers[ i ]; if( g_iGang[ iPlayer ] != g_iGang[ id ] || id == iPlayer ) continue; get_user_name( iPlayer, szName, charsmax( szName ) ); num_to_str( iPlayer, szData, charsmax( szData ) ); menu_additem( hMenu, szName, szData ); } menu_display( id, hMenu, 0 ); } public TransferMenu_Handler( id, hMenu, iItem ) { if( iItem == MENU_EXIT ) { ShowLeaderMenu( id ); return PLUGIN_HANDLED; } new iAccess, hCallback, szData[ 6 ], szName[ 32 ]; menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, szName, charsmax( szName ), hCallback ); new iPlayer = str_to_num( szData ); if( !is_user_connected( iPlayer ) ) { client_print_color(id, id, "^3%s ^4Bu oyuncu artik bagli.", g_szPrefix ); ShowTransferMenu( id ); return PLUGIN_HANDLED; } set_user_gang( iPlayer, g_iGang[ id ], STATUS_LEADER ); set_user_gang( id, g_iGang[ id ], STATUS_ADMIN ); Cmd_Gang( id ); new iPlayers[ 32 ], iNum, iTemp; get_players( iPlayers, iNum ); for( new i = 0; i < iNum; i++ ) { iTemp = iPlayers[ i ]; if( iTemp == iPlayer ) { client_print_color(iTemp, id, "^3%s ^4Cetenin yeni lideri sensin.", g_szPrefix ); continue; } else if( g_iGang[ iTemp ] != g_iGang[ id ] ) continue; client_print_color(iTemp, id, "^3%s ^2%s^4 Cetenin yeni lideri oldu..", g_szPrefix, szName ); } return PLUGIN_HANDLED; } public ShowKickMenu( id ) { new iPlayers[ 32 ], iNum; get_players( iPlayers, iNum ); new hMenu = menu_create( "Cetenden Uye At:", "KickMenu_Handler" ); new szName[ 32 ], szData[ 6 ]; for( new i = 0, iPlayer; i < iNum; i++ ) { iPlayer = iPlayers[ i ]; if( g_iGang[ iPlayer ] != g_iGang[ id ] || id == iPlayer ) continue; get_user_name( iPlayer, szName, charsmax( szName ) ); num_to_str( iPlayer, szData, charsmax( szData ) ); menu_additem( hMenu, szName, szData ); } menu_display( id, hMenu, 0 ); } public KickMenu_Handler( id, hMenu, iItem ) { if( iItem == MENU_EXIT ) { ShowLeaderMenu( id ); return PLUGIN_HANDLED; } new iAccess, hCallback, szData[ 6 ], szName[ 32 ]; menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, szName, charsmax( szName ), hCallback ); new iPlayer = str_to_num( szData ); if( !is_user_connected( iPlayer ) ) { client_print_color(id, id, "^3%s ^4Bu oyuncu artik bagli.", g_szPrefix ); ShowTransferMenu( id ); return PLUGIN_HANDLED; } set_user_gang( iPlayer, -1 ); Cmd_Gang( id ); new iPlayers[ 32 ], iNum, iTemp; get_players( iPlayers, iNum ); for( new i = 0; i < iNum; i++ ) { iTemp = iPlayers[ i ]; if( iTemp == iPlayer || g_iGang[ iTemp ] != g_iGang[ id ] ) continue; client_print_color(iTemp, id, "^3%s ^2%s^4 Ceteden atildi.", g_szPrefix, szName ); } client_print_color(iPlayer, id, "^3%s ^4Ceteden atildiniz.", g_szPrefix, szName ); return PLUGIN_HANDLED; } public ChangeName_Handler( id ) { if( g_iGang[ id ] == -1 || getStatus( id, g_iGang[ id ] ) == STATUS_MEMBER ) { return; } new iGang = g_iGang[ id ]; new szArgs[ 64 ]; read_args( szArgs, charsmax( szArgs ) ); new iPlayers[ 32 ], iNum; get_players( iPlayers, iNum ); new bool:bInGang[ 33 ]; new iStatus[ 33 ]; for( new i = 0, iPlayer; i < iNum; i++ ) { iPlayer = iPlayers[ i ]; if( g_iGang[ id ] != g_iGang[ iPlayer ] ) continue; bInGang[ iPlayer ] = true; iStatus[ iPlayer ] = getStatus( id, iGang ); set_user_gang( iPlayer, -1 ); } new aData[ GangInfo ]; ArrayGetArray( g_aGangs, iGang, aData ); aData[ GangName ] = szArgs; ArraySetArray( g_aGangs, iGang, aData ); for( new i = 0, iPlayer; i < iNum; i++ ) { iPlayer = iPlayers[ i ]; if( !bInGang[ iPlayer ] ) continue; set_user_gang( iPlayer, iGang, iStatus[ id ] ); } } public ShowAddAdminMenu( id ) { new iPlayers[ 32 ], iNum; new szName[ 32 ], szData[ 6 ]; new hMenu = menu_create( "Oyuncuyu terfi et:", "AddAdminMenu_Handler" ); get_players( iPlayers, iNum ); for( new i = 0, iPlayer; i < iNum; i++ ) { iPlayer = iPlayers[ i ]; if( g_iGang[ id ] != g_iGang[ iPlayer ] || getStatus( iPlayer, g_iGang[ iPlayer ] ) > STATUS_MEMBER ) continue; get_user_name( iPlayer, szName, charsmax( szName ) ); num_to_str( iPlayer, szData, charsmax( szData ) ); menu_additem( hMenu, szName, szData ); } menu_display( id, hMenu, 0 ); } public AddAdminMenu_Handler( id, hMenu, iItem ) { if( iItem == MENU_EXIT ) { menu_destroy( hMenu ); ShowLeaderMenu( id ); return PLUGIN_HANDLED; } new iAccess, hCallback, szData[ 6 ], szName[ 32 ]; menu_item_getinfo( hMenu, iItem, iAccess, szData, charsmax( szData ), szName, charsmax( szName ), hCallback ); new iChosen = str_to_num( szData ); if( !is_user_connected( iChosen ) ) { menu_destroy( hMenu ); ShowLeaderMenu( id ); return PLUGIN_HANDLED; } set_user_gang( iChosen, g_iGang[ id ], STATUS_LEADER ); new iPlayers[ 32 ], iNum; get_players( iPlayers, iNum ); for( new i = 0, iPlayer; i < iNum; i++ ) { iPlayer = iPlayers[ i ]; if( g_iGang[ iPlayer ] != g_iGang[ id ] || iPlayer == iChosen ) continue; client_print_color(iPlayer, id, "^3%s ^2%s ^4Cetenin yoneticisi atandi.", g_szPrefix, szName ); } client_print_color(iChosen, id, "^3%s ^4Cetenin yoneticisi terfi edildi", g_szPrefix ); menu_destroy( hMenu ); return PLUGIN_HANDLED; } public ShowRemoveAdminMenu( id ) { new iPlayers[ 32 ], iNum; new szName[ 32 ], szData[ 6 ]; new hMenu = menu_create( "Alt sinifa indirmek istediginiz uyeyi secin:", "RemoveAdminMenu_Handler" ); get_players( iPlayers, iNum ); for( new i = 0, iPlayer; i < iNum; i++ ) { iPlayer = iPlayers[ i ]; if( g_iGang[ id ] != g_iGang[ iPlayer ] || getStatus( iPlayer, g_iGang[ iPlayer ] ) != STATUS_ADMIN ) continue; get_user_name( iPlayer, szName, charsmax( szName ) ); num_to_str( iPlayer, szData, charsmax( szData ) ); menu_additem( hMenu, szName, szData ); } menu_display( id, hMenu, 0 ); } public RemoveAdminMenu_Handler( id, hMenu, iItem ) { if( iItem == MENU_EXIT ) { menu_destroy( hMenu ); ShowLeaderMenu( id ); return PLUGIN_HANDLED; } new iAccess, hCallback, szData[ 6 ], szName[ 32 ]; menu_item_getinfo( hMenu, iItem, iAccess, szData, charsmax( szData ), szName, charsmax( szName ), hCallback ); new iChosen = str_to_num( szData ); if( !is_user_connected( iChosen ) ) { menu_destroy( hMenu ); ShowLeaderMenu( id ); return PLUGIN_HANDLED; } set_user_gang( iChosen, g_iGang[ id ], STATUS_MEMBER ); new iPlayers[ 32 ], iNum; get_players( iPlayers, iNum ); for( new i = 0, iPlayer; i < iNum; i++ ) { iPlayer = iPlayers[ i ]; if( g_iGang[ iPlayer ] != g_iGang[ id ] || iPlayer == iChosen ) continue; client_print_color(iPlayer, id, "^3%s ^2%s ^4Cete yoneticiliginden dusuruldu.", g_szPrefix, szName ); } client_print_color(iChosen, id, "^3%s ^4Cete yoneticiliginden dusuruldu.", g_szPrefix ); menu_destroy( hMenu ); return PLUGIN_HANDLED; } public ShowMembersMenu( id ) { new szName[ 64 ], iPlayers[ 32 ], iNum; get_players( iPlayers, iNum ); new hMenu = menu_create( "Online Uyeler:", "MemberMenu_Handler" ); for( new i = 0, iPlayer; i < iNum; i++ ) { iPlayer = iPlayers[ i ]; if( g_iGang[ id ] != g_iGang[ iPlayer ] ) continue; get_user_name( iPlayer, szName, charsmax( szName ) ); switch( getStatus( iPlayer, g_iGang[ id ] ) ) { case STATUS_MEMBER: { add( szName, charsmax( szName ), " \r[Uye]" ); } case STATUS_ADMIN: { add( szName, charsmax( szName ), " \r[Yetkili]" ); } case STATUS_LEADER: { add( szName, charsmax( szName ), " \r[Yonetici]" ); } } menu_additem( hMenu, szName ); } menu_display( id, hMenu, 0 ); } public MemberMenu_Handler( id, hMenu, iItem ) { if( iItem == MENU_EXIT ) { menu_destroy( hMenu ); Cmd_Gang( id ); return PLUGIN_HANDLED; } menu_destroy( hMenu ); ShowMembersMenu( id ) return PLUGIN_HANDLED; } // Credits to Tirant from zombie mod and xOR from xRedirect public LoadGangs() { new szConfigsDir[ 60 ]; get_configsdir( szConfigsDir, charsmax( szConfigsDir ) ); add( szConfigsDir, charsmax( szConfigsDir ), "/jb_gangs.ini" ); new iFile = fopen( szConfigsDir, "rt" ); new aData[ GangInfo ]; new szBuffer[ 512 ], szData[ 6 ], szValue[ 6 ], i, iCurGang; while( !feof( iFile ) ) { fgets( iFile, szBuffer, charsmax( szBuffer ) ); trim( szBuffer ); remove_quotes( szBuffer ); if( !szBuffer[ 0 ] || szBuffer[ 0 ] == ';' ) { continue; } if( szBuffer[ 0 ] == '[' && szBuffer[ strlen( szBuffer ) - 1 ] == ']' ) { copy( aData[ GangName ], strlen( szBuffer ) - 2, szBuffer[ 1 ] ); aData[ GangHP ] = 0; aData[ GangStealing ] = 0; aData[ GangGravity ] = 0; aData[ GangStamina ] = 0; aData[ GangWeaponDrop ] = 0; aData[ GangDamage ] = 0; aData[ NumMembers ] = 0; aData[ GangKills ] = 0; aData[ GangMembers ] = _:TrieCreate(); if( TrieKeyExists( g_tGangNames, aData[ GangName ] ) ) { new szError[ 256 ]; formatex( szError, charsmax( szError ), "[CSDuragi] Zaten bir cete var: %s", aData[ GangName ] ); set_fail_state( szError ); } ArrayPushArray( g_aGangs, aData ); TrieSetCell( g_tGangNames, aData[ GangName ], iCurGang ); log_amx( "Gang Created: %s", aData[ GangName ] ); iCurGang++; continue; } strtok( szBuffer, szData, 31, szValue, 511, '=' ); trim( szData ); trim( szValue ); if( TrieGetCell( g_tGangValues, szData, i ) ) { ArrayGetArray( g_aGangs, iCurGang - 1, aData ); switch( i ) { case VALUE_HP: aData[ GangHP ] = str_to_num( szValue ); case VALUE_STEALING: aData[ GangStealing ] = str_to_num( szValue ); case VALUE_GRAVITY: aData[ GangGravity ] = str_to_num( szValue ); case VALUE_STAMINA: aData[ GangStamina ] = str_to_num( szValue ); case VALUE_WEAPONDROP: aData[ GangWeaponDrop ] = str_to_num( szValue ); case VALUE_DAMAGE: aData[ GangDamage ] = str_to_num( szValue ); case VALUE_KILLS: aData[ GangKills ] = str_to_num( szValue ); } ArraySetArray( g_aGangs, iCurGang - 1, aData ); } } new Array:aSQL; sqlv_read_all_ex( g_hVault, aSQL ); new aVaultData[ SQLVaultEntryEx ]; new iGang; for( i = 0; i < ArraySize( aSQL ); i++ ) { ArrayGetArray( aSQL, i, aVaultData ); if( TrieGetCell( g_tGangNames, aVaultData[ SQLVEx_Key2 ], iGang ) ) { ArrayGetArray( g_aGangs, iGang, aData ); TrieSetCell( aData[ GangMembers ], aVaultData[ SQLVEx_Key1 ], str_to_num( aVaultData[ SQLVEx_Data ] ) ); aData[ NumMembers ]++; ArraySetArray( g_aGangs, iGang, aData ); } } fclose( iFile ); } public SaveGangs() { new szConfigsDir[ 64 ]; get_configsdir( szConfigsDir, charsmax( szConfigsDir ) ); add( szConfigsDir, charsmax( szConfigsDir ), "/jb_gangs.ini" ); if( file_exists( szConfigsDir ) ) delete_file( szConfigsDir ); new iFile = fopen( szConfigsDir, "wt" ); new aData[ GangInfo ]; new szBuffer[ 256 ]; for( new i = 0; i < ArraySize( g_aGangs ); i++ ) { ArrayGetArray( g_aGangs, i, aData ); formatex( szBuffer, charsmax( szBuffer ), "[%s]^n", aData[ GangName ] ); fputs( iFile, szBuffer ); formatex( szBuffer, charsmax( szBuffer ), "HP=%i^n", aData[ GangHP ] ); fputs( iFile, szBuffer ); formatex( szBuffer, charsmax( szBuffer ), "Hirsizlik=%i^n", aData[ GangStealing ] ); fputs( iFile, szBuffer ); formatex( szBuffer, charsmax( szBuffer ), "Yer Cekimi=%i^n", aData[ GangGravity ] ); fputs( iFile, szBuffer ); formatex( szBuffer, charsmax( szBuffer ), "Dayaniklilik=%i^n", aData[ GangStamina ] ); fputs( iFile, szBuffer ); formatex( szBuffer, charsmax( szBuffer ), "Silah Dusurme=%i^n", aData[ GangWeaponDrop ] ); fputs( iFile, szBuffer ); formatex( szBuffer, charsmax( szBuffer ), "Hasar=%i^n", aData[ GangDamage ] ); fputs( iFile, szBuffer ); formatex( szBuffer, charsmax( szBuffer ), "Oldurmeler=%i^n^n", aData[ GangKills ] ); fputs( iFile, szBuffer ); } fclose( iFile ); } set_user_gang( id, iGang, iStatus=STATUS_MEMBER ) { new szAuthID[ 35 ]; get_user_authid( id, szAuthID, charsmax( szAuthID ) ); new aData[ GangInfo ]; if( g_iGang[ id ] > -1 ) { ArrayGetArray( g_aGangs, g_iGang[ id ], aData ); TrieDeleteKey( aData[ GangMembers ], szAuthID ); aData[ NumMembers ]--; ArraySetArray( g_aGangs, g_iGang[ id ], aData ); sqlv_remove_ex( g_hVault, szAuthID, aData[ GangName ] ); } if( iGang > -1 ) { ArrayGetArray( g_aGangs, iGang, aData ); TrieSetCell( aData[ GangMembers ], szAuthID, iStatus ); aData[ NumMembers ]++; ArraySetArray( g_aGangs, iGang, aData ); sqlv_set_num_ex( g_hVault, szAuthID, aData[ GangName ], iStatus ); } g_iGang[ id ] = iGang; return 1; } get_user_gang( id ) { new szAuthID[ 35 ]; get_user_authid( id, szAuthID, charsmax( szAuthID ) ); new aData[ GangInfo ]; for( new i = 0; i < ArraySize( g_aGangs ); i++ ) { ArrayGetArray( g_aGangs, i, aData ); if( TrieKeyExists( aData[ GangMembers ], szAuthID ) ) return i; } return -1; } getStatus( id, iGang ) { if( !is_user_connected( id ) || iGang == -1 ) return STATUS_NONE; new aData[ GangInfo ]; ArrayGetArray( g_aGangs, iGang, aData ); new szAuthID[ 35 ]; get_user_authid( id, szAuthID, charsmax( szAuthID ) ); new iStatus; TrieGetCell( aData[ GangMembers ], szAuthID, iStatus ); return iStatus; } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1055\\ f0\\ fs16 \n\\ par } */![]()
| Link: | |
| Linklerini gizle |