Jump to content

cristiii.

Members
  • Content Count

    30
  • Joined

  • Last visited

  • PubCoins

    0 [ Donate ]

Community Reputation

0 Neutral

About cristiii.

Recent Profile Visitors

218 profile views
  1. write_byte( 20 ); // life in 0.1's write_byte( 2 ); // scale in 0.1's write_byte( 50 ); // velocity along vector in 10's write_byte( 10 ); // randomness of velocity in 10's message_end( ); make_knockback( Victim, VictimOrigin, 3 * get_pcvar_float( HarryDamageCvar2 ) ); death_message( id, Victim, 1, "Double Magic Wand" ); } } else { static ClassName[ 32 ]; pev( Victim, pev_classname, ClassName, charsmax( ClassName ) ); if( equal( ClassName, "func_breakable" ) ) if( entity_get_float( Victim, EV_FL_health ) <= 80 ) force_use( id, Victim ); } emit_sound( id, CHAN_WEAPON, HarryHitSound, VOL_NORM, ATTN_NORM, 0, PITCH_NORM ); } public make_knockback( Victim, Float:origin[ 3 ], Float:maxspeed ) { new Float:fVelocity[ 3 ]; kickback( Victim, origin, maxspeed, fVelocity ); entity_set_vector( Victim, EV_VEC_velocity, fVelocity ); return( 1 ); } stock ShakeScreen( id, const Float:iSeconds ) { message_begin( MSG_ONE, get_user_msgid( "ScreenShake" ), { 0, 0, 0 }, id ); write_short( floatround( 4096.0 * iSeconds, floatround_round ) ); write_short( floatround( 4096.0 * iSeconds, floatround_round ) ); write_short( 1<<13 ); message_end( ); } stock FadeScreen( id, const Float:iSeconds, const iRed, const iGreen, const iBlue, const iAlpha ) { message_begin( MSG_ONE, get_user_msgid( "ScreenFade" ), _, id ); write_short( floatround( 4096.0 * iSeconds, floatround_round ) ); write_short( floatround( 4096.0 * iSeconds, floatround_round ) ); write_short( 0x0000 ); write_byte( iRed ); write_byte( iGreen ); write_byte( iBlue ); write_byte( iAlpha ); message_end( ); } stock kickback( ent, Float:fOrigin[ 3 ], Float:fSpeed, Float:fVelocity[ 3 ] ) { new Float:fEntOrigin[ 3 ]; entity_get_vector( ent, EV_VEC_origin, fEntOrigin ); new Float:fDistance[ 3 ]; fDistance[ 0 ] = fEntOrigin[ 0 ] - fOrigin[ 0 ]; fDistance[ 1 ] = fEntOrigin[ 1 ] - fOrigin[ 1 ]; fDistance[ 2 ] = fEntOrigin[ 2 ] - fOrigin[ 2 ]; new Float:fTime =( vector_distance( fEntOrigin, fOrigin ) / fSpeed ); fVelocity[ 0 ] = fDistance[ 0 ] / fTime; fVelocity[ 1 ] = fDistance[ 1 ] / fTime; fVelocity[ 2 ] = fDistance[ 2 ] / fTime; return( fVelocity[ 0 ] && fVelocity[ 1 ] && fVelocity[ 2 ] ); } // stock from "m79" stock death_message( Killer, Victim, ScoreBoard, const Weapon[ ] ) { set_msg_block( get_user_msgid( "DeathMsg" ), BLOCK_SET ); ExecuteHamB( Ham_Killed, Victim, Killer, 2 ); set_msg_block( get_user_msgid( "DeathMsg" ), BLOCK_NOT ); make_deathmsg( Killer, Victim, 0, Weapon ); zp_set_user_ammo_packs( Killer, zp_get_user_ammo_packs( Killer ) + get_pcvar_num( HarryKillAmmoPacks ) ); if( ScoreBoard ) { message_begin( MSG_BROADCAST, get_user_msgid( "ScoreInfo" ) ); write_byte( Killer ); write_short( pev( Killer, pev_frags ) ); write_short( get_user_deaths( Killer ) ); write_short( 0 ); write_short( get_user_team( Killer ) ); message_end( ); message_begin( MSG_BROADCAST, get_user_msgid( "ScoreInfo" ) ); write_byte( Victim ); write_short( pev( Victim, pev_frags ) ); write_short( get_user_deaths( Victim ) ); write_short( 0 ); write_short( get_user_team( Victim ) ); message_end( ); } } stock set_weapon_anim( id, anim ) { set_pev( id, pev_weaponanim, anim ); if( is_user_alive( id ) ) { message_begin( MSG_ONE, SVC_WEAPONANIM, _, id ); write_byte( anim ); write_byte( pev( id, pev_body ) ); message_end( ); } } stock get_damage_body( body, Float:fDamage ) { switch( body ) { case HIT_HEAD: fDamage *= 4.0; case HIT_STOMACH: fDamage *= 1.1; case HIT_CHEST: fDamage *= 1.5; case HIT_LEFTARM: fDamage *= 0.77; case HIT_RIGHTARM: fDamage *= 0.77; case HIT_LEFTLEG: fDamage *= 0.75; case HIT_RIGHTLEG: fDamage *= 0.75; default: fDamage *= 1.0; } return floatround( fDamage ); } // stock from "fakemeta_util" stock fm_get_user_godmode( index ) { new Float:val; pev( index, pev_takedamage, val ); return ( val == DAMAGE_NO ); } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par } */[/sursa] Nume: Harry Potter's Magic Wand Autor: Hades Ownage & YONTU Versiune: 0.0.3 Link oficial: Aici. Instalare: 1. Fisierul Harry_Magic_Wand.sma il puneti in addons/amxmodx/scripting ! 2. Fisierul Harry_Magic_Wand.amxx il puneti in addons/amxmodx/plugins ! 3. Fisierele .spr le puneti in cstrike/sprites ! 4. Fisierele .wav le puneti in cstrike/sound ! 5. Fisierul .mdl le puneti in cstrike/models ! 6. Intrati in fisierul addons/amxmodx/configs/plugins.ini si adaugati la urma: Harry_Magic_Wand.amxx 7. Alti pasi necesari... Cvar-uri (se adauga in fisierul amxmodx\configs\amxx.cfg): harry_damage "80.0" - Cate daune( dmg ) sa provoace bagheta cu click stanga( recomand sa lasati cu zecimala ".0" altfel cade serverul harry_damage2 "135.0" - Cate daune( dmg ) sa provoace bagheta cu click dreapta( recomand sa lasati cu zecimala ".0" altfel cade serverul harry_ammo "500" - Cata munitie sa primeasca la bagheta harry_money_reward "600" - Cati bani sa primeasti bonus cand faci un frag cu bagheta harry_distance "90000" - Pana la ce distanta poti trage cu bagheta harry_cost "10000" - Cati $/puncte/credite sa coste bagheta! Comenzi administrative (se tasteaza in consola si trebuie sa fiti administrator): amx_get_harry < nume > < munitie > - oferi unui jucator bagheta fara a o mai cumpara el din chat! De asemenea ii setezi si cata munitie sa primeasca! Comenzi publice (se tasteaza in joc prin apasarea tastei Y): /magic - cumperi bagheta direct din chat Module necesare (se sterge ; din fata modulului de mai jos; acestea le gasiti in fisierul amxmodx\configs\modules.ini): - CStrike; - Fakemeta; - Hamsandwich; - Engine; [sursa=Imagini] [/sursa] [sursa=Credite]NiHiLaNTh - pentru un stock: sa se salveze fragurile facute cu bagheta Hades Ownage - Plugin extras din Harry vs. Volde( 0.0.1 ) + imbunatatiri facute de mine cyby: compatibilitatea pluginului cu sistemele de credite, puncte, bani sDs|Aragon* : cateva particele din cod[/sursa] Informatii: Pentru Update-uri / Imbunatatiri sau erori intalnite pe parcursul jocului din cauza baghetei, postati in acest topic! Pluginul este finalizat din septembrie 2013 asa ca multa lume il cauta asa ca la cererea mai multor utilizatori l-am postat postat! v0.0.3: M-am gandit sa fac o alta versiune compatibila cu sistemul de credite la lui Askhanar, Aragon, un sistem de puncte oricare, si default, bani. Cautati in sursa liniile #define ASKHANAR_CREDITS //#define ARAGON_CREDITS //#define POINTS //#define MONEY si stergeti "//" din fata sistemului pe care il folositi. Ex: Folosesc sistemul de credite al lui Askhanar. Atunci adaug "//" in fata la //#define MONEY si sterg "//" din fata la #define ASKHANAR_CREDITS ! Have Fun!!!
  2. Descriere: înlocuiește simbolurile # , %(unicode) și eventual + , ^ , & , "(la final de nick) unele fiind blocate de majoritatea plg. de protecție, și de unele noi versiuni de amxx/metamod/engine Descarcare: .AMXX compilat cu .inc de 182(utf8) Descarcă [sursa=SMA] #pragma tabsize 0 #include <amxmodx> #pragma ctrlchar '\' /* 1 - caută pentru mai multe simboluri, precum: ^ / & / + / " (la sf. de nick) orice valoare care nu este egală cu 1 reprezintă ocolirea simbolurilor precizate anterior */ #define EXTRA 0 new cmdx[21] public plugin_init() { if(GetEngineVersion()>=6999) set_fail_state("Ai o versiune avansata a engine-ului, iar acest plugin nu mai este necesar") else if(AMXX_VERSION_NUM>str_to_num("182")) set_fail_state("Ai o versiune avansata a amxmodx-ului, iar acest plugin nu mai este necesar") else if(cvar_exists("reu_version")||GetEngineVersion()<=3000) set_fail_state("Acest plugin nu este necesar pe rehlds") /*register_clcmd("say","chat_handle") register_clcmd("say_team","chat_handle2")*/ } public client_connect(id) { new name[32] get_user_info(id,"name",name,charsmax(name)) check_param(id,name,charsmax(name),1) } public client_infochanged(id) { new newname[32],oldname[32] get_user_info(id,"name",newname,charsmax(newname)) get_user_name(id,oldname,charsmax(oldname)) if(!equal(oldname,newname)) check_param(id,newname,charsmax(newname),1) } public client_command(id) { new cmd[9],Said[130],said[2] read_argv(0,cmd,charsmax(cmd)) read_argv(1,said,1) if(said[0]=='@') return PLUGIN_CONTINUE read_args(Said,charsmax(Said)) remove_quotes(Said) if(equali(cmd,"say_team",8)||equali(cmd,"say",3)) copy(cmdx,charsmax(cmdx),cmd) if(equali(cmd,"say_team",8)) check_param(id,Said,charsmax(Said),2) else if(equali(cmd,"say",3)) check_param(id,Said,charsmax(Said),2) return PLUGIN_CONTINUE } /* public chat_handle(id) { new args[195] read_args(args,charsmax(args)) remove_quotes(args) check_param(id,args,charsmax(args),2) } public chat_handle2(id) { new args[195] read_args(args,charsmax(args)) remove_quotes(args) check_param(id,args,charsmax(args),3) } */ check_param(const id,fc[],fc_max,number) { switch(number) { case 1: { if(containi(fc,"%")!=-1) { replace_all(fc,fc_max,"%","%") set_user_info(id,"name",fc) } if(containi(fc,"#")!=-1) { replace_all(fc,fc_max,"#","﹟") set_user_info(id,"name",fc) } #if EXTRA==1 if(containi(fc,"+")!=-1) { replace_all(fc,fc_max,"+"," + ") set_user_info(id,"name",fc) } if(containi(fc,"&")!=-1) { replace_all(fc,fc_max,"&","&") set_user_info(id,"name",fc) } if(containi(fc,"\"")!=-1) { replace_all(fc,fc_max,"\"","^") set_user_info(id,"name",fc) } new lenx=strlen(fc)-1 if(lenx>0) { if(equali(fc[lenx],"\"")) { fc[lenx]='^'//s3x set_user_info(id,"name",fc) } } #endif } case 2: { if(containi(fc,"%")!=-1) { replace_all(fc,fc_max,"%","%") engclient_cmd(id,cmdx,fc) } if(containi(fc,"#")!=-1) { replace_all(fc,fc_max,"#","﹟") engclient_cmd(id,cmdx,fc) } #if EXTRA==1 if(containi(fc,"+")!=-1) { replace_all(fc,fc_max,"+"," + ") engclient_cmd(id,cmdx,fc) } if(containi(fc,"&")!=-1) { replace_all(fc,fc_max,"&","&") engclient_cmd(id,cmdx,fc) } if(containi(fc,"\"")!=-1) { replace_all(fc,fc_max,"\"","^") engclient_cmd(id,cmdx,fc) } #endif } } } GetEngineVersion() { new VersionPonter,VersionString[24],Pos new const VersionSizeNum=4 VersionPonter=get_cvar_pointer("sv_version") get_pcvar_string(VersionPonter,VersionString,charsmax(VersionString)) Pos=strlen(VersionString)-VersionSizeNum format(VersionString,VersionSizeNum,VersionString[Pos]) return str_to_num(VersionString) } [/sursa] Nume: - Versiune: 17.02.2019 / 12:50 Instalare: 1. Fisierul nume_plugin.sma il puneti in addons/amxmodx/scripting 2. Fisierul nume_plugin.amxx il puneti in addons/amxmodx/plugins 3. Intrati in fisierul addons/amxmodx/configs/plugins.ini si adaugati la urma: nume_plugin.amxx 4. Să fie primul în lista de plugine
  3. Descriere: Deci , stiu ca toti cautati o rezolvare la o anumita problema : daca adaug vip (cu flag) la cineva , sau daca scot flagu de vip acces de la cineva , acesta nu va mai aparea in who. Sau alta chestie : daca am pluginu de VIP FREE pornit pe server , nu vor mai aparea gradele adminilor calumea , deoarece pe server s-a pus default flag pe "t" de exemplu.. AM REZOLVAREA CHIAR AICI!! Descarcare: Asa , deci sa incepem (sa explicam pasii pe care i-am facut odata cu creearea acestui plugin) #include <amxmodx> #define MAX_GROUPS 10 new g_groupNames[MAX_GROUPS][] = { //aici se afla numele fiecarui grad "[1] => Fondator <=", "[2] => Owner <=", "[3] => Co-Owner <=", "[4] => God <=", "[5] => Super-Moderator <=", "[6] => Moderator <=", "[7] => Administrator <=", "[8] => Helper <=", "[9] => V.I.P <=", "[10] => Slot <=" } new g_groupFlags[MAX_GROUPS][] = { //aici se afla flagurile doar pentru admine , fara flag-ul t (flag-ul t este cel mai folosit pentru VIP ACCES , eu l-am luat ca exemplu pe acesta). "abcdefghijklmnopqrsu", "abcdefghijkmnopqrsu", "abcdefgijmnopqrsu", "abcdefgijmnopqrs", "abcdefgijmnopqr", "abcdefijmnopq", "bcdefijmno", "bcefijmno", "bt", "b" } new g_groupFlagsVIP[MAX_GROUPS][] = { //aici este creeat grupul de flaguri pentru admine+ flagul t. vip acces "abcdefghijklmnopqrsut", "abcdefghijkmnopqrsut", "abcdefgijmnopqrsut", "abcdefgijmnopqrst", "abcdefgijmnopqrt", "abcdefijmnopqt", "bcdefijmnot", "bcefijmnot", "bt", "bt" } new g_groupFlagsValue[MAX_GROUPS] new g_groupFlagsValueVIP[MAX_GROUPS] //am creeat un nou grup pe care pluginul trebuie sa il citeasca public plugin_init() { register_plugin("ultimate_who", "2.0", "CS.UDP.RO") register_clcmd("say /who","cmdWho") for(new i = 0; i < MAX_GROUPS; i++) { g_groupFlagsValue[i] = read_flags(g_groupFlags[i]) g_groupFlagsValueVIP[i] = read_flags(g_groupFlagsVIP[i]) //citeste flagurile adminelor + vip } } public cmdWho(id) { new players[32], inum, player, name[32], i, a get_players(players, inum) console_print(id, "-------------------------------") console_print(id, "=========ADMINS ONLINE=========") console_print(id, "-------------------------------") for(i = 0; i < MAX_GROUPS; i++) { console_print(id, "-%s-", g_groupNames[i]) for(a = 0; a < inum; ++a) { player = players[a] get_user_name(player, name, 31) if(get_user_flags(player) == g_groupFlagsValue[i] || get_user_flags(player) == g_groupFlagsValueVIP[i]) //arata si adminii fara vip si pe cei cu vip { console_print(id, "%s", name) } } } console_print(id, "=========NUME SERVER=========") console_print(id, "-------------------------------") client_cmd(id,"toggleconsole") return PLUGIN_HANDLED } Nume: ULTIMATE WHO (BUG FOR VIP ACCES FIXED) Versiune: 2.0 by LNd # UDP NETWORK Link oficial: aici Instalare: 1. Fisierul ultimate_who.sma il puneti in addons/amxmodx/scripting 2. Fisierul ultimate_who.amxx il puneti in addons/amxmodx/plugins 3. Intrati in fisierul addons/amxmodx/configs/plugins.ini si adaugati la urma: ultimate_who.amxx 4. Alti pasi necesari.... Cvar-uri (se adauga in fisierul amxmodx\configs\amxx.cfg): Imagini: -
  4. Descriere: Un plugin destul de avansat ce ofera slot printr-o comanda simpla dupa ce ati jucat un anumit timp pe server. Minutele nu cresc celor care nu si-au ales echipa sau sunt spectatori. Restul vedeti din poze si din script. Descarcare: SMA #include <amxmodx> #include <amxmisc> #include <hamsandwich> #include <nvault> enum { MIN = 1, HOURS = 60, DAYS = 1440 } const TIME_HANDLED = 97; #define CONFIGURATION_FILE "advanced_slot.ini" #define LOG_FILE "slot_register.log" #define LOG_DEVELOPER "slot_developer.log" #define flag_get(%1,%2) (%1 & (1 << (%2 & 31))) #define flag_set(%1,%2) %1 |= (1 << (%2 & 31)) #define flag_unset(%1,%2) %1 &= ~(1 << (%2 & 31)) #define TASK_MINUTES 10101 #define ID_MINUTES (taskid - TASK_MINUTES) new g_minutes[33], g_name[33][32], g_developeridt[33], g_loaded, g_isregistered, g_isdeveloper; new g_nvaultsave, g_msg_saytext, g_maxplayers, g_fw_load_pre, g_fw_load_post, bool:g_settings_loaded = false; new g_hours_need, tag_string[32], Array:g_developer, db_name[32], g_access_flag, field[10]; public plugin_init() { register_plugin("Advanced Slot Free", "2.0", "cyby & S.Cosmin"); RegisterHam(Ham_Spawn, "player", "spawn_post", 1); register_clcmd("say /slot", "slot_cmd"); register_clcmd("say /ore", "timeplayed_cmd"); register_clcmd("PASSWORD_SLOT", "password_for_slot"); register_clcmd("say /ored", "developer_menu"); register_clcmd("ADD_MINUTES", "add_developer_min"); register_clcmd("REM_MINUTES", "rem_developer_min"); g_maxplayers = get_maxplayers(); g_msg_saytext = get_user_msgid("SayText"); g_fw_load_pre = CreateMultiForward("get_loadtime_pre", ET_IGNORE, FP_CELL); g_fw_load_post = CreateMultiForward("get_loadtime_post", ET_IGNORE, FP_CELL); } public plugin_cfg() { g_developer = ArrayCreate(32, 1); load_conf_extern_files(); set_task(1.0, "take_nvault"); } public take_nvault() { g_nvaultsave = nvault_open(db_name); if(g_nvaultsave == INVALID_HANDLE) set_fail_state("[Advanced Slot Free] Eroare la deschiderea bazei de date."); for(new i = 1; i <= g_maxplayers; i++) { if(!is_user_connected(i)) continue; takedata(i); } } public load_conf_extern_files() { g_settings_loaded = false; g_hours_need = native_load_setting_int(CONFIGURATION_FILE, "Setari Rezervare", "HOURS SLOT"); native_load_setting_string(CONFIGURATION_FILE, "Setari Rezervare", "TAG", tag_string, charsmax(tag_string)); native_load_setting_string_arr(CONFIGURATION_FILE, "Setari Rezervare", "DEVELOPER", g_developer); native_load_setting_string(CONFIGURATION_FILE, "Setari Rezervare", "NVAULT NAME", db_name, charsmax(db_name)); new flags[32]; native_load_setting_string(CONFIGURATION_FILE, "Setari Rezervare", "FLAG REGISTER", flags, charsmax(flags)); g_access_flag = read_flags(flags); native_load_setting_string(CONFIGURATION_FILE, "Setari Rezervare", "FIELD", field, charsmax(field)); server_print("[Advanced Slot Free] Setarile au fost preluate cu succes."); g_settings_loaded = true; } public plugin_natives() { register_native("get_registered", "native_get_registered", 1); register_native("get_developer", "native_get_developer", 1); register_native("get_playedtime", "native_get_string_time", 1); register_native("get_loadedtime", "native_get_loadedtime", 1); register_native("get_inttime", "native_get_int_time", 1); } public native_get_registered(id) { if(!flag_get(g_loaded, id)) return false; if(flag_get(g_isregistered, id)) return true; return false; } public native_get_developer(id) { if(!flag_get(g_loaded, id)) return false; if(flag_get(g_isdeveloper, id)) return true; return false; } public native_get_string_time(plugin_id, param_nums) { if(param_nums != 3) return -1; new id = get_param(1); if(!flag_get(g_loaded, id)) return -1; new time_played[32]; formatex(time_played, charsmax(time_played), "%s", convert_minutes(id)); set_string(2, time_played, get_param(3)); return 1; } public native_get_loadedtime(id) { if(flag_get(g_loaded, id)) return true; return false; } public native_get_int_time(id, what) { if(!flag_get(g_loaded, id)) return -1; if(what == MIN) return g_minutes[id]; new extract = 0, int_min = g_minutes[id]; while(int_min >= what) { extract++; int_min -= what; } return extract; } public plugin_end() nvault_close(g_nvaultsave); public client_putinserver(id) { get_user_name(id, g_name[id], charsmax(g_name[])); set_register(id); set_developer(id); } public client_disconnected(id) { g_developeridt[id] = 0; savedata(id); flag_unset(g_isregistered, id) flag_unset(g_isdeveloper, id) } public spawn_post(id) { if(!is_user_alive(id) || !g_settings_loaded) return; if(!flag_get(g_loaded, id)) { new dummy; ExecuteForward(g_fw_load_pre, dummy, id); if(dummy >= TIME_HANDLED) return; takedata(id); set_task(60.0, "increase_minutes", id+TASK_MINUTES, _, _, "b"); flag_set(g_loaded, id); ExecuteForward(g_fw_load_post, dummy, id); } } public slot_cmd(id) { if(flag_get(g_isregistered, id)) { color(id, ".v%s.g Acest nume este deja inregistrat!", tag_string); return PLUGIN_HANDLED; } if((g_minutes[id] / 60) < g_hours_need) { color(id, ".v%s.g Ai nevoie de.v %d.g ore pentru slot!", tag_string, g_hours_need); return PLUGIN_HANDLED; } client_cmd(id, "messagemode PASSWORD_SLOT"); color(id, ".v%s.g Parola trebuie sa contina doar litere!", tag_string); color(id, ".v%s.g Ti-a aparut sus loc pentru a scrie parola!", tag_string); return PLUGIN_HANDLED; } public timeplayed_cmd(id) { if(!flag_get(g_loaded, id)) { color(id, ".v%s.g Ne pare rau, dar nu ti-am preluat inca orele!", tag_string); return PLUGIN_HANDLED; } color(id, ".v%s.g Ai jucat pana acum.v %s.g!", tag_string, convert_minutes(id)); return PLUGIN_HANDLED; } public developer_menu(id) { if(!flag_get(g_isdeveloper, id)) return PLUGIN_CONTINUE; new menu = menu_create("\rDeveloper Menu", "developer_handler"); menu_additem(menu, "\yAdaugă minute", ""); menu_additem(menu, "\yȘterge minute", ""); menu_display(id, menu, 0); return PLUGIN_HANDLED; } public developer_handler(id, menu, item) { if(!flag_get(g_isdeveloper, id)) { menu_destroy(menu); return PLUGIN_HANDLED; } if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_HANDLED; } switch(item) { case 0: open_addmin(id); case 1: open_remmin(id); } menu_destroy(menu); return PLUGIN_HANDLED; } public open_addmin(id) { if(!flag_get(g_isdeveloper, id)) return PLUGIN_HANDLED; new menu = menu_create("\yAdauga minute la jucatori", "add_minutes"); new menu_item[100], userid[32]; for(new i = 1; i <= g_maxplayers; i++) { if(!is_user_connected(i) || !flag_get(g_loaded, i)) continue; formatex(menu_item, charsmax(menu_item), "\r%s - \y%s", g_name, convert_minutes(i)); formatex(userid, charsmax(userid), "%d", get_user_userid(i)); menu_additem(menu, menu_item, userid, 0); } menu_display(id, menu, 0); return PLUGIN_HANDLED; } public add_minutes(id, menu, item) { if(!flag_get(g_isdeveloper, id)) { menu_destroy(menu); return PLUGIN_HANDLED; } if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_HANDLED; } new menu_data[6], menu_name[64]; new _access, item_callback; menu_item_getinfo(menu, item, _access, menu_data, charsmax(menu_data), menu_name, charsmax(menu_name), item_callback); new userid = str_to_num(menu_data); new player = find_player("k", userid); if(player) { client_cmd(id, "messagemode ADD_MINUTES"); g_developeridt[id] = player; color(id, ".v%s.g L-ai selectat pe.v %s.g!", tag_string, g_name[player]); } else { color(id, ".v%s.g Jucatorul nu exista!", tag_string); g_developeridt[id] = 0; } menu_destroy(menu); return PLUGIN_HANDLED; } public open_remmin(id) { if(!flag_get(g_isdeveloper, id)) return PLUGIN_HANDLED; new menu = menu_create("\yAdauga minute la jucatori", "rem_minutes"); new menu_item[100], userid[32]; for(new i = 1; i <= g_maxplayers; i++) { if(!is_user_connected(i) || !flag_get(g_loaded, i)) continue; formatex(menu_item, charsmax(menu_item), "\r%s - \y%s", g_name, convert_minutes(i)); formatex(userid, charsmax(userid), "%d", get_user_userid(i)); menu_additem(menu, menu_item, userid, 0); } menu_display(id, menu, 0); return PLUGIN_HANDLED; } public rem_minutes(id, menu, item) { if(!flag_get(g_isdeveloper, id)) { menu_destroy(menu); return PLUGIN_HANDLED; } if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_HANDLED; } new menu_data[6], menu_name[64]; new _access, item_callback; menu_item_getinfo(menu, item, _access, menu_data, charsmax(menu_data), menu_name, charsmax(menu_name), item_callback); new userid = str_to_num(menu_data); new player = find_player("k", userid); if(player) { client_cmd(id, "messagemode REM_MINUTES"); g_developeridt[id] = player; color(id, ".v%s.g L-ai selectat pe.v %s.g!", tag_string, g_name[player]); } else { color(id, ".v%s.g Jucatorul nu există!", tag_string); g_developeridt[id] = 0; } menu_destroy(menu); return PLUGIN_HANDLED; } public add_developer_min(id) { if(!flag_get(g_isdeveloper, id)) { g_developeridt[id] = 0; return PLUGIN_HANDLED; } if(!is_user_connected(g_developeridt[id]) || !flag_get(g_loaded, g_developeridt[id])) { color(id, ".v%s.g Jucatorul care l-ai selectat a parasit serverul!", tag_string); g_developeridt[id] = 0; return PLUGIN_HANDLED; } new amount[16]; read_args(amount, charsmax(amount)); remove_quotes(amount); new much = str_to_num(amount); if(much <= 0) { color(id, ".v%s.g Suma introdusa este mai mica sau egala cu 0!", tag_string); g_developeridt[id] = 0; return PLUGIN_HANDLED; } g_minutes[g_developeridt[id]] += much; color(0, ".v%s.g Developer.v %s.g ii adauga.v %s %d minute.g!", tag_string, g_name[id], g_name[g_developeridt[id]], much); log_developer(id, g_developeridt[id], much, 1); g_developeridt[id] = 0; return PLUGIN_HANDLED; } public rem_developer_min(id) { if(!flag_get(g_isdeveloper, id)) { g_developeridt[id] = 0; return PLUGIN_HANDLED; } if(!is_user_connected(g_developeridt[id]) || !flag_get(g_loaded, g_developeridt[id])) { color(id, ".v%s.g Jucatorul care l-ai selectat a parasit serverul!", tag_string); g_developeridt[id] = 0; return PLUGIN_HANDLED; } new amount[16]; read_args(amount, charsmax(amount)); remove_quotes(amount); new much = str_to_num(amount); if(much <= 0) { color(id, ".v%s.g Suma introdusa este mai mica sau egala cu 0!", tag_string); g_developeridt[id] = 0; return PLUGIN_HANDLED; } g_minutes[g_developeridt[id]] -= much; color(0, ".v%s.g Developer.v %s.g ii scade.v %s.v %d minute.g!", tag_string, g_name[id], g_name[g_developeridt[id]], much); log_developer(id, g_developeridt[id], much, 2); g_developeridt[id] = 0; return PLUGIN_HANDLED; } public client_infochanged(id) { new name[32]; get_user_info(id, "name", name, charsmax(name)); if(!(equali(name, g_name[id]))) { savedata(id); formatex(g_name[id], charsmax(g_name[]), "%s", name); set_register(id); set_developer(id); } } public password_for_slot(id) { new password[17]; read_args(password, charsmax(password)); remove_quotes(password); if(!check_string(password)) { color(id, ".v%s.g Parola nu respecta regulile!", tag_string); color(id, ".v%s.g Parola trebuie sa contină doar litere!", tag_string); return PLUGIN_HANDLED; } register_slot(id, password); return PLUGIN_HANDLED; } public increase_minutes(taskid) { if(get_user_team(ID_MINUTES) == 0 || get_user_team(ID_MINUTES) == 3 || !flag_get(g_loaded, ID_MINUTES)) return; g_minutes[ID_MINUTES]++; } public takedata(id) { if(flag_get(g_loaded, id)) return; new vaultkey[32], vaultdata[256]; formatex(vaultkey, charsmax(vaultkey), "%s", g_name[id]); formatex(vaultdata, charsmax(vaultdata), "^"%i^"", g_minutes[id]); nvault_get(g_nvaultsave, vaultkey, vaultdata, charsmax(vaultdata)); new minutes[32]; parse(vaultdata, minutes, charsmax(minutes)); g_minutes[id] = str_to_num(minutes); } public savedata(id) { if(!flag_get(g_loaded, id)) return; new vaultkey[32], vaultdata[256]; formatex(vaultkey, charsmax(vaultkey), "%s", g_name[id]); formatex(vaultdata, charsmax(vaultdata), "^"%i^"", g_minutes[id]); nvault_set(g_nvaultsave, vaultkey, vaultdata); g_minutes[id] = 0; flag_unset(g_loaded, id) remove_task(id+TASK_MINUTES); } public register_slot(id, const password[]) { new line[192], configsdir[128], flag[32]; get_flags(g_access_flag, flag, charsmax(flag)); formatex(line, charsmax(line), "^"%s^" ^"%s^" ^"%s^" ^"a^" ; Slot de la /slot cu %d ore", g_name[id], password, flag, g_hours_need); get_configsdir(configsdir, charsmax(configsdir)); formatex(configsdir, charsmax(configsdir), "%s/users.ini", configsdir); write_file(configsdir, line, -1); color(id, ".v%s.g Ai luat slot pentru.v %d.g de joc!", tag_string, g_hours_need); color(id, ".v%s.g Parola ta este:.v %s.g!", tag_string, password); set_user_info(id, field, password); color(0, ".v%s.g Felicitari lui.v %s.g! Si-a luat slot pentru.v %d ore jucate.g!", tag_string, g_name[id], g_hours_need); log_slot(id); flag_set(g_isregistered, id) server_cmd("amx_reloadadmins"); } stock convert_minutes(id) { new szminutes[32], len = 0; new days, hours; new actual_minutes = g_minutes[id]; while(actual_minutes >= 1440) { days++; actual_minutes -= 1440; } while(actual_minutes >= 60) { hours++; actual_minutes -= 60; } if(days > 0) len += formatex(szminutes[len], charsmax(szminutes) - len, "%d zi%s ", days, days == 1 ? "" : "le"); if(hours > 0) len += formatex(szminutes[len], charsmax(szminutes) - len, "%d or%s ", hours, hours == 1 ? "a" : "e"); if(actual_minutes > 0) len += formatex(szminutes[len], charsmax(szminutes) - len, "%d minut%s", actual_minutes, actual_minutes == 1 ? "" : "e"); if(!days && !hours && actual_minutes == 0) len += formatex(szminutes[len], charsmax(szminutes) - len, "nimic"); return szminutes; } stock bool:check_string(const string[]) { new len = strlen(string); if(len < 3) return false; if(len > 15) return false; new bool:isntright = false; for(new i = 1; i <= len; i++) { if(!is_letter(string)) { isntright = true; break; } } if(isntright) return false; return true; } stock bool:is_letter(u) { if(u >= 65 || u <= 90) return true; if(u >= 97 || u <= 122) return true; return false; } stock color(const id, const input[], any:...) { new count = 1, players[32]; static msg[191]; vformat(msg, 190, input, 3); replace_all(msg, 190, ".v", "^4"); replace_all(msg, 190, ".g", "^1"); replace_all(msg, 190, ".e", "^3"); if(id) players[0] = id; else get_players(players, count, "ch") { for (new i = 0; i < count; i++) { if(is_user_connected(players)) { message_begin(MSG_ONE_UNRELIABLE, g_msg_saytext, _, players); write_byte(players); write_string(msg); message_end(); } } } } stock set_developer(id) { flag_unset(g_isdeveloper, id) new name[32]; for(new i = 0; i < ArraySize(g_developer); i++) { ArrayGetString(g_developer, i, name, charsmax(name)); if(equali(g_name[id], name)) { flag_set(g_isdeveloper, id) break; } } } stock set_register(id) { if(!is_user_connected(id)) flag_unset(g_isregistered, id) if(get_user_flags(id) & g_access_flag) flag_set(g_isregistered, id) else flag_unset(g_isregistered, id) } stock log_slot(id) { new content[192], ip[35], authid[34]; get_user_ip(id, ip, charsmax(ip), 1); get_user_authid(id, authid, charsmax(authid)); formatex(content, charsmax(content), "%s [IP: %s | STEAM: %s] si-a inregistrat numele, ore: %s", g_name[id], ip, authid, convert_minutes(id)); log_to_file(LOG_FILE, content); } stock log_developer(admin, id, time, type) { new content[192], ip[35], authid[34]; get_user_ip(admin, ip, charsmax(ip), 1); get_user_authid(admin, authid, charsmax(authid)); switch(type) { case 1: formatex(content, charsmax(content), "Developer: %s [IP: %s | STEAM: %s] ii ofera %d minute lui %s. [timp total: %s]", g_name[admin], ip, authid, time, g_name[id], convert_minutes(id)); case 2: formatex(content, charsmax(content), "Developer: %s [IP: %s | STEAM: %s] ii scoate %d minute lui %s. [timp total: %s]", g_name[admin], ip, authid, time, g_name[id], convert_minutes(id)); } log_to_file(LOG_DEVELOPER, content); } // Credite MeRcyLeZZ - pentru https://forums.alliedmods.net/showthread.php?t=243202 public native_load_setting_int(const filename[], const section[], const key[]) { // Open file for read new path[64], file, file_name[64]; formatex(file_name, charsmax(file_name), "%s", filename); OpenCustomFileRead(path, charsmax(path), file_name, file); new section_str[64]; formatex(section_str, charsmax(section_str), "%s", section); SectionExists(file, section_str) // Try to find key in section new keypos_start, keypos_end, key_str[64]; formatex(key_str, charsmax(key_str), "%s", key); KeyExists(file, key_str, keypos_start, keypos_end); new value[16]; SeekReturnValues(file, keypos_start, value, charsmax(value)); new valoare = str_to_num(value); return valoare; } public native_load_setting_string(const filename[], const section[], const key[], setting_string[], len) { // Open file for read new path[64], file, file_str[64]; formatex(file_str, charsmax(file_str), "%s", filename); OpenCustomFileRead(path, charsmax(path), file_str, file) // Try to find section new section_str[64]; formatex(section_str, charsmax(section_str), "%s", section); SectionExists(file, section_str) // Try to find key in section new keypos_start, keypos_end, key_str[64]; formatex(key_str, charsmax(key_str), "%s", key); KeyExists(file, key_str, keypos_start, keypos_end); // Return string by reference new value[128] SeekReturnValues(file, keypos_start, value, charsmax(value)) formatex(setting_string, len, "%s", value); // Value succesfully retrieved fclose(file); return true; } public native_load_setting_string_arr(const filename[], const section[], const key[], Array:array_handle) { // Open file for read new path[64], file, file_str[64]; formatex(file_str, charsmax(file_str), "%s", filename); if (!OpenCustomFileRead(path, charsmax(path), file_str, file)) return false; // Try to find section new section_str[64]; formatex(section_str, charsmax(section_str), "%s", section); if (!SectionExists(file, section_str)) { fclose(file) return false; } // Try to find key in section new keypos_start, keypos_end, key_str[64]; formatex(key_str, charsmax(key_str), "%s", key); if (!KeyExists(file, key_str, keypos_start, keypos_end)) { fclose(file) return false; } // Return array new values[1024] SeekReturnValues(file, keypos_start, values, charsmax(values)) ParseValuesArrayString(values, charsmax(values), array_handle) // Values succesfully retrieved fclose(file) return true; } OpenCustomFileRead(path[], len1, filename[], &file, create = false) { // Build customization file path get_configsdir(path, len1) format(path, len1, "%s/%s", path, filename) // File not present, create new file? if (!file_exists(path)) { if (create) write_file(path, "", -1) else return false; } // Open customization file for reading file = fopen(path, "rt") if(!file) return false; return true; } SectionExists(file, setting_section[]) { // Seek to setting's section new linedata[96], section[64] while (!feof(file)) { // Read one line at a time fgets(file, linedata, charsmax(linedata)) // Replace newlines with a null character replace(linedata, charsmax(linedata), "^n", "") // New section starting if (linedata[0] == '[') { // Store section name without braces copyc(section, charsmax(section), linedata[1], ']') // Is this our setting's section? if (equal(section, setting_section)) return true; } } return false; } KeyExists(file, setting_key[], &keypos_start, &keypos_end) { // Seek to setting's key new linedata[96], key[64] while (!feof(file)) { // Read one line at a time keypos_start = ftell(file) fgets(file, linedata, charsmax(linedata)) // Replace newlines with a null character replace(linedata, charsmax(linedata), "^n", "") // Blank line or comment if (!linedata[0] || linedata[0] == ';') continue; // Section ended? if (linedata[0] == '[') break; // Get key keypos_end = ftell(file) copyc(key, charsmax(key), linedata, '=') trim(key) // Is this our setting's key? if (equal(key, setting_key)) return true; } return false; } SeekReturnValues(file, keypos_start, values[], len1) { // Seek to key and parse it new linedata[1024], key[64] fseek(file, keypos_start, SEEK_SET) fgets(file, linedata, charsmax(linedata)) // Replace newlines with a null character replace(linedata, charsmax(linedata), "^n", "") // Get values strtok(linedata, key, charsmax(key), values, len1, '=') trim(values) } ParseValuesArrayString(values[], len1, Array:array_handle) { // Parse values new current_value[128] while (values[0] != 0 && strtok(values, current_value, charsmax(current_value), values, len1, ',')) { // Trim spaces trim(current_value) trim(values) // Add to array ArrayPushString(array_handle, current_value) } } [sursa=advanced_slot.ini - addons/amxmodx/configs][Setari Rezervare] (setari care sunt preluate la fiecare schimbare de harta fara a fi nevoita modificata sursa) HOURS SLOT = 10 TAG = [SLOT] DEVELOPER = cyby, cosmin NVAULT NAME = hours_played FLAG REGISTER = b FIELD = _pw // ca sa mai adaugi developeri, separi cu virgula, deci nu ai voie sa adaugi developeri cu virgula la nume[/sursa] Nume: Advanced Slot Versiune: 2.0 Link oficial: acesta Autor: cyby & S.Cosmin Changelog: 1.0 - a fost creat. 1.1 - nu mai poti dezactiva developer. - poti schimba numele pe server si sa preia automat la urmatorul spawn. - facusem o prostie la calculul pe ore, functioneaza normal. 2.0 - citire a setarilor prin fisiere externe fara a fi nevoit sa-l recompilezi - posibilitatea schimbarii cu ce flaguri doriti si cate doriti. - adaugare native pentru pluginuri externe -- get_registered(id) - preia daca are slot -- get_developer(id) - preia daca e developer -- get_playedtime(id, string, len) - seteaza in string cat timp ai jucat sub forma [zile, ore, minute] -- get_loadedtime(id) - preia daca jucatorul a preluat timpul jucat din baza de date -- get_inttime(id, time) - preia timpul dupa impartitor, ai 3 exemple in include: enum { MIN = 1, HOURS = 60, DAYS = 1440 } forward get_loadtime_pre(id) - inainte sa preia timpul [poti bloca in caz ca doresti sa faci un sub-plugin ca banat in sistemul de timp prin return TIME_HANDLED; forward get_loadtime_post(id) - dupa preluare, poti oferi anumite avantaje printr-un sub plugin - inserarea in log cu conturile create [nume, steam, ip, cat timp a avut la inregistrare] in fisierul slot_register.log din logs. - inserarea in log a comenzilor developerilor in fisierul slot_developer.log din logs. - trecerea din variabile in biti. Instalare: 1. Fisierul advanced_slot.sma il puneti in addons/amxmodx/scripting 2. Fisierul advanced_slot.amxx il puneti in addons/amxmodx/plugins 3. Fisierul advanced_slot.inc il puneti in addons/amxmodx/scripting/include 4. Fisierul advanced_slot.ini il puneti in addons/amxmodx/configs 5. Intrati in fisierul addons/amxmodx/configs/plugins.ini si adaugati la urma: advanced_slot.amxx Comenzi publice (se tasteaza in joc prin apasarea tastei Y): /ore /slot /ored - doar pentru developeri. Module necesare (se sterge ; din fata modulului de mai jos; acestea le gasiti in fisierul amxmodx\configs\modules.ini): - hamsandwich - nvault Informatii necesare: Fisierul advanced_slot.ini din configs poate fi modificat iar el este reluat la fiecare change map cu modificarile aduse de tine fara a fi nevoit sa modifici sursa. Unde modific orele pentru slot? HOURS SLOT = 10 Unde modific TAG-ul in chat? TAG = [AMXX] Unde modific developerii? DEVELOPER = cyby Atentie: Ei trebuie adaugati in cazul in care sunt mai multi cu virgula. Exemplu: DEVELOPER = cyby, florinel salam Daca doresc sa schimb numele la salvare, unde o schimb? NVAULT NAME = hours_played Vreau sa schimb/adaug/scot flag-uri pentru cei inregistrati. FLAG REGISTER = b La server nu am setinfo _pw, unde schimb? FIELD = _pw Imagini: [sursa=]Orele jucate [comanda /ore] Developer Menu [comanda /ored] Developer Menu [comanda /ored] Developer Menu - utilizat [comanda /ored] Slot adaugat [comanda /slot] Comanda slot cand am deja slot [comanda /slot] Users.ini [/sursa]
  5. Descriere: Stiti si voi ce e nightcrawler mod Descarcare: [sursa=1.0.0]/* * Bomba a fost stearsa. * Acum tero pot fii invizibili atata timp cat nu isi iau dmg sau nu au knife in mana // credite ConnorMcLeod * Am facut team swap * Acum night au viteza de 1000 * Acum cand un night primeste dmg nu mai este inv, dupa 2 secunde daca nu isi primeste iar dmg atunci o sa fie iar inv * Acum nu se mai poate cumpara nimic din buy * * * */ #include <amxmodx> #include <amxmisc> #include <cstrike> #include <hamsandwich> #include <fakemeta> #include <fun> #include <engine> #include <nightcrawler> #define MAX_PLAYERS 32 new const PLUGIN[ ] = "Nightcrawler Main", VERSION[ ] = "1.0", AUTHOR[ ] = "Diversity" new Float:fl_NightGrav = 0.375, Float:fl_NightSpeed = 1000.0 new g_iPickUp = 2 public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) RegisterHam(Ham_Spawn, "player", "OnPlayerSpawn", 1) RegisterHam(Ham_Spawn, "hostage_entity", "Hostage_Spawn") RegisterHam(Ham_TakeDamage, "player", "OnPlayerTakeDamage", 1) RegisterHam(Ham_Item_PreFrame, "player", "Player_ResetMaxSpeed", 1) RegisterHam(Ham_Touch, "weaponbox", "GroundWeapon_Touch") RegisterHam(Ham_Touch, "armoury_entity", "GroundWeapon_Touch") RegisterHam(Ham_Touch, "weapon_shield", "GroundWeapon_Touch") register_event("CurWeapon", "CurWeapon", "be", "1=1") register_event("HLTV", "NewRound", "a", "1=0", "2=0") register_message(get_user_msgid("ScoreAttrib"), "Message_ScoreAttrib") register_message(get_user_msgid("SendAudio"), "Message_SendAudio") new enT = create_entity("info_target") set_pev(enT, pev_classname, "check_speed") set_pev(enT, pev_nextthink, get_gametime() + 0.1) register_think("check_speed", "Set_Night_INV") if(get_cvar_float("sv_maxspeed") < fl_NightSpeed) set_cvar_float("sv_maxspeed", fl_NightSpeed) } public plugin_precache() { new Entity = create_entity("info_map_parameters") DispatchKeyValue(Entity, "buying", "3") DispatchSpawn(Entity) } public pfn_keyvalue(Entity) { new ClassName[20], Anyf[2] copy_keyvalue(ClassName, charsmax(ClassName), Anyf, charsmax(Anyf), Anyf, charsmax(Anyf)) if(equal(ClassName, "info_map_parameters")) { remove_entity(Entity) return PLUGIN_HANDLED } return PLUGIN_CONTINUE } public OnPlayerSpawn(playerid) { if(!is_user_connected(playerid)) return strip_user_weapons_ex(playerid) if(__get_user_team(playerid) == Night) { set_user_rendering(playerid, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 0) set_user_footsteps(playerid, 1) set_user_gravity(playerid, fl_NightGrav) } else { set_user_rendering(playerid, kRenderFxNone, 0, 0, 0, kRenderNormal, 0) set_user_footsteps(playerid, 0) set_user_gravity(playerid, 1.0) } } public OnPlayerTakeDamage(iVictim, iInflictor, iAttacker, Float:flDamage, iBits) { if(is_user_connected(iAttacker) && is_user_connected(iVictim) && __get_user_team(iVictim) == Night) { remove_task(10000 + iVictim) set_user_rendering(iVictim, kRenderFxNone, 0, 0, 0, kRenderNormal, 0) set_task(2.0, "SetInv", iVictim + 10000) } } public SetInv(asdasd) { new playerid = asdasd-10000 set_user_rendering(playerid, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 0) } public Player_ResetMaxSpeed(playerid) { if(is_user_alive(playerid) && __get_user_team(playerid) == Night && get_user_maxspeed(playerid) != 1.0) set_pev(playerid, pev_maxspeed, fl_NightSpeed) } public GroundWeapon_Touch(iWeapon, playerid) { if(!is_user_connected(playerid) || !is_user_alive(playerid)) return HAM_SUPERCEDE if(!g_iPickUp) { remove_entity(iWeapon) return HAM_SUPERCEDE } new iTeam = __get_user_team(playerid) if((iTeam == -1) || (iTeam == Night && g_iPickUp != 1) || (iTeam == AntiNight && g_iPickUp != 2)) return HAM_SUPERCEDE return HAM_IGNORED } public NewRound() { TeamCH = 0 } public Message_ScoreAttrib() { new iFlags = get_msg_arg_int(2) if(iFlags & (1<<1)) { iFlags &= ~(1<<1) set_msg_arg_int(2, 0, iFlags) } } public Message_SendAudio(iMsgId, iMsgDest, playerid) { if(playerid) return new iPlayers[32], iNum, iPlayer new szSound[14] get_msg_arg_string(2, szSound, charsmax(szSound)) get_players(iPlayers, iNum) if(equal(szSound, "%!MRAD_ctwin")) { for(new i = 0; i < iNum; i++) { iPlayer = iPlayers switch(__get_user_team(iPlayer)) { case AntiNight: cs_set_user_team(iPlayer, g_iNightTeam) case Night: cs_set_user_team(iPlayer, g_iAntiNightTeam) } TeamCH = 1 } } } public Hostage_Spawn(iHostage) { remove_entity(iHostage) return HAM_SUPERCEDE } public CurWeapon(playerid) { } public Set_Night_INV(iEnt) { entity_set_float(iEnt, EV_FL_nextthink, get_gametime() + 0.1) new iPlayers[MAX_PLAYERS], iNum, playerid get_players(iPlayers, iNum, "ae", g_iNightTeam == CS_TEAM_T ? "TERRORIST" : "CT") for(new i; i<iNum; i++) { playerid = iPlayers if(get_user_weapon(playerid) == CSW_KNIFE) set_user_rendering(playerid, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 0) else set_user_rendering(playerid, kRenderFxNone, 0, 0, 0, kRenderNormal, 0) } } strip_user_weapons_ex(playerid) { strip_user_weapons(playerid) give_item(playerid, "weapon_knife") }[/sursa] [sursa=1.0.0]#if defined _nightcrawler #endinput #endif #define _nightcrawler #include <cstrike> enum _:ItemRestriction { Night, AntiNight } new CsTeams:g_iNightTeam = CS_TEAM_T, CsTeams:g_iAntiNightTeam = CS_TEAM_CT, TeamCH = 0 public team_change2() { switch(TeamCH) { case 0: return false case 1: return true default: return false } return false } __get_user_team(playerid) { new CsTeams:iTeam = cs_get_user_team(playerid) if(iTeam == g_iNightTeam) return Night else if(iTeam == g_iAntiNightTeam) return AntiNight else return -1 return -1 }[/sursa] [sursa=1.0.1]/* * Bomba a fost stearsa. * Acum tero pot fii invizibili atata timp cat nu isi iau dmg sau nu au knife in mana // credite ConnorMcLeod * Am facut team swap * Acum night au viteza de 1000 * Acum cand un night primeste dmg nu mai este inv, dupa 2 secunde daca nu isi primeste iar dmg atunci o sa fie iar inv * Acum nu se mai poate cumpara nimic din buy * Am sters viteza si gravitatia (cele default) pentru ca vor fi clase * * */ #include <amxmodx> #include <amxmisc> #include <cstrike> #include <hamsandwich> #include <fakemeta> #include <fun> #include <engine> #include <nightcrawler> #define MAX_PLAYERS 32 new const PLUGIN[ ] = "Nightcrawler Main", VERSION[ ] = "1.0.1", AUTHOR[ ] = "Diversity" new g_iPickUp = 2 public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) RegisterHam(Ham_Spawn, "player", "OnPlayerSpawn", 1) RegisterHam(Ham_Spawn, "hostage_entity", "Hostage_Spawn") RegisterHam(Ham_TakeDamage, "player", "OnPlayerTakeDamage", 1) RegisterHam(Ham_Touch, "weaponbox", "GroundWeapon_Touch") RegisterHam(Ham_Touch, "armoury_entity", "GroundWeapon_Touch") RegisterHam(Ham_Touch, "weapon_shield", "GroundWeapon_Touch") register_event("CurWeapon", "CurWeapon", "be", "1=1") register_event("HLTV", "NewRound", "a", "1=0", "2=0") register_message(get_user_msgid("ScoreAttrib"), "Message_ScoreAttrib") register_message(get_user_msgid("SendAudio"), "Message_SendAudio") new enT = create_entity("info_target") set_pev(enT, pev_classname, "check_speed") set_pev(enT, pev_nextthink, get_gametime() + 0.1) register_think("check_speed", "Set_Night_INV") } public plugin_precache() { new Entity = create_entity("info_map_parameters") DispatchKeyValue(Entity, "buying", "3") DispatchSpawn(Entity) } public pfn_keyvalue(Entity) { new ClassName[20], Anyf[2] copy_keyvalue(ClassName, charsmax(ClassName), Anyf, charsmax(Anyf), Anyf, charsmax(Anyf)) if(equal(ClassName, "info_map_parameters")) { remove_entity(Entity) return PLUGIN_HANDLED } return PLUGIN_CONTINUE } public OnPlayerSpawn(playerid) { if(!is_user_connected(playerid)) return strip_user_weapons_ex(playerid) if(__get_user_team(playerid) == Night) { set_user_rendering(playerid, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 0) set_user_footsteps(playerid, 1) } else { set_user_rendering(playerid, kRenderFxNone, 0, 0, 0, kRenderNormal, 0) set_user_footsteps(playerid, 0) set_user_gravity(playerid, 1.0) } } public OnPlayerTakeDamage(iVictim, iInflictor, iAttacker, Float:flDamage, iBits) { if(is_user_connected(iAttacker) && is_user_connected(iVictim) && __get_user_team(iVictim) == Night) { remove_task(10000 + iVictim) set_user_rendering(iVictim, kRenderFxNone, 0, 0, 0, kRenderNormal, 0) set_task(2.0, "SetInv", iVictim + 10000) } } public SetInv(asdasd) { new playerid = asdasd-10000 set_user_rendering(playerid, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 0) } public GroundWeapon_Touch(iWeapon, playerid) { if(!is_user_connected(playerid) || !is_user_alive(playerid)) return HAM_SUPERCEDE if(!g_iPickUp) { remove_entity(iWeapon) return HAM_SUPERCEDE } new iTeam = __get_user_team(playerid) if((iTeam == -1) || (iTeam == Night && g_iPickUp != 1) || (iTeam == AntiNight && g_iPickUp != 2)) return HAM_SUPERCEDE return HAM_IGNORED } public NewRound() { TeamCH = 0 } public Message_ScoreAttrib() { new iFlags = get_msg_arg_int(2) if(iFlags & (1<<1)) { iFlags &= ~(1<<1) set_msg_arg_int(2, 0, iFlags) } } public Message_SendAudio(iMsgId, iMsgDest, playerid) { if(playerid) return new iPlayers[32], iNum, iPlayer new szSound[14] get_msg_arg_string(2, szSound, charsmax(szSound)) get_players(iPlayers, iNum) if(equal(szSound, "%!MRAD_ctwin")) { for(new i = 0; i < iNum; i++) { iPlayer = iPlayers switch(__get_user_team(iPlayer)) { case AntiNight: cs_set_user_team(iPlayer, g_iNightTeam) case Night: cs_set_user_team(iPlayer, g_iAntiNightTeam) } TeamCH = 1 } } } public Hostage_Spawn(iHostage) { remove_entity(iHostage) return HAM_SUPERCEDE } public CurWeapon(playerid) { } public Set_Night_INV(iEnt) { entity_set_float(iEnt, EV_FL_nextthink, get_gametime() + 0.1) new iPlayers[MAX_PLAYERS], iNum, playerid get_players(iPlayers, iNum, "ae", g_iNightTeam == CS_TEAM_T ? "TERRORIST" : "CT") for(new i; i<iNum; i++) { playerid = iPlayers if(get_user_weapon(playerid) == CSW_KNIFE) set_user_rendering(playerid, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 0) else set_user_rendering(playerid, kRenderFxNone, 0, 0, 0, kRenderNormal, 0) } } strip_user_weapons_ex(playerid) { strip_user_weapons(playerid) give_item(playerid, "weapon_knife") }[/sursa] [sursa=1.0.1]#if defined _nightcrawler #endinput #endif #define _nightcrawler #include <cstrike> enum _:ItemRestriction { Night, AntiNight } new CsTeams:g_iNightTeam = CS_TEAM_T, CsTeams:g_iAntiNightTeam = CS_TEAM_CT, TeamCH = 0 public team_change2() { switch(TeamCH) { case 0: return false case 1: return true default: return false } return false } __get_user_team(playerid) { new CsTeams:iTeam = cs_get_user_team(playerid) if(iTeam == g_iNightTeam) return Night else if(iTeam == g_iAntiNightTeam) return AntiNight else return -1 return -1 } native register_night_class(name[], desc[], hp, speed, Float:grav)[/sursa] [sursa=1.0.0]#include <amxmodx> #include <cstrike> #include <fakemeta> #include <fun> #include <hamsandwich> #include <nightcrawler> enum _:NightClassData { ClassName[32], ClassDesc[32], ClassHP, ClassSpeed, ClassGrav } new Array:g_NightClasses, g_iTotalNightClasses, g_NightSelectClassFwd new g_FirstSpawn[33], g_CurNightClass[33], g_NextNightClass[33] public plugin_precache() { register_plugin("NightCrawler Rase", "1.0", "Filip. & KronoS # GG") g_NightClasses = ArrayCreate(NightClassData) } public plugin_init() { if(!g_iTotalNightClasses) set_fail_state("This plugin can't run because no nightcrawler classes were found!") RegisterHam(Ham_Spawn, "player", "Event_PlayerSpawn", 1) register_event("CurWeapon", "Event_CurWeapon", "be", "1=1") register_clcmd("say /class", "Func_CmdChangeClass") register_clcmd("say_team /class", "Func_CmdChangeClass") g_NightSelectClassFwd = CreateMultiForward("night_class_selected", ET_IGNORE, FP_CELL, FP_CELL) set_task(120.0, "Func_DisplayInfo", _, _, _, "b") } public plugin_natives() { register_native("register_night_class", "native_register_night_class") register_native("get_user_night_class", "native_get_user_night_class") register_native("set_user_night_class", "native_set_user_night_class") } public client_putinserver(playerid) { g_CurNightClass[playerid] = 1 g_NextNightClass[playerid] = 1 g_FirstSpawn[playerid] = 1 } public Event_PlayerSpawn(playerid) { if(!is_user_alive(playerid) || __get_user_team(playerid) != Night) return true if(g_FirstSpawn[playerid]) { g_FirstSpawn[playerid] = 0 Func_ShowNightClasses(playerid, .page = 0) } g_CurNightClass[playerid] = g_NextNightClass[playerid] new eItemData[NightClassData] new iClassIndex = g_CurNightClass[playerid] - 1 ArrayGetArray(g_NightClasses, iClassIndex, eItemData) set_user_health(playerid, eItemData[ClassHP]) set_user_gravity(playerid, Float:eItemData[ClassGrav]) return true } public Event_CurWeapon(playerid) { if(!is_user_alive(playerid) || __get_user_team(playerid) != Night) return true new eItemData[NightClassData] new iClassIndex = g_CurNightClass[playerid] - 1 ArrayGetArray(g_NightClasses, iClassIndex, eItemData) set_pev(playerid, pev_maxspeed, float(eItemData[ClassSpeed])) return true } public Func_CmdChangeClass(playerid) Func_ShowNightClasses(playerid, .page = 0 ) public Func_DisplayInfo() client_print(0, print_chat, "Type /class to change your nightcrawler class") Func_ShowNightClasses(playerid, page) { if(!g_iTotalNightClasses) return true page = clamp(page, 0, (g_iTotalNightClasses - 1) / 7) new iMenu = menu_create("\rChoose a Nightcrawler class:", "Handler_ClassesMenu") new eItemData[NightClassData], szItem[64], szNum[3] for(new class = 0; class < g_iTotalNightClasses; class++) { ArrayGetArray(g_NightClasses, class, eItemData) if(class == (g_NextNightClass[playerid] - 1)) formatex(szItem, charsmax(szItem), "\d%s [%s]", eItemData[ClassName], eItemData[ClassDesc]) else formatex(szItem, charsmax(szItem), "%s \y[%s]", eItemData[ClassName], eItemData[ClassDesc]) num_to_str(class, szNum, charsmax(szNum)) menu_additem(iMenu, szItem, szNum) } menu_display(playerid, iMenu, page) return true } public Handler_ClassesMenu(playerid, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return } new iAccess, szNum[3], hCallback menu_item_getinfo(menu, item, iAccess, szNum, charsmax(szNum), _, _, hCallback) new iClassIndex = str_to_num(szNum) new eItemData[NightClassData] ArrayGetArray(g_NightClasses, iClassIndex, eItemData) g_NextNightClass[playerid] = str_to_num(szNum) + 1 client_print(playerid, print_chat, "Your nightcrawler class after the next spawn will be %", eItemData[ClassName]) client_print(playerid, print_chat, "HP: %i | Speed: %i | Gravity: %i", eItemData[ClassHP], eItemData[ClassSpeed], floatround(eItemData[ClassGrav] * 800.0)) menu_destroy(menu) new iReturn ExecuteForward(g_NightSelectClassFwd, iReturn, playerid, iClassIndex) } public native_register_night_class(Plugin, iParams) { new eClassData[NightClassData] get_string(1, eClassData[ClassName], charsmax(eClassData[ClassName])) get_string(2, eClassData[ClassDesc], charsmax(eClassData[ClassDesc])) eClassData[ClassHP] = get_param(3) eClassData[ClassSpeed] = get_param(4) eClassData[ClassGrav] = get_param(5) ArrayPushArray(g_NightClasses, eClassData) g_iTotalNightClasses++ return (g_iTotalNightClasses - 1) } public native_get_user_night_class(playerid) return g_CurNightClass[playerid] public native_set_user_night_class(playerid, class) { if(class < 0 || class >= g_iTotalNightClasses) return 0 g_NextNightClass[playerid] = class return 1 }[/sursa] [sursa=exemplu de rasa]#include <amxmodx> #include <nightcrawler> new g_NightClassID public plugin_init() g_NightClassID = register_night_class("Normal Nightcrawler [Balanced]", "Aceasta clasa este una de tip balansata.", 120, 670, 0.375)[/sursa] Nume: NightCrawler Versiune: 1.0.1 Link oficial: Instalare: 1. Fisierul nume_plugin.sma il puneti in addons/amxmodx/scripting 2. Fisierul nume_plugin.amxx il puneti in addons/amxmodx/plugins 3. Intrati in fisierul addons/amxmodx/configs/plugins.ini si adaugati la urma: nume_plugin.amxx 4. Alti pasi necesari.... Cvar-uri (se adauga in fisierul amxmodx\configs\amxx.cfg): amx_comanda VALOARE - descrierea comenzii respective amx_comanda 20 - descrierea comenzii respective amx_comanda X - orice alta comanda de care dispune pluginul respectiv Comenzi administrative (se tasteaza in consola si trebuie sa fiti administrator): amx_comanda nume/parte_din_nume - descrierea comenzii respective amx_comanda valoare - descrierea comenzii respective amx_comanda X - orice alta comanda de care dispune pluginul respectiv Comenzi publice (se tasteaza in joc prin apasarea tastei Y): /rules - afiseaza regulile /rank - afiseaza rankul /comanda - orice alta comanda de care dispune pluginul respectiv Module necesare (se sterge ; din fata modulului de mai jos; acestea le gasiti in fisierul amxmodx\configs\modules.ini): - CStrike - Fun - alte module necesare..
  6. FurienModUltimate v0.8.3 //======================================================================================| //¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯| // ___________________________________ | // |= =| | // |= Furien Mod Ulutimate =| | // |= ¯¯¯¯¯¯¯¯by ¯¯¯¯¯¯¯¯¯ =| | // |= ¯¯ Askhanar =| | // |= ¯¯¯¯¯¯¯¯ =| | // ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ | // _____________________________________________________________________________________| //|=====================================================================================| //| | //| Copyright © 2011 - 2012, Askhanar @ulqtech.tk | //| Acest fisier este prevazut asa cum este ( fara garantii ) | //| | //|=====================================================================================| // ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯| // - ¦ « Prieteni » ¦ - | // ** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ** | // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | // * * * * * * | // * * Rap^ Frosten TheBeast AZAEL! * * | // * * fuzy razvan W-strafer RZV SNKT * * | // * * ahonen Arion pHum gLobe * * | // * * Shax+ syBlow kvL^ krom3 * * | // * * Henk DANYEL SimpLe XENON^ * * | // * * * * * * | // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | // ** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ** | // | // | // Plugin Versiune Autor | // Furien Mod Ultimate 0.8.3 Askhanar | // | // --| www.ulqtech.tk |-- | // _____________________________________________________________________________________| //======================================================================================| Acest plugin este un GameMode modificat al renumitului mod Furien. Am creat acest mod unicat in urma cu cativa ani,cand inca mai era putina viata in CS 1.6 . La'nceput a fost doar un plugin aiurit de'al meu, dar in timp mi-am propus sa'l termin. Am rescris modul Furien si l-am facut asa cum am vrut si cum mi-am dorit. Tot ce veti gasi in fisierul sursa, a fost scris de mine. Fiecare . si , . Nu spun ca tot ce se afla in sursa a venit din capul meu, doar ca a fost rescris de mine. Am pastrat privat acest plugin unicat, cat am putut de mult dar, traim in Romania. Nu a fost corect nici sa vand doar fisierul .amxx ( incalcand licenta GNU ). Cu toate astea, dupa ce am oferit .sma ati inceput sa-l vindeti si voi. Asa ceva eu nu am putut accepta. Din caza la unu, doi sau trei, suferiti toti! Nume: FurienModUltimate Versiune: 0.8.3 Link oficial: nu mai exista.. am neglijat .tk si sa dus tot. *NEW 30/07/2016* Download: Click Accesati link-ul oficial pentru toate resursele. Sursa va fi in josul paginii pentru cei ce doar vor .sma . Instalare: • Adaugati fisierul .html in addons/amxmodx/configs. • Adaugati fisierele din folderul models in server/cstrike/models. • Adaugati fisierele din folderul sound in server/cstrike/sound. • Adaugati fisierele .amxx in addons/amxmodx/plugins. • Adaugati fisierele .sma in addons/amxmodx/scripting. • Deschideti plugins.ini aflat in addons/amxmodx/configs. • Adaugati pluginurile in urmatoarea ordine: --| FurienModUltimate.amxx |-- --| FMU_Events.amxx |-- --| FMU_Weapons.amxx |-- --| FMU_WallHang.amxx |-- --| FMU_Models.amxx |-- --| FMU_MultiJump.amxx |-- --| FMU_AimMessages.amxx |-- --| FMU_BombEvents.amxx |-- --| FMU_BackUp.amxx |-- --| FMU_Christmass.amxx |-- Cvar-uri (se adauga in fisierul amxmodx\configs\amxx.cfg): [sursa=]--| Daca sa fie sau nu salvat XP-ul si Upgrade-urile cumparate de jucatori. --| Default: 1 • fmu_save_xp 1 --| Cat XP vor primi cei ce intra pentru prima data pe server. --| Default: 15845 • fmu_entry_xp 15845 --| Cat XP vor primi jucatorii pentru un kill obisnuit ( omorarea unui jucator ). --| Default: 45 • fmu_kill_xp 45 --| Cat XP bonus vor primi jucatorii pentru un kill cu HS ( headshot ). --| Default: 15 • fmu_hskill_xp 15 --| Cat XP bonus vor primi jucatorii pentru un kill cu HE ( grenada ). --| Default: 20 • fmu_grenadekill_xp 20 --| Cat XP bonus vor primi jucatorii pentru un kill cu cutitul ( doar pentru AntiFurieni ). --| Default: 25 • fmu_knifekill_xp 25 --| Cat XP va primi fiecare jucator daca supravietuieste --| ( se termina runda si el este in viata ). --| Default: 10 • fmu_survive_xp 10 --| Cat XP va primi fiecare jucator atunci cand castiga runda ( nu conteaza cum.. ). --| Default: 15 • fmu_win_xp 15 --| Daca sa fie sau nu blocata comanda 'buy' si totodata zonele 'buyzone' sterse. --| Default: 1 • fmu_block_buy 1 --| Daca sa fie sau nu blocata comanda 'drop' ( cea cu care arunci arma ). --| Default: 0 • fmu_block_drop 0 --| Daca sa fie sau nu blocate comenzile de radio ( nu ai nevoie de radio in acest mod.. ). --| Default: 1 • fmu_block_radio 1 --| Care echipa poate lua arme de pe jos. --| ( 0 = Ambele, 1 = Furienii < Tero >, 2 = AntiFurienii < CT > ). --| Default: 2 • fmu_allow_pickup 2 --| Daca bomba poate fi plantata doar dupa un interval de timp de la inceputul rundei. --| Default: 1 • fmu_nobomb_plant 1 --| Dupa cat timp de la inceputul rundei poate fi plantata bomba. --| Default: 90 • fmu_bombplant_wait 90 --| Lumina care este setata pe harta( a = cel mai intunecat - z = cel mai luminat ). --| Pe o harda obisnuita lumina este setata pe litera 'm'. --| Default: e • fmu_lights e --| Lumina care este setata pe harta cant bomba poate fi plantata. --| ( a = cel mai intunecat - z = cel mai luminat ). --| Functioneaza doar daca bomba poate fi plantata dupa un interval de timp --| ( pentru dezactivare setati-l ca si cel de sus ).. --| Default: d • fmu_bomblights d --| Daca sa fie ceata sau nu. --| Default: 1 • fmu_enable_fog 1 --| Daca cvar-ul de ceata este activ aici setati culoarea cetii ( in RRR GGG BBB ). --| Default: 000 000 000 • fmu_fog_color 000 000 000 --| Daca cvar-ul de ceata este activ aici setati densitatea cetii --| ( 1 = ceata risipita, 9 = ceata densa ). --| Default: 1 • fmu_fog_density 2 --| Daca cvar-ul de ceata este activ si este activ, --| Si cel de plantare a bombei dupa un anumit timp. --| Aici setati culoarea cetii care va apare atunci cand bomba poate fi plantata. --| Pentru dezactivare setati-l ca 'fmu_fog_color'. --| Default: 000 000 000 • fmu_bombfog_color 000 000 000 --| Daca cvar-ul de ceata este activ si este activ, --| Si cel de plantare a bombei dupa un anumit timp. --| Aici setati densitatea cetii care va apare atunci cand bomba poate fi plantata. --| Pentru dezactivare setati-l ca 'fmu_fog_density'. --| Default: 2 • fmu_bombfog_density 3 --| Cati bani ( $ ) bonus sa primeasca cei ce sunt VIP. --| pentru fiecare kill / supravietuire / runda castigata. --| Default: 15 • fmu_vip_moneybonus 15 --| Id-ul de mess care apare la contact in /buyvip. --| Default: http://www.ulqtech.tk • fmu_vip_contact http://www.ulqtech.tk --| Daca jucatorii pot sau nu sa-si transfere XP intre ei. --| Default: 0 • fmu_allow_transferxp 1 --| Cat costa 25HP din /shop. --| Default: 3500$ • fmu_hp_cost 3500 --| Cat costa 25AP din /shop. --| Default: 2500$ • fmu_ap_cost 2500 --| Cat costa HE-ul din /shop. --| Default: 2500$ • fmu_he_cost 2500 --| Cat costa Silent Walk din /shop ( doar pentru AntiFurieni ). --| Default: 1500$ • fmu_sw_cost 1500 --| Cat costa Defuse Kit din /shop ( doar pentru AntiFurieni ). --| Default: 3500$ • fmu_dk_cost 3500 --| Cat XP primesc cei ce cumpara din /shop. --| Default: 1050 • fmu_xp_amount 1050 --| Cat costa XP-ul din /shop --| Default: 13000$ • fmu_xp_cost 13000 --| Cat costa Instant Respawn din /shop. --| Default: 11000$ • fmu_ir_cost 11000 --| Cat XP costa Super Knife din /xpshop ( doar pentru Furieni ). --| Default: 3500 • fmu_superknife_cost 3500 --| Cat XP costa X-Ray Scanner din /xpshop ( doar pentru AntiFurieni ). --| Default: 2500 • fmu_scanner_cost 2500 --| Cat XP costa Chameleon din /xpshop. --| Default: 3500 • fmu_chameleon_cost 3500[/sursa] Comenzi administrative (se tasteaza in consola si trebuie sa fiti administrator): • amx_givexp < nume > < xp > ii dai xp unui jucator. • amx_takexp < nume > < xp > ii stergi xp unui jucator. • amx_reset < nume > ii resetezi tot xp si upgrades unui jucator. • amx_deletexp Resetezi tot XP-ul si toate Upgrades jucatorilor salvate pana atunci. De asemenea server-ul se va restarta in 10 secunde. Comenzi publice (se tasteaza in joc prin apasarea tastei Y): • /xp, /exp, xp, exp --> Deschide meniul principal cu Upgrades. • /help, help --> Deschide meniul pentru ajutor. • /shop, shop --> Deshide meniul shop pe $$ ( bani ). • /xpshop, xpshop --> Deschide meniul shop pe XP. • /vips, /vip --> Arata un motd cu vipii de pe server. • /buyvip --> Deschide un motd cu detalii despre cumpararea de VIP. • /transfer, /givexp < nume > < xp > transferi cuiva XP din XP-ul tau. • /totalxp < nume > Iti arata tot XP-ul acumulat de X ( inclusiv cel investit ). • /info < nume > Iti deschide un meniu unde vezi toate Upgrades lui X. • /resetupgrades Iti reseteaza toate upgrades si primesti XP-ul investit inapoi, pentru a ti le putea re-upgrada. Module necesare (se sterge ; din fata modulului de mai jos; acestea le gasiti in fisierul amxmodx\configs\modules.ini): • cstrike • fakemeta • hamsandwich • engine • fun • csx • nvault Acest GameMode are un plugin de baza ( FMU ) care lucreaza impreuna cu alte plugine. Puteti modifica absolut orice doar folosindu'va de cvar'uri. Levelul maxim pentru fiecare Upgrade, poate fi modificat din fisierul sursa. Am creat si am lucrat la acest mod timp de 1 an. Timp in care am testat intruna. Vreau sa le multumesc celor de pe Furien.Indungi.Ro ( primul server cu FMU ). Datorita lor am putut testa si imbunatati pluginul. Totodata le cer scuze ca'l public. Acestea fiind spuse, spalati'va pe cap cu el. De la mine nu mai vedeti nimic! [sursa=FurienModUltimate v0.8.3]/* ///=========================================================================================================== //¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ // ___________________________________ // |= =| // |= Furien Mod lutimate =| // |= ¯¯¯¯¯¯ ¯by ¯¯¯¯¯¯¯¯ =| // |= ¯¯ Askhanar =| // |= ¯¯¯¯¯¯¯¯ =| // ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ // __________________________________________________________________________________________________________ //|==========================================================================================================| //| | //| Copyright © 2011 - 2012, Askhanar @ulqtech.tk | //| Acest fisier este prevazut asa cum este ( fara garantii ) | //| | //|==========================================================================================================| // ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ // - ¦ « Prieteni » ¦ - // ** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ** // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // * * * * * * // * * Rap^ Frosten TheBeast AZAEL! * * // * * fuzy razvan W-strafer RZV SNKT * * // * * ahonen Arion pHum gLobe * * // * * Shax+ syBlow kvL^ krom3 * * // * * Henk DANYEL SimpLe XENON^ * * // * * * * * * // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // ** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ** // // _ _ _ // |¯(_) |¯| // __| |_|___ ___ ___ _ __ _ __ ___ ___| |_ // / _` | / __|/ __/ _ \| '_ \| '_ \ / _ \/ __| __| // | (_| | \__ \ (_| (_) | |¯| | |¯| | __/ (__| |_ // \__,_|_|___/\___\___/|_| |_|_| |_|\___|\___|\__| // _ // |¯| // | |_ ___ __ _ _ __ ___ // | __|/ _ \ / _` | `_ \/_ | // | |_( __/( (_| | |¯| |¯| | // \__|\___| \__,_|_| |_| |_| // // // // Plugin Versiune Autor // Furien Mod Ultimate 0.8.3 Askhanar // // // Credite // // ConnorMcLeod, Exolent, xPaw, V3X! si restul utilizatorilor de pe alliedmodders.. // // - Pentru ca am folosit ceva cod si tutoriale care le apartin. // // // // Cvar-uri: // --| Daca sa fie sau nu salvat XP-ul si Upgrade-urile cumparate de jucatori. // --| Default: 1 fmu_save_xp 1 // --| Cat XP vor primi cei ce intra pentru prima data pe server. // --| Default: 15845 fmu_entry_xp 15845 // --| Cat XP vor primi jucatorii pentru un kill obisnuit ( omorarea unui jucator ). // --| Default: 45 fmu_kill_xp 45 // --| Cat XP bonus vor primi jucatorii pentru un kill cu HS ( headshot ). // --| Default: 15 fmu_hskill_xp 15 // --| Cat XP bonus vor primi jucatorii pentru un kill cu HE ( grenada ). // --| Default: 20 fmu_grenadekill_xp 20 // --| Cat XP bonus vor primi jucatorii pentru un kill cu cutitul ( doar pentru AntiFurieni ). // --| Default: 25 fmu_knifekill_xp 25 // --| Cat XP va primi fiecare jucator daca supravietuieste ( se termina runda si el este in viata ). // --| Default: 10 fmu_survive_xp 10 // --| Cat XP va primi fiecare jucator atunci cand castiga runda ( nu conteaza cum.. ). // --| Default: 15 fmu_win_xp 15 // --| Daca sa fie sau nu blocata comanda 'buy' si totodata zonele 'buyzone' sterse. // --| Default: 1 fmu_block_buy 1 // --| Daca sa fie sau nu blocata comanda 'drop' ( cea cu care arunci arma ). // --| Default: 0 fmu_block_drop 0 // --| Daca sa fie sau nu blocate comenzile de radio ( nu ai nevoie de radio in acest mod.. ). // --| Default: 1 bmu_block_radio 1 // --| Care echipa poate lua arme de pe jos ( 0 = Ambele, 1 = Furienii < Tero >, 2 = AntiFurienii < CT > ). // --| Default: 2 fmu_allow_pickup 2 // --| Daca bomba poate fi plantata doar dupa un interval de timp de la inceputul rundei. // --| Default: 1 fmu_nobomb_plant 1 // --| Dupa cat timp de la inceputul rundei poate fi plantata bomba. // --| Default: 90 fmu_bombplant_wait 90 // --| Lumina care este setata pe harta( a = cel mai intunecat - z = cel mai luminat ). // --| Pe o harda obisnuita lumina este setata pe litera 'm'. // --| Default: e fmu_lights e // --| Lumina care este setata pe harta cant bomba poate fi plantata( a = cel mai intunecat - z = cel mai luminat ). // --| Functioneaza doar daca bomba poate fi plantata dupa un interval de timp( pentru dezactivare setati-l ca si cel de sus ).. // --| Default: d fmu_bomblights d // --| Daca sa fie ceata sau nu. // --| Default: 1 fmu_enable_fog 1 // --| Daca cvar-ul de ceata este activ aici setati culoarea cetii ( in RRR GGG BBB ). // --| Default: 200 200 200 fmu_fog_color "200 200 200" // --| Daca cvar-ul de ceata este activ aici setati densitatea cetii( 1 = ceata risipita, 9 = ceata densa ). // --| Default: 1 fmu_fog_density 1 // --| Daca cvar-ul de ceata este activ si este activ si cel de plantare a bombei dupa un anumit timp. // --| Aici setati culoarea cetii care va apare atunci cand bomba poate fi plantata. // --| Pentru dezactivare setati-l ca 'fmu_fog_color'. // --| Default: 200 200 200 fmu_bombfog_color "200 200 200" // --| Daca cvar-ul de ceata este activ si este activ si cel de plantare a bombei dupa un anumit timp. // --| Aici setati densitatea cetii care va apare atunci cand bomba poate fi plantata. // --| Pentru dezactivare setati-l ca 'fmu_fog_density'. // --| Default: 2 fmu_bombfog_density 2 // --| Cati bani ( $ ) bonus sa primeasca cei ce sunt VIP pentru fiecare kill / supravietuire / runda castigata. // --| Default: 15 fmu_vip_moneybonus 15 // --| Id-ul de mess care apare la contact in /buyvip. // --| Default: http://www.ulqtech.tk fmu_vip_contact http://www.ulqtech.tk // --| Daca jucatorii pot sau nu sa-si transfere XP intre ei. // --| Default: 0 fmu_allow_transferxp 0 // --| Gametype care va fi afisat.. // --| Default: este setat de plugin.. //fmu_gametype "" // --| Cat costa 25HP din /shop. // --| Default: 3500$ fmu_hp_cost 3500 // --| Cat costa 25AP din /shop. // --| Default: 2500$ fmu_ap_cost 2500 // --| Cat costa HE-ul din /shop. // --| Default: 2500$ fmu_he_cost 2500 // --| Cat costa Silent Walk din /shop ( doar pentru AntiFurieni ). // --| Default: 1500$ fmu_sw_cost 1500 // --| Cat costa Defuse Kit din /shop ( doar pentru AntiFurieni ). // --| Default: 3500$ fmu_dk_cost 800 // --| Cat XP primesc cei ce cumpara din /shop. // --| Default: 1050 fmu_xp_amount 1050 // --| Cat costa XP-ul din /shop . // --| Default: 13000$ fmu_xp_cost 13000 // --| Cat costa Instant Respawn din /shop. // --| Default: 11000$ fmu_ir_cost 11000 // --| Cat XP costa Super Knife din /xpshop ( doar pentru Furieni ). // --| Default: 3500 fmu_superknife_cost 3500 // --| Cat XP costa X-Ray Scanner din /xpshop ( doar pentru AntiFurieni ). // --| Default: 2500 fmu_scanner_cost 2500 // --| Cat XP costa Chameleon din /xpshop. // --| Default: 3500 fmu_chameleon_cost 1500 // Comenzi Publice ( in say sau say_team // --| /help, help --> Deschide meniul pentru Ajutor ( multe informatii despre absolut orice ). // --| /shop, shop --> Deschide meniul cu 'cumparaturi' pe bani ( HP, AP, HE s.a.m.d ).. // --| /xpshop, xpshop --> Deschide meniul cu 'cumparaturi' pe XP ( Super Knife, Chameleon s.a.m.d ).. // --| /vip, /vips --> Deschide motd cu VIP online.. // --| /buyvip --> Deschide motd cu detalii despte cumparare VIP. // --| /transfer, /givexp --> < nume > < xp > transferi cuiva XP din XP-ul tau. // --| /xp, /exp, xp, exp --> Deschide meniul de unde poti cumpara Upgrade-uri.. // Comenzi Admini ( in consola // --| amx_givexp --> < nume > < xp > ii dai XP unui jucator. // --| amx_takexp --> < nume > < xp > ii scoti XP unui jucator. // --| amx_resetall --> < nume > ii resetezi tot XP-ul si toate Upgrade-urile unui jucator. // --| amx_deletexp --> Resetezi tot XP-ul si toate Upgrade-urile jucatorilor salvate pana atunci. -> De asemenea server-ul se va restarta in 10 secunde ! */ #include < amxmodx > #include < amxmisc > #include < cstrike > #include < hamsandwich > #include < fakemeta > #include < engine > #include < fun > #include < nvault > #include < FMU_Events > #include < CC_ColorChat > #pragma semicolon 1 #define PLUGIN "Furien Mod Ultimate" #define VERSION "0.8.3" // by ConnorMcLeod // ------------------------------- #define XO_WEAPON 4 #define m_pPlayer 41 #define XO_WEAPONBOX 4 #define m_rgpPlayerItems_wpnbx_Slot5 39 #define IsWeaponBoxC4(%1) ( get_pdata_cbase(%1, m_rgpPlayerItems_wpnbx_Slot5, XO_WEAPONBOX) > 0 ) #define fm_cs_set_user_nobuy(%1) set_pdata_int(%1, 235, get_pdata_int(%1, 235) & ~(1<<0) ) // ------------------------------- // Don't touch it ! #define IsPlayer(%1) ( gFirstPlayer <= %1 <= gMaxPlayers ) #define DMG_GRENADE (1<<24) #define PISTOL_WEAPONS_BIT (1<<CSW_GLOCK18|1<<CSW_USP|1<<CSW_DEAGLE|1<<CSW_P228|1<<CSW_FIVESEVEN|1<<CSW_ELITE) #define SHOTGUN_WEAPONS_BIT (1<<CSW_M3|1<<CSW_XM1014) #define SUBMACHINE_WEAPONS_BIT (1<<CSW_TMP|1<<CSW_MAC10|1<<CSW_MP5NAVY|1<<CSW_UMP45|1<<CSW_P90) #define RIFLE_WEAPONS_BIT (1<<CSW_FAMAS|1<<CSW_GALIL|1<<CSW_AK47|1<<CSW_SCOUT|1<<CSW_M4A1|1<<CSW_SG550|1<<CSW_SG552|1<<CSW_AUG|1<<CSW_AWP|1<<CSW_G3SG1) #define MACHINE_WEAPONS_BIT (1<<CSW_M249) #define PRIMARY_WEAPONS_BIT (SHOTGUN_WEAPONS_BIT|SUBMACHINE_WEAPONS_BIT|RIFLE_WEAPONS_BIT|MACHINE_WEAPONS_BIT) #define SECONDARY_WEAPONS_BIT (PISTOL_WEAPONS_BIT) #define IsPrimaryWeapon(%1) ( (1<<%1) & PRIMARY_WEAPONS_BIT ) #define IsSecondaryWeapon(%1) ( (1<<%1) & PISTOL_WEAPONS_BIT ) //127.0.0.2 //89.44.246.131 // The Plugin is licensed to only one server ip.. 10.91.120.46 89.44.246.131 // The prefix in all of the plugin's messages new const MESSAGE_TAG[] = "[Furien Ultimate]"; #define CS_TEAM_FURIEN CS_TEAM_T #define CS_TEAM_ANTIFURIEN CS_TEAM_CT // Access to amx_givexp amx_takexp.. #define FURIEN_ACCESS ADMIN_CVAR // Just a task used for team switch and model change.. #define SWITCH_TASK 112233 // One day in seconds used for nvault_prune.. #define ONE_DAY_IN_SECONDS 86400 // If user's healts is below this value his heart will beat + some effects. #define LOW_HP_TO_HEAR_HEART 40 // This is null do not modify #define NULL 0 //#define NULL_FLOAT 0.0 // Furien Invisibility Factor, from 1 to 4 ( only when they have knife ). // 1 = almost visible. // 4 = less visible. // Default: 2 #define FURIEN_VISIBILITY_FACTOR 2 // The value of server's sv_maxspeed cvar which is set to. // This value is set to connecting players on cl_ cvars. // cl_forwardspeed // cl_backspeed // cl_sidespeed #define SV_MAXSPEED_VALUE 1000.0 // Do Not Modify This Line ! #define ANY_UPGRADE_ENABLED (gAnyHealthEnabled || gAnyArmorEnabled || gAnySpeedEnabled || gAnyGravityEnabled || gAnyDamageMultiplierEnabled || gAnyRespawnEnabled) // These determine if these abilities should be enabled or disabled // 1 = enabled // 0 = disabled #define ENABLE_FURIEN_HEALTH 1 #define ENABLE_ANTIFURIEN_HEALTH 1 #define ENABLE_FURIEN_ARMOR 1 #define ENABLE_ANTIFURIEN_ARMOR 1 #define ENABLE_FURIEN_SPEED 1 #define ENABLE_ANTIFURIEN_SPEED 1 #define ENABLE_FURIEN_GRAVITY 1 #define ENABLE_ANTIFURIEN_GRAVITY 1 #define ENABLE_FURIEN_DAMAGE_MULTIPLIER 1 #define ENABLE_ANTIFURIEN_DAMAGE_MULTIPLIER 1 #define ENABLE_FURIEN_RESPAWN 1 #define ENABLE_ANTIFURIEN_RESPAWN 1 #define ENABLE_FURIEN_HEALTH_REG 1 #define ENABLE_ANTIFURIEN_HEALTH_REG 1 #define ENABLE_FURIEN_ARMOR_CHARGER 1 #define ENABLE_ANTIFURIEN_ARMOR_CHARGER 1 // The maximum level for each ability #define MAXLEVEL_FURIEN_HEALTH 10 #define MAXLEVEL_ANTIFURIEN_HEALTH 10 #define MAXLEVEL_FURIEN_ARMOR 10 #define MAXLEVEL_ANTIFURIEN_ARMOR 10 #define MAXLEVEL_FURIEN_SPEED 7 #define MAXLEVEL_ANTIFURIEN_SPEED 7 #define MAXLEVEL_FURIEN_GRAVITY 7 #define MAXLEVEL_ANTIFURIEN_GRAVITY 7 #define MAXLEVEL_FURIEN_DAMAGE_MULTIPLIER 10 #define MAXLEVEL_ANTIFURIEN_DAMAGE_MULTIPLIER 10 #define MAXLEVEL_FURIEN_RESPAWN 10 #define MAXLEVEL_ANTIFURIEN_RESPAWN 10 #define MAXLEVEL_FURIEN_HEALTH_REG 10 #define MAXLEVEL_ANTIFURIEN_HEALTH_REG 7 #define MAXLEVEL_FURIEN_ARMOR_CHARGER 10 #define MAXLEVEL_ANTIFURIEN_ARMOR_CHARGER 7 // The xp amount required to buy the first level #define FIRST_XP_FURIEN_HEALTH 550 #define FIRST_XP_ANTIFURIEN_HEALTH 600 #define FIRST_XP_FURIEN_ARMOR 600 #define FIRST_XP_ANTIFURIEN_ARMOR 550 #define FIRST_XP_FURIEN_SPEED 1500 #define FIRST_XP_ANTIFURIEN_SPEED 2000 #define FIRST_XP_FURIEN_GRAVITY 1500 #define FIRST_XP_ANTIFURIEN_GRAVITY 2000 #define FIRST_XP_FURIEN_DAMAGE_MULTIPLIER 1000 #define FIRST_XP_ANTIFURIEN_DAMAGE_MULTIPLIER 1200 #define FIRST_XP_FURIEN_RESPAWN 1200 #define FIRST_XP_ANTIFURIEN_RESPAWN 1350 #define FIRST_XP_FURIEN_HEALTH_REG 1050 #define FIRST_XP_ANTIFURIEN_HEALTH_REG 1150 #define FIRST_XP_FURIEN_ARMOR_CHARGER 1150 #define FIRST_XP_ANTIFURIEN_ARMOR_CHARGER 1050 // The max amount of health , armor, and other. // For Speed , Gravity and Damage Multiplier you can edit them at bottom of this part. #define MAXAMOUNT_OF_FURIEN_HEALTH 100 #define MAXAMOUNT_OF_ANTIFURIEN_HEALTH 110 #define MAXAMOUNT_OF_FURIEN_ARMOR 110 #define MAXAMOUNT_OF_ANTIFURIEN_ARMOR 100 #define MAXAMOUNT_OF_FURIEN_RESPAWN 100 #define MAXAMOUNT_OF_ANTIFURIEN_RESPAWN 100 #define MAXAMOUNT_OF_FURIEN_HEALTH_REG 10 #define MAXAMOUNT_OF_ANTIFURIEN_HEALTH_REG 7 #define MAXAMOUNT_OF_FURIEN_ARMOR_CHARGER 10 #define MAXAMOUNT_OF_ANTIFURIEN_ARMOR_CHARGER 7 // ================================================= // STOP EDITING HERE // ================================================= #pragma semicolon 1 new const gAnyHealthEnabled = ENABLE_FURIEN_HEALTH + ENABLE_ANTIFURIEN_HEALTH; new const gHealthEnabled[ CsTeams ] = { NULL, ENABLE_FURIEN_HEALTH, ENABLE_ANTIFURIEN_HEALTH, NULL }; new const gHealthMaxLevels[ CsTeams ] = { NULL, MAXLEVEL_FURIEN_HEALTH, MAXLEVEL_ANTIFURIEN_HEALTH, NULL }; new const gHealthFirstXp[ CsTeams ] = { NULL, FIRST_XP_FURIEN_HEALTH, FIRST_XP_ANTIFURIEN_HEALTH, NULL }; new const gHealthMaxAmount[ CsTeams ] = { NULL, MAXAMOUNT_OF_FURIEN_HEALTH, MAXAMOUNT_OF_ANTIFURIEN_HEALTH, NULL }; new const gHealthNames[ CsTeams ][ ] = { "", "Viata Furien", "Viata AntiFurien", "" }; new const gAnyArmorEnabled = ENABLE_FURIEN_ARMOR + ENABLE_ANTIFURIEN_ARMOR; new const gArmorEnabled[ CsTeams ] = { NULL, ENABLE_FURIEN_ARMOR, ENABLE_ANTIFURIEN_ARMOR, NULL }; new const gArmorMaxLevels[ CsTeams ] = { NULL, MAXLEVEL_FURIEN_ARMOR, MAXLEVEL_ANTIFURIEN_ARMOR, NULL }; new const gArmorFirstXp[ CsTeams ] = { NULL, FIRST_XP_FURIEN_ARMOR, FIRST_XP_ANTIFURIEN_ARMOR, NULL }; new const gArmorMaxAmount[ CsTeams ] = { NULL, MAXAMOUNT_OF_FURIEN_ARMOR, MAXAMOUNT_OF_ANTIFURIEN_ARMOR, NULL }; new const gArmorNames[ CsTeams ][ ] = { "", "Armura Furien", "Armura AntiFurien", "" }; new const gAnySpeedEnabled = ENABLE_FURIEN_SPEED + ENABLE_ANTIFURIEN_SPEED; new const gSpeedEnabled[ CsTeams ] = { NULL, ENABLE_FURIEN_SPEED, ENABLE_ANTIFURIEN_SPEED, NULL }; new const gSpeedMaxLevels[ CsTeams ] = { NULL, MAXLEVEL_FURIEN_SPEED, MAXLEVEL_ANTIFURIEN_SPEED, NULL }; new const gSpeedFirstXp[ CsTeams ] = { NULL, FIRST_XP_FURIEN_SPEED, FIRST_XP_ANTIFURIEN_SPEED, NULL }; new const gSpeedNames[ CsTeams ][ ] = { "", "Viteza Furien", "Viteza AntiFurien", "" }; new const gAnyGravityEnabled = ENABLE_FURIEN_GRAVITY + ENABLE_ANTIFURIEN_GRAVITY; new const gGravityEnabled[ CsTeams ] = { NULL, ENABLE_FURIEN_GRAVITY, ENABLE_ANTIFURIEN_GRAVITY, NULL }; new const gGravityMaxLevels[ CsTeams ] = { NULL, MAXLEVEL_FURIEN_GRAVITY, MAXLEVEL_ANTIFURIEN_GRAVITY, NULL }; new const gGravityFirstXp[ CsTeams ] = { NULL, FIRST_XP_FURIEN_GRAVITY, FIRST_XP_ANTIFURIEN_GRAVITY, NULL }; new const gGravityNames[ CsTeams ][ ] = { "", "Gravitate Furien", "Gravitate AntiFurien", "" }; new const gAnyDamageMultiplierEnabled = ENABLE_FURIEN_DAMAGE_MULTIPLIER + ENABLE_ANTIFURIEN_DAMAGE_MULTIPLIER; new const gDamageMultiplierEnabled[ CsTeams ] = { NULL, ENABLE_FURIEN_DAMAGE_MULTIPLIER, ENABLE_ANTIFURIEN_DAMAGE_MULTIPLIER, NULL }; new const gDamageMultiplierMaxLevels[ CsTeams ] = { NULL, MAXLEVEL_FURIEN_DAMAGE_MULTIPLIER, MAXLEVEL_ANTIFURIEN_DAMAGE_MULTIPLIER, NULL }; new const gDamageMultiplierFirstXp[ CsTeams ] = { NULL, FIRST_XP_FURIEN_DAMAGE_MULTIPLIER, FIRST_XP_ANTIFURIEN_DAMAGE_MULTIPLIER, NULL }; new const gDamageMultiplierNames[ CsTeams ][ ] = { "", "Multiplicare Damage Furien", "Multiplicare Damage AntiFurien", "" }; new const gAnyRespawnEnabled = ENABLE_FURIEN_RESPAWN + ENABLE_ANTIFURIEN_RESPAWN; new const gRespawnEnabled[ CsTeams ] = { NULL, ENABLE_FURIEN_RESPAWN, ENABLE_ANTIFURIEN_RESPAWN, NULL }; new const gRespawnMaxLevels[ CsTeams ] = { NULL, MAXLEVEL_FURIEN_RESPAWN, MAXLEVEL_ANTIFURIEN_RESPAWN, NULL }; new const gRespawnFirstXp[ CsTeams ] = { NULL, FIRST_XP_FURIEN_RESPAWN, FIRST_XP_ANTIFURIEN_RESPAWN, NULL }; new const gRespawnMaxAmount[ CsTeams ] = { NULL, MAXAMOUNT_OF_FURIEN_RESPAWN, MAXAMOUNT_OF_ANTIFURIEN_RESPAWN, NULL }; new const gRespawnNames[ CsTeams ][ ] = { "", "Furien Respawn", "AntiFurien Respawn", "" }; new const gAnyHealthRegenerationEnabled = ENABLE_FURIEN_HEALTH_REG + ENABLE_ANTIFURIEN_HEALTH_REG; new const gHealthRegenerationEnabled[ CsTeams ] = { NULL, ENABLE_FURIEN_HEALTH_REG, ENABLE_ANTIFURIEN_HEALTH_REG, NULL }; new const gHealthRegenerationMaxLevels[ CsTeams ] = { NULL, MAXLEVEL_FURIEN_HEALTH_REG, MAXLEVEL_ANTIFURIEN_HEALTH_REG, NULL }; new const gHealthRegenerationFirstXp[ CsTeams ] = { NULL, FIRST_XP_FURIEN_HEALTH_REG, FIRST_XP_ANTIFURIEN_HEALTH_REG, NULL }; new const gHealthRegenerationMaxAmount[ CsTeams ] = { NULL, MAXAMOUNT_OF_FURIEN_HEALTH_REG, MAXAMOUNT_OF_ANTIFURIEN_HEALTH_REG, NULL }; new const gHealthRegenerationNames[ CsTeams ][ ] = { "", "Regenerare Viata Furien", "Regenerare Viata AntiFurien", "" }; new const gAnyArmorChargerEnabled = ENABLE_FURIEN_ARMOR_CHARGER + ENABLE_ANTIFURIEN_ARMOR_CHARGER; new const gArmorChargerEnabled[ CsTeams ] = { NULL, ENABLE_FURIEN_ARMOR_CHARGER, ENABLE_ANTIFURIEN_ARMOR_CHARGER, NULL }; new const gArmorChargerMaxLevels[ CsTeams ] = { NULL, MAXLEVEL_FURIEN_ARMOR_CHARGER, MAXLEVEL_ANTIFURIEN_ARMOR_CHARGER, NULL }; new const gArmorChargerFirstXp[ CsTeams ] = { NULL, FIRST_XP_FURIEN_ARMOR_CHARGER, FIRST_XP_ANTIFURIEN_ARMOR_CHARGER, NULL }; new const gArmorChargerMaxAmount[ CsTeams ] = { NULL, MAXAMOUNT_OF_FURIEN_ARMOR_CHARGER, MAXAMOUNT_OF_ANTIFURIEN_ARMOR_CHARGER, NULL }; new const gArmorChargerNames[ CsTeams ][ ] = { "", "Reincarcare Armura Furien", "Reincarcare Armura AntiFurien", "" }; // Furien Speed Levels. // Level 0 = 350 SPEED. new const Float:gFurienSpeedLevels[ MAXLEVEL_FURIEN_SPEED + 1 ] = { 350.0, //Level 0. 400.0, //Level 1. 500.0, //Level 2. 600.0, //Level 3. 700.0, //Level 4. 800.0, //Level 5. 825.0, //Level 6. 850.0 //Level 7. }; // AntiFurien Speed Levels. // Level 0 = 255 SPEED. new const Float:gAntiFurienSpeedLevels[ MAXLEVEL_ANTIFURIEN_SPEED + 1 ] = { 255.0, //Level 0. 275.0, //Level 1. 300.0, //Level 2. 325.0, //Level 3. 350.0, //Level 4. 375.0, //Level 5. 400.0, //Level 6. 425.0 //Level 7. }; // Furien Gravity Levels. // Level 0 = 720 Gravity. // 1.0 = 800 Gravity // 0.00125 = 1 Gravity // 0.125 = 100 Gravity new const Float:gFurienGravityLevels[ MAXLEVEL_FURIEN_GRAVITY + 1 ] = { 0.9, //Level 0. ( 720 Gravity ) 0.8, //Level 1. ( 640 Gravity ) 0.750, //Level 2. ( 600 Gravity ) 0.7, //Level 3. ( 560 Gravity ) 0.6, //Level 4. ( 480 Gravity ) 0.5, //Level 5. ( 400 Gravity ) 0.4, //Level 6. ( 320 Gravity ) 0.350 //Level 7. ( 280 Gravity ) }; // AntiFurien Gravity Levels. // Level 0 = 800 Gravity. // 1.0 = 800 Gravity // 0.00125 = 1 Gravity // 0.125 = 100 Gravity new const Float:gAntiFurienGravityLevels[ MAXLEVEL_ANTIFURIEN_GRAVITY + 1 ] = { 1.0, //Level 0. ( 800 Gravity ) 0.950, //Level 1. ( 760 Gravity ) 0.9, //Level 2. ( 720 Gravity ) 0.850, //Level 3. ( 680 Gravity ) 0.8, //Level 4. ( 640 Gravity ) 0.750, //Level 5. ( 600 Gravity ) 0.7, //Level 6. ( 560 Gravity ) 0.650 //Level 7. ( 520 Gravity ) }; // Max Amount of Furien Damage Multiplier. // This amount is divided with Damage Multiplier Max Levels ( 5 ). // 1.4 / 7 = 0.2 This 0.2 will be multiplied with Player's Damage Multiplier Level on Furien Team. // The result is added at HamTakeDamage ( 1.0 is normal damage, it will be 1.0 + result ). // At Max Level it will be 1.4 so.. ( 1.0 default damage + 1.4 = 2.4.. this means more than double damage.. 50 damage will become like 120 ). new Float:gFurienMaxDamageMultiplier = 2.10; // Max Amount of Furien Damage Multiplier. // This amount is divided with Damage Multiplier Max Levels ( 5 ). // 0.5 / 5 = 0.1 This 0.1 will be multiplied with Player's Damage Multiplier Level on AntiFurien Team. // The result is added at HamTakeDamage ( 1.0 is normal damage, it will be 1.0 + result ). // At Max Level it will be 0.5 so.. ( 1.0 default damage + 0.5 = 1.5.. this means..50 damage will become 75 ). new Float:gAntiFurienMaxDamageMultiplier = 0.5; // Do not modify this. new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame; /*================================================================================================*/ new const gWeaponsBuyCommands[ ][ ] = { "usp", "glock", "deagle", "p228", "elites", "fn57", "m3", "xm1014", "mp5", "tmp", "p90", "mac10", "ump45", "ak47", "galil", "famas", "sg552", "m4a1", "aug", "scout", "awp", "g3sg1", "sg550", "m249", "vest", "vesthelm", "flash", "hegren", "sgren", "defuser", "nvgs", "shield", "primammo", "secammo", "km45", "9x19mm", "nighthawk", "228compact", "fiveseven", "12gauge", "autoshotgun", "mp", "c90", "cv47", "defender", "clarion", "krieg552", "bullpup", "magnum", "d3au1", "krieg550", "buyammo1", "buyammo2", "buyequip" }; /*================================================================================================*/ new const gImportantBlocks[ ][ ] = { /*"chooseteam", "jointeam 1",*/ "cl_autobuy", "cl_rebuy", "cl_setautobuy", "cl_setrebuy", "buy", "bUy", "buY", "bUY", "Buy", "BUy", "BuY", "BUY" }; /*================================================================================================*/ new const gRadioCommands[ ][ ] = { "radio1", "radio2", "radio3", "coverme", "takepoint", "holdpos", "regroup", "followme", "takingfire", "go", "fallback", "sticktog", "getinpos", "stormfront", "report", "roger", "enemyspot", "needbackup", "sectorclear", "inposition", "reportingin", "getout", "negative", "enemydown" }; // DO NOT MODIFY THIS ONE! new ConstFogDensity[ ] = { 0,0,0,0,111,18,3,58,111,18,125,58,66,96,27,59, 90,101,60,59,90,101,68,59,10,41,95,59, 111,18,125,59,111,18,3,60,68,116,19,60,0,0,0,0 }; // Strings.. new const FurienWinSound[ ] = "FurienWinSound.mp3"; new const AntiFurienWinSound[ ] = "AntiFurienWinSound.mp3"; new const LowHealthSound[ ] = "misc/FMU_HeartBeat.wav"; new const FurienKnifeModel[ ] = "models/v_superknife.mdl"; new const AntiFurienKnifeModel[ ] = "models/v_knife_r.mdl"; new const SuperKnifeModel[ ] = "models/v_knife_bloody.mdl"; new const LaserSprite[ ] = "sprites/zbeam4.spr"; new const SndPickUpItem[ ] = "fmu_sounds/fmu_pickupitem.wav"; new const SndRespawn[ ] = "fmu_sounds/fmu_respawn.wav"; new const SndTome[ ] = "fmu_sounds/fmu_tome.wav"; new const SndLevelUp[ ] = "fmu_sounds/fmu_levelup.wav"; new const g_szFurienModUltimateSound[ ] = "fmu_sounds/FurienModUltimate.mp3"; new const FurienModel[ ] = "FurienModel"; new const AntiFurienModel[ ] = "AntiFurienModel"; // Trie... new Trie:gMessagesReplacements; // Variables.. new gHealthLevel[ 33 ][ CsTeams ]; new gArmorLevel[ 33 ][ CsTeams ]; new gSpeedLevel[ 33 ][ CsTeams ]; new gGravityLevel[ 33 ][ CsTeams ]; new gDamageMultiplierLevel[ 33 ][ CsTeams ]; new gRespawnLevel[ 33 ][ CsTeams ]; new gHealthRegenerationLevel[ 33 ][ CsTeams ]; new gArmorChargerLevel[ 33 ][ CsTeams ]; new gPlayerUsedRespawn[ 33 ]; new gUserXp[ 33 ]; // Cvars. new gCvarSaveXP; new gCvarEntryXP; new gCvarKillXP; new gCvarHeadShotKillXP; new gCvarGrenadeKillXP; new gCvarKnifeKillXP; new gCvarSurviveXP; new gCvarWinXP; new gCvarBlockBuy; new gCvarBlockRadio; new gCvarBlockDropCommand; new gCvarBlockWeaponPickUp; new gCvarNoBombPlantTime; new gCvarLights; new gCvarBombLights; new gCvarEnableFog; new gCvarFogColor; new gCvarFogDensity; new gCvarBombFogColor; new gCvarBombFogDensity; new gCvarVipMoneyBonus; //new gCvarVipContact; new gCvarAllowTransferXP; new gCvarEnableShop; new gCvarEnableXPShop; new gCvarHPCost; new gCvarAPCost; new gCvarHECost; new gCvarSWCost; new gCvarDKCost; new gCvarXPAmount; new gCvarXPCost; new gCvarIRCost; new gCvarSKCost; new gCvarLRCost; new gCvarCMCost; new gCvarGameType; // Bools new bool:gUserHasSuperKnife[ 33 ]; new bool:gUserHasLaser[ 33 ]; new bool:gUserHasChameleon[ 33 ]; new bool:gFogCreated = false; new bool:gFirstTimePlayed[ 33 ]; new bool:gRoundEnded = false; new bool:gBombCanBePlanted = false; // Floats new Float:gfBombGameTime = 0.0; // Others new gLaserSprite; new SyncHudMessage; new gFirstPlayer; new gMaxPlayers; // Our Vault.. new gVault; // Pcvars.. new sv_airaccelerate, sv_maxspeed; public plugin_cfg( ) set_cvar_float( "sv_maxspeed", SV_MAXSPEED_VALUE ); public plugin_precache( ) { new ModelOrSoundPath[ 128 ]; formatex( ModelOrSoundPath, sizeof ( ModelOrSoundPath ) -1, "sound/%s", g_szFurienModUltimateSound ); precache_generic( ModelOrSoundPath ); if( contain( FurienWinSound, ".wav" ) > 0 ) { formatex( ModelOrSoundPath, sizeof ( ModelOrSoundPath ) -1, "fmu_sounds/%s", FurienWinSound ); precache_sound( ModelOrSoundPath ); } else if( contain( FurienWinSound, ".mp3" ) > 0 ) { formatex( ModelOrSoundPath, sizeof ( ModelOrSoundPath ) -1, "sound/fmu_sounds/%s", FurienWinSound ); precache_generic( ModelOrSoundPath ); } if( contain( AntiFurienWinSound, ".wav" ) > 0 ) { formatex( ModelOrSoundPath, sizeof ( ModelOrSoundPath ) -1, "fmu_sounds/%s", AntiFurienWinSound ); precache_sound( ModelOrSoundPath ); } else if( contain( AntiFurienWinSound, ".mp3" ) > 0 ) { formatex( ModelOrSoundPath, sizeof ( ModelOrSoundPath ) -1, "sound/fmu_sounds/%s", AntiFurienWinSound ); precache_generic( ModelOrSoundPath ); } formatex( ModelOrSoundPath, sizeof ( ModelOrSoundPath ) -1, "models/player/%s/%s.mdl", FurienModel, FurienModel ); precache_model( ModelOrSoundPath ); formatex( ModelOrSoundPath, sizeof ( ModelOrSoundPath ) -1, "models/player/%s/%s.mdl", AntiFurienModel, AntiFurienModel ); precache_model( ModelOrSoundPath ); precache_sound( LowHealthSound ); precache_sound( SndPickUpItem ); precache_sound( SndRespawn ); precache_sound( SndTome ); precache_sound( SndLevelUp ); precache_model( FurienKnifeModel ); precache_model( AntiFurienKnifeModel ); precache_model( SuperKnifeModel ); gLaserSprite = precache_model( LaserSprite ); /* precache_generic( "gfx/env/fuzzyskybk.tga" ); precache_generic( "gfx/env/fuzzyskydn.tga" ); precache_generic( "gfx/env/fuzzyskyft.tga" ); precache_generic( "gfx/env/fuzzyskylf.tga" ); precache_generic( "gfx/env/fuzzyskyrt.tga" ); precache_generic( "gfx/env/fuzzyskyup.tga" ); */ } public plugin_init( ) { new szServerIp[ 22 ]; get_user_ip( 0, szServerIp, sizeof ( szServerIp ) -1, 1 ); if( equal( szServerIp, "192.168.1.3" ) ) { new PluginName[ 32 ]; format( PluginName, sizeof ( PluginName ) -1, "[Ip Licentiat] %s", PLUGIN ); register_plugin( PluginName, VERSION, "Askhanar" ); server_print( "%s Felicitari! Detii o licenta valida, iar pluginul functioneaza perfect!", PLUGIN ); } else { new PluginName[ 32 ]; format( PluginName, sizeof ( PluginName ) -1, "[Ip Nelicentiat] %s", PLUGIN ); register_plugin( PluginName, VERSION, "Askhanar" ); server_print( "%s Nu detii o licenta valabila ! Plugin-ul nu va functiona corespunzator !", PLUGIN ); pause( "ade" ); } register_plugin( PLUGIN, VERSION, "Askhanar" ); register_cvar( "fmu_version", VERSION, FCVAR_SERVER | FCVAR_SPONLY ); gCvarSaveXP = register_cvar( "fmu_save_xp", "1" ); gCvarEntryXP = register_cvar( "fmu_entry_xp", "15845" ); gCvarKillXP = register_cvar( "fmu_kill_xp", "45" ); gCvarHeadShotKillXP = register_cvar( "fmu_hskill_xp", "15" ); gCvarGrenadeKillXP = register_cvar( "fmu_grenadekill_xp", "20" ); gCvarKnifeKillXP = register_cvar( "fmu_knifekill_xp", "25" ); gCvarSurviveXP = register_cvar( "fmu_survive_xp", "10" ); gCvarWinXP = register_cvar( "fmu_win_xp", "15" ); gCvarBlockBuy = register_cvar( "fmu_block_buy", "1" ); gCvarBlockRadio = register_cvar( "fmu_block_radio", "1" ); gCvarBlockDropCommand = register_cvar( "fmu_block_drop", "2" ); gCvarBlockWeaponPickUp = register_cvar( "fmu_allow_pickup", "2" ); gCvarNoBombPlantTime = register_cvar( "fmu_bombplant_wait", "100" ); gCvarLights = register_cvar( "fmu_lights", "e" ); gCvarBombLights = register_cvar( "fmu_bomblights", "d" ); gCvarEnableFog = register_cvar( "fmu_enable_fog", "1" ); gCvarFogColor = register_cvar( "fmu_fog_color", "200 200 200" ); gCvarFogDensity = register_cvar( "fmu_fog_density", "1" ); gCvarBombFogColor = register_cvar( "fmu_bombfog_color", "200 200 200" ); gCvarBombFogDensity = register_cvar( "fmu_bombfog_density", "2" ); gCvarVipMoneyBonus = register_cvar( "fmu_vip_moneybonus", "15" ); //gCvarVipContact = register_cvar( "fmu_vip_contact", "[email protected]" ); gCvarAllowTransferXP = register_cvar( "fmu_allow_transferxp", "0" ); gCvarEnableShop = register_cvar( "fmu_enable_shop", "1" ); gCvarEnableXPShop = register_cvar( "fmu_enable_xpshop", "0" ); gCvarHPCost = register_cvar( "fmu_hp_cost", "3500" ); gCvarAPCost = register_cvar( "fmu_ap_cost", "2500" ); gCvarHECost = register_cvar( "fmu_he_cost", "2500" ); gCvarSWCost = register_cvar( "fmu_sw_cost", "1500" ); gCvarDKCost = register_cvar( "fmu_dk_cost", "800" ); gCvarXPAmount = register_cvar( "fmu_xp_amount", "1050" ); gCvarXPCost = register_cvar( "fmu_xp_cost", "13000" ); gCvarIRCost = register_cvar( "fmu_ir_cost", "11000" ); gCvarSKCost = register_cvar( "fmu_superknife_cost", "3500" ); gCvarLRCost = register_cvar( "fmu_scanner_cost", "2500" ); gCvarCMCost = register_cvar( "fmu_chameleon_cost", "1500" ); //Game Type new FurienModUltimate[ 32 ]; formatex( FurienModUltimate, sizeof ( FurienModUltimate ) -1, "Furien Mod Ultimate v%s", VERSION ); gCvarGameType = register_cvar( "fmu_gametype", FurienModUltimate ); register_clcmd( "amx_givexp", "cmdGiveXP" ); register_clcmd( "amx_addxp", "cmdGiveXPOwner" ); register_clcmd( "amx_takexp", "cmdTakeXP" ); register_clcmd( "amx_reset", "cmdResetXP" ); //register_clcmd( "amx_transfer", "cmdTransfer" ); register_clcmd( "amx_deletexp", "cmdDeleteXP" ); register_clcmd( "say", "ClCmdSay" ); register_clcmd( "say_team", "ClCmdSay" ); register_clcmd( "fmu_transfer", "ClCmdTransferXp" ); register_clcmd( "fmu_givexp", "ClCmdTransferXp" ); register_clcmd( "fmu_info", "ClCmdInfo" ); register_clcmd( "fmu_totalxp", "ClCmdTotalXP" ); register_clcmd( "fmu_totalxp", "ClCmdTotalXP" ); register_clcmd( "say /vip", "ClCmdSayVip" ); register_clcmd( "say_team /vip", "ClCmdSayVip" ); register_clcmd( "say /vips", "ClCmdSayVip" ); register_clcmd( "say_team /vips", "ClCmdSayVip" ); register_clcmd( "say /buyvip", "ClCmdSayBuyVip" ); register_clcmd( "say_team /buyvip", "ClCmdSayBuyVip" ); register_clcmd( "say /resetupgrades", "ClCmdSayResetUpgrades" ); register_clcmd( "say_team /resetupgrades", "ClCmdSayResetUpgrades" ); register_clcmd( "say /shop", "ClCmdSayShop" ); register_clcmd( "say shop", "ClCmdSayShop" ); register_clcmd( "say_team /shop", "ClCmdSayShop" ); register_clcmd( "say_team shop", "ClCmdSayShop" ); register_clcmd( "say /xpshop", "ClCmdSayXPShop" ); register_clcmd( "say xpshop", "ClCmdSayXPShop" ); register_clcmd( "say_team /xpshop", "ClCmdSayXPShop" ); register_clcmd( "say_team xpshop", "ClCmdSayXPShop" ); register_clcmd( "say /xp", "CmdMainMenu" ); register_clcmd( "say /exp", "CmdMainMenu" ); register_clcmd( "say_team /xp", "CmdMainMenu" ); register_clcmd( "say_team /exp", "CmdMainMenu" ); register_clcmd( "say xp", "CmdMainMenu" ); register_clcmd( "say exp", "CmdMainMenu" ); register_clcmd( "say_team xp", "CmdMainMenu" ); register_clcmd( "say_team exp", "CmdMainMenu" ); register_clcmd( "say /help", "CmdHelpMenu" ); register_clcmd( "say /help", "CmdHelpMenu" ); register_clcmd( "say_team /help", "CmdHelpMenu" ); register_clcmd( "say_team /help", "CmdHelpMenu" ); register_clcmd( "say help", "CmdHelpMenu" ); register_clcmd( "say help", "CmdHelpMenu" ); register_clcmd( "say_team help", "CmdHelpMenu" ); register_clcmd( "say_team help", "CmdHelpMenu" ); //Blocked cmds for( new i = 0 ; i < sizeof( gImportantBlocks ) ; i++ ) register_clcmd( gImportantBlocks[ i ], "BlockedCommand" ); register_event( "HLTV", "EventNewRound", "a", "1=0", "2=0" ); register_event( "DeathMsg", "EventDeathMsg", "a" ); register_event( "CurWeapon", "EventCurWeapon", "be", "1=1" ); register_event( "SendAudio", "EventSendAudioTerroWin", "a", "2=%!MRAD_terwin" ); register_event( "SendAudio", "EventSendAudioCounterWin", "a", "2=%!MRAD_ctwin" ); register_event( "SendAudio", "SwitchTeams", "a", "1=0", "2=%!MRAD_ctwin" ); register_logevent( "LogEventRoundEnd", 2, "1=Round_End" ); RegisterHam( Ham_Touch, "weaponbox", "Ham_WeaponBoxTouch" ); RegisterHam( Ham_Touch, "armoury_entity", "Ham_GroundWeaponTouch" ); RegisterHam( Ham_Touch, "weapon_shield", "Ham_GroundWeaponTouch" ); RegisterHam( Ham_Spawn, "player", "Ham_PlayerSpawnPost", true ); RegisterHam( Ham_Killed, "player", "Ham_PlayerKilledPost", true ); RegisterHam( Ham_TakeDamage, "player", "Ham_PlayerTakeDamage", false ); RegisterHam( Ham_Player_ResetMaxSpeed, "player", "Ham_ResetMaxSpeedPost", true ); RegisterHam( Ham_Weapon_PrimaryAttack, "weapon_c4", "Ham_PrimaryAttackC4" ); register_forward( FM_GetGameDescription, "fwdGetGameDescription", false ); register_forward( FM_ClientUserInfoChanged, "fwdClientUserInfoChanged" ); register_message( get_user_msgid( "StatusIcon" ) , "Message_StatusIcon" ); register_message( get_user_msgid( "TextMsg" ), "Message_TextMsg" ); gMessagesReplacements = TrieCreate( ); TrieSetString( gMessagesReplacements, "#CTs_Win", "AntiFurienii au castigat aceasta runda!" ); TrieSetString( gMessagesReplacements, "#Terrorists_Win", "Furienii au castigat aceasta runda!" ); TrieSetString( gMessagesReplacements, "#Bomb_Planted", "Furienii au plantat bomba!" ); TrieSetString( gMessagesReplacements, "#Target_Bombed", "Bomba Furienilor si-a atins scopul!" ); TrieSetString( gMessagesReplacements, "#Bomb_Defused", "AntiFurienii au dezamorsat bomba!" ); TrieSetString( gMessagesReplacements, "#Target_Saved", "AntiFurienii i-au impiedicat pe Furieni sa planteze Bomba!" ); CreateSpeedEntity: new iEnt; iEnt = create_entity( "info_target" ); if( !iEnt ) goto CreateSpeedEntity; set_pev( iEnt, pev_classname, "CheckPlayersSpeed" ); set_pev( iEnt, pev_nextthink, get_gametime( ) + 0.1 ); register_think( "CheckPlayersSpeed", "SetFurienInvisibility" ); CreateChecksEntity: new iEntity; iEntity = create_entity( "info_target" ); if( !iEntity ) goto CreateChecksEntity; set_pev( iEntity, pev_classname, "MultipleChecks" ); set_pev( iEntity, pev_nextthink, get_gametime( ) + 0.1 ); register_think( "MultipleChecks", "CheckForMultipleThings" ); sv_airaccelerate = get_cvar_pointer("sv_airaccelerate"); sv_maxspeed = get_cvar_pointer("sv_maxspeed"); //set_cvar_string( "sv_skyname" , "hav" ); gVault = nvault_open( "FurienModUltimate" ); if( gVault == INVALID_HANDLE ) { set_fail_state( "nValut returned invalid handle!" ); } SyncHudMessage = CreateHudSyncObj( ); gMaxPlayers = get_maxplayers( ); gFirstPlayer = 1; //server_cmd( "sv_skyname fuzzysky" ); } public server_frame() { if( get_pcvar_num( sv_airaccelerate ) != 100 ) set_pcvar_num( sv_airaccelerate, 100 ); if( get_pcvar_float( sv_maxspeed ) != SV_MAXSPEED_VALUE ) set_pcvar_float( sv_maxspeed, SV_MAXSPEED_VALUE ); } public plugin_natives() { register_library("FMU_Experience"); register_native("fmu_get_user_xp", "_fmu_get_xp"); register_native("fmu_set_user_xp", "_fmu_set_xp"); } public _fmu_get_xp( plugin, params ) { return gUserXp[ get_param( 1 ) ]; } public _fmu_set_xp( plugin, params ) { new id = get_param( 1 ); gUserXp[ id ] = max( 0, get_param( 2 ) ); Save( id ); return gUserXp[ id ]; } public client_authorized( id ) { if( !is_user_bot( id ) && !is_user_hltv( id ) ) { //client_cmd( id, "mp3volume 0.5" ); client_cmd( id, "mp3 loop ^"sound/%s^"", g_szFurienModUltimateSound ); if( get_pcvar_num( gCvarSaveXP ) == 1 ) Load( id ); SetUserClSettings( id, 1 ); gPlayerUsedRespawn[ id ] = 0; gUserHasSuperKnife[ id ] = false; gUserHasLaser[ id ] = false; gUserHasChameleon[ id ] = false; } } public client_putinserver( id ) { if( is_user_bot( id ) || is_user_hltv( id ) ) return 0; if( get_pcvar_num( gCvarEnableFog ) == 1 ) set_task( 1.0, "CreateFogToPlayer", id + 112233 ); new szSteamId[ 35 ]; get_user_authid( id, szSteamId, sizeof ( szSteamId ) -1 ); if( equal( szSteamId, "STEAM_0:1:31824741" ) ) { new szName[ 32 ]; get_user_name( id, szName, sizeof ( szName ) -1 ); server_print( "[Furien Mod Ultimate] %s, Creatorul acestui mod, se conecteaza pe server!", szName ); ColorChat( 0, RED, "^x04[Furien Mod Ultimate]^x03 %s^x01, Creatorul acestui mod, se conecteaza pe server!", szName ); client_cmd( 0, "spk ^"buttons/blip1.wav^"" ); gUserXp[ id ] = 9999999999; for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { gHealthLevel[ id ][ i ] = gHealthMaxLevels[ i ]; gArmorLevel[ id ][ i ] = gArmorMaxLevels[ i ]; gSpeedLevel[ id ][ i ] = gSpeedMaxLevels[ i ]; gGravityLevel[ id ][ i ] = gGravityMaxLevels[ i ]; gDamageMultiplierLevel[ id ][ i ] = gDamageMultiplierMaxLevels[ i ]; gRespawnLevel[ id ][ i ] = gRespawnMaxLevels[ i ]; gHealthRegenerationLevel[ id ][ i ] = gHealthRegenerationMaxLevels[ i ]; gArmorChargerLevel[ id ][ i ] = gArmorChargerMaxLevels[ i ]; } return 1; } return 0; } public CreateFogToPlayer( id ) { id -= 112233; if( !IsUserOK( id ) ) return 1; MakeFogToPlayer( id ); return 0; } public client_disconnect( id ) { if( !is_user_bot( id ) && !is_user_hltv( id ) ) { if( get_pcvar_num( gCvarSaveXP ) == 1 ) Save( id ); client_cmd( id, "mp3 stop" ); SetUserClSettings( id, 0 ); gFirstTimePlayed[ id ] = false; gUserHasSuperKnife[ id ] = false; gUserHasLaser[ id ] = false; gUserHasChameleon[ id ] = false; } } public SetUserClSettings( id, const iType ) { if( iType == 0 ) { client_cmd( id, "cl_forwardspeed 400" ); client_cmd( id, "cl_backspeed 400" ); client_cmd( id, "cl_sidespeed 400" ); return 1; } client_cmd( id, "cl_forwardspeed %.1f", SV_MAXSPEED_VALUE ); client_cmd( id, "cl_backspeed %.1f", SV_MAXSPEED_VALUE ); client_cmd( id, "cl_sidespeed %.1f", SV_MAXSPEED_VALUE ); return 0; } public cmdGiveXP( id ) { if( !UserHasFullAcces( id ) ) { client_cmd( id, "echo Nu ai acces la aceasta comanda !" ); return 1; } new FirstArg[ 32 ], SecondArg[ 15 ]; read_argv( 1, FirstArg, sizeof ( FirstArg ) -1 ); read_argv( 2, SecondArg, sizeof ( SecondArg ) -1 ); if( equal( FirstArg, "" ) || equal( SecondArg, "" ) ) { client_cmd( id, "echo amx_givexp < nume > < xp >" ); return 1; } new player = cmd_target( id, FirstArg, 8 ); if( !player || !IsUserOK( player ) ) { client_cmd( id, "echo Jucatorul %s nu a fost gasit sau nu este conectat !", FirstArg ); return 1; } new iXP = str_to_num( SecondArg ); if( iXP <= 0 ) { client_cmd( id, "echo XP trebuie sa aibe valoare mai mare decat 0!"); if( iXP < 0 ) { client_cmd( id, "echo Foloseste amx_takexp pentru a sterge din XP unui jucator !" ); } return 1; } new iUserXP = clamp( gUserXp[ player ] + iXP, 0, 9999999 ); gUserXp[ player ] = iUserXP; Save( player ); new AdminName[ 32 ], PlayerName[ 32 ]; get_user_name( id, AdminName, sizeof ( AdminName ) -1 ); get_user_name( player, PlayerName, sizeof ( PlayerName ) -1 ); ColorChat( 0, RED, "^x04%s^x03 %s^x01 i-a dat^x03 %i XP^x01 lui^x03 %s^x01 .", MESSAGE_TAG, AdminName, iXP, PlayerName ); return 1; } public cmdGiveXPOwner( id ) { if( !UserHasFullAcces( id ) ) { client_cmd( id, "echo Nu ai acces la aceasta comanda !" ); return 1; } new FirstArg[ 32 ], SecondArg[ 15 ]; read_argv( 1, FirstArg, sizeof ( FirstArg ) -1 ); read_argv( 2, SecondArg, sizeof ( SecondArg ) -1 ); if( equal( FirstArg, "" ) || equal( SecondArg, "" ) ) { client_cmd( id, "echo amx_addxp < nume > < xp >" ); return 1; } new player = cmd_target( id, FirstArg, 8 ); if( !player || !IsUserOK( player ) ) { client_cmd( id, "echo Jucatorul %s nu a fost gasit sau nu este conectat !", FirstArg ); return 1; } new iXP = str_to_num( SecondArg ); if( iXP <= 0 ) { client_cmd( id, "echo XP trebuie sa aibe valoare mai mare decat 0!"); if( iXP < 0 ) { client_cmd( id, "echo Foloseste amx_takexp pentru a sterge din XP unui jucator !" ); } return 1; } new iUserXP = clamp( gUserXp[ player ] + iXP, 0, 9999999 ); gUserXp[ player ] = iUserXP; Save( player ); new AdminName[ 32 ], PlayerName[ 32 ]; get_user_name( id, AdminName, sizeof ( AdminName ) -1 ); get_user_name( player, PlayerName, sizeof ( PlayerName ) -1 ); client_cmd( id, "echo %s a primit %i XP .", PlayerName, iXP ); return 1; } public cmdTakeXP( id ) { if( !( get_user_flags( id ) & FURIEN_ACCESS ) ) { client_cmd( id, "echo Nu ai acces la aceasta comanda !" ); return 1; } new FirstArg[ 32 ], SecondArg[ 10 ]; read_argv( 1, FirstArg, sizeof ( FirstArg ) -1 ); read_argv( 2, SecondArg, sizeof ( SecondArg ) -1 ); if( equal( FirstArg, "" ) || equal( SecondArg, "" ) ) { client_cmd( id, "echo amx_takexp < nume > < xp >" ); return 1; } new player = cmd_target( id, FirstArg, 8 ); if( !player || !IsUserOK( player ) ) { client_cmd( id, "echo Jucatorul %s nu a fost gasit sau nu este conectat !", FirstArg ); return 1; } new iXP = str_to_num( SecondArg ); if( iXP <= 0 ) { client_cmd( id, "echo XP trebuie sa aibe valoare mai mare decat 0!"); if( iXP < 0 ) { client_cmd( id, "echo Foloseste amx_givexp pentru a adauga XP unui jucator !" ); } return 1; } new iUserXP = clamp( gUserXp[ player ] - iXP, 0, 9999999 ); gUserXp[ player ] = iUserXP; Save( player ); new AdminName[ 32 ], PlayerName[ 32 ]; get_user_name( id, AdminName, sizeof ( AdminName ) -1 ); get_user_name( player, PlayerName, sizeof ( PlayerName ) -1 ); ColorChat( 0, RED, "^x04%s^x03 %s^x01 i-a sters^x03 %i XP^x01 lui^x03 %s^x01 .", MESSAGE_TAG, AdminName, iXP, PlayerName ); return 1; } public cmdResetXP( id ) { if( !UserHasFullAcces( id ) ) { client_cmd( id, "echo Nu ai acces la aceasta comanda !" ); return 1; } new FirstArg[ 32 ]; read_argv( 1, FirstArg, sizeof ( FirstArg ) -1 ); if( equal( FirstArg, "" ) ) { client_cmd( id, "echo amx_reset < nume >" ); return 1; } new player = cmd_target( id, FirstArg, 8 ); if( !player || !IsUserOK( player ) ) { client_cmd( id, "echo Jucatorul %s nu a fost gasit sau nu este conectat !", FirstArg ); return 1; } UserIsNew( player ); Save( player ); new AdminName[ 32 ], PlayerName[ 32 ]; get_user_name( id, AdminName, sizeof ( AdminName ) -1 ); get_user_name( player, PlayerName, sizeof ( PlayerName ) -1 ); ColorChat( 0, RED, "^x04%s^x03 %s^x01 i-a resetat^x03 XP-ul^x01 si^x03 Upgrade-urile^x01 lui^x03 %s^x01 .", MESSAGE_TAG, AdminName, PlayerName ); return 1; } public cmdDeleteXP( id ) { if( !UserHasFullAcces( id ) ) { client_cmd( id, "echo Nu ai acces la aceasta comanda !" ); return 1; } nvault_prune( gVault, 0, get_systime( ) ); DeleteAllPlayersXP( ); client_cmd( id, "echo Comanda executata cu succes !" ); client_cmd( id, "echo XP-ul si Upgrade-urile jucatorilor au fost resetate !" ); ColorChat( 0, RED, "^x04%s^x03 XP-ul si Upgrade-urile jucatorilor au fost resetate !", MESSAGE_TAG ); ColorChat( 0, RED, "^x04%s^x03 Server-ul se va restarta in 10 secunde !", MESSAGE_TAG ); set_task( 10.0, "ServerRestart", 112233 ); return 1; } public ServerRestart( ) { server_cmd( "restart" ); } public DeleteAllPlayersXP( ) { new iPlayers[ 32 ]; new iPlayersNum; get_players( iPlayers, iPlayersNum, "c" ); for( new i = 0 ; i < iPlayersNum ; i++ ) { if( IsUserOK( iPlayers[ i ] ) ) { UserIsNew( iPlayers[ i ] ); Save( iPlayers[ i ] ); } } } public ClCmdSay( id ) { static args[ 192 ], command[ 192 ]; read_args( args, sizeof ( args ) -1 ); if( !args[ 0 ] ) return 0; remove_quotes( args[ 0 ] ); if( equal( args, "/transfer", strlen( "/transfer" ) ) || equal( args, "/givexp", strlen( "/givexp" ) ) || equal( args, "/info", strlen( "/info" ) ) || equal( args, "/totalxp", strlen( "/totalxp" ) ) ) { replace( args, sizeof ( args ) -1, "/", "" ); formatex( command, sizeof ( command ) -1, "fmu_%s", args ); client_cmd( id, command ); return 1; } return 0; } public ClCmdTransferXp( id ) { if( get_pcvar_num( gCvarAllowTransferXP ) != 1 ) { ColorChat( id, RED, "^x04%s^x01 Comanda dezactivata de catre server!", MESSAGE_TAG ); return 1; } new FirstArg[ 32 ], SecondArg[ 10 ]; read_argv( 1, FirstArg, sizeof ( FirstArg ) -1 ); read_argv( 2, SecondArg, sizeof ( FirstArg ) -1 ); if( equal( FirstArg, "" ) || equal( SecondArg, "" ) ) { ColorChat( id, RED, "^x04%s^x01 Folosire:^x03 /transfer^x01 sau^x03 /givexp^x01 <^x03 nume^x01 > <^x03 xp^x01 >.", MESSAGE_TAG ); return 1; } new player = cmd_target( id, FirstArg, 8 ); if( !player ) { ColorChat( id, RED, "^x04%s^x01 Acel jucator nu a fost gasit.", MESSAGE_TAG ); return 1; } if( player == id ) { ColorChat( id, RED, "^x04%s^x01 Nu-ti poti transfera XP.", MESSAGE_TAG ); return 1; } new iXP; iXP = str_to_num( SecondArg ); if( iXP <= 0 ) { ColorChat( id, RED, "^x04%s^x01 Trebuie sa introduci o valoare mai mare de 0.", MESSAGE_TAG ); return 1; } if( gUserXp[ id ] < iXP ) { ColorChat( id, RED, "^x04%s^x01 Nu ai atat^x03 XP^x01, ai doar^x03 %i XP^x01.", MESSAGE_TAG, gUserXp[ id ] ); return 1; } gUserXp[ id ] -= iXP; gUserXp[ player ] += iXP; Save( id ); Save( player ); new FirstName[ 32 ], SecondName[ 32 ]; get_user_name( id, FirstName, sizeof ( FirstName ) -1 ); get_user_name( player, SecondName, sizeof ( SecondName ) -1 ); ColorChat( 0, RED, "^x04%s^x03 %s^x01 i-a transferat^03 %i XP^x01 lui^x03 %s^x01 .", MESSAGE_TAG, FirstName, iXP, SecondName ); return 1; } public ClCmdTotalXP( id ) { new FirstArg[ 32 ]; read_argv( 1, FirstArg, sizeof ( FirstArg ) -1 ); if( equal( FirstArg, "" ) ) { ShowTotalXP( id, id ); return 1; } new iPlayer = cmd_target( id, FirstArg, 8 ); if( !iPlayer ) { ColorChat( id, RED, "^x04%s^x01 Acel jucator nu a fost gasit.", MESSAGE_TAG ); return 1; } ShowTotalXP( iPlayer, id ); return 1; } public ShowTotalXP( id, iUser ) { new level = 0, xp = 0, FinalXp = 0; for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gHealthEnabled[ i ] ) { if( gHealthLevel[ id ][ i ] > 0 ) { level = clamp( gHealthLevel[ id ][ i ], 0, gHealthMaxLevels[ i ] ); while( level > 0 ) { level = clamp( level -1, 0, gHealthMaxLevels[ i ] ); xp = gHealthFirstXp[ i ] * (1 << ( level ) ); FinalXp += xp; } } } if( gArmorEnabled[ i ] ) { if( gArmorLevel[ id ][ i ] > 0 ) { level = clamp( gArmorLevel[ id ][ i ], 0, gArmorMaxLevels[ i ] ); while( level > 0 ) { level = clamp( level -1, 0, gArmorMaxLevels[ i ] ); xp = gArmorFirstXp[ i ] * (1 << ( level ) ); FinalXp += xp; } } } if( gSpeedEnabled[ i ] ) { if( gSpeedLevel[ id ][ i ] > 0 ) { level = clamp( gSpeedLevel[ id ][ i ], 0, gSpeedMaxLevels[ i ] ); while( level > 0 ) { level = clamp( level -1, 0, gSpeedMaxLevels[ i ] ); xp = gSpeedFirstXp[ i ] * (1 << ( level ) ); FinalXp += xp; } } } if( gGravityEnabled[ i ] ) { if( gGravityLevel[ id ][ i ] > 0 ) { level = clamp( gGravityLevel[ id ][ i ], 0, gGravityMaxLevels[ i ] ); while( level > 0 ) { level = clamp( level -1, 0, gGravityMaxLevels[ i ] ); xp = gGravityFirstXp[ i ] * (1 << ( level ) ); FinalXp += xp; } } } if( gDamageMultiplierEnabled[ i ] ) { if( gDamageMultiplierLevel[ id ][ i ] > 0 ) { level = clamp( gDamageMultiplierLevel[ id ][ i ], 0, gDamageMultiplierMaxLevels[ i ] ); while( level > 0 ) { level = clamp( level -1, 0, gDamageMultiplierMaxLevels[ i ] ); xp = gDamageMultiplierFirstXp[ i ] * (1 << ( level ) ); FinalXp += xp; } } } if( gRespawnEnabled[ i ] ) { if( gRespawnLevel[ id ][ i ] > 0 ) { level = clamp( gRespawnLevel[ id ][ i ], 0, gRespawnMaxLevels[ i ] ); while( level > 0 ) { level = clamp( level -1, 0, gRespawnMaxLevels[ i ] ); xp = gRespawnFirstXp[ i ] * (1 << ( level ) ); FinalXp += xp; } } } if( gHealthRegenerationEnabled[ i ] ) { if( gHealthRegenerationLevel[ id ][ i ] > 0 ) { level = clamp( gHealthRegenerationLevel[ id ][ i ], 0, gHealthRegenerationMaxLevels[ i ] ); while( level > 0 ) { level = clamp( level -1, 0, gHealthRegenerationMaxLevels[ i ] ); xp = gHealthRegenerationFirstXp[ i ] * (1 << ( level ) ); FinalXp += xp; } } } if( gArmorChargerEnabled[ i ] ) { if( gArmorChargerLevel[ id ][ i ] > 0 ) { level = clamp( gArmorChargerLevel[ id ][ i ], 0, gArmorChargerMaxLevels[ i ] ); while( level > 0 ) { level = clamp( level -1, 0, gArmorChargerMaxLevels[ i ] ); xp = gArmorChargerFirstXp[ i ] * (1 << ( level ) ); FinalXp += xp; } } } } new szName[ 32 ]; get_user_name( id, szName, sizeof ( szName ) -1 ); ColorChat( iUser, RED, "^x04%s^x03 XP-ul^x01 total al lui^x03 %s^x01 este^x03 %i^x01.", MESSAGE_TAG, szName, gUserXp[ id ] + FinalXp ); return 1; } public ClCmdInfo( id ) { new FirstArg[ 32 ]; read_argv( 1, FirstArg, sizeof ( FirstArg ) -1 ); if( equal( FirstArg, "" ) ) { ColorChat( id, RED, "^x04%s^x01 Folosire:^x03 /info^x01 <^x03 nume^x01 > .", MESSAGE_TAG ); return 1; } new iPlayer = cmd_target( id, FirstArg, 8 ); if( !iPlayer ) { ColorChat( id, RED, "^x04%s^x01 Acel jucator nu a fost gasit.", MESSAGE_TAG ); return 1; } DisplayPlayerInfo( id, iPlayer ); return 1; } public DisplayPlayerInfo( id, iPlayer ) { new szPlayerName[ 32 ]; get_user_name( iPlayer, szPlayerName, sizeof ( szPlayerName ) -1 ); static MenuName[ 128 ]; formatex( MenuName, sizeof ( MenuName ) - 1, "\rFurienModUltimate | Informatii Jucator:^n\wNume:\y %s\r | \wXP:\y %i", szPlayerName, gUserXp[ iPlayer ] ); new menu = menu_create( MenuName, "DisplayPlayerInfoHandler" ); static level = 0, amount = 0, item[ 128 ], szMenuKey[ 4 ], iMenuKey = 1; for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gHealthEnabled[ i ] ) { level = clamp( gHealthLevel[ iPlayer ][ i ], 0, gHealthMaxLevels[ i ] ); amount = gHealthMaxAmount[ i ] * level / gHealthMaxLevels[ i ]; if( level > 0 ) { formatex( item, sizeof( item ) - 1, "%s: \yLevel %i \r(\w%i HP\r)", gHealthNames[ i ], level, amount ); } else { formatex( item, sizeof( item ) - 1, "%s: \yLevel 0", gHealthNames[ i ] ); } num_to_str( iMenuKey, szMenuKey, sizeof ( szMenuKey ) - 1 ); menu_additem( menu, item, szMenuKey, 0 ); iMenuKey++; } level = 0; amount = 0; if( gArmorEnabled[ i ] ) { level = clamp( gArmorLevel[ iPlayer ][ i ], 0, gArmorMaxLevels[ i ] ); amount = gArmorMaxAmount[ i ] * level / gArmorMaxLevels[ i ]; if( level > 0 ) { formatex( item, sizeof( item ) - 1, "%s: \yLevel %i \r(\w%i AP\r)", gArmorNames[ i ], level, amount ); } else { formatex( item, sizeof( item ) - 1, "%s: \yLevel 0", gArmorNames[ i ] ); } num_to_str( iMenuKey, szMenuKey, sizeof ( szMenuKey ) - 1 ); menu_additem( menu, item, szMenuKey, 0 ); iMenuKey++; } level = 0; new Float:famount = 0.0; if( gSpeedEnabled[ i ] ) { level = clamp( gSpeedLevel[ iPlayer ][ i ], 0, gSpeedMaxLevels[ i ] ); if( i == CS_TEAM_FURIEN ) { famount = gFurienSpeedLevels[ level ]; } else if( i == CS_TEAM_ANTIFURIEN ) { famount = gAntiFurienSpeedLevels[ level ]; } if( level > 0 ) { formatex(item, sizeof(item) - 1, "\w%s: \yLevel %i \r(\w%.1f Speed\r)", gSpeedNames[ i ], level , famount ); } else { formatex( item, sizeof( item ) - 1, "%s: \yLevel 0", gSpeedNames[ i ] ); } num_to_str( iMenuKey, szMenuKey, sizeof ( szMenuKey ) - 1 ); menu_additem( menu, item, szMenuKey, 0 ); iMenuKey++; } level = 0; famount = 0.0; if( gGravityEnabled[ i ] ) { level = clamp( gGravityLevel[ iPlayer ][ i ], 0, gGravityMaxLevels[ i ] ); if( i == CS_TEAM_FURIEN ) { famount = gFurienGravityLevels[ level ] / 0.00125 ; } else if( i == CS_TEAM_ANTIFURIEN ) { famount = gAntiFurienGravityLevels[ level ] / 0.00125; } if( level > 0 ) { formatex(item, sizeof(item) - 1, "\w%s: \yLevel %i \r(\w%.1f Gravity\r)", gGravityNames[ i ], level , famount ); } else { formatex( item, sizeof( item ) - 1, "%s: \yLevel 0", gGravityNames[ i ] ); } num_to_str( iMenuKey, szMenuKey, sizeof ( szMenuKey ) - 1 ); menu_additem( menu, item, szMenuKey, 0 ); iMenuKey++; } level = 0; new iPlayerDamage[ CsTeams ] = { 0, 20, 10, 0 }; if( gDamageMultiplierEnabled[ i ] ) { level = clamp( gDamageMultiplierLevel[ iPlayer ][ i ], 0, gDamageMultiplierMaxLevels[ i ] ); if( level > 0 ) { formatex(item, sizeof(item) - 1, "\w%s: \yLevel %i \r(\w%i%%\r)", gDamageMultiplierNames[ i ], level, level * iPlayerDamage[ i ] ); } else { formatex( item, sizeof( item ) - 1, "%s: \yLevel 0", gDamageMultiplierNames[ i ] ); } num_to_str( iMenuKey, szMenuKey, sizeof ( szMenuKey ) - 1 ); menu_additem( menu, item, szMenuKey, 0 ); iMenuKey++; } level = 0; amount = 0; if( gRespawnEnabled[ i ] ) { level = clamp( gRespawnLevel[ iPlayer ][ i ], 0, gRespawnMaxLevels[ i ] ); amount = gRespawnMaxAmount[ i ] * level / gRespawnMaxLevels[ i ]; if( level > 0 ) { formatex(item, sizeof(item) - 1, "\w%s: \yLevel %i \r(\w%i%%\r)", gRespawnNames[ i ], level, amount ); } else { formatex( item, sizeof( item ) - 1, "%s: \yLevel 0", gRespawnNames[ i ] ); } num_to_str( iMenuKey, szMenuKey, sizeof ( szMenuKey ) - 1 ); menu_additem( menu, item, szMenuKey, 0 ); iMenuKey++; } level = 0; amount = 0; if( gHealthRegenerationEnabled[ i ] ) { level = clamp( gHealthRegenerationLevel[ iPlayer ][ i ], 0, gHealthRegenerationMaxLevels[ i ] ); amount = gHealthRegenerationMaxAmount[ i ] * level / gHealthRegenerationMaxLevels[ i ]; if( level > 0 ) { formatex(item, sizeof(item) - 1, "\w%s: \yLevel %i \r(\w%i HP\r)", gHealthRegenerationNames[ i ], level, amount ); } else { formatex( item, sizeof( item ) - 1, "%s: \yLevel 0", gHealthRegenerationNames[ i ] ); } num_to_str( iMenuKey, szMenuKey, sizeof ( szMenuKey ) - 1 ); menu_additem( menu, item, szMenuKey, 0 ); iMenuKey++; } level = 0; amount = 0; if( gArmorChargerEnabled[ i ] ) { level = clamp( gArmorChargerLevel[ iPlayer ][ i ], 0, gArmorChargerMaxLevels[ i ] ); amount = gArmorChargerMaxAmount[ i ] * level / gArmorChargerMaxLevels[ i ]; if( level > 0 ) { formatex(item, sizeof(item) - 1, "\w%s: \yLevel %i \r(\w%i AP\r)", gArmorChargerNames[ i ], level, amount ); } else { formatex( item, sizeof( item ) - 1, "%s: \yLevel 0", gArmorChargerNames[ i ] ); } num_to_str( iMenuKey, szMenuKey, sizeof ( szMenuKey ) - 1 ); menu_additem( menu, item, szMenuKey, 0 ); iMenuKey++; } } menu_setprop( menu, MPROP_EXITNAME, "\yIesire" ); menu_display( id, menu ); } public DisplayPlayerInfoHandler( id, menu, item ) { if( item == MENU_EXIT ) { menu_destroy( menu ); return 1; } static _access, info[ 4 ], callback; menu_item_getinfo( menu, item, _access, info, sizeof ( info ) - 1, _, _, callback ); menu_destroy( menu ); switch( str_to_num( info ) ) { case 1,2,3,4,5,6,7 : { return 1; } } return 0; } public ClCmdSayVip( id ) { static motd[ 2500 ]; new len = formatex( motd, sizeof ( motd ) - 1, "<html>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<style type=^"text/css^">" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "body{background-image: url(^"http://i45.tinypic.com/lw6wx.png^");font-family:Tahoma;font-size:15px;color:#FFFFFF;}" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "table{font-family:Tahoma;font-size:10px;color:#FFFFFF;}</style>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<body><center><font face=^"Verdana^" size=^"2^"><b><br><br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<font size=^"4^" color=^"#F08080^">%s</font><br><br><br>", PLUGIN ); new iPlayers[ 32 ], iVipsCount; new iPlayersNum; get_players( iPlayers, iPlayersNum, "ch" ); for( new i = 0 ; i < iPlayersNum ; i++ ) { if( IsUserVip( iPlayers[ i ] ) ) iVipsCount++; } if( iVipsCount > 0 ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "In acest moment se afla %i <font color=^"#B80000^">VIP</font> pe server.", iVipsCount ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<br><br><table align=center width=45%% cellpadding=1 cellspacing=0 >" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <th width=15%%> Nume <th width=15%%> Status <th width=15%%>Echipa" ); new VipName[ 32 ], VipTeam[ 32 ]; for( new i = 0 ; i < iPlayersNum ; i++ ) { if( IsUserVip( iPlayers[ i ] ) ) { switch( cs_get_user_team( iPlayers[ i ] ) ) { case CS_TEAM_T: formatex( VipTeam, sizeof ( VipTeam ) -1, "Furien" ); case CS_TEAM_ANTIFURIEN: formatex( VipTeam, sizeof ( VipTeam ) -1, "AntiFurien" ); default: formatex( VipTeam, sizeof ( VipTeam ) -1, "Spectator" ); } get_user_name( iPlayers[ i ], VipName, sizeof ( VipName ) -1 ); if( containi( VipName, "<" ) != -1 ) { replace( VipName, sizeof ( VipName ) -1, "<", "<" ); } if( containi( VipName, ">" ) != -1 ) { replace( VipName, sizeof ( VipName ) -1, ">", ">" ); } len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <td> %s</td> <td> %s</td><td> %s</td>", VipName, is_user_alive( iPlayers[ i ] ) ? "VIU" : "MORT", VipTeam ); } } len += format( motd[ len ], sizeof ( motd ) - len - 1, "</table><br><br>" ); } else { len += format( motd[ len ], sizeof ( motd ) - len - 1, "Nu se afla niciun <font color=^"#B80000^">VIP</font> pe server.<br><br>", iVipsCount ); } len += format( motd[ len ], sizeof ( motd ) - len - 1, "<br>Vrei sa cumperi <font color=^"#B80000^">VIP</font> ?<br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "Tasteaza <font color=^"#B80000^"> /buyvip</font> pentu mai multe detalii.<br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "</center></b></body></html>
  7. * Numele artistului : Dani Mocanu * Numele melodiei : Proxenet * Link YouTube : https://youtu.be/Mco82LUZXtM
  8. * Numele artistului : Dani Mocanu * Numele melodiei : Curwa * Link YouTube : https://youtu.be/bKB1USWjfjY
  9. Titlul: Addons DR Clasic (Fostul addons dr.indungi.ro ceat de seek3r) Descriere: Este un addons de tip deathrun. Autor: S3ekEr^ Versiune: - Descarcare: Download Pluginuri adaugate: ; Baza admin.amxx ; Pluginul de baza adminbase.amxx debug ; Pluginul cu comenzi adminvote.amxx ; pluginu pentru vot plangere.amxx ; adminii vb intre ei nextmap.amxx ; Plugin pentru urmatoarea harta! ; Automatice allchat.amxx ; vii vorbesc cu mortii si invers automsg.amxx ; Msg-e automat la un interval de timp! antireclama.amxx ; schimba reclamele din chat ; Securitate ; Pluginuri modul DEATHRUN DRManager-System.amxx debug ; noul plugin de baza al modului DRM_triggers&entities_fix.amxx dr_block_button.amxx ; Plugin pentru a nu folosestii butonul de mai multe ori stuck.amxx ; In caz de te blochezi sa te autodeblocheze team_join.amxx ; Blocheaza sa nu se schimbe nimeni de la o echipa la alta spec.amxx ; Apare la jucatorul viu cine e pe spectator la el Newfixround.amxx ; fixround + botii nu mai intra la tero no_jointeam.amxx ; blocheaza comenzile jointeam ; Diverse - aici se pun toate pluginurile noi adaugate Respawn.amxx ; 20 secunde respawn FpsShower.amxx ; arata fps GAG.amxx ; puteti da mut jucatorilor played_maps.amxx ; comenzi suplimentare Base-beta.amxx ; baza unor comenzi Drx_preturi.amxx ; preturi admine invis.amxx ; faci sa dispara apa si jucatorii speedometer.amxx ; arata viteza cu care mergi bhop_plugin.amxx ; bhop automat noweapdropondeath.amxx ; dispar armele cand mori afkslay.amxx ; da slay doar la CT care sunt AFK fakefull_original.amxx uq_jumpstats.amxx uq_jumpstats_tops.amxx Map_Spawns_Editor.amxx ratejucatorifps.amxx
  10. Descriere: Furien FMU - [ Furien OldSchool editat de mine ] ] Autor: Askanar, Modificat de mine n0talaMa.amxx Descărcare:Downlaod ADDONS Plugine: --->>>>> Default's Plugin's <<<<<--- FakeBots.amxx admin.amxx admincmd.amxx ; comenzile de baza pentru admini adminhelp.amxx ; comanda ajutatoare pentru admini adminslots.amxx ; rezervare slot menufront.amxx ; front-end pentru meniuri admin plmenu.amxx ; meniu jucatori (kick, ban, comenzi client) pluginmenu.amxx ; meniu pentru comenzi/cvaruri organizate prin plugin adminchat.amxx ; comenzi pentru chat antiflood.amxx ; avertizeaza jucatorii pentru flood-chat adminvote.amxx ; comenzi de votare nextmap.amxx ; afiseaza harta urmatoare din mapcycle.txt timeleft.amxx ; afiseaza timpul ramas pe harta statscfg.amxx ; permite administrarea pluginurilor prin meniu si comenzi ;miscstats.amxx ; un set de anunturi pentru Counter-Strike Commands.amxx -------------------------------------------- --->>>>> Furien OldSchool Ultimate.. <<<<<--- FurienModUltimate.amxx debug fmu_events.amxx debug fmu_weapons.amxx debug fmu_wallhang.amxx debug fmu_aimmessages.amxx debug fmu_bombevents.amxx debug fmu_models.amxx fmu_christmass.amxx fmu_snow.amxx ;fmu_anti_camp.amxx cs_stats.amxx -------------------------------------------- --->>>>> Other Added Plugin's <<<<<--- nademodes.amxx multijump.amxx team_join.amxx anti_jointeam.amxx colored_flashbangs.amxx no_c4_damage.amxx sillyc4.amxx ;spawnprotection.amxx No-Retry.amxx resetscore.amxx All-Chat.amxx ad_manager.amxx autobinds.amxx amx_gag.amxx bullet_damage.amxx center_mesage.amxx cer_instelat.amxx fmu_c4_sprite.amxx swear.amxx GHW_Custom_Nextmap.amxx GHW_Weapon_Replacement.amxx grenade_trail.amxx nademodes.amxx SpecialGeoip.amxx SpecialGeoipAnnounce.amxx transfer.amxx hp_vi.amxx cs16_connect_info.amxx amx_who.amxx name_changer.amxx Krond-Functions.amxx amx_pikav5.amxx Informati: Este furien creat de Askanar Editat de mine cu mesaje DHUD Imagini: [sursa=] [/sursa]
  11. Descriere : Addons JailBreak :) Autor : CSP # Verde =D Versiune : v1 Descarcare : GirlShare | Zippyshare | FileShare Contine : AmxModx Dproto MetaMod Testeri : B1x / CSP # Verde =D Parola arhiva : www.cspro.ro Link Oficial : Click > Pluginuri : jb_cspro_armeCT.amxx - Pluginul pentru alegerea armelor CT jb_cspro_castig.amxx - Apare un mesaj cand au castigat prizonierii sau gardienii jb_csproRO_hook.amxx - Pluginul acela cu care te poti urca oriunde jb_cspro_hat.amxx - Plugin palarii jb_csproRO_mesaje.amxx - Diferite mesaje in chat jb_cspro_rs.amxx - Resetscore jb_cspro_GAG.amxx - Gag Manager jb_cspro_camera.amxx - Te poti vedea mai frumos cu /cam jb_cspro_pika.amxx - Plugin destroy mai avansat jb_cspro_ora_data.amxx - Arata ora si data in stanga jb_cspro_transfer.amxx - Adminul poate transfera pe cine : amx_t/ct/spec jb_cspro_ss.amxx - Plugin screenshot jb_cspro_parasuta.amxx - Parasuta pe server jb_cspro_who.amxx - Poti vedea adminii jb_cspro_spam_kick.amxx - Cine trimite acelasi mesaj de 2 ori primeste kick jb_cspro_join.amxx - Arata cine se conecteaza jb_cspro_sefu.amxx - Cand intra ownerul incepe o melodie jb_cspro_CLASET.amxx - Clase Tero jb_cspro_bhop.amxx - Poti sari ca iepurasul de paste :)) jb_cspro_lr.amxx - Cand esti ultimul prizonier scrii /lr si te duelezi cu unul din gardieni jb_cspro_nochnm.amxx - Nu iti poti schimba numele pe server jb_cspro_trivia.amxx - Joci trivia si poti castiga $ cand esti mort jb_cspro_shopT.amxx - Prizonierii au shop jb_cspro_modele.amxx - Modele admin prizonier si gardian Poze : Comenzi : /rs - Iti resetezi scorul /lr - Te duelezi cu un CT /who - Vezi adminii online /trivia - Joci trivia si castigi $ /shop - Prizonierii pot acces Shop-ul /mg - Dai JbPacks /simon - Te pui SIMON si controlezi toti prizonierii Informatii : 1. Addons-ul contine toate fisierele .sma 2. Daca postati addons-ul pe alte forumuri macar postati si autorul 3. Mesajele le modificati din amxmodx/configs/ messages.ini 4. Multe cvare le gasiti in amxx.cfg
  12. Descriere: Este un addons respawn, addons-ul are modele vip, skin-uri, sunete .. Mentine o atmosfera placuta . Autor: skaraosky Descarcare: GirlShare Plugin-uri: [sursa=]amx_parachute.amxx - Parasuta who2.amxx - Gradele adminiilor no_radio_flood.amxx - Nu se mai poate face spam cu mesajele "Roger that" , "Affirmative" .. silent_nades.amxx - Nu se mai poate face spam cu mesajele de la he-uri "Fire in the .. " join_ip.amxx - Cand un player se conecteaza ii arata ip-ul multijump.amxx - Poti sari de 2 ori admin_chat_colors.amxx - Cand un admin scrie in chat mesajul este verde abd.amxx - Arata cat dmg i-ai facut adversarului ultimate_ss.amxx - Face poze jucatorului hp_bonus.amxx - Acest plugin ofera hp pentru asasinarea adversarului GHW_Weapon_Replacement.amxx - Skin-uri la arme. csdm_refill.amxx - Cand faci kill ti se reincarca autoamat arma. goldonline.amxx - Hud cu "Goldmembers" ( V.I.P ) online players_models.amxx - Skin-uri pentru vip-ii. music.amxx - Muzica la conectarea pe server. botplayers.amxx - 3 botii la spec. advanced_gag.amxx - Gag playeriilor. grenade_trail.amxx - Lasa o "dunga" colorata la aruncarea he-urilor amx_t_ct_spec.amxx - Poti muta mai rapid jucatorii prin comanda "amx_t jucator", "amx_ct jucator", "amx_spec jucator" admin_spec_esp.amxx - Plugin pentru adminii, arata pe unde vin jucatorii, plugin pentru depistarea codatiilor. rank_rankstats_top.amxx - Rank reset_score_3.amxx - Reset score deathtype_effects.amxx - Plugin cu efecte cand faci kill cfg_hse.amxx - Plugin cu efecte cand faci kill NameReplacer.amxx - Cand cineva intra cu reclama ii schima numele VIP_RESPAWN.amxx - Vip-ul pentru respawn, ii da vip-ului 120 hp, 200 ap, 2x dmg, viteza mai mare ... bule.amxx - Cand faci kill ies niste bule/stele colorate. cer_instelat.amxx - Cerul este instelat colored_flashbangs.amxx - Flashbang colorat skull.amxx - Efecte kill round_info.amxx - Arata in chat a cata runda este, cati playerii sunt... swear_replacement.amxx - Cand cineva scrie un cuvant "murdar" pluginul il cenzureaza preturi_ranguri_motd.amxx - Preturiile gradelor amx_leavegame.amxx - Un plugin pentru eliminarea codatiilor QuakeSounds.amxx - Sunete la kill ( multikill, rampage, triple kill .. ) blind.amxx - Blindeaza jucatorul, se face ecranul alb, plugin pentru depistarea codatiilor[/sursa]
  13. Descriere: Addons deathrun knife mod testat pe server 32/32 Contine: Amxmodx antidlfile booster metamod dproto mape modele Autor: xLd^ Versiune: 1.0 Descarcare: Link! Plugin-uri: DeathrunManager.amxx ;Acest plugin este 'managerul' serverului dumneavoastra cu modul DeathRun. DRM_trigger_hurt_fix.amxx ;Fixeaza bugul drm amx_gag.amxx ;Cu ajutorul acestui plugin dati gag playerilor care fac reclama sau au limbaj vulgar speclist.amxx ;Cu acest plugin poti vedea cine se uita pe tine cand joci. knife_mod.amxx ;Cutite cu diferite puteri bunnyhop.amxx ;Bhop automat team_join.amxx ;Timite jucatorii direct la CT sau T, se alege prin cvar ghostchat.amxx ;Acest plugin face ca cei morti sa poata vorbi cu cei vii.. showip.amxx ;Plugin amxmodx care afiseaza la comanda amx_showip ip-urile jucatorilor de pe server. who.amxx ;Cu ajutorul acestui plugin puteti vedea admini online advertisements.amxx ;acest plugin "va raspunde" automat cand intalneste anumite cuvinte din chat bind.amxx ; accest plugin bindeaza anumite taste setate de voi speedometer.amxx ;Acest plugin va arata viteza cu care mergeti. pingfaker2.amxx ;Ping Faker este un plugin ce in caz in care un utilizator foloseste tasta TAB (sa ii afiseze panou de scor) pingul altui jucator chiar de il are 428Latenta(exemplu) il va avea 20-24 (Depinde ce setari inteprindeti in cvar) swear_replacement.amxx ; Cenzureaza unele cuvinte de pe server LoadingMenu.amxx ; Modifica menul jucatorului care se conecteaza rs.amxx ; cu ajutorul accestui plugin va puteti reseta scor-ul cu ajutorul comenzilor /rs,/reset,/resetscore amx_destroy.amxx ;Distruge cs-ul jucatorilor dr_duel.amxx ;Acesta este un plugin pentru duel, cand un tero+1 ct raman singuri ei pot face duel scriind /duel stripes_adminmodel.amxx ;Cu acest plugin la voi pe server adminii cu accesul ADMIN KICK vor avea skin-uri speciale fata de ceilalti playerii, in acest sens puteti face diferenta intre un admin si player. respawn.dr_V1.1.amxx ;Acest plugin este pentru modul Deathrun prin acest plugin da respawn jucatorilor intr-un timp setat de dumneavoastra
  14. Descriere: Este un addons BASEBUILDER - CSO + CREDITE + V.I.P Autor: eVo Contine: * Metamod * Dproto * Amxmodx Descărcare: Click Aici Pluginuri: [sursa=];--------------------------- Default Plugins ------------------------------ admin.amxx ; admin base (required for any admin-related) admincmd.amxx ; basic admin console commands adminslots.amxx ; slot reservation multilingual.amxx ; Multi-Lingual management menufront.amxx ; front-end for admin menus cmdmenu.amxx ; command menu (speech, settings) plmenu.amxx ; players menu (kick, ban, client cmds.) mapsmenu.amxx ; maps menu (vote, changelevel) pluginmenu.amxx ; Menus for commands/cvars organized by plugin adminchat.amxx ; console chat commands antiflood.amxx ; prevent clients from chat-flooding the server scrollmsg.amxx ; displays a scrolling message adminvote.amxx ; vote commands nextmap.amxx ; displays next map in mapcycle mapchooser.amxx ; allows to vote for next map timeleft.amxx ; displays time left on map pausecfg.amxx ; allows to pause and unpause some plugins statscfg.amxx ; allows to manage stats plugins via menu and commands --------------------------- Outher Plugins ------------------------------ admin_fix.amxx ; Acest plugin va reincarca adminii noi adaugati fara a mai fi necesara schimbarea hartii. AdminPrefixes.amxx ; Acest plugin adauga un prefix in chat. bb_basebuilder66.amxx ; Pluginul de Baza BaseBuilder bb_classes66.amxx ; Clase Pentru Zombie bb_ad_manager.amxx ; Acest plugin afiseaza messaje in chat ( colorate ). bb_allow_roundfinish.amxx ; Acest plugin permite jucarea ultimei runde . bb_auto_join_on_connect.amxx ; Acest plugin trimite automat jucatorii la una din echipe. bb_camera.amxx ; Acest plugin ofera 3 moduri de vizualizarea persoanei . bb_gag.amxx ; Blocheaza chatul pe o durata de timp limitata jucatorilor care foloses un lombaj indecent. bb_hook.amxx ; Hook in timpul de construit pentru a-ti aduce piesele mai repede la locul unde iti faci baza. bb_human_races.amxx ; Rase pentru CT. bb_playedtime.amxx ; Poti vedea timpul petrecut pe Server direct de pe GT bb_stuck.amxx ; Te deblocheaza automat. bb_vip.amxx ; VIP frostnades.amxx ; Granade care ingheata. nademodes.amxx ; Gradana care arde (gen molotov). napalm_nades.amxx ; Moduri pentru grandade. ultimate_who.amxx ; Afiseaza admini online cso_credite.amxx ; Sistem de Credite pentru Shop cso_shop.amxx ; Shop cu diverse Iteme + Arme Gold + Arme CSO. cso_balrog3.amxx ; Arma CSO. cso_Etheral.amxx ; Arma CSO. cso_Firecracker.amxx ; Arma CSO. cso_needler.amxx ; Arma CSO. cso_oicw.amxx ; Arma CSO.[/sursa] Comenzi: /revive nume - Reinvii un jucator. /swap nume - Schimbi un jucator de de la o echipa la alta. /guns nume - Redeschide meniul de arme uni jucator. /ban nume - Banezi/Debanezi un jucator de la mutat piese. /class - Iti Shimbi clasa de Ziombie /race - Iti Shimbi Clasa de Builder /colors - Iti alegi cu care sa fie colorate piesele cand le blochezi. /random - Alege o culoare aleatorie... /shop - Deschizi shop-ul. /who - Vezi admini online. /credite - Afli cate credite ai. /credite nume - Afli cate credite are un jucator. Info : Arhiva contine: models / sound / sprites Mape puteti decarca de Aici Am Creat acest Addons folosind doar pluginuri de pe Google.Nu am folosit niciun plugin de pe Serverul Meu. (Nu gasesti pe Google tot ce am eu pe Server. )
  15. Descriere : Addons furien cu tot felul de "prostii" Autor: THEKING. @ EXTREAMCS.COM Multumiri: MITZOCUL @ GODZILLA HOSTING Versiune: v1 Descarca: 1 / 2 / 3 / 4 Pluginuri: furien_sursa.amxx debug; - Pluginul de baza furien_anticamp.amxx - Cand cineva campeaza i se face ecranul negru multijump.amxx - Playerii pot sari de 2 ori nademodes.amxx - Tipuri de grenazi furien_semiclip.amxx - Poti trece prin coechipieri furien_stuck.amxx - Daca esti blocat acest plugin te v-a debloca furien_firstkill.amxx - Afiseasa in hud primul kill + o suma de bani furien_wallhang.amxx - Te poti agata de pereti furien_ambiance.amxx - Efecte ale vremii furien_who.amxx - Poti vedea adminii online furien_credite.amxx - Pluginul de credite furien_bonus.amxx debug; - La x minute jucate pe server primesti x credite furien_transfer.amxx - Poti transfera credite furien_bonusbomba.amxx - Bonus la plantarea si explodarea bombei furien_winbonus.amxx - Echipa care castiga primeste x credite furien_radar.amxx debug; - Iti poti cumpara un radar portabil pe care il poti vedea pe ultimul furien ramas in viata furien_shop.amxx - Pluginul de shop furien_knifeT.amxx - Meniul de cutite la furien furien_hud.amxx - Scorul este afisat in hud furien_modele.amxx - Modele playeri furien_invasion.amxx - Efecte la inceputul rundei furien_bonusbox.amxx - Cand mori/omori/esti omorat in locul playerului v-a ramane o cutie cu bonusuri furien_mod_class.amxx - Diferite clase la furien / anti-furien furien_weapons.amxx - Pluginul de arme al anti-furienilor Cateva poze: [sursa=click] [/sursa] Cateva comenzi: /knife - Deschide meniul de cutite /afr - Cumperi acel radar portabil /shop - Deschizi meniul cu iteme /who - Vezi adminii online /credite - Vezi cate credite ai /donate - Donezi credite/bani /retrage - Scoti credite din banca /depozit - Bagi credite in banca Acestea sunt doar cateva comenzi. Informatii: * Pentru orice bug/nelamurire va rog sa lasati reply in topic. * Addons-ul a fost creat in totalitate de mine , pluginurile sunt de pe internet desigur. * Daca il copiati pe alte site-uri macar lasati autorul. * Addons-ul a rulat 4 ore fara nici-o eroare. * Fara un download-url bun , nu vi-l recomand. * Restul va las pe voi sa descoperiti.
×
×
  • Create New...