Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Debug helpRankSystem, Help


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
2 odpowiedzi w tym temacie

#1 StrikeTheBlood

    Nowy

  • Nowy

Reputacja: 0
Nowy

  • Postów:1
  • Imię:Mircea
  • Lokalizacja:Tokyo
Offline

Napisano 13.11.2017 11:01

L 11/13/2017 - 11:22:09: [AMXX] Run time error 4: index out of bounds 
L 11/13/2017 - 11:22:09: [AMXX] [0] ezlivels.sma::ShowHud (line 120)
L 11/13/2017 - 11:22:10: [AMXX] Displaying debug trace (plugin 

 

[spoiler]

#include <amxmodx> 
#include <amxmisc> 
#include <cstrike> 
#include <colorchat> 
#include <fvault> 

#define MaxLevels 30 
#define IsPlayer(%1) (1 <= %1 <=  g_iMaxPlayers) 

#define CHAT_ACCESS ADMIN_ALL 

new gMaxPlayers, gMsgSayText, syncObj, Level[33], eXP[33] 
new ranks_hud, knife_xp, he_xp, hs_xp, kill_xp, kill_msg 

new const g_vault_name[] = "livelssz"; 
//new const rprefix[]= "Ranks"; 
new iCvarPrefix; 

new const Levels[MaxLevels+1] = 

0, 
5, 
10, 
15, 
25, 
35, 
40, 
45, 
50, 
55, 
60, 
65, 
70, 
75, 
80, 
85, 
90, 
95, 
100, 
105, 
110, 
115, 
120, 
125, 
130, 
135, 
140, 
145, 
150 


new const Prefix[MaxLevels][] = 

"Amnesiac", 
"Medium", 
"Spy", 
"Transporter", 
"Escort", 
"Tracker", 
"Investigator", 
"Sheriff", 
"Vigilante", 
"Doctor", 
"Bodyguard", 
"Consort", 
"Framer", 
"Forger", 
"Blackmailer", 
"Janitor", 
"Consigliere", 
"Ambusher", 
"Mafioso", 
"Godfather", 
"Witch", 
"Vampire", 
"Executioner", 
"Guardian Angel", 
"Necromancer", 
"Poisoner", 
"Potion Master", 
"Medusa", 
"Coven Leader", 
"Horseman of the Apocalypse!" 


public plugin_init() 

register_plugin("RankSystem", "1.0a", "alt.nick") 

register_event("DeathMsg","client_death","a") 
register_clcmd("say", "hook_say") 
register_clcmd("say_team", "hook_teamsay") 

register_clcmd("say /rank", "cmdRank") 
register_clcmd("say_team /rank", "cmdRank") 


ranks_hud = register_cvar("ranks_hud", "1")     // Ð”али Ð´Ð° Ñе Ð¿Ð¾ÑвÑва Ñ…ъд Ð¿Ñ€Ð¸ Ð²Ð»Ð¸Ð·Ð°Ð½Ðµ Ð² Ñървъра. Ð’ключено 1/0 Ð˜Ð·ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¾ 
knife_xp = register_cvar("knife_xp", "5")     // ÐšÐ¾Ð»ÐºÐ¾ Ð¥Ð* Ð´Ð° Ð´Ð°Ð²Ð° Ð·Ð° ÑƒÐ±Ð¸Ð¹Ñтво Ñ Ð½Ð¾Ð¶. 
he_xp = register_cvar("he_xp", "8")        // ÐšÐ¾Ð»ÐºÐ¾ Ð¥Ð* Ð´Ð° Ð´Ð°Ð²Ð° Ð·Ð° ÑƒÐ±Ð¸Ð¹Ñтво Ñ Granata (HE). 
hs_xp = register_cvar("hs_xp", "15")        // ÐšÐ¾Ð»ÐºÐ¾ Ð¥Ð* Ð´Ð° Ð´Ð°Ð²Ð° Ð·Ð° ÑƒÐ±Ð¸Ð¹Ñтво Ñ Headshot. 
kill_xp = register_cvar("kill_xp", "10")        // ÐšÐ¾Ð»ÐºÐ¾ Ð¥Ð* Ð´Ð° Ð´Ð°Ð²Ð° Ð·Ð° Ð½Ð¾Ñ€Ð¼Ð°Ð»Ð½Ð¾ ÑƒÐ±Ð¸Ð¹Ñтво.    
kill_msg = register_cvar("kill_msg", "1")    // Ð”али Ð´Ð° Ð¿Ð¾ÐºÐ°Ð·Ð²Ð° ÐºÐ¾Ð¹ Ñте ÑƒÐ±Ð¸Ð»Ð¸ Ð¸ ÐºÐ¾Ð»ÐºÐ¾ Ð¥Ð* Ñте Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ð»Ð¸. Ð’ключено 1/0 Ð˜Ð·ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¾ 

register_concmd ("amx_give_xp", "CmdAddXP", ADMIN_IMMUNITY, "<nick | @ct | @t | @all> <xp>") 

iCvarPrefix = register_cvar("amx_rank_prefix", "Ranks"); 

gMaxPlayers = get_maxplayers() 
gMsgSayText = get_user_msgid("SayText") 

syncObj     = CreateHudSyncObj() 

fvault_load(g_vault_name) 


public ShowHud(id) 

set_hudmessage(185, 239, 251, -1.0, 0.01, 0, 6.0, 1.0, 0.0, 0.0, -1) 
ShowSyncHudMsg(id, syncObj,"Rank: %s | XP: %i | Level: %i", Prefix[Level[id]], eXP[id], Level[id]) 


public client_putinserver(id) 

if(get_pcvar_num(ranks_hud) == 1) 
set_task(1.0, "ShowHud", id, _, _, "b") 

if(Level[id] < MaxLevels-1) 
while(eXP[id] >= Levels[Level[id]]) 
Level[id] += 1 


public client_death(killer, victim, weapon, hitgroup, TK) 
{        
if(killer == victim) 
return PLUGIN_HANDLED 

new headshot = (hitgroup == HIT_HEAD) ? 1 : 0 

new rprefix[64]; 
get_pcvar_string(iCvarPrefix, rprefix, sizeof rprefix - 1); 

switch(weapon) 

case CSW_HEGRENADE: 

eXP[killer] += get_pcvar_num(he_xp) 
CheckLevel(killer) 
SaveData(killer) 
if(get_pcvar_num(kill_msg) == 1) 
ColorChat(killer, NORMAL, "^4[%s]^1 poluchihte^4 %d XP^1 poradi ubiistwoto s^4 HE^1.", rprefix,  get_pcvar_num(he_xp)) 

return PLUGIN_CONTINUE 

case CSW_KNIFE: 

eXP[killer] += get_pcvar_num(knife_xp) 
CheckLevel(killer) 
SaveData(killer) 
if(get_pcvar_num(kill_msg) == 1) 
ColorChat(killer, NORMAL, "^4[%s]^1 poluchihte^4 %d XP^1 poradi ubiistwoto s^4 noj^1.",rprefix, get_pcvar_num(knife_xp)) 

return PLUGIN_CONTINUE 



if(headshot) 

eXP[killer] += get_pcvar_num(hs_xp) 
CheckLevel(killer) 
SaveData(killer) 
if(get_pcvar_num(kill_msg) == 1) 
ColorChat(killer, NORMAL, "^4[%s]^1 poluchihte^4 %d XP^1 poradi ubiistwoto s^4 HS^1.",rprefix, get_pcvar_num(hs_xp)) 

return PLUGIN_CONTINUE 


else 

eXP[killer] += get_pcvar_num(kill_xp) 
CheckLevel(killer) 
SaveData(killer) 
if(get_pcvar_num(kill_msg) == 1) 
ColorChat(killer, NORMAL, "^4[%s]^1 poluchihte^4 %d XP^1.", rprefix, get_pcvar_num(kill_xp)) 

return PLUGIN_CONTINUE 


CheckLevel(killer) 
SaveData(killer) 
return PLUGIN_CONTINUE 


public CheckLevel(id) 

if(Level[id] < MaxLevels-1) 
while(eXP[id] >= Levels[Level[id]]) 
Level[id] += 1 


public client_connect(id) 

LoadData(id) 



public client_disconnect(id) 

SaveData(id) 
eXP[id] = 0 
Level[id] = 0 
remove_task(id) 




public cmdRank(id) 

new rprefix[64]; 
get_pcvar_string(iCvarPrefix, rprefix, sizeof rprefix - 1); 
if(is_user_connected(id)) 
ColorChat(id, NORMAL, "^4[%s]^1 Rank:^4 %s^1 | XP:^4 %d^1 | Level:^4 %d^1.", rprefix, Prefix[Level[id]], eXP[id], Level[id]) 


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)) 

new rprefix[64]; 
get_pcvar_string(iCvarPrefix, rprefix, sizeof rprefix - 1); 

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, NORMAL, "^4[%s]^1 ^3%s^1 dade^4 %i^1 XP na vsichki ^4igrachi^1!", rprefix, 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, RED, "^4[%s] ^1%s dade^4 %i^1 XP na vsichki ^3 Teroristi^1.", rprefix, 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, BLUE, "^4[%s]^1 %s^1 dade^4 %i^1 XP na wsichki ^3 Kontra-Teroristi^1!", rprefix, 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, NORMAL, "^4[%s]^1 ^3%s^1 dade^4 %i^1 XP na^4 %s^1.", rprefix, AdminName, XPtoGive, TargetName) 


return PLUGIN_HANDLED 


bool:IsValidMessage( szMessage[ ], iLen ) 

read_args( szMessage, iLen ) 
remove_quotes( szMessage ) 

new iPos, cChar 
while( 0 <= ( cChar = szMessage[ iPos++ ] ) <= 255 ) 

if( cChar != ' ' && cChar != '%' ) 

return true 



return false 


public hook_say(id) 

if(!is_user_connected(id)) 
return PLUGIN_HANDLED_MAIN 

new szArgs[192] 

if( !IsValidMessage(szArgs, charsmax(szArgs))) 
return PLUGIN_HANDLED_MAIN 

if(equal(szArgs,"")) return PLUGIN_HANDLED_MAIN 


new szName[32] 
get_user_name(id, szName, sizeof szName-1) 

new alive = is_user_alive(id) 

if(contain(szArgs,"@") >= 0) 
return  PLUGIN_HANDLED_MAIN 

if(get_user_flags(id) & CHAT_ACCESS) 
format(szArgs, 191,"^x04[%s] ^x03%s^x01:^x04  %s", Prefix[Level[id]], szName, szArgs) 
else 
format(szArgs, 191, "^x04[%s] ^x03%s^x01:  %s",  Prefix[Level[id]], szName, szArgs) 

for(new i = 1; i <= gMaxPlayers; i++) 

if(!is_user_connected(i)) 
continue 

if(alive && is_user_alive(i)) 

message_begin(MSG_ONE, gMsgSayText, {0, 0, 0}, i) 
write_byte(id) 
write_string(szArgs) 
message_end() 

else if(!alive && !is_user_alive(i)) 

new format[192] 
formatex(format,191,"^1*^4DEAD^1* %s",szArgs) 
message_begin(MSG_ONE, gMsgSayText, {0, 0, 0}, i) 
write_byte(id) 
write_string(format) 
message_end() 



return PLUGIN_HANDLED_MAIN 


public hook_teamsay(id) { 
if(!is_user_connected(id)) { 
return PLUGIN_HANDLED_MAIN 


new szArgs[192] 

if(!IsValidMessage(szArgs, charsmax(szArgs))) { 
return PLUGIN_HANDLED_MAIN 

if(equal(szArgs,"")) return PLUGIN_HANDLED_MAIN 
new alive = is_user_alive(id) 
new CsTeams:team = cs_get_user_team(id) 

new iPlayers[32], iNum 
get_players(iPlayers, iNum) 

new szName[32] 
get_user_name(id, szName, sizeof szName-1) 


new const szPrefixes[2][CsTeams][] = { 

"^4(^3Spectator^4)", 
"^4(^3Terrorist^4)", 
"^4(^3Counter-Terrorist^4)", 
"^4(^3Spectator^4)" 
}, 

"^4(^3Spectator^4)", 
"^4(^3Terrorist^4)", 
"^4(^3Counter-Terrorist^4)", 
"^4(^3Spectator^4)" 



if(contain(szArgs,"@") >= 0) 
return  PLUGIN_HANDLED_MAIN 

if(get_user_flags(id) & CHAT_ACCESS) 
format(szArgs, 191,"^1%s ^x04[%s] ^x03%s^x01:^x04  %s",szPrefixes[alive][team], Prefix[Level[id]], szName, szArgs) 
else 
format(szArgs, 191, "^1%s ^x04[%s] ^x03%s^x01:  %s",szPrefixes[alive][team],  Prefix[Level[id]], szName, szArgs) 

for(new i = 1; i <= gMaxPlayers; i++) 

if(!is_user_connected(i)) 
continue 

if(alive && is_user_alive(i)) 

message_begin(MSG_ONE, gMsgSayText, {0, 0, 0}, i) 
write_byte(id) 
write_string(szArgs) 
message_end() 

else if(!alive && !is_user_alive(i)) 

new format[192] 
formatex(format,191,"^1*^4DEAD^1* %s",szArgs) 
message_begin(MSG_ONE, gMsgSayText, {0, 0, 0}, i) 
write_byte(id) 
write_string(format) 
message_end() 



return PLUGIN_HANDLED_MAIN 


public SaveData(id) 

new name[32]; 
get_user_name(id,name,31); 
new vaultkey[64],vaultdata[256]; 

format(vaultkey,63,"%s", name); 
format(vaultdata,255,"%i#%i#",eXP[id],Level[id]); 
fvault_set_data(g_vault_name,vaultkey,vaultdata); 

return PLUGIN_CONTINUE; 

public LoadData(id) 

new name[32]; 
get_user_name(id,name,31); 
new vaultkey[64],vaultdata[256]; 

format(vaultkey,63,"%s",name); 
format(vaultdata,255,"%i#%i#",eXP[id],Level[id]); 
fvault_get_data(g_vault_name,vaultkey,vaultdata,charsmax(vaultdata)); 

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; 
}  


  • +
  • -
  • 0

#2 Asiap

    Wszechpomocny

  • Girl

Reputacja: 171
Profesjonalista

  • Postów:323
  • Lokalizacja:Kętrzyn
Offline

Napisano 14.11.2017 13:22

new const Prefix[MaxLevels][]

->

new const Prefix[MaxLevels + 1][]


  • +
  • -
  • 0

#3 Karko85

    Zaawansowany

  • Użytkownik

Reputacja: 5
Nowy

  • Postów:88
  • GG:
  • Imię:Bartłomiej
  • Lokalizacja:Bytom
Offline

Napisano 14.11.2017 15:38

#include <amxmodx> 
#include <amxmisc> 
#include <cstrike> 
#include <colorchat> 
#include <fvault> 
 
#define MaxLevels 30 
#define IsPlayer(%1) (1 <= %1 <=  g_iMaxPlayers) 
 
#define CHAT_ACCESS ADMIN_ALL 
 
new gMaxPlayers, gMsgSayText, syncObj, Level[33], eXP[33] 
new ranks_hud, knife_xp, he_xp, hs_xp, kill_xp, kill_msg 
 
new const g_vault_name[] = "livelssz"; 
//new const rprefix[]= "Ranks"; 
new iCvarPrefix; 
 
new const Levels[MaxLevels +1 ] = 
{ 
0, 
5, 
10, 
15, 
25, 
35, 
40, 
45, 
50, 
55, 
60, 
65, 
70, 
75, 
80, 
85, 
90, 
95, 
100, 
105, 
110, 
115, 
120, 
125, 
130, 
135, 
140, 
145, 
150 
} 
 
new const Prefix[MaxLevels + 1][] = 
{ 
"Amnesiac", 
"Medium", 
"Spy", 
"Transporter", 
"Escort", 
"Tracker", 
"Investigator", 
"Sheriff", 
"Vigilante", 
"Doctor", 
"Bodyguard", 
"Consort", 
"Framer", 
"Forger", 
"Blackmailer", 
"Janitor", 
"Consigliere", 
"Ambusher", 
"Mafioso", 
"Godfather", 
"Witch", 
"Vampire", 
"Executioner", 
"Guardian Angel", 
"Necromancer", 
"Poisoner", 
"Potion Master", 
"Medusa", 
"Coven Leader", 
"Horseman of the Apocalypse!" 
} 
 
public plugin_init() 
{ 
register_plugin("RankSystem", "1.0a", "alt.nick") 
 
register_event("DeathMsg","client_death","a") 
register_clcmd("say", "hook_say") 
register_clcmd("say_team", "hook_teamsay") 
 
register_clcmd("say /rank", "cmdRank") 
register_clcmd("say_team /rank", "cmdRank") 
 
 
ranks_hud = register_cvar("ranks_hud", "1")     // Дали да Ñе поÑвÑва хъд при влизане в Ñървъра. Включено 1/0 Изключено 
knife_xp = register_cvar("knife_xp", "5")     // Колко Ð¥Ð* да дава за убийÑтво Ñ Ð½Ð¾Ð¶. 
he_xp = register_cvar("he_xp", "8")        // Колко Ð¥Ð* да дава за убийÑтво Ñ Granata (HE). 
hs_xp = register_cvar("hs_xp", "15")        // Колко Ð¥Ð* да дава за убийÑтво Ñ Headshot. 
kill_xp = register_cvar("kill_xp", "10")        // Колко Ð¥Ð* да дава за нормално убийÑтво.    
kill_msg = register_cvar("kill_msg", "1")    // Дали да показва кой Ñте убили и колко Ð¥Ð* Ñте получили. Включено 1/0 Изключено 
 
register_concmd ("amx_give_xp", "CmdAddXP", ADMIN_IMMUNITY, "<nick | @ct | @t | @all> <xp>") 
 
iCvarPrefix = register_cvar("amx_rank_prefix", "Ranks"); 
 
gMaxPlayers = get_maxplayers() 
gMsgSayText = get_user_msgid("SayText") 
 
syncObj     = CreateHudSyncObj() 
 
fvault_load(g_vault_name) 
} 
 
public ShowHud(id) 
{ 
set_hudmessage(185, 239, 251, -1.0, 0.01, 0, 6.0, 1.0, 0.0, 0.0, -1) 
ShowSyncHudMsg(id, syncObj,"Rank: %s | XP: %i | Level: %i", Prefix[Level[id]], eXP[id], Level[id]) 
} 
 
public client_putinserver(id) 
{ 
if(get_pcvar_num(ranks_hud) == 1) 
set_task(1.0, "ShowHud", id, _, _, "b") 
 
if(Level[id] < MaxLevels-1) 
while(eXP[id] >= Levels[Level[id]]) 
Level[id] += 1 
} 
 
public client_death(killer, victim, weapon, hitgroup, TK) 
{        
if(killer == victim) 
return PLUGIN_HANDLED 
 
new headshot = (hitgroup == HIT_HEAD) ? 1 : 0 
 
new rprefix[64]; 
get_pcvar_string(iCvarPrefix, rprefix, sizeof rprefix - 1); 
 
switch(weapon) 
{ 
case CSW_HEGRENADE: 
{ 
eXP[killer] += get_pcvar_num(he_xp) 
CheckLevel(killer) 
SaveData(killer) 
if(get_pcvar_num(kill_msg) == 1) 
ColorChat(killer, NORMAL, "^4[%s]^1 poluchihte^4 %d XP^1 poradi ubiistwoto s^4 HE^1.", rprefix,  get_pcvar_num(he_xp)) 
 
return PLUGIN_CONTINUE 
} 
case CSW_KNIFE: 
{ 
eXP[killer] += get_pcvar_num(knife_xp) 
CheckLevel(killer) 
SaveData(killer) 
if(get_pcvar_num(kill_msg) == 1) 
ColorChat(killer, NORMAL, "^4[%s]^1 poluchihte^4 %d XP^1 poradi ubiistwoto s^4 noj^1.",rprefix, get_pcvar_num(knife_xp)) 
 
return PLUGIN_CONTINUE 
} 
} 
 
if(headshot) 
{ 
eXP[killer] += get_pcvar_num(hs_xp) 
CheckLevel(killer) 
SaveData(killer) 
if(get_pcvar_num(kill_msg) == 1) 
ColorChat(killer, NORMAL, "^4[%s]^1 poluchihte^4 %d XP^1 poradi ubiistwoto s^4 HS^1.",rprefix, get_pcvar_num(hs_xp)) 
 
return PLUGIN_CONTINUE 
} 
 
else 
{ 
eXP[killer] += get_pcvar_num(kill_xp) 
CheckLevel(killer) 
SaveData(killer) 
if(get_pcvar_num(kill_msg) == 1) 
ColorChat(killer, NORMAL, "^4[%s]^1 poluchihte^4 %d XP^1.", rprefix, get_pcvar_num(kill_xp)) 
 
return PLUGIN_CONTINUE 
} 
 
CheckLevel(killer) 
SaveData(killer) 
return PLUGIN_CONTINUE 
} 
 
public CheckLevel(id) 
{ 
if(Level[id] < MaxLevels-1) 
while(eXP[id] >= Levels[Level[id]]) 
Level[id] += 1 
} 
 
public client_connect(id) 
{ 
LoadData(id) 
} 
 
 
public client_disconnect(id) 
{ 
SaveData(id) 
eXP[id] = 0 
Level[id] = 0 
remove_task(id) 
} 
 
 
 
public cmdRank(id) 
{ 
new rprefix[64]; 
get_pcvar_string(iCvarPrefix, rprefix, sizeof rprefix - 1); 
if(is_user_connected(id)) 
ColorChat(id, NORMAL, "^4[%s]^1 Rank:^4 %s^1 | XP:^4 %d^1 | Level:^4 %d^1.", rprefix, Prefix[Level[id]], eXP[id], Level[id]) 
} 
 
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)) 
 
new rprefix[64]; 
get_pcvar_string(iCvarPrefix, rprefix, sizeof rprefix - 1); 
 
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, NORMAL, "^4[%s]^1 ^3%s^1 dade^4 %i^1 XP na vsichki ^4igrachi^1!", rprefix, 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, RED, "^4[%s] ^1%s dade^4 %i^1 XP na vsichki ^3 Teroristi^1.", rprefix, 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, BLUE, "^4[%s]^1 %s^1 dade^4 %i^1 XP na wsichki ^3 Kontra-Teroristi^1!", rprefix, 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, NORMAL, "^4[%s]^1 ^3%s^1 dade^4 %i^1 XP na^4 %s^1.", rprefix, AdminName, XPtoGive, TargetName) 
} 
} 
return PLUGIN_HANDLED 
} 
 
bool:IsValidMessage( szMessage[ ], iLen ) 
{ 
read_args( szMessage, iLen ) 
remove_quotes( szMessage ) 
 
new iPos, cChar 
while( 0 <= ( cChar = szMessage[ iPos++ ] ) <= 255 ) 
{ 
if( cChar != ' ' && cChar != '%' ) 
{ 
return true 
} 
} 
 
return false 
} 
 
public hook_say(id) 
{ 
if(!is_user_connected(id)) 
return PLUGIN_HANDLED_MAIN 
 
new szArgs[192] 
 
if( !IsValidMessage(szArgs, charsmax(szArgs))) 
return PLUGIN_HANDLED_MAIN 
 
if(equal(szArgs,"")) return PLUGIN_HANDLED_MAIN 
 
 
new szName[32] 
get_user_name(id, szName, sizeof szName-1) 
 
new alive = is_user_alive(id) 
 
if(contain(szArgs,"@") >= 0) 
return  PLUGIN_HANDLED_MAIN 
 
if(get_user_flags(id) & CHAT_ACCESS) 
format(szArgs, 191,"^x04[%s] ^x03%s^x01:^x04  %s", Prefix[Level[id]], szName, szArgs) 
else 
format(szArgs, 191, "^x04[%s] ^x03%s^x01:  %s",  Prefix[Level[id]], szName, szArgs) 
 
for(new i = 1; i <= gMaxPlayers; i++) 
{ 
if(!is_user_connected(i)) 
continue 
 
if(alive && is_user_alive(i)) 
{ 
message_begin(MSG_ONE, gMsgSayText, {0, 0, 0}, i) 
write_byte(id) 
write_string(szArgs) 
message_end() 
} 
else if(!alive && !is_user_alive(i)) 
{ 
new format[192] 
formatex(format,191,"^1*^4DEAD^1* %s",szArgs) 
message_begin(MSG_ONE, gMsgSayText, {0, 0, 0}, i) 
write_byte(id) 
write_string(format) 
message_end() 
} 
} 
 
return PLUGIN_HANDLED_MAIN 
} 
 
public hook_teamsay(id) { 
if(!is_user_connected(id)) { 
return PLUGIN_HANDLED_MAIN 
} 
 
new szArgs[192] 
 
if(!IsValidMessage(szArgs, charsmax(szArgs))) { 
return PLUGIN_HANDLED_MAIN 
} 
if(equal(szArgs,"")) return PLUGIN_HANDLED_MAIN 
new alive = is_user_alive(id) 
new CsTeams:team = cs_get_user_team(id) 
 
new iPlayers[32], iNum 
get_players(iPlayers, iNum) 
 
new szName[32] 
get_user_name(id, szName, sizeof szName-1) 
 
 
new const szPrefixes[2][CsTeams][] = { 
{ 
"^4(^3Spectator^4)", 
"^4(^3Terrorist^4)", 
"^4(^3Counter-Terrorist^4)", 
"^4(^3Spectator^4)" 
}, 
{ 
"^4(^3Spectator^4)", 
"^4(^3Terrorist^4)", 
"^4(^3Counter-Terrorist^4)", 
"^4(^3Spectator^4)" 
} 
} 
 
if(contain(szArgs,"@") >= 0) 
return  PLUGIN_HANDLED_MAIN 
 
if(get_user_flags(id) & CHAT_ACCESS) 
format(szArgs, 191,"^1%s ^x04[%s] ^x03%s^x01:^x04  %s",szPrefixes[alive][team], Prefix[Level[id]], szName, szArgs) 
else 
format(szArgs, 191, "^1%s ^x04[%s] ^x03%s^x01:  %s",szPrefixes[alive][team],  Prefix[Level[id]], szName, szArgs) 
 
for(new i = 1; i <= gMaxPlayers; i++) 
{ 
if(!is_user_connected(i)) 
continue 
 
if(alive && is_user_alive(i)) 
{ 
message_begin(MSG_ONE, gMsgSayText, {0, 0, 0}, i) 
write_byte(id) 
write_string(szArgs) 
message_end() 
} 
else if(!alive && !is_user_alive(i)) 
{ 
new format[192] 
formatex(format,191,"^1*^4DEAD^1* %s",szArgs) 
message_begin(MSG_ONE, gMsgSayText, {0, 0, 0}, i) 
write_byte(id) 
write_string(format) 
message_end() 
} 
} 
 
return PLUGIN_HANDLED_MAIN 
} 
 
public SaveData(id) 
{ 
new name[32]; 
get_user_name(id,name,31); 
new vaultkey[64],vaultdata[256]; 
 
format(vaultkey,63,"%s", name); 
format(vaultdata,255,"%i#%i#",eXP[id],Level[id]); 
fvault_set_data(g_vault_name,vaultkey,vaultdata); 
 
return PLUGIN_CONTINUE; 
} 
public LoadData(id) 
{ 
new name[32]; 
get_user_name(id,name,31); 
new vaultkey[64],vaultdata[256]; 
 
format(vaultkey,63,"%s",name); 
format(vaultdata,255,"%i#%i#",eXP[id],Level[id]); 
fvault_get_data(g_vault_name,vaultkey,vaultdata,charsmax(vaultdata)); 
 
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; 
}  

Użytkownik BaRtEk v2 edytował ten post 14.11.2017 15:40

  • +
  • -
  • 0

Daj + jak pomogłem ci :)





Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych