teraz mam takie błędy :
L 10/13/2009 - 17:08:15: [
AMXX] Displaying debug trace (plugin vipmod.
amxx)
L 10/13/2009 - 17:08:15: [
AMXX] Run time error 4: index out of bounds
L 10/13/2009 - 17:08:15: [
AMXX] [0] vipmod.sma::client_connect (line 52)
i
L 10/13/2009 - 17:18:45: [
AMXX] Displaying debug trace (plugin vipmod.
amxx)
L 10/13/2009 - 17:18:45: [
AMXX] Run time error 4: index out of bounds
L 10/13/2009 - 17:18:45: [
AMXX] [0] vipmod.sma::client_disconnect (line 161)
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fun>
#include <cstrike>
#define DAMAGE_RECIEVED
new g_CfgLoc[128];
new g_FileLoc[512];
new bool:isVip[33];
new vipType[15][33];
new part1[240];
new g_MsgSync;
#if defined DAMAGE_RECIEVED
new g_MsgSync2;
#endif
public plugin_init()
{
register_plugin("plugin", "1.0", "darkman");
RegisterHam(Ham_Spawn, "player", "player_spawn", 1);
register_event("DeathMsg", "eventDeathMsg", "a");
register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0");
register_concmd("say", "sayHook");
register_concmd("say vips", "onVip");
g_MsgSync = CreateHudSyncObj();
#if defined DAMAGE_RECIEVED
g_MsgSync2 = CreateHudSyncObj();
#endif
}
public client_connect(id)
{
isVip[id] = false
new nick[40]
get_user_name(id,nick,39)
get_configsdir(g_CfgLoc, 127);
formatex(g_FileLoc, 511, "%s/vip_list.ini", g_CfgLoc);
if(file_exists(g_FileLoc))
{
new Line[256], Len;
for(new i = 0; read_file(g_FileLoc, i, Line, 511, Len); i++)
{
if(Line[0] == ';')
continue;
parse(Line, part1, 239, vipType[id], 14);
if(equal(part1, nick))
{
isVip[id] = true;
parse(Line, part1, 239, vipType[id], 14);
break;
}
}
}
}
public player_spawn(id)
{
if(is_user_connected(id)){
if(isVip[id])
{
//set_user_flags(id, ADMIN_CHAT);
if(equal(vipType[id], "gold"))
{
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
give_item(id, "weapon_flashbang");
give_item(id, "weapon_smokegrenade");
give_item(id, "item_assaultsuit");
give_item(id, "weapon_deagle");
give_item(id, "weapon_mp5navy");
return HAM_IGNORED;
}
if(equal(vipType[id], "silver"))
{
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
give_item(id, "weapon_flashbang");
give_item(id, "weapon_smokegrenade");
give_item(id, "item_assaultsuit");
return HAM_IGNORED;
}
if(equal(vipType[id], "brown"))
{
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
give_item(id, "item_assaultsuit");
return HAM_IGNORED;
}
return HAM_IGNORED;
}
}
return HAM_IGNORED;
}
public eventDeathMsg()
{
new id = read_data(1);
new hs = read_data(3);
if(isVip[id])
{
if(equal(vipType[id], "gold"))
{
hs ? cs_set_user_money(id, cs_get_user_money(id) + 500, 1) : cs_set_user_money(id, cs_get_user_money(id) + 350, 1);
return PLUGIN_CONTINUE;
}
if(equal(vipType[id], "silver"))
{
hs ? cs_set_user_money(id, cs_get_user_money(id) + 300, 1) : cs_set_user_money(id, cs_get_user_money(id) + 200, 1);
return PLUGIN_CONTINUE;
}
if(equal(vipType[id], "brown"))
{
hs ? cs_set_user_money(id, cs_get_user_money(id) + 150, 1) : cs_set_user_money(id, cs_get_user_money(id) + 100, 1);
return PLUGIN_CONTINUE;
}
return PLUGIN_CONTINUE;
}
return PLUGIN_CONTINUE;
}
public on_damage(id)
{
if(isVip[id])
{
new attacker = get_user_attacker(id)
#if defined DAMAGE_RECIEVED
// id should be connected if this message is sent, but lets check anyway
if ( is_user_connected(id) && is_user_connected(attacker) )
{
new damage = read_data(2)
set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)
ShowSyncHudMsg(id, g_MsgSync2, "%i^n", damage)
#else
if ( is_user_connected(attacker) )
{
new damage = read_data(2)
#endif
set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
ShowSyncHudMsg(attacker, g_MsgSync, "%i^n", damage)
}
}
}
public client_disconnect(id)
{
isVip[id] = false;
vipType[id] = "";
}
public sayHook(id)
{
new arg[256];
read_argv(1, arg, 255);
if(isVip[id] && contain(arg, "@") != -1)
{
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
public print_viplist(user)
{
new vipnames[33][32]
new message[256]
new id, count, x, len
for(id = 1 ; id <= get_maxplayers() ; id++)
if(is_user_connected(id))
if(isVip[id])
get_user_name(id, vipnames[count++], 31)
len = format(message, 255, "^x04 VIPOWIE ONLINE: ")
if(count > 0) {
for(x = 0 ; x < count ; x++) {
len += format(message[len], 255-len, "%s%s ", vipnames[x], x < (count-1) ? ", ":"")
if(len > 96 ) {
print_message(user, message)
len = format(message, 255, "^x04")
}
}
print_message(user, message)
}
else {
len += format(message[len], 255-len, "No admins online.")
print_message(user, message)
}
}
print_message(id, msg[]) {
message_begin(MSG_ONE, get_user_msgid("SayText"), {0,0,0}, id)
write_byte(id)
write_string(msg)
message_end()
}
public onVip(id)
{
print_viplist(id);
return PLUGIN_HANDLED;
}