Existing user? Sign in
Sign up
Games
Servers
Useful
User
Pass
2FA
[rezolvat]plugin level xp
Freakz Forum Index
->
Trash Bin
->
CS 2006-2019 (Archived)
->
Plugins - Help / Support
Author
Message
1007
Point15
[Mentally Stable]
Status: Offline
(since 01-10-2017 02:51)
Joined: 25 Sep 2014
Posts: 98
,
Topics: 14
Location:
Romania
Reputation:
38.7
Votes
: 2
Posted: 15-01-2015, 22:35:29
| Translate post to:
... (
Click for more languages
)
Salut.
Am nevoie de un plugin pentru zombie plague advance in genul asta :
Click
Dar sa aiba si clase de human si zombie pe xp , si XP-ul sa se faca si cand tragi in zm.
Multumesc !
0
0
Back to top
-P!C@-
[Simply Normal]
Status: Offline
(since 21-04-2022 19:07)
Joined: 28 May 2012
Posts: 21086
,
Topics: 1601
Location:
Constanta
Reputation:
1870.3
Votes
: 781
Posted: 17-01-2015, 17:24:13
| Translate post to:
... (
Click for more languages
)
Incearca ce e
aici.
0
0
Back to top
Point15
[Mentally Stable]
Status: Offline
(since 01-10-2017 02:51)
Joined: 25 Sep 2014
Posts: 98
,
Topics: 14
Location:
Romania
Reputation:
38.7
Votes
: 2
Posted: 18-01-2015, 03:40:18
| Translate post to:
... (
Click for more languages
)
E pluginu zp 5.0.7 ce mi-ai dat tu :\
Am zombie_xp-ul asta :
Spoiler:
Code:
#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <fakemeta>
#include <zombie_plague_advance>
#include <hamsandwich>
#include <fun>
#define TRIGGER_SAYMENU
//#define ZP_ALIGN_TEXT
//#define ZP_GAMERUINER
#define ZP_BINDMENU "j"
#if defined TRIGGER_ZP_ITEM
new g_TriggerItem
#endif
static const PLUGIN_NAME[] = "Zombie XP"
static const PLUGIN_VERSION[] = "0.8"
new g_fwRoundStart, g_fwDummyResult
new gvault;
#define VAULT_LEVEL 0
#define VAULT_HCLASS 1
#define VAULT_ZCLASS 2
// Internal variables
enum pcvar
{
enable = 0,
packslevelup
}
new pcvars[pcvar];
new userLevel[33], userAuthID[33][32], userNeededPacks[33]
new g_modname[32] // for formating the mod name
new g_maxplayers // max players counter
const MAX_CLASSSES = 40
new g_zclass_name[MAX_CLASSSES][32] // name
new g_zclass_info[MAX_CLASSSES][32] // description
new g_zclass_model[MAX_CLASSSES][32] // player model
new g_zclass_clawmodel[MAX_CLASSSES][32] // claw model
new g_zclass_hp[MAX_CLASSSES] // health
new g_zclass_spd[MAX_CLASSSES] // speed
new g_zclass_lvl[MAX_CLASSSES] // level
new Float:g_zclass_grav[MAX_CLASSSES] // gravity
new Float:g_zclass_kb[MAX_CLASSSES] // knockback
new g_zclass_load[MAX_CLASSSES][40] // loading identifier
new g_zclass_i // loaded zombie classes counter
new g_hclass_name[MAX_CLASSSES][32] // name
new g_hclass_info[MAX_CLASSSES][32] // description
new g_hclass_model[MAX_CLASSSES][32] // player model
new g_hclass_hp[MAX_CLASSSES] // health
new g_hclass_spd[MAX_CLASSSES] // speed
new g_hclass_lvl[MAX_CLASSSES] // level
new Float:g_hclass_grav[MAX_CLASSSES] // gravity
new g_hclass_load[MAX_CLASSSES][40] // loading identifier
new g_hclass_i // loaded zombie classes counter
#define ZCLASSES_STARTID g_menu_data[id][0]
#define ZCLASSES_SELECTION (g_menu_data[id][0]+key)
#define HCLASSES_STARTID g_menu_data[id][1]
#define HCLASSES_SELECTION (g_menu_data[id][1]+key)
new g_menu_data[33][8] // data for various menus
const MENU_KEY_BACK = 7
const MENU_KEY_NEXT = 8
const MENU_KEY_EXIT = 9
const KEYSMENU = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)|(1<<9)
new cvar_welcomemsg, cvar_removexp, cvar_removezombie;
new g_zombieclassnext[33] // zombie class for next infection
new g_humanclassnext[33] // zombie class for next infection
new g_zombieclass[33] // zombie class
new g_humanclass[33] // zombie class
new g_resetparams[33] // reset params?
new bool:g_hclass_showmenu[33]
new bool:g_zclass_showmenu[33]
const PDATA_SAFE = 2
const OFFSET_CSTEAMS = 114
const OFFSET_LINUX = 5 // offsets 5 higher in Linux builds
enum
{
CS_TEAM_UNASSIGNED = 0,
CS_TEAM_T,
CS_TEAM_CT,
CS_TEAM_SPECTATOR
}
new g_freezetime;
new bool:g_human[33];
new bool:loadedZombies
enum (+= 100)
{
TASK_SHOWHUD
}
#define ID_SHOWHUD (taskid - TASK_SHOWHUD)
new g_MsgSync2
new g_msgSayText
const PEV_SPEC_TARGET = pev_iuser2
new const textHeader[] = "[ ZM ]"
new const textHeaderOrig[] = "[ ZM ]" //imitate Zombie Plague alerts
const Float:HUD_EVENT_X = -1.0
const Float:HUD_EVENT_Y = 0.17
const Float:HUD_INFECT_X = 0.05
const Float:HUD_INFECT_Y = 0.45
const Float:HUD_SPECT_X = 0.6
const Float:HUD_SPECT_Y = 0.85
const Float:HUD_STATS_X = 1.0 //changed to right align
const Float:HUD_STATS_Y = 0.2
public plugin_precache()
{
// Register all our cvars
cvar_welcomemsg = register_cvar("zp_xp_welcomemsg", "1");
cvar_removexp = register_cvar("zp_xp_removexp", "0");
cvar_removezombie = register_cvar("zp_xp_removezombie", "0");
}
public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, "Keys")
register_dictionary("zombie_xp.txt")
register_menu("Game Menu", KEYSMENU, "menu_game")
register_menu("Zombie Class Menu", KEYSMENU, "menu_zclass")
register_menu("Human Class Menu", KEYSMENU, "menu_hclass")
register_forward(FM_PlayerPreThink, "fw_PlayerPreThink")
RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn_Post", 1)
register_logevent("logevent_round_start",2, "1=Round_Start")
register_event("HLTV", "event_round_start", "a", "1=0", "2=0");
g_fwRoundStart = CreateMultiForward("zp_round_started_human", ET_IGNORE, FP_CELL)
set_task(1.0, "set_cvars")
pcvars[enable] = register_cvar("zp_xp_enable", "1")
pcvars[packslevelup] =
register_clcmd("zp_xp_costscale", "SetPacksLevelUp")
register_clcmd("zp_xp_set_level", "SetLevel")
register_clcmd("zp_xp_removexp", "RemoveXP")
register_clcmd("zp_xp_removezombies", "RemoveZombies")
#if defined TRIGGER_SAYMENU
register_clcmd("say xp", "handle_say_xp")
register_clcmd("say level", "handle_say_level")
register_clcmd("say class", "handle_say_class")
register_clcmd("say xpmenu", "handle_say_xpmenu")
#endif
g_msgSayText = get_user_msgid("SayText")
formatex(g_modname, sizeof g_modname - 1, "XP Menu %s", PLUGIN_VERSION)
g_maxplayers = get_maxplayers()
gvault = nvault_open(PLUGIN_NAME);
g_MsgSync2 = CreateHudSyncObj()
}
public set_cvars()
{
if( get_pcvar_num(cvar_removezombie) == 0) set_cvar_num("zp_zombie_classes", 0);
}
public plugin_natives()
{
register_native("zpxp_register_human_class", "native_register_human_class", 1)
register_native("zpxp_register_zombie_class", "native_register_zombie_class", 1)
register_native("zp_get_user_human_class", "native_get_user_human_class", 1)
}
public plugin_end()
{
if( get_pcvar_num(cvar_removexp) == 0)
{
// Save everyone's data first
server_print("%s Saving your clients XP.", textHeader);
for( new o = 1; o < 33; o++)
{
//if ( !is_user_connected(o) || is_user_bot(o) ) continue;
if ( !is_user_connected(o) ) continue;
if ( is_user_bot(o) ) continue;
save_data(o);
}
}
nvault_close(gvault)
if( (loadedZombies == false) && ( get_pcvar_num(cvar_removezombie) == 0 ))
{
set_pcvar_num(cvar_removezombie, 0);
set_cvar_num("zp_zombie_classes", 0)
}
}
#if defined TRIGGER_SAYMENU
public handle_say_xp(id)
{
#if defined ZP_BINDMENU
new strLetter[2];
copy(strLetter, sizeof strLetter - 1, ZP_BINDMENU);
strtoupper(strLetter);
strtoupper(ZP_BINDMENU);
zp_colored_print(id, "^x04%s^x01 %L", textHeader, id, "SAY_INFO_KEY", strLetter)
#else
zp_colored_print(id, "^x04%s^x01 %L", textHeader, id, "SAY_INFO")
#endif
zp_colored_print(id, "^x04%s^x01 %L", textHeader, id, "SAY_XP", pcvars[packslevelup] * userLevel[id], userLevel[id])
return PLUGIN_HANDLED
}
public handle_say_level(id)
{
zp_colored_print(id, "^x04%s^x01 %L", textHeader, id, "SAY_LEVEL", userLevel[id])
return PLUGIN_HANDLED
}
public handle_say_class(id)
{
zp_colored_print(id, "^x04%s^x01 %L", textHeader, id, "SAY_CLASS", g_hclass_name[g_humanclass[id]], g_zclass_name[g_zombieclass[id]])
return PLUGIN_HANDLED
}
public handle_say_xpmenu(id)
{
show_menu_game(id);
return PLUGIN_HANDLED
}
#endif
public getAmmoPacks(id)
{
return zp_get_user_ammo_packs(id);
}
public setAmmoPacks(id, value)
{
return zp_set_user_ammo_packs(id, value);
}
public SetLevel(id)
{
#if defined ZP_GAMERUINER
if ( read_argc() > 3 ) return PLUGIN_HANDLED;
new arg1[32], arg2[10], amount;
read_argv(1, arg1, sizeof(arg1) - 1);
read_argv(2, arg2, sizeof(arg2) - 1);
amount = str_to_num(arg2);
if( amount <= 0) amount = 1;
new target = cmd_target(0, arg1, 2);
if ( target == 0 )
{
zp_colored_print(id, "^x04%s^x01 Could not find the requested user.", textHeader);
return PLUGIN_HANDLED;
} else {
userLevel[id] = amount
ShowHUD(id)
if(id == target)
{
zp_colored_print(id, "^x04%s^x01 You have set yourself to level %d!", textHeader, amount );
} else {
new targetName[64];
get_user_name(target, targetName, 63);
zp_colored_print(id, "^x04%s^x01 You have set %s to level %d!", textHeader , targetName, amount );
zp_colored_print(target, "^x04%s^x01 You have been set to level %d!", textHeader , amount );
}
return PLUGIN_HANDLED;
}
#else
zp_colored_print(id, "^x04%s^x01 This functionality has been disabled.", textHeader);
client_print(id, print_console, "^x04%s^x01 This functionality has been disabled.", textHeader);
#endif
return PLUGIN_HANDLED;
}
public getNeededPacks(id)
{
switch(userLevel[id])
{
case 1 : return 50
case 2 : return 100
case 3 : return 200
case 4 : return 400
case 5 : return 1260
case 6 : return 2420
case 7 : return 4520
case 8 : return 9800
case 9 : return 10702
case 10 : return 12604
case 11 : return 13602
case 12 : return 25630
case 13 : return 38300
case 14 : return 42460
case 15 : return 55640
case 16 : return 60250
case 17 : return 72900
case 18 : return 83300
case 19 : return 94620
case 20 : return 105900
case 21 : return 99999999999999999999
case 22 : return 99999999999999999999
case 23 : return 99999999999999999999
case 24 : return 99999999999999999999
case 25 : return 182400
case 26 : return 233840
case 27 : return 245300
case 28 : return 259520
case 29 : return 310623
case 30 : return 31400
}
return PLUGIN_HANDLED;
}
public SetPacksLevelUp(id, value)
{
new arg[10], arg2
read_argv(1, arg, sizeof arg - 1)
arg2 = str_to_num(arg)
if(arg2 > 0)
{
client_print(id, print_console, "%s %L", textHeader, id, "ADMIN_CONFIRM")
pcvars[packslevelup] = arg2;
for( new o = 1; o < 33; o++)
{
if ( !is_user_connected(o) ) continue;
userNeededPacks[id] = getNeededPacks(id)
}
} else {
zp_colored_print(id, "^x04%s^x01 %L", textHeader, id, "ERR_NEGATIVE");
client_print(id, print_console, "%s %L", textHeader, id, "ERR_NEGATIVE")
}
return PLUGIN_HANDLED;
}
public RemoveXP(id)
{
new arg[10], arg2
read_argv(1, arg, sizeof arg - 1)
arg2 = str_to_num(arg)
if(arg2 >= 0)
{
if(arg2 == 1) {
zp_colored_print(id, "^x04%s^x01 %L", textHeader, id, "ADMIN_CONFIRM");
client_print(id, print_console, "%s %L", textHeader, id, "ADMIN_CONFIRM")
set_pcvar_num(cvar_removexp, arg2);
} else if (arg2 == 0) {
zp_colored_print(id, "^x04%s^x01 %L", textHeader, id, "ADMIN_CONFIRM");
client_print(id, print_console, "%s %L", textHeader, id, "ADMIN_CONFIRM")
set_pcvar_num(cvar_removexp, arg2);
} else {
zp_colored_print(id, "^x04%s^x01 %L", textHeader, id, "ERR_INVALIDENTRY");
client_print(id, print_console, "%s %L", textHeader, id, "ERR_INVALIDENTRY");
return PLUGIN_HANDLED;
}
} else {
zp_colored_print(id, "^x04%s^x01 %L", textHeader, id, "ERR_NEGATIVE");
client_print(id, print_console, "%s %L", textHeader, id, "ERR_NEGATIVE")
}
return PLUGIN_HANDLED;
}
public RemoveZombies(id)
{
new arg[10], arg2
read_argv(1, arg, sizeof arg - 1)
arg2 = str_to_num(arg)
if(arg2 >= 0)
{
if (arg2 == 0) {
if( loadedZombies == true )
{
zp_colored_print(id, "^x04%s^x01 %L", textHeader, id, "ADMIN_CONFIRM");
client_print(id, print_console, "%s %L", textHeader, id, "ADMIN_CONFIRM")
set_pcvar_num(cvar_removezombie, 1);
set_cvar_num("zp_zombie_classes", 1)
} else {
zp_colored_print(id, "^x04%s^x01 %L", textHeader, id, "ADMIN_CONFIRM_NEXTROUND");
client_print(id, print_console, "%s %L", textHeader, id, "ADMIN_CONFIRM_NEXTROUND")
//set_pcvar_num(cvar_removezombie, 1);
//set_cvar_num("zp_zombie_classes", 1)
}
} else if (arg2 == 1) {
zp_colored_print(id, "^x04%s^x01 %L", textHeader, id, "ADMIN_CONFIRM");
client_print(id, print_console, "%s %L", textHeader, id, "ADMIN_CONFIRM")
set_pcvar_num(cvar_removezombie, 1);
set_cvar_num("zp_zombie_classes", 1)
} else if (arg2 == 2) {
zp_colored_print(id, "^x04%s^x01 %L", textHeader, id, "ADMIN_CONFIRM_NEXTROUND");
client_print(id, print_console, "%s %L", textHeader, id, "ADMIN_CONFIRM_NEXTROUND")
set_pcvar_num(cvar_removezombie, 1);
set_cvar_num("zp_zombie_classes", 1)
} else {
zp_colored_print(id, "^x04%s^x01 %L", textHeader, id, "ERR_INVALIDENTRY");
client_print(id, print_console, "%s %L", textHeader, id, "ERR_INVALIDENTRY");
return PLUGIN_HANDLED;
}
} else {
zp_colored_print(id, "^x04%s^x01 %L", textHeader, id, "ERR_NEGATIVE");
client_print(id, print_console, "%s %L", textHeader, id, "ERR_NEGATIVE")
}
return PLUGIN_HANDLED;
}
public show_menu_game(id)
{
static menu[250], len, index;
len = 0
index = 1;
len += formatex(menu[len], sizeof menu - 1 - len, "\y%s^n^n", g_modname)
if( get_pcvar_num(cvar_removexp) == 0 )
{
if(getAmmoPacks(id) >= getNeededPacks(id))
{
len += formatex(menu[len], sizeof menu - 1 - len, "\r%d.\w %L", index, id, "MENU_BUY_XP")
len += formatex(menu[len], sizeof menu - 1 - len, " \y%d %L^n", getNeededPacks(id), id, "AMMO_PACKS_XP")
} else {
len += formatex(menu[len], sizeof menu - 1 - len, "\d%d. %L", index, id, "MENU_BUY_XP")
len += formatex(menu[len], sizeof menu - 1 - len, " \d%d %L^n", getNeededPacks(id), id, "AMMO_PACKS_XP")
}
index++;
}
len += formatex(menu[len], sizeof menu - 1 - len, "\r%d.\w %L^n", index, id,"MENU_HCLASS")
if (get_pcvar_num(cvar_removezombie) == 0)
{
index++;
len += formatex(menu[len], sizeof menu - 1 - len, "\r%d.\w %L^n", index, id,"MENU_ZCLASS")
}
len += formatex(menu[len], sizeof menu - 1 - len, "^n^n\r0.\w %L", id, "MENU_EXIT")
show_menu(id, KEYSMENU, menu, -1, "Game Menu")
}
public save_data(id)
{
new vaultkey[40],vaultData[256];
new g_selected_zclass[sizeof g_zclass_load[]] , g_selected_hclass[sizeof g_hclass_load[]] //bug fix for not showing menu if the user hasnt picked a zombie
if( g_hclass_showmenu[id] == true) { g_selected_hclass = "-1"; } else { formatex(g_selected_hclass, sizeof g_selected_hclass - 1, g_hclass_load[g_humanclassnext[id]]); }
if( g_zclass_showmenu[id] == true) { g_selected_zclass = "-1"; } else { formatex(g_selected_zclass, sizeof g_selected_zclass -1, g_zclass_load[g_zombieclassnext[id]]); }
formatex( vaultkey, sizeof vaultkey - 1, "%s_stats", userAuthID[id]);
formatex( vaultData, sizeof vaultData - 1, "0=%i;1=%s;2=%s;", userLevel[id], g_selected_hclass, g_selected_zclass);
nvault_set(gvault, vaultkey, vaultData);
}
public load_data(id)
{
if( get_pcvar_num(cvar_removexp) != 0)
{
g_hclass_showmenu[id] = true;
g_zclass_showmenu[id] = true;
return;
}
new vaultkey[40], vaultReturn[256];
new vaultData[4][40], vaultResults[3][40];
format(vaultkey, sizeof vaultkey - 1, "%s_stats", userAuthID[id]);
nvault_get(gvault, vaultkey, vaultReturn, sizeof vaultReturn - 1);
new Count = ExplodeString(vaultData, sizeof vaultData - 1, sizeof vaultData[] - 1, vaultReturn, ';')
if(Count == sizeof vaultResults - 1)
{
new ivaultLevel, i_hclass_id = -1, i_zclass_id = -1;
for( new i = 0; i < sizeof vaultData - 1; i++)
{
ExplodeString(vaultResults, sizeof vaultResults - 1, sizeof vaultResults[] - 1, vaultData[i], '=');
switch (str_to_num(vaultResults[0]))
{
case VAULT_LEVEL:
{
ivaultLevel = str_to_num(vaultResults[1]);
if (ivaultLevel == 0) ivaultLevel = 1;
userLevel[id] = ivaultLevel
}
case VAULT_HCLASS:
{
if( !equali(vaultResults[1], "-1") )
{
for (new i2 = 0; i2 < g_hclass_i; i2++)
{
if( equali(vaultResults[1], g_hclass_load[i2]) )
{
i_hclass_id = i2;
break;
}
}
}
if ( i_hclass_id == -1)
{
g_hclass_showmenu[id] = true;
} else {
g_humanclassnext[id] = i_hclass_id;
g_hclass_showmenu[id] = false;
}
}
case VAULT_ZCLASS:
{
if( !equali(vaultResults[1], "-1") )
{
for (new i2 = 0; i2 < g_zclass_i; i2++)
{
if( equali(vaultResults[1], g_zclass_load[i2]) )
{
i_zclass_id = i2;
break;
}
}
}
if ( i_zclass_id == -1)
{
g_zclass_showmenu[id] = true;
} else {
g_zombieclassnext[id] = i_zclass_id;
g_zclass_showmenu[id] = false;
zp_set_user_zombie_class(id, i_zclass_id);
}
}
}
}
} else {
g_hclass_showmenu[id] = true;
g_zclass_showmenu[id] = true;
}
}
public client_connect(id)
{
#if defined ZP_BINDMENU
client_cmd(id,"bind %s ^"say xpmenu^"", ZP_BINDMENU);
#endif
}
public client_putinserver(id)
{
resetvars(id)
zp_set_user_zombie_class(id, 0)
load_data(id);
userNeededPacks[id] = getNeededPacks(id)
set_task(1.0, "ShowHUD", id+TASK_SHOWHUD, _, _, "b")
}
public client_disconnect(id)
{
save_data(id);
remove_task(id+TASK_SHOWHUD)
}
public fw_PlayerSpawn_Post(id)
{
if (zp_get_user_zombie(id))
return FMRES_IGNORED;
if (!is_user_alive(id)) // you could also use is_user_connected()
return FMRES_IGNORED;
g_humanclass[id] = g_humanclassnext[id]
g_zombieclass[id] = g_zombieclassnext[id]
humanme(id)
// We know for sure they are a human, only give guns+speed+grav if they've picked a class
if (( g_hclass_showmenu[id] == false))
{
set_task(0.5, "setHumanParameters", id)
}
return FMRES_IGNORED;
}
public setHumanParameters(id)
{
set_pev(id, pev_gravity, g_hclass_grav[g_humanclass[id]])
fm_set_user_health(id, g_hclass_hp[g_humanclass[id]])
}
public event_round_start()
{
static team;
for( new o = 1; o < 33; o++)
{
if ( !is_user_connected(o) ) continue;
team = fm_get_user_team(o)
if (team == CS_TEAM_SPECTATOR || team == CS_TEAM_UNASSIGNED) continue;
//humanme(o)
// Our next vars are now current
//g_humanclass[o] = g_humanclassnext[o]
//g_zombieclass[o] = g_zombieclassnext[o]
ExecuteForward(g_fwRoundStart, g_fwDummyResult, o);
}
g_freezetime = true
if( get_pcvar_num(cvar_welcomemsg) )
set_task(2.0, "welcome_msg")
}
public zp_user_infected_pre(id, infector)
{
g_human[id] = false
}
public zp_user_infected_post(id, infector)
{
if ((g_zclass_showmenu[id] == true) && get_pcvar_num(cvar_removezombie) ==0) show_menu_zclass(id);
}
public zp_user_humanized_pre(id)
{
g_humanclass[id] = g_humanclassnext[id];
g_zombieclass[id] = g_zombieclassnext[id];
}
public zp_user_humanized_post(id)
{
if(!zp_get_user_survivor(id) && !zp_get_user_sniper(id))
{
humanme(id)
set_task(0.5, "setHumanParameters", id)
}else {
g_human[id] = false
}
ShowHUD(id)
}
public humanme(id)
{
if( g_hclass_showmenu[id] == true)
{
if (get_pcvar_num(cvar_removezombie) == 0){
set_task(0.1, "show_menu_hclass", id);
}else {
set_task(0.5, "show_menu_hclass", id);
}
}
g_human[id] = true;
}
public resetvars(id)
{
g_zombieclassnext[id] = 0;
g_humanclassnext[id] = 0;
g_zombieclass[id] = 0;
g_humanclass[id] = 0;
g_hclass_showmenu[id] = false;
g_zclass_showmenu[id] = false;
userLevel[id] = 1;
get_user_name(id, userAuthID[id], 31)
g_resetparams[id] = false
}
stock ExplodeString( Output[][], Max, Size, Input[], Delimiter )
{
new Idx, l = strlen(Input), Len;
do Len += (1 + copyc( Output[Idx], Size, Input[Len], Delimiter ));
while( (Len < l) && (++Idx < Max) )
return Idx;
}
stock fm_set_user_health(id, health)
{
(health > 0) ? set_pev(id, pev_health, float(health)) : dllfunc(DLLFunc_ClientKill, id);
}
public fw_PlayerPreThink(id)
{
if (!is_user_alive(id)) return;
if(!g_human[id]) return;
if (!g_freezetime)
{
if (g_human[id])
{
set_pev(id, pev_maxspeed, float(g_hclass_spd[g_humanclass[id]]))
return
}
}
}
public show_menu_zclass(id)
{
if (!is_user_connected(id))
return;
if (is_user_bot(id))
{
g_zombieclassnext[id] = 0 //basic zombie
return;
}
static menu[800], len, class, removexp;
new curClassIcon[2];
len = 0
removexp = get_pcvar_num(cvar_removexp);
len += formatex(menu[len], sizeof menu - 1 - len, "\y%L \r [%d-%d]^n^n", id, "MENU_ZCLASS_TITLE", ZCLASSES_STARTID+1, min(ZCLASSES_STARTID+7, g_zclass_i))
#if defined ZP_ALIGN_TEXT
new spacers[400], g_zclass_spacers1, g_zclass_spacers2
new maxSpace1, maxSpace2, curSpace1[32], curSpace2[32]
for (class = ZCLASSES_STARTID; class < min(ZCLASSES_STARTID+7, g_zclass_i); class++)
{
formatex(spacers, sizeof spacers - 1, "%d. %s", class-ZCLASSES_STARTID+1, g_zclass_name[class])
g_zclass_spacers1 = strlen(spacers)
g_zclass_spacers2 = strlen(g_zclass_info[class])
if(g_zclass_spacers1 > maxSpace1) maxSpace1 = g_zclass_spacers1
if(g_zclass_spacers2 > maxSpace2) maxSpace2 = g_zclass_spacers2
}
for (class = ZCLASSES_STARTID; class < min(ZCLASSES_STARTID+7, g_zclass_i); class++)
{
formatex(spacers, sizeof spacers - 1, "%d. %s", class-ZCLASSES_STARTID+1, g_zclass_name[class])
g_zclass_spacers1 = maxSpace1 - strlen(spacers)
g_zclass_spacers2 = maxSpace2 - strlen(g_zclass_info[class])
arrayset(curSpace1, '^0', sizeof curSpace1 - 1)
arrayset(curSpace2, '^0', sizeof curSpace2 - 1)
if(g_zclass_spacers1 != 0) arrayset(curSpace1, '^t', g_zclass_spacers1)
if(g_zclass_spacers2 != 0) arrayset(curSpace2, '^t', g_zclass_spacers2)
if (((class == g_zombieclassnext[id] && g_zclass_showmenu[id] == false) || (userLevel[id] < g_zclass_lvl[class])) && (removexp == 0))
{
if (class == g_zombieclassnext[id]) { curClassIcon = "*"; } else { curClassIcon = ""; }
len += formatex(menu[len], sizeof menu - 1 - len, "\d%s%d. %s %s %s %s %L %d^n", curClassIcon, class-ZCLASSES_STARTID+1, g_zclass_name[class], curSpace1, g_zclass_info[class], curSpace2, id, "BOTH_ATTRIB_LEVEL", g_zclass_lvl[class])
} else if (removexp == 1) {
len += formatex(menu[len], sizeof menu - 1 - len, "\r%d.\w %s\y %s %s^n", class-ZCLASSES_STARTID+1, g_zclass_name[class], curSpace1, g_zclass_info[class])
} else {
len += formatex(menu[len], sizeof menu - 1 - len, "\r%d.\w %s\y %s %s\w %s %L %d^n", class-ZCLASSES_STARTID+1, g_zclass_name[class], curSpace1, g_zclass_info[class], curSpace2, id, "BOTH_ATTRIB_LEVEL", g_zclass_lvl[class])
}
}
#else
for (class = ZCLASSES_STARTID; class < min(ZCLASSES_STARTID+7, g_zclass_i); class++)
{
if (((class == g_zombieclassnext[id] && g_zclass_showmenu[id] == false) || (userLevel[id] < g_zclass_lvl[class])) && (removexp == 0))
{
if (class == g_zombieclassnext[id]) { curClassIcon = "*"; } else { curClassIcon = ""; }
len += formatex(menu[len], sizeof menu - 1 - len, "\d%s%d. %s - %s - %L %d^n", curClassIcon, class-ZCLASSES_STARTID+1, g_zclass_name[class], g_zclass_info[class], id, "BOTH_ATTRIB_LEVEL", g_zclass_lvl[class])
} else if (removexp == 1) {
len += formatex(menu[len], sizeof menu - 1 - len, "\r%d.\w %s -\y %s^n", class-ZCLASSES_STARTID+1, g_zclass_name[class], g_zclass_info[class]);
} else {
len += formatex(menu[len], sizeof menu - 1 - len, "\r%d.\w %s -\y %s\w - %L %d^n", class-ZCLASSES_STARTID+1, g_zclass_name[class], g_zclass_info[class], id, "BOTH_ATTRIB_LEVEL", g_zclass_lvl[class]);
}
}
#endif
len += formatex(menu[len], sizeof menu - 1 - len, "^n\r8.\w %L^n\r9.\w %L^n^n\r0.\w %L", id, "MENU_BACK", id, "MENU_NEXT", id, "MENU_EXIT")
show_menu(id, KEYSMENU, menu, -1, "Zombie Class Menu")
}
public show_menu_hclass(id)
{
if (!is_user_connected(id))
return;
if (is_user_bot(id))
{
g_humanclassnext[id] = 0
return;
}
static menu[800], len, class, removexp
new curClassIcon[2]
len = 0
removexp = get_pcvar_num(cvar_removexp);
len += formatex(menu[len], sizeof menu - 1 - len, "\y%L \r[%d-%d]^n^n", id, "MENU_HCLASS_TITLE", HCLASSES_STARTID+1, min(HCLASSES_STARTID+7, g_hclass_i))
#if defined ZP_ALIGN_TEXT
new spacers[400], g_hclass_spacers1, g_hclass_spacers2
new maxSpace1, maxSpace2, curSpace1[32], curSpace2[32]
for (class = HCLASSES_STARTID; class < min(HCLASSES_STARTID+7, g_hclass_i); class++)
{
formatex(spacers, sizeof spacers - 1, "%d. %s", class-HCLASSES_STARTID+1, g_hclass_name[class])
g_hclass_spacers1 = strlen(spacers)
g_hclass_spacers2 = strlen(g_hclass_info[class])
if(g_hclass_spacers1 > maxSpace1) maxSpace1 = g_hclass_spacers1
if(g_hclass_spacers2 > maxSpace2) maxSpace2 = g_hclass_spacers2
}
for (class = HCLASSES_STARTID; class < min(HCLASSES_STARTID+7, g_hclass_i); class++)
{
formatex(spacers, sizeof spacers - 1, "%d. %s", class-HCLASSES_STARTID+1, g_hclass_name[class])
g_hclass_spacers1 = maxSpace1 - strlen(spacers)
g_hclass_spacers2 = maxSpace2 - strlen(g_hclass_info[class])
arrayset(curSpace1, '^0', sizeof curSpace1 - 1)
arrayset(curSpace2, '^0', sizeof curSpace2 - 1)
if(g_hclass_spacers1 != 0) arrayset(curSpace1, '^t', g_hclass_spacers1)
if(g_hclass_spacers2 != 0) arrayset(curSpace2, '^t', g_hclass_spacers2)
if (((class == g_humanclassnext[id] && g_hclass_showmenu[id] == false) || (userLevel[id] < g_hclass_lvl[class])) && (removexp == 0))
{
if (class == g_humanclassnext[id]) { curClassIcon = "*"; } else { curClassIcon = ""; }
len += formatex(menu[len], sizeof menu - 1 - len, "\d%s%d. %s %s %s %s %L %d^n", curClassIcon, class-HCLASSES_STARTID+1, g_hclass_name[class], curSpace1, g_hclass_info[class], curSpace2, id, "BOTH_ATTRIB_LEVEL", g_hclass_lvl[class])
} else if (removexp == 1) {
len += formatex(menu[len], sizeof menu - 1 - len, "\r%d.\w %s\y %s %s^n", class-HCLASSES_STARTID+1, g_hclass_name[class], curSpace1, g_hclass_info[class])
} else {
len += formatex(menu[len], sizeof menu - 1 - len, "\r%d.\w %s\y %s %s\w %s %L %d^n", class-HCLASSES_STARTID+1, g_hclass_name[class], curSpace1, g_hclass_info[class], curSpace2, id, "BOTH_ATTRIB_LEVEL", g_hclass_lvl[class])
}
}
#else
for (class = HCLASSES_STARTID; class < min(HCLASSES_STARTID+7, g_hclass_i); class++)
{
if (((class == g_humanclassnext[id] && g_hclass_showmenu[id] == false) || (userLevel[id] < g_hclass_lvl[class])) && (removexp == 0))
{
if (class == g_humanclassnext[id]) { curClassIcon = "*"; } else { curClassIcon = ""; }
len += formatex(menu[len], sizeof menu - 1 - len, "\d%s%d. %s - %s - %L %d^n", curClassIcon, class-HCLASSES_STARTID+1, g_hclass_name[class], g_hclass_info[class], id, "BOTH_ATTRIB_LEVEL", g_hclass_lvl[class])
} else if (removexp == 1) {
len += formatex(menu[len], sizeof menu - 1 - len, "\r%d.\w %s -\y %s^n", class-HCLASSES_STARTID+1, g_hclass_name[class], g_hclass_info[class]);
} else {
len += formatex(menu[len], sizeof menu - 1 - len, "\r%d.\w %s -\y %s\w - %L %d^n", class-HCLASSES_STARTID+1, g_hclass_name[class], g_hclass_info[class], id, "BOTH_ATTRIB_LEVEL", g_hclass_lvl[class])
}
}
#endif
len += formatex(menu[len], sizeof menu - 1 - len, "^n\r8.\w %L^n\r9.\w %L^n^n\r0.\w %L", id, "MENU_BACK", id, "MENU_NEXT", id, "MENU_EXIT")
show_menu(id, KEYSMENU, menu, -1, "Human Class Menu")
}
public menu_game(id, key)
{
if(get_pcvar_num(cvar_removexp) == 1) key++;
switch (key)
{
case 0:
{
if(getAmmoPacks(id) >= getNeededPacks(id))
{
setAmmoPacks(id, getAmmoPacks(id) - getNeededPacks(id))
userLevel[id] += 1
save_data(id)
zp_colored_print(id, "^x04%s^x01 %L %d", textHeader, id ,"MENU_BUY_LEVEL", userLevel[id])
ShowHUD(id)
} else {
zp_colored_print(id, "^x04%s^x01 %L", textHeader, id ,"ERR_NOTENOUGHPACKS")
}
show_menu_game(id);
}
case 1:
{
show_menu_hclass(id)
}
case 2:
{
if (get_pcvar_num(cvar_removezombie) == 0)
{
show_menu_zclass(id)
}
}
}
return PLUGIN_HANDLED;
}
public menu_zclass(id, key)
{
if (key >= MENU_KEY_BACK || ZCLASSES_SELECTION >= g_zclass_i)
{
switch (key)
{
case MENU_KEY_BACK:
{
if (ZCLASSES_STARTID-7 >= 0) ZCLASSES_STARTID -= 7
}
case MENU_KEY_NEXT:
{
if (ZCLASSES_STARTID+7 < g_zclass_i) ZCLASSES_STARTID += 7
}
case MENU_KEY_EXIT:
{
return PLUGIN_HANDLED;
}
}
show_menu_zclass(id)
return PLUGIN_HANDLED;
}
if (ZCLASSES_SELECTION == g_zombieclassnext[id])
{
if( g_zclass_showmenu[id] == false)
{
zp_colored_print(id, "^x04%s^x01 %L", textHeader, id, "ERR_ALREADYSELECTED")
show_menu_zclass(id)
return PLUGIN_HANDLED;
}
}
if (get_pcvar_num(cvar_removexp) == 0)
{
if (g_zclass_lvl[ZCLASSES_SELECTION] > userLevel[id])
{
zp_colored_print(id, "^x04%s^x01 %L", textHeader, id, "ERR_NOTLEVEL")
show_menu_zclass(id)
return PLUGIN_HANDLED;
}
}
g_zombieclassnext[id] = ZCLASSES_SELECTION;
g_zclass_showmenu[id] = false;
zp_colored_print(id, "^x04%s^x01 %L: %s", textHeader, id, "ZOMBIE_SELECT_XP", g_zclass_name[g_zombieclassnext[id]])
zp_colored_print(id, "^x04%s^x01 %L: %d %L: %d %L: %d %L: %d%%", textHeader, id, "ZOMBIE_ATTRIB1_XP", g_zclass_hp[g_zombieclassnext[id]], id, "ZOMBIE_ATTRIB2_XP", g_zclass_spd[g_zombieclassnext[id]],
id, "ZOMBIE_ATTRIB3_XP", floatround(g_zclass_grav[g_zombieclassnext[id]]*800), id, "ZOMBIE_ATTRIB4_XP", floatround(g_zclass_kb[g_zombieclassnext[id]]*100))
zp_set_user_zombie_class(id, g_zombieclassnext[id])
return PLUGIN_HANDLED;
}
public menu_hclass(id, key)
{
if (key >= MENU_KEY_BACK || HCLASSES_SELECTION >= g_hclass_i)
{
switch (key)
{
case MENU_KEY_BACK:
{
if (HCLASSES_STARTID-7 >= 0) HCLASSES_STARTID -= 7
}
case MENU_KEY_NEXT:
{
if (HCLASSES_STARTID+7 < g_hclass_i) HCLASSES_STARTID += 7
}
case MENU_KEY_EXIT:
{
return PLUGIN_HANDLED;
}
}
show_menu_hclass(id)
return PLUGIN_HANDLED;
}
if (HCLASSES_SELECTION == g_humanclassnext[id])
{
if( g_hclass_showmenu[id] == false)
{
zp_colored_print(id, "^x04%s^x01 %L", textHeader, id, "ERR_ALREADYSELECTED")
show_menu_hclass(id)
return PLUGIN_HANDLED;
}
}
if (get_pcvar_num(cvar_removexp) == 0)
{
if (g_hclass_lvl[HCLASSES_SELECTION] > userLevel[id])
{
zp_colored_print(id, "^x04%s^x01 %L", textHeader, id, "ERR_NOTLEVEL")
show_menu_hclass(id)
return PLUGIN_HANDLED;
}
}
g_humanclassnext[id] = HCLASSES_SELECTION;
g_hclass_showmenu[id] = false;
zp_colored_print(id, "^x04%s^x01 %L: %s", textHeader, id, "HUMAN_SELECT_XP", g_hclass_name[g_humanclassnext[id]])
zp_colored_print(id, "^x04%s^x01 %L: %d %L: %d %L: %d", textHeader, id, "HUMAN_ATTRIB1_XP", g_hclass_hp[g_humanclassnext[id]], id, "HUMAN_ATTRIB2_XP", g_hclass_spd[g_humanclassnext[id]],
id, "HUMAN_ATTRIB3_XP", floatround(g_hclass_grav[g_humanclassnext[id]]*800), id)
return PLUGIN_HANDLED;
}
public ShowHUD(taskid)
{
//if (get_pcvar_num(cvar_removexp) == 1 ) return;
static id;
id = ID_SHOWHUD;
if (!is_user_alive(id))
{
id = pev(id, PEV_SPEC_TARGET) //other persons ID
if (!is_user_alive(id)) return;
}
static red, green, blue, g_name[sizeof g_hclass_name];
if ( g_human[id] == false )
{
red = 200
green = 250
blue = 0
formatex(g_name, sizeof g_name - 1, "%L", id, "HUD_ZOMBIE");
}
else
{
red = 0
green = 0
blue = 255
copy(g_name, sizeof g_name - 1, g_hclass_name[g_humanclass[id]]);
}
if (id != ID_SHOWHUD)
{
if (get_pcvar_num(cvar_removexp) == 0 )
{
set_hudmessage(0, 255, 255, HUD_SPECT_X, HUD_SPECT_Y, 0.32, 0.90, 0, 6.0, 12.0);
ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "[%L]: %s / [%L]: %d", ID_SHOWHUD, "HUD_CLASS", g_name, ID_SHOWHUD, "HUD_LEVEL", userLevel[id]);
} else
{
set_hudmessage(255, 255, 255, HUD_SPECT_X, HUD_SPECT_Y, 0.32, 0.90, 0, 6.0, 12.0);
ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "%L: %s", ID_SHOWHUD, "HUD_CLASS", g_name);
}
} else {
if (get_pcvar_num(cvar_removexp) == 0 )
{
set_hudmessage(255, 255, 255, HUD_STATS_X, HUD_STATS_Y, 0.32, 0.90, 0, 6.0, 12.0);
ShowSyncHudMsg(id, g_MsgSync2, "[%L]: %s / [%L]: %d^t^t^t", id, "HUD_CLASS", g_name, id, "HUD_LEVEL", userLevel[id]);
} else {
set_hudmessage(255, 255, 255, HUD_STATS_X, HUD_STATS_Y, 0.32, 0.90, 0, 6.0, 12.0);
ShowSyncHudMsg(id, g_MsgSync2, "[%L]: %s^t^t^t", id, "HUD_CLASS", g_name);
}
}
}
public native_get_user_human_class(id)
{
return g_humanclass[id];
}
public native_register_human_class(const name[], const info[], const model[], hp, speed, Float:gravity, level)
{
// Reached human classes limit
if (g_hclass_i >= sizeof g_hclass_name)
return -1;
// Strings passed byref
param_convert(1)
param_convert(2)
param_convert(3)
// Add the class
copy(g_hclass_name[g_hclass_i], sizeof g_hclass_name[] - 1, name)
copy(g_hclass_info[g_hclass_i], sizeof g_hclass_info[] - 1, info)
copy(g_hclass_model[g_hclass_i], sizeof g_hclass_model[] - 1, model)
g_hclass_hp[g_hclass_i] = hp
g_hclass_spd[g_hclass_i] = speed
g_hclass_grav[g_hclass_i] = gravity
g_hclass_lvl[g_hclass_i] = level
new tSave[40]
formatex(tSave, sizeof tSave - 1, "%s%s", name, info);
replace_all(tSave, sizeof tSave - 1, ";", "")
replace_all(tSave, sizeof tSave - 1, " ", "")
g_hclass_load[g_hclass_i] = tSave;
g_hclass_i++
return g_hclass_i-1;
}
public native_register_zombie_class(const name[], const info[], const model[], const clawmodel[], hp, speed, Float:gravity, Float:knockback, level)
{
if( get_pcvar_num(cvar_removezombie) == 2) return 0;
loadedZombies = true;
param_convert(1)
param_convert(2)
param_convert(3)
param_convert(4)
copy(g_zclass_name[g_zclass_i], sizeof g_zclass_name[] - 1, name)
copy(g_zclass_info[g_zclass_i], sizeof g_zclass_info[] - 1, info)
copy(g_zclass_model[g_zclass_i], sizeof g_zclass_model[] - 1, model)
copy(g_zclass_clawmodel[g_zclass_i], sizeof g_zclass_clawmodel[] - 1, clawmodel)
g_zclass_hp[g_zclass_i] = hp
g_zclass_spd[g_zclass_i] = speed
g_zclass_grav[g_zclass_i] = gravity
g_zclass_kb[g_zclass_i] = knockback
g_zclass_lvl[g_zclass_i] = level
new tSave[40]
formatex(tSave, sizeof tSave - 1, "%s%s", name, info);
replace_all(tSave, sizeof tSave - 1, ";", "")
replace_all(tSave, sizeof tSave - 1, " ", "")
g_zclass_load[g_zclass_i] = tSave;
new g_returnclass_id;
g_returnclass_id = zp_register_zombie_class(g_zclass_name[g_zclass_i], g_zclass_info[g_zclass_i], g_zclass_model[g_zclass_i], g_zclass_clawmodel[g_zclass_i], g_zclass_hp[g_zclass_i] / 2, g_zclass_spd[g_zclass_i], g_zclass_grav[g_zclass_i], g_zclass_kb[g_zclass_i]);
if( g_returnclass_id == -1 )
{
server_print("%s %L", textHeader, LANG_PLAYER, "ERR_BADRETURN");
return -1
}
g_zclass_i++
return g_zclass_i-1;
}
public welcome_msg()
{
zp_colored_print(0, "^x04%s^x01 %L", textHeaderOrig, LANG_PLAYER, "NOTICE_INFO_XP")
}
public logevent_round_start()
{
g_freezetime = false
}
stock fm_get_user_team(id)
{
if (pev_valid(id) != PDATA_SAFE)
return CS_TEAM_UNASSIGNED;
return get_pdata_int(id, OFFSET_CSTEAMS, OFFSET_LINUX);
}
zp_colored_print(target, const message[], any:...)
{
static buffer[512], i, argscount
argscount = numargs()
if (!target)
{
static player
for (player = 1; player <= g_maxplayers; player++)
{
if (!is_user_connected(player))
continue;
static changed[5], changedcount // [5] = max LANG_PLAYER occurencies
changedcount = 0
for (i = 2; i < argscount; i++)
{
if (getarg(i) == LANG_PLAYER)
{
setarg(i, 0, player)
changed[changedcount] = i
changedcount++
}
}
vformat(buffer, sizeof buffer - 1, message, 3)
message_begin(MSG_ONE, g_msgSayText, _, player)
write_byte(player)
write_string(buffer)
message_end()
for (i = 0; i < changedcount; i++)
setarg(changed[i], 0, LANG_PLAYER)
}
}
else
{
for (i = 2; i < argscount; i++)
{
if (getarg(i) == LANG_PLAYER)
setarg(i, 0, target)
}
vformat(buffer, sizeof buffer - 1, message, 3)
message_begin(MSG_ONE, g_msgSayText, _, target)
write_byte(target)
write_string(buffer)
message_end()
}
}
stock drop_weapons(id, dropwhat)
{
static weapons[32], num, i, weaponid
num = 0
get_user_weapons(id, weapons, num)
for (i = 0; i < num; i++)
{
weaponid = weapons[i]
if ((dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == 2 && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))
{
static wname[32], weapon_ent
get_weaponname(weaponid, wname, sizeof wname - 1)
weapon_ent = fm_find_ent_by_owner(-1, wname, id);
set_pev(weapon_ent, PEV_ADDITIONAL_AMMO, fm_get_user_bpammo(id, weaponid))
engclient_cmd(id, "drop", wname)
fm_set_user_bpammo(id, weaponid, 0)
}
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/
poti sa imi faci o clasa de zm si una de human ? am incercat eu cateva dar nu au mers.
0
0
Back to top
EDUTz
[HardcoreAmxxScripter]
Status: Offline
(since 15-08-2021 16:34)
Joined: 27 Dec 2010
Posts: 4306
,
Topics: 244
Location:
Jud. Miserupia, sat Bagadanc
Reputation:
4085
Votes
: 179
Posted: 19-01-2015, 06:23:22
| Translate post to:
... (
Click for more languages
)
AICI
ai arhiva originala, ai si cateva exemple de hm/zm
Pentru pluginuri complicate le fac cu $$ pe paypal/psc. PM
0
0
Back to top
destroi112
[DEV]
Status: Offline
(since 12-03-2020 22:13)
Joined: 24 May 2014
Posts: 4042
,
Topics: 119
Location:
---------
Reputation:
515.9
Votes
: 118
Posted: 21-01-2015, 20:26:59
| Translate post to:
... (
Click for more languages
)
Iti pot face eu doar spune-mi ce fel de clase doresti.
Retired from Amxmodx
0
0
Back to top
Point15
[Mentally Stable]
Status: Offline
(since 01-10-2017 02:51)
Joined: 25 Sep 2014
Posts: 98
,
Topics: 14
Location:
Romania
Reputation:
38.7
Votes
: 2
Posted: 24-01-2015, 15:14:01
| Translate post to:
... (
Click for more languages
)
Am rezolvat , puteti da TC
0
0
Back to top
Topic locked
Topic is closed, you cannot post any messages in it anymore
Locked by
EDUTz
, 24 January 2015 14:42
Freakz Forum Index
->
Trash Bin
->
CS 2006-2019 (Archived)
->
Plugins - Help / Support
The time now is 30-11-2024, 06:31:07
Copyright info
Based on phpBB
ro
/
com
B
Login
I forgot my password
World of Warcraft
Login for more...
Download WoW 7.3.5
Misc
eSports
Achievements
Buy reputation with votes
Reputation trades
Forum rules
Ban list
Members list
User guide (FAQ)
World of Warcraft
View details