Scripting help for english speaking users. While not very active, you still have a chance to get help here.
Правила форума
We cannot maintain english version version of our forum rules, but shortly (it's simple) - Don't be a dick. If you really want to know our rules you should check appropriate thread.
VenomIvanof » 07 июн 2016, 14:10
i want to add here admin prefix with white chat
/// Prefix + Flag ///
Administrator flag immunity
Server Admin flag ADMIN_KICK
V.I.P User flag "o"
SMS Admin flag "q"
Donator flag "t"
- Код: Выделить всё
new Level[33], eXP[33]
new KillXp, HsXp, HeXpnew gVault
new const szPrefix[] = "[^4Maina City^3] -"
new g_msgHudSync
new bool:is_user_ignored[ 33 ]
new const Levels[MaxLevels] =
{
10, 50, 100, 200, 300, 600, 900, 1000, 1500, /
2500, 3000, 5000 }
new const Prefix[MaxLevels +1][] =
{
"Maina User", "Beginner", "Medium", "Pro", "Killer", "Assassin", "Soultaker", "Silet Killer", "Godlike", "Freak", "Undisputed", "Unstoppable", "Maina Pro User" }
new healthperlevel,
armorperlevel,
speedperlevel,
damageperlevel,
gravityperlvl
new g_iMaxPlayers
enum _:ADMIN_DATAS
{
m_szName[32],
m_iFlag
}
public plugin_init()
{
register_plugin("Level Mod", "0.0.9", "Freestyle")
register_message(get_user_msgid("SayText"),"Message_SayText"); RegisterHam ( Ham_Spawn, "player", "Ham_CheckOthers_Bonus", 1);
RegisterHam ( Ham_TakeDamage, "player", "Ham_CheckDamage_Bonus", .Post = false );
RegisterHam ( Ham_Item_PreFrame, "player", "Ham_CheckSpeed_Bonus", 1);
g_iMaxPlayers = get_maxplayers( );
register_cvar( "AdminChatColors_On", "0" ); register_cvar( "XP_Reward_MSG", "0" ); register_clcmd ( "say /xp", "ShowPlayerXP")
register_clcmd ( "say_team /xp", "ShowPlayerXP")
register_clcmd ( "say /level", "ShowPlayerLevel")
register_clcmd ( "say_team /level", "ShowPlayerLevel")
KillXp = register_cvar("drxp_per_kill", "1")
HsXp = register_cvar("drxp_per_hs", "2")
HeXp = register_cvar("drxp_per_nade_kill", "5")
register_concmd ( "give_xp", "CmdAddXP", ADMIN_RCON, "<nick, #userid, authid | @all> <xp>" )
register_concmd ( "remove_xp", "CmdRemoveXP", ADMIN_RCON, "<nick, #userid, authid | @all> <xp>" )
healthperlevel = register_cvar("health_per_lvl", "1")
armorperlevel = register_cvar("armor_per_lvl", "1")
speedperlevel = register_cvar("speed_per_lvl", "0")
gravityperlvl = register_cvar("gravity_per_lvl", "0") damageperlevel = register_cvar("damage_per_lvl", "1")
g_msgHudSync = CreateHudSyncObj()
}
public plugin_cfg( )
{
gVault = nvault_open( "DEATHRUN_XP" )
if ( gVault == INVALID_HANDLE )
set_fail_state( "Error opening nVault" );
}
public ShowPlayerXP(id)
{
ColorChat(id, GREY, "%s You have ^4%i^3 XP and your Level are ^4%s^3!", szPrefix, eXP[id], Prefix[Level[id]])
}
public ShowPlayerLevel(id)
{
new name[32]
get_user_name(id, name, sizeof(name) -1)
ColorChat(id, GREY, "%s You are Level ^4%s^3 with ^4%i^3 XP!", szPrefix, Prefix[Level[id]], eXP[id])
}
public Ham_CheckDamage_Bonus( pevVictim, pevInflictor, pevAttacker, Float:flDamage, iDmgBits )
{
if( !( 1 <= pevAttacker <= g_iMaxPlayers) )
{
return HAM_HANDLED;
}
if( !is_user_alive( pevAttacker ) )
{
return HAM_HANDLED;
}
SetHamParamFloat( 4 , flDamage + ( get_pcvar_num( damageperlevel ) * Level[ pevAttacker ] ) )
return HAM_IGNORED;
}
public Ham_CheckSpeed_Bonus( id )
{
if( !is_user_alive( id ) )
{
return HAM_IGNORED;
}
set_user_maxspeed( id, 250.0 + ( get_pcvar_num(speedperlevel) * Level[ id ] ) );
return HAM_IGNORED;
}
public Ham_CheckOthers_Bonus(id)
{
if( !is_user_alive( id ) )
return HAM_IGNORED;
new HPCheck = ( get_user_health(id) + get_pcvar_num(healthperlevel) * Level[ id ] );
set_user_health( id, HPCheck );
new APCheck = ( get_user_armor(id) + get_pcvar_num(armorperlevel) * Level[ id ] );
set_user_armor( id, APCheck );
new GRAVITYCheck = 800 - ( get_pcvar_num( gravityperlvl ) * Level[ id ] );
if(get_pcvar_num(gravityperlvl) > 66)
{
set_user_gravity( id, float( 8 ) / 800.0 );
}
else
{
set_user_gravity( id, float( GRAVITYCheck ) / 800.0 );
}
remove_task( TASK_SHOW_HUD + id );
set_task(0.1, "ShowHud", TASK_SHOW_HUD + id)
return HAM_IGNORED;
}
public client_death( iKiller, iVictim, wpnindex, hitplace )
{
new vname[32]
new kname[32]
get_user_name( iKiller, kname, charsmax( kname ) )
get_user_name( iVictim, vname, charsmax( vname ) )
if( is_user_ignored[ iKiller ] )
return PLUGIN_HANDLED_MAIN
get_user_name( iKiller, kname, charsmax( kname ) )
get_user_name( iVictim, vname, charsmax( vname ) )
if( iKiller != iVictim && ( 1 <= iKiller <= g_iMaxPlayers ) && ( 1 <= iVictim <= g_iMaxPlayers ) && !( hitplace == HIT_HEAD ) && !( wpnindex == CSW_HEGRENADE ) )
{
eXP[iKiller] += get_pcvar_num(KillXp)
if( get_cvar_num("XP_Reward_MSG") == 1 )
{
ColorChat ( iKiller, GREY, "%s You got^4 %i^3 XP for killing^4 %s^3", szPrefix, get_pcvar_num(KillXp), vname )
}
}
if( hitplace == HIT_HEAD )
{
eXP[iKiller] += get_pcvar_num(HsXp)
if( get_cvar_num("XP_Reward_MSG") == 1 )
{
ColorChat ( iKiller, GREY, "%s You got ^4%i^3 XP for killing ^4%s^3 with a ^4HeadShot", szPrefix, get_pcvar_num (HsXp), vname )
}
}
if( wpnindex == CSW_HEGRENADE && iKiller != iVictim )
{
eXP[iKiller] += get_pcvar_num(HeXp)
if( get_cvar_num("XP_Reward_MSG") == 1 )
{
ColorChat( iKiller, GREEN, "%s^1 You got^4 %i^3 XP for killing^4 %s^3 with a ^4Grenade", szPrefix, get_pcvar_num (HeXp), vname )
}
}
CheckLevel(iKiller)
SaveData(iKiller)
return PLUGIN_CONTINUE
}
public CheckLevel(id)
{
if(Level[id] < MaxLevels-1)
{
while(eXP[id] >= Levels[Level[id]])
{
Level[id] += 1
ColorChat(id, GREY, "%s Congratulations, you've leveled up! You are now level : ^4%i^3", szPrefix, Level[id])
}
}
}
public ShowHud(task)
{
new id = task - TASK_SHOW_HUD
if(!is_user_alive(id))
return;
set_hudmessage(255, 0, 0, 0.70, 0.94, 0, 6.0, 1.0, 0.0, 0.0, -1)
ShowSyncHudMsg(id, g_msgHudSync,"••• Your Rank: %s ••• Exp: %i •••", Prefix[Level[id]], eXP[id])
set_task(0.1, "ShowHud", TASK_SHOW_HUD + id)
}
public SaveData(id)
{
new AuthID[35]
get_user_authid(id,AuthID,34)
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s-Mod",AuthID)
format(vaultdata,255,"%i#%i#",eXP[id],Level[id])
nvault_set(gVault,vaultkey,vaultdata)
return PLUGIN_CONTINUE
}
public LoadData(id)
{
new AuthID[35]
get_user_authid(id,AuthID,34)
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s-Mod",AuthID)
format(vaultdata,255,"%i#%i#",eXP[id],Level[id])
nvault_get(gVault,vaultkey,vaultdata,255)
replace_all(vaultdata, 255, "#", " ")
new playerxp[32], playerlevel[32]
parse(vaultdata, playerxp, 31, playerlevel, 31)
eXP[id] = str_to_num(playerxp)
Level[id] = str_to_num(playerlevel)
return PLUGIN_CONTINUE
}
public CmdAddXP ( iPlayer, level, cid )
{
if( !cmd_access( iPlayer, level, cid, 3 ) ) return PLUGIN_HANDLED;
new arg [ 32 ]
read_argv ( 1, arg, 31 )
new AddXP [ 32 ]
read_argv ( 2, AddXP, charsmax ( AddXP ) )
new XPtoGive = str_to_num ( AddXP )
new AdminName [ 32 ]
new TargetName [ 32 ]
get_user_name ( iPlayer, AdminName, charsmax ( AdminName ) )
if( arg[0]=='@' )
{
if( equali(arg[1],"All") || equali(arg[1],"ALL") )
{
new players[32], totalplayers, All
get_players( players, totalplayers )
for ( new i = 0; i < totalplayers; i++ )
{
All = players[ i ]
eXP[ All ] += XPtoGive
}
CheckLevel( All )
ColorChat ( 0, GREY, "%s ^1%s^3 give^1 %i^3 XP to all ^1 players^3!", szPrefix, AdminName, XPtoGive )
}
else if( equali(arg[1],"T") || equali(arg[1],"t") )
{
new players[32], totalplayers, T
get_players( players, totalplayers )
for ( new i = 0; i < totalplayers; i++ )
{
if ( get_user_team(players[ i ]) == 1 )
{
T = players[ i ]
eXP[ T ] += XPtoGive
}
}
CheckLevel( T )
ColorChat ( 0, GREY, "%s ^1%s^3 give^1 %i^3 XP to all ^1 Terrorists^3!", szPrefix, AdminName, XPtoGive )
}
else if( equali(arg[1],"CT") || equali(arg[1],"ct") )
{
new players[32], totalplayers, CT
get_players( players, totalplayers )
for( new i = 0; i < totalplayers; i++ )
{
if( get_user_team(players[ i ] ) == 2 )
{
CT = players[ i ]
eXP[ CT ] += XPtoGive
}
}
CheckLevel( CT )
ColorChat ( 0, GREY, "%s ^1%s^3 give^1 %i^3 XP to all ^1 Counter-Terrorists^3!", szPrefix, AdminName, XPtoGive )
}
}
else
{
new iTarget = cmd_target( iPlayer, arg, 3 )
get_user_name ( iTarget, TargetName, charsmax ( TargetName ) )
if( iTarget )
{
eXP[ iTarget ] += XPtoGive
CheckLevel( iTarget )
ColorChat ( 0, GREY, "%s ^1%s^3 give^1 %i^3 XP to^1 %s^3", szPrefix, AdminName, XPtoGive, TargetName )
}
}
return PLUGIN_HANDLED
}
public CmdRemoveXP ( iPlayer, level, cid )
{
if( !cmd_access(iPlayer, level, cid, 3) ) return PLUGIN_HANDLED;
new arg [ 32 ]
read_argv ( 1, arg, 31 )
new RemoveXP [ 32 ]
read_argv ( 2, RemoveXP, charsmax ( RemoveXP ) )
new XPtoRemove = str_to_num ( RemoveXP )
new AdminName [ 32 ]
new TargetName [ 32 ]
get_user_name ( iPlayer, AdminName, charsmax ( AdminName ) )
if( arg[0]=='@' )
{
if( equali(arg[1],"All") || equali(arg[1],"ALL") )
{
new players[32], totalplayers, All
get_players( players, totalplayers )
for ( new i = 0; i < totalplayers; i++ )
{
All = players[ i ]
eXP[ All ] -= XPtoRemove
}
CheckLevel( All )
ColorChat ( 0, GREY, "%s ^1%s^3 toke^1 %i^3 XP of all ^1 players^3!", szPrefix, AdminName, XPtoRemove )
}
else if( equali(arg[1],"T") || equali(arg[1],"t") )
{
new players[32], totalplayers, T
get_players( players, totalplayers )
for ( new i = 0; i < totalplayers; i++ )
{
if ( get_user_team(players[ i ]) == 1 )
{
T = players[ i ]
eXP[ T ] -= XPtoRemove
}
}
CheckLevel( T )
ColorChat ( 0, GREY, "%s ^1%s^3 toke^1 %i^3 XP of all ^1 Terrorists^3!", szPrefix, AdminName, XPtoRemove )
}
else if( equali(arg[1],"CT") || equali(arg[1],"ct") )
{
new players[32], totalplayers, CT
get_players( players, totalplayers )
for( new i = 0; i < totalplayers; i++ )
{
if( get_user_team(players[ i ] ) == 2 )
{
CT = players[ i ]
eXP[ CT ] -= XPtoRemove
}
}
CheckLevel( CT )
ColorChat ( 0, GREY, "%s ^1%s^3 toke^1 %i^3 XP of all ^1 Counter-Terrorists^3!", szPrefix, AdminName, XPtoRemove )
}
}
else
{
new iTarget = cmd_target( iPlayer, arg, 3 )
get_user_name ( iTarget, TargetName, charsmax ( TargetName ) )
if( !iTarget )
return PLUGIN_HANDLED
eXP[ iTarget ] -= XPtoRemove
CheckLevel( iTarget )
ColorChat ( 0, GREY, "%s ^1%s^3 tokee^1 %i^3 XP to^1 %s^3", szPrefix, AdminName, XPtoRemove, TargetName )
}
return PLUGIN_HANDLED
}
public Message_SayText(msgId,msgDest,msgEnt)
{
new id = get_msg_arg_int(1);
if( is_user_connected(id) )
{
if( get_cvar_num("AdminChatColors_On") == 1 )
{
new szChannel[64]
get_msg_arg_string(2, szChannel, charsmax(szChannel))
if( equal(szChannel, "#Cstrike_Chat_All") )
{
formatex(szChannel, charsmax(szChannel), "^4[^3%s^4] ^3%%s1 ^1: %%s2", Prefix[Level[id]])
set_msg_arg_string(2, szChannel)
}
else if( !equal(szChannel, "#Cstrike_Name_Change") )
{
format(szChannel, charsmax(szChannel), "^4[^3%s^4] %s", Prefix[Level[id]], szChannel)
set_msg_arg_string(2, szChannel)
}
return
}
else
{
new szChannel[64]
get_msg_arg_string(2, szChannel, charsmax(szChannel));
if( equal(szChannel, "#Cstrike_Chat_All") )
{
formatex(szChannel, charsmax(szChannel), "^4[^3%s^4] ^3%%s1 ^1: %%s2", Prefix[Level[id]])
set_msg_arg_string(2, szChannel)
}
else if( !equal(szChannel, "#Cstrike_Name_Change") )
{
format(szChannel, charsmax(szChannel), "^4[^3%s^4] %s", Prefix[Level[id]], szChannel)
set_msg_arg_string(2, szChannel)
}
return
}
}
}
-
VenomIvanof
-
- Сообщения: 66
- Зарегистрирован: 02 апр 2016, 13:26
- Благодарил (а): 17 раз.
- Поблагодарили: 1 раз.
- Языки программирования: Counter-Strike 1.6
VenomIvanof » 07 июн 2016, 23:41
I added the prefix to admins but i have problem with the chat .. i dont get the normal rank prefix .. only the admins .. plz any help?
- Код: Выделить всё
new message[192]
new sayText
new teamInfo
new maxPlayers
new g_MessageColor
new g_NameColor
new g_AdminListen
new strName[191]
new strText[191]
new alive[11]
new Level[33], eXP[33]
new KillXp, HsXp, HeXpnew gVault
new const szPrefix[] = "[^4Maina City^3] -"
new g_msgHudSync
new bool:is_user_ignored[ 33 ]
new const g_szTag[][] = {
"",
"TEST",
"TET",
"TETETE",
"TETEE",
"tetete"
}
new const Levels[MaxLevels] =
{
10, 50, 100, 200, 300, 500, 700, 900, 1000, 1100, 1500, 1600, 1700, 1800, 1900, 2000, 2100, 2200, 2300, 2400, 2500, 2600, 2700, 2800, 3000, 4000, 5000, 3000, 10000, 15000, 600000, 700000, 9999999 }
new const Prefix[MaxLevels +1][] =
{
"Maina User", "Noob", "Bot", "Beginner", "Learning", "Medium", "Pro", "Ultra Killer", "Mega Killer", "Super Killer", "Unique Killer", "Ultimate Killer", "Silver Player", "Bronze Player", "Gold Player", "Terminator", "Unstoppable", "Night Killer", "Assassin", "Ninja", "Black Ninja", "White Nninja", "Sensei", "Freak", "Demonic", "Speeder", "Knifer", "One and Only", "Fantastic", "GOD", "Donator", "V.I.P", "Server Admin", "MC-Owner" }
new healthperlevel,
armorperlevel,
speedperlevel,
damageperlevel,
gravityperlvl
new g_iMaxPlayers
enum _:ADMIN_DATAS
{
m_szName[32],
m_iFlag
}
public plugin_init()
{
register_plugin("Deathrun XP & Level Mod", "0.0.9", "Freestyle")
register_message(get_user_msgid("SayText"),"Message_SayText"); g_MessageColor = register_cvar("amx_color", "3") g_NameColor = register_cvar("amx_namecolor", "2") g_AdminListen = register_cvar("amx_listen", "0") sayText = get_user_msgid("SayText")
teamInfo = get_user_msgid("TeamInfo")
maxPlayers = get_maxplayers()
register_message(sayText, "avoid_duplicated")
register_concmd("amx_color", "set_color", ACCESS_LEVEL, "<color>")
register_concmd("amx_namecolor", "set_name_color", ACCESS_LEVEL, "<color>")
register_concmd("amx_listen", "set_listen", ACCESS_LEVEL, "<1 | 0>")
register_clcmd("say", "hook_say")
register_clcmd("say_team", "hook_teamsay")
RegisterHam ( Ham_Spawn, "player", "Ham_CheckOthers_Bonus", 1);
RegisterHam ( Ham_TakeDamage, "player", "Ham_CheckDamage_Bonus", .Post = false );
RegisterHam ( Ham_Item_PreFrame, "player", "Ham_CheckSpeed_Bonus", 1);
g_iMaxPlayers = get_maxplayers( );
register_cvar( "AdminChatColors_On", "0" ); register_cvar( "XP_Reward_MSG", "0" ); register_clcmd ( "say /xp", "ShowPlayerXP")
register_clcmd ( "say_team /xp", "ShowPlayerXP")
register_clcmd ( "say /level", "ShowPlayerLevel")
register_clcmd ( "say_team /level", "ShowPlayerLevel")
KillXp = register_cvar("drxp_per_kill", "1")
HsXp = register_cvar("drxp_per_hs", "2")
HeXp = register_cvar("drxp_per_nade_kill", "5")
register_concmd ( "give_xp", "CmdAddXP", ADMIN_RCON, "<nick, #userid, authid | @all> <xp>" )
register_concmd ( "remove_xp", "CmdRemoveXP", ADMIN_RCON, "<nick, #userid, authid | @all> <xp>" )
healthperlevel = register_cvar("health_per_lvl", "2")
armorperlevel = register_cvar("armor_per_lvl", "0")
speedperlevel = register_cvar("speed_per_lvl", "0")
gravityperlvl = register_cvar("gravity_per_lvl", "0") damageperlevel = register_cvar("damage_per_lvl", "1")
g_msgHudSync = CreateHudSyncObj()
}
public avoid_duplicated(msgId, msgDest, receiver)
{
return PLUGIN_HANDLED
}
public hook_say(id)
{
read_args(message, 191)
remove_quotes(message)
if(message[0] == '@' || message[0] == '/' || message[0] == '!' || message[0] == '#' || message[0] == '$' || equal(message, "")) return PLUGIN_CONTINUE
new name[32]
get_user_name(id, name, 31)
new admin = 0, iFlags = get_user_flags(id)
if(iFlags & HEADADMIN_CHAT_FLAG)
admin = 1
else if(iFlags & ADMIN_CHAT_FLAG)
admin = 2
else if(iFlags & VIP_CHAT_FLAG)
admin = 3
else if(iFlags & SMS_CHAT_FLAG)
admin = 4
else if(iFlags & HELP_CHAT_FLAG)
admin = 5
new isAlive
if(is_user_alive(id))
{
isAlive = 1
alive = "^x01"
}
else
{
isAlive = 0
alive = "^x01*DEAD* "
}
static color[10]
if(admin)
{
switch(get_pcvar_num(g_NameColor))
{
case 1:
format(strName, 191, "^x03%s %s%s", g_szTag[admin], alive, name)
case 2:
format(strName, 191, "^x03%s %s^x04%s ", g_szTag[admin], alive, name)
case 3:
{
color = "SPECTATOR"
format(strName, 191, "^x03%s %s^x03%s ", g_szTag[admin], alive, name)
}
case 4:
{
color = "CT"
format(strName, 191, "^x03%s %s^x03%s", g_szTag[admin], alive, name)
}
case 5:
{
color = "TERRORIST"
format(strName, 191, "^x03%s %s^x03%s", g_szTag[admin], alive, name)
}
case 6:
{
get_user_team(id, color, 9)
format(strName, 191, "^x03%s %s^x03%s", g_szTag[admin], alive, name)
}
}
switch(get_pcvar_num(g_MessageColor))
{
case 1: format(strText, 191, "^x03%s", message)
case 2: format(strText, 191, "^x03%s", message)
case 3: {
copy(color, 9, "SPECTATOR")
format(strText, 191, "^x03%s", message)
}
case 4: {
copy(color, 9, "CT")
format(strText, 191, "^x03%s", message)
}
case 5: {
copy(color, 9, "TERRORIST")
format(strText, 191, "^x03%s", message)
}
}
}
else {
get_user_team(id, color, 9)
format(strName, 191, "%s^x03%s", alive, name)
format(strText, 191, "%s", message)
}
format(message, 191, "%s^x01 : %s", strName, strText)
sendMessage(color, isAlive) return PLUGIN_CONTINUE
}
public hook_teamsay(id)
{
new playerTeam = get_user_team(id)
new playerTeamName[19]
switch(playerTeam) {
case 1:
copy(playerTeamName, 11, "Terrorists")
case 2:
copy(playerTeamName, 18, "Counter-Terrorists")
default:
copy(playerTeamName, 9, "Spectator")
}
read_args(message, 191)
remove_quotes(message)
if(message[0] == '@' || message[0] == '/' || message[0] == '!' || message[0] == '#' || message[0] == '$' || equal(message, "")) return PLUGIN_CONTINUE
new name[32]
get_user_name(id, name, 31)
new admin = 0, iFlags = get_user_flags(id)
if(iFlags & HEADADMIN_CHAT_FLAG)
admin = 1
else if(iFlags & ADMIN_CHAT_FLAG)
admin = 2
else if(iFlags & VIP_CHAT_FLAG)
admin = 3
else if(iFlags & SMS_CHAT_FLAG)
admin = 4
else if(iFlags & HELP_CHAT_FLAG)
admin = 5
new isAlive
if(is_user_alive(id))
{
isAlive = 1
alive = "^x01"
}
else
{
isAlive = 0
alive = "^x01*DEAD* "
}
static color[10]
if(admin)
{
switch(get_pcvar_num(g_NameColor))
{
case 1:
format(strName, 191, "%s(%s) ^x03%s %s", alive, playerTeamName, g_szTag[admin], name)
case 2:
format(strName, 191, "%s(%s) ^x03%s ^x04%s", alive, playerTeamName, g_szTag[admin], name)
case 3:
{
color = "SPECTATOR"
format(strName, 191, "%s(%s) ^x03%s ^x03%s", alive, playerTeamName, g_szTag[admin], name)
}
case 4:
{
color = "CT"
format(strName, 191, "%s(%s) ^x03%s ^x03%s", alive, playerTeamName, g_szTag[admin], name)
}
case 5:
{
color = "TERRORIST"
format(strName, 191, "%s(%s) ^x03%s ^x03%s", alive, playerTeamName, g_szTag[admin], name)
}
case 6:
{
get_user_team(id, color, 9)
format(strName, 191, "%s(%s) ^x03%s ^x03%s", alive, playerTeamName, g_szTag[admin], name)
}
}
switch(get_pcvar_num(g_MessageColor))
{
case 1: format(strText, 191, "^x03%s", message)
case 2: format(strText, 191, "^x03%s", message)
case 3: {
copy(color, 9, "SPECTATOR")
format(strText, 191, "^x03%s", message)
}
case 4: {
copy(color, 9, "CT")
format(strText, 191, "^x03%s", message)
}
case 5: {
copy(color, 9, "TERRORIST")
format(strText, 191, "^x03%s", message)
}
}
}
else {
get_user_team(id, color, 9)
format(strName, 191, "%s(%s) ^x03%s", alive, playerTeamName, name)
format(strText, 191, "%s", message)
}
format(message, 191, "%s ^x01: %s", strName, strText)
sendTeamMessage(color, isAlive, playerTeam) return PLUGIN_CONTINUE
}
public set_color(id, level, cid)
{
if(!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED
new arg[1], newColor
read_argv(1, arg, 1)
newColor = str_to_num(arg)
if(newColor >= 1 && newColor <= 5)
{
set_pcvar_num(g_MessageColor, newColor)
if(get_pcvar_num(g_NameColor) != 1 &&
((newColor == 3 && get_pcvar_num(g_NameColor) != 3)
||(newColor == 4 && get_pcvar_num(g_NameColor) != 4)
||(newColor == 5 && get_pcvar_num(g_NameColor) != 5)))
{
set_pcvar_num(g_NameColor, 2)
}
}
return PLUGIN_HANDLED
}
public set_name_color(id, level, cid)
{
if(!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED
new arg[1], newColor
read_argv(1, arg, 1)
newColor = str_to_num(arg)
if(newColor >= 1 && newColor <= 6)
{
set_pcvar_num(g_NameColor, newColor)
if((get_pcvar_num(g_MessageColor) != 1
&&((newColor == 3 && get_pcvar_num(g_MessageColor) != 3)
||(newColor == 4 && get_pcvar_num(g_MessageColor) != 4)
||(newColor == 5 && get_pcvar_num(g_MessageColor) != 5)))
|| get_pcvar_num(g_NameColor) == 6)
{
set_pcvar_num(g_MessageColor, 2)
}
}
return PLUGIN_HANDLED
}
public set_listen(id, level, cid)
{
if(!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED
new arg[1], newListen
read_argv(1, arg, 1)
newListen = str_to_num(arg)
set_pcvar_num(g_AdminListen, newListen)
return PLUGIN_HANDLED
}
public sendMessage(color[], alive)
{
new teamName[10]
for(new player = 1; player < maxPlayers; player++)
{
if(!is_user_connected(player))
continue
if(alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_pcvar_num(g_AdminListen) && get_user_flags(player) & ADMIN_LISTEN)
{
get_user_team(player, teamName, 9) changeTeamInfo(player, color) writeMessage(player, message) changeTeamInfo(player, teamName) }
}
}
public sendTeamMessage(color[], alive, playerTeam)
{
new teamName[10]
for(new player = 1; player < maxPlayers; player++)
{
if(!is_user_connected(player))
continue
if(get_user_team(player) == playerTeam || get_pcvar_num(g_AdminListen) && get_user_flags(player) & ADMIN_LISTEN)
{
if(alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_pcvar_num(g_AdminListen) && get_user_flags(player) & ADMIN_LISTEN)
{
get_user_team(player, teamName, 9) changeTeamInfo(player, color) writeMessage(player, message) changeTeamInfo(player, teamName) }
}
}
}
public changeTeamInfo(player, team[])
{
message_begin(MSG_ONE, teamInfo, _, player) write_byte(player) write_string(team) message_end() }
public writeMessage(player, message[])
{
message_begin(MSG_ONE, sayText, {0, 0, 0}, player) write_byte(player) write_string(message) message_end() }
public plugin_cfg( )
{
gVault = nvault_open( "DEATHRUN_XP" )
if ( gVault == INVALID_HANDLE )
set_fail_state( "Error opening nVault" );
}
public ShowPlayerXP(id)
{
ColorChat(id, GREY, "%s You have ^4%i^3 XP and your Level are ^4%s^3!", szPrefix, eXP[id], Prefix[Level[id]])
}
public ShowPlayerLevel(id)
{
new name[32]
get_user_name(id, name, sizeof(name) -1)
ColorChat(id, GREY, "%s You are Level ^4%s^3 with ^4%i^3 XP!", szPrefix, Prefix[Level[id]], eXP[id])
}
public Ham_CheckDamage_Bonus( pevVictim, pevInflictor, pevAttacker, Float:flDamage, iDmgBits )
{
if( !( 1 <= pevAttacker <= g_iMaxPlayers) )
{
return HAM_HANDLED;
}
if( !is_user_alive( pevAttacker ) )
{
return HAM_HANDLED;
}
SetHamParamFloat( 4 , flDamage + ( get_pcvar_num( damageperlevel ) * Level[ pevAttacker ] ) )
return HAM_IGNORED;
}
public Ham_CheckSpeed_Bonus( id )
{
if( !is_user_alive( id ) )
{
return HAM_IGNORED;
}
set_user_maxspeed( id, 250.0 + ( get_pcvar_num(speedperlevel) * Level[ id ] ) );
return HAM_IGNORED;
}
public Ham_CheckOthers_Bonus(id)
{
if( !is_user_alive( id ) )
return HAM_IGNORED;
new HPCheck = ( get_user_health(id) + get_pcvar_num(healthperlevel) * Level[ id ] );
set_user_health( id, HPCheck );
new APCheck = ( get_user_armor(id) + get_pcvar_num(armorperlevel) * Level[ id ] );
set_user_armor( id, APCheck );
new GRAVITYCheck = 800 - ( get_pcvar_num( gravityperlvl ) * Level[ id ] );
if(get_pcvar_num(gravityperlvl) > 66)
{
set_user_gravity( id, float( 8 ) / 800.0 );
}
else
{
set_user_gravity( id, float( GRAVITYCheck ) / 800.0 );
}
remove_task( TASK_SHOW_HUD + id );
set_task(0.1, "ShowHud", TASK_SHOW_HUD + id)
return HAM_IGNORED;
}
public client_death( iKiller, iVictim, wpnindex, hitplace )
{
new vname[32]
new kname[32]
get_user_name( iKiller, kname, charsmax( kname ) )
get_user_name( iVictim, vname, charsmax( vname ) )
if( is_user_ignored[ iKiller ] )
return PLUGIN_HANDLED_MAIN
get_user_name( iKiller, kname, charsmax( kname ) )
get_user_name( iVictim, vname, charsmax( vname ) )
if( iKiller != iVictim && ( 1 <= iKiller <= g_iMaxPlayers ) && ( 1 <= iVictim <= g_iMaxPlayers ) && !( hitplace == HIT_HEAD ) && !( wpnindex == CSW_HEGRENADE ) )
{
eXP[iKiller] += get_pcvar_num(KillXp)
if( get_cvar_num("XP_Reward_MSG") == 1 )
{
ColorChat ( iKiller, GREY, "%s You got^4 %i^3 XP for killing^4 %s^3", szPrefix, get_pcvar_num(KillXp), vname )
}
}
if( hitplace == HIT_HEAD )
{
eXP[iKiller] += get_pcvar_num(HsXp)
if( get_cvar_num("XP_Reward_MSG") == 1 )
{
ColorChat ( iKiller, GREY, "%s You got ^4%i^3 XP for killing ^4%s^3 with a ^4HeadShot", szPrefix, get_pcvar_num (HsXp), vname )
}
}
if( wpnindex == CSW_HEGRENADE && iKiller != iVictim )
{
eXP[iKiller] += get_pcvar_num(HeXp)
if( get_cvar_num("XP_Reward_MSG") == 1 )
{
ColorChat( iKiller, GREEN, "%s^1 You got^4 %i^3 XP for killing^4 %s^3 with a ^4Grenade", szPrefix, get_pcvar_num (HeXp), vname )
}
}
CheckLevel(iKiller)
SaveData(iKiller)
return PLUGIN_CONTINUE
}
public CheckLevel(id)
{
if(Level[id] < MaxLevels-1)
{
while(eXP[id] >= Levels[Level[id]])
{
Level[id] += 1
ColorChat(id, GREY, "%s Congratulations, you've leveled up! You are now level : ^4%i^3", szPrefix, Level[id])
}
}
}
public ShowHud(task)
{
new id = task - TASK_SHOW_HUD
if(!is_user_alive(id))
return;
set_hudmessage(30, 144, 255, 0.67, 0.94, 0, 6.0, 1.0, 0.0, 0.0, -1)
ShowSyncHudMsg(id, g_msgHudSync,"•• Rank: %s •• Exp: %i •• Level: %i ••", Prefix[Level[id]], eXP[id], Level[id])
set_task(0.1, "ShowHud", TASK_SHOW_HUD + id)
}
public SaveData(id)
{
new AuthID[35]
get_user_authid(id,AuthID,34)
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s-Mod",AuthID)
format(vaultdata,255,"%i#%i#",eXP[id],Level[id])
nvault_set(gVault,vaultkey,vaultdata)
return PLUGIN_CONTINUE
}
public LoadData(id)
{
new AuthID[35]
get_user_authid(id,AuthID,34)
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s-Mod",AuthID)
format(vaultdata,255,"%i#%i#",eXP[id],Level[id])
nvault_get(gVault,vaultkey,vaultdata,255)
replace_all(vaultdata, 255, "#", " ")
new playerxp[32], playerlevel[32]
parse(vaultdata, playerxp, 31, playerlevel, 31)
eXP[id] = str_to_num(playerxp)
Level[id] = str_to_num(playerlevel)
return PLUGIN_CONTINUE
}
public CmdAddXP ( iPlayer, level, cid )
{
if( !cmd_access( iPlayer, level, cid, 3 ) ) return PLUGIN_HANDLED;
new arg [ 32 ]
read_argv ( 1, arg, 31 )
new AddXP [ 32 ]
read_argv ( 2, AddXP, charsmax ( AddXP ) )
new XPtoGive = str_to_num ( AddXP )
new AdminName [ 32 ]
new TargetName [ 32 ]
get_user_name ( iPlayer, AdminName, charsmax ( AdminName ) )
if( arg[0]=='@' )
{
if( equali(arg[1],"All") || equali(arg[1],"ALL") )
{
new players[32], totalplayers, All
get_players( players, totalplayers )
for ( new i = 0; i < totalplayers; i++ )
{
All = players[ i ]
eXP[ All ] += XPtoGive
}
CheckLevel( All )
ColorChat ( 0, GREY, "%s ^1%s^3 give^1 %i^3 XP to all ^1 players^3!", szPrefix, AdminName, XPtoGive )
}
else if( equali(arg[1],"T") || equali(arg[1],"t") )
{
new players[32], totalplayers, T
get_players( players, totalplayers )
for ( new i = 0; i < totalplayers; i++ )
{
if ( get_user_team(players[ i ]) == 1 )
{
T = players[ i ]
eXP[ T ] += XPtoGive
}
}
CheckLevel( T )
ColorChat ( 0, GREY, "%s ^1%s^3 give^1 %i^3 XP to all ^1 Terrorists^3!", szPrefix, AdminName, XPtoGive )
}
else if( equali(arg[1],"CT") || equali(arg[1],"ct") )
{
new players[32], totalplayers, CT
get_players( players, totalplayers )
for( new i = 0; i < totalplayers; i++ )
{
if( get_user_team(players[ i ] ) == 2 )
{
CT = players[ i ]
eXP[ CT ] += XPtoGive
}
}
CheckLevel( CT )
ColorChat ( 0, GREY, "%s ^1%s^3 give^1 %i^3 XP to all ^1 Counter-Terrorists^3!", szPrefix, AdminName, XPtoGive )
}
}
else
{
new iTarget = cmd_target( iPlayer, arg, 3 )
get_user_name ( iTarget, TargetName, charsmax ( TargetName ) )
if( iTarget )
{
eXP[ iTarget ] += XPtoGive
CheckLevel( iTarget )
ColorChat ( 0, GREY, "%s ^1%s^3 give^1 %i^3 XP to^1 %s^3", szPrefix, AdminName, XPtoGive, TargetName )
}
}
return PLUGIN_HANDLED
}
public CmdRemoveXP ( iPlayer, level, cid )
{
if( !cmd_access(iPlayer, level, cid, 3) ) return PLUGIN_HANDLED;
new arg [ 32 ]
read_argv ( 1, arg, 31 )
new RemoveXP [ 32 ]
read_argv ( 2, RemoveXP, charsmax ( RemoveXP ) )
new XPtoRemove = str_to_num ( RemoveXP )
new AdminName [ 32 ]
new TargetName [ 32 ]
get_user_name ( iPlayer, AdminName, charsmax ( AdminName ) )
if( arg[0]=='@' )
{
if( equali(arg[1],"All") || equali(arg[1],"ALL") )
{
new players[32], totalplayers, All
get_players( players, totalplayers )
for ( new i = 0; i < totalplayers; i++ )
{
All = players[ i ]
eXP[ All ] -= XPtoRemove
}
CheckLevel( All )
ColorChat ( 0, GREY, "%s ^1%s^3 toke^1 %i^3 XP of all ^1 players^3!", szPrefix, AdminName, XPtoRemove )
}
else if( equali(arg[1],"T") || equali(arg[1],"t") )
{
new players[32], totalplayers, T
get_players( players, totalplayers )
for ( new i = 0; i < totalplayers; i++ )
{
if ( get_user_team(players[ i ]) == 1 )
{
T = players[ i ]
eXP[ T ] -= XPtoRemove
}
}
CheckLevel( T )
ColorChat ( 0, GREY, "%s ^1%s^3 toke^1 %i^3 XP of all ^1 Terrorists^3!", szPrefix, AdminName, XPtoRemove )
}
else if( equali(arg[1],"CT") || equali(arg[1],"ct") )
{
new players[32], totalplayers, CT
get_players( players, totalplayers )
for( new i = 0; i < totalplayers; i++ )
{
if( get_user_team(players[ i ] ) == 2 )
{
CT = players[ i ]
eXP[ CT ] -= XPtoRemove
}
}
CheckLevel( CT )
ColorChat ( 0, GREY, "%s ^1%s^3 toke^1 %i^3 XP of all ^1 Counter-Terrorists^3!", szPrefix, AdminName, XPtoRemove )
}
}
else
{
new iTarget = cmd_target( iPlayer, arg, 3 )
get_user_name ( iTarget, TargetName, charsmax ( TargetName ) )
if( !iTarget )
return PLUGIN_HANDLED
eXP[ iTarget ] -= XPtoRemove
CheckLevel( iTarget )
ColorChat ( 0, GREY, "%s ^1%s^3 tokee^1 %i^3 XP to^1 %s^3", szPrefix, AdminName, XPtoRemove, TargetName )
}
return PLUGIN_HANDLED
}
public Message_SayText(msgId,msgDest,msgEnt)
{
new id = get_msg_arg_int(1);
if( is_user_connected(id) )
{
if( get_cvar_num("AdminChatColors_On") == 1 )
{
new szChannel[64]
get_msg_arg_string(2, szChannel, charsmax(szChannel))
if( equal(szChannel, "#Cstrike_Chat_All") )
{
formatex(szChannel, charsmax(szChannel), "^4[^3%s^4] ^3%%s1 ^1: %%s2", Prefix[Level[id]])
set_msg_arg_string(2, szChannel)
}
else if( !equal(szChannel, "#Cstrike_Name_Change") )
{
format(szChannel, charsmax(szChannel), "^4[^3%s^4] %s", Prefix[Level[id]], szChannel)
set_msg_arg_string(2, szChannel)
}
return
}
else
{
new szChannel[64]
get_msg_arg_string(2, szChannel, charsmax(szChannel));
if( equal(szChannel, "#Cstrike_Chat_All") )
{
formatex(szChannel, charsmax(szChannel), "^4[^3%s^4] ^3%%s1 ^1: %%s2", Prefix[Level[id]])
set_msg_arg_string(2, szChannel)
}
else if( !equal(szChannel, "#Cstrike_Name_Change") )
{
format(szChannel, charsmax(szChannel), "^4[^3%s^4] %s", Prefix[Level[id]], szChannel)
set_msg_arg_string(2, szChannel)
}
return
}
}
}
-
VenomIvanof
-
- Сообщения: 66
- Зарегистрирован: 02 апр 2016, 13:26
- Благодарил (а): 17 раз.
- Поблагодарили: 1 раз.
- Языки программирования: Counter-Strike 1.6
VenomIvanof » 08 июн 2016, 20:14
i understand what is the point .. but this is little different admin chat + prefix it use only grey and green color
however i cant figure out how to edit the plugin to work right ... if you have free time try to fix it.
-
VenomIvanof
-
- Сообщения: 66
- Зарегистрирован: 02 апр 2016, 13:26
- Благодарил (а): 17 раз.
- Поблагодарили: 1 раз.
- Языки программирования: Counter-Strike 1.6
Вернуться в Scripting
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3