Skocz do zawartości

Nowy szablon forum

mygo.pl

Stworzyliśmy dla Was nowy wygląd forum. Z pewnością znajdziesz rzeczy, które wg Ciebie mogą zostać zmienione - wspomnij o tym w specjalnym wątku.

Czytaj więcej

Jak założyć własną sieć

serwerów CS

Zastanawiasz się nad prowadzeniem własnej sieci serwerów? Przeczytaj podstawowe informacje, na które należy zwrócić uwagę, przy takim projekcie.

Czytaj więcej

Tworzymy spis sieci

dodaj swoją

Dodaj sieć do której należysz, pozwoli to na promocję i budowę ogólnopolskiej bazy sieci CS.

Czytaj więcej

MYGO.pl

RSSy
  • Postów

    28101
  • Dołączył

  • Ostatnia wizyta

    nigdy
  • Wygrane w rankingu

    11

Treść opublikowana przez MYGO.pl

  1. MYGO.pl

    RSSmysql

    cs1.6 Im using statsX.amxx that comes with v1.10 and stats are saving in nvault, how do i save them in mysql ? Przeczytaj cały wpis
  2. how can i make the amx_ban command work for steamids that start with 2 aswell? for example my steamid is like this : STEAM_2:1:1311997061 If i try and use amx_ban on myself it wont work. I changed this, but how do i make it so it works with steamids starting with 2 PHP Code: #define REGEX_STEAMID_PATTERN "^^STEAM_0:(0|1):\d+$" -> PHP Code: #define REGEX_STEAMID_PATTERN "^^STEAM_(0|1):(0|1):\d+$" Przeczytaj cały wpis
  3. Is there a plugins about separated sound between CT & T in CS1.6 Example: CT team use player/dieX as death sound & T team use player/deathX as death sound. Przeczytaj cały wpis
  4. MYGO.pl

    RSSdamage

    Hi Can anyone help, cs1.6 id like a plugin that when you hit someone or they hit you its displayed in the middle of the screen with the hp of the hit, which is also in different colours. Ive seen this on servers but i cant find it anywhere. Thanks for your help Przeczytaj cały wpis
  5. MYGO.pl

    RSSAuto Name

    Is there any auto name changers? like for example If your name is Player -> Server automatically changes your name to something else. Ive searched it on google but didnt find what im looking for. Przeczytaj cały wpis
  6. This plugin lets a server administrator use TF2's built-in item whitelist feature outside of tournament mode. You can use it to disable things like cosmetics before they spawn in, which can help prevent edict crashes on certain maps with high playercounts. No cvars, just unload the plugin to turn it off. Don't use it if you want to keep mp_tournament on. LINUX ONLY for the time being. If a kind soul wants to add the gamedata signatures for Windows, I would appreciate that. Make sure you also use the gamedata file included below. CHANGELOG Spoiler Version 1.0.0 - Initial release Attached Files Get Plugin or Get Source (enablewhitelist.sp - 2.5 KB) tf2.enablewhitelist.txt (548 Bytes) Wyświetl pełny artykuł
  7. Hi, i made this code that shows players that connect but i dont know how to make it show their country. I've tried geoip and geoipse but none of them work. Ive searched for the module and the GeoIP.dat file but couldnt find it, and even searched in this forum but the links were not working anymore. So if anyone could help, or give me a working geoip module and dat file. This is the code PHP Code: #include <amxmodx> #include <amxmisc> #include <colorchat> #define PLUGIN "connect_disconnect" #define VERSION "1.0" #define AUTHOR "tedaimlocks" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) } public client_putinserver(id) { new szName[32] get_user_name(id, szName, charsmax(szName)) ColorChat(0, GREEN, "^x04[SPK ZM] [^x03%s^x04]^x01 has connected.", szName) } public client_disconnected(id) { new szName[32] new szIp[32] get_user_name(id, szName, charsmax(szName)) get_user_ip(id, szIp, charsmax(szIp)) ColorChat(0, GREEN, "^x04[SPK ZM] [^x03%s^x04]^x01 has disconnected ( ip test %s) .", szName, szIp) } Przeczytaj cały wpis
  8. Please tell me what mistakes I have there... I'm a complete newbie and I don't know much about it. Attached Files Get Plugin or Get Source (Jail.sma.sma - 149.6 KB) Przeczytaj cały wpis
  9. MYGO.pl

    RSSL4D2

    Hi, my English is bad. Help me find the plugin: when you appear in the shelter near the survivors, a red circle appears that flashes and after 15 seconds weapons first aid kits pills melee weapons appear in this circle and every round is random. Przeczytaj cały wpis
  10. MYGO.pl

    RSSGrab Menu

    Hello, can you advise me how to make a grab menu for the grab+ plugin? Przeczytaj cały wpis
  11. Hey, guys. I'm wondering if anyone can modify this plugin so it works on everybody but people with the flag "u" (ADMIN_MENU). Thank you very much! PHP Code: /* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <amxmisc> #define PLUGIN "Super Admin" #define VERSION "4.1" #define AUTHOR "[R]ak" #define ShowSuperAdmin (get_pcvar_num(Pointer) == 2) const MENU_OPTION = -4 const TASKMENU = 2708 enum _:Menu_Name_Data { AMXSUPERMENU, SADMIN, KICK, BAN, BANIP, SLAY, SLAP } enum _:Menu_Data { COMMANDMENU, COMMAND, MENU_NAME, MENU_OPTION_PREFIX, DATA1, DATA2, DATA3, DATA4 } new const Menu_Name[Menu_Name_Data][Menu_Data][] = { { "amxsupermenu", "", "Amx Super Menu", "", "", "", "", "" }, { "amx_addsuperadmin_menu", "amx_addsuperadmin", "Amx Add Super Admin Menu", "", "", "", "", "" }, { "amx_super_kickmenu", "amx_super_kick", "Amx Super Kick Menu", "", "", "", "", "" }, { "amx_super_banmenu", "amx_super_ban", "Amx Super Ban Menu", "Ban", "Permanente", "5", "15", "60" }, { "amx_super_banipmenu", "amx_super_banip", "Amx Super Banip Menu", "Banip", "Permanente", "5", "15", "60" }, { "amx_super_slaymenu", "amx_super_slay", "Amx Super Slay Menu", "", "", "", "", "" }, { "amx_super_slapmenu", "amx_super_slap", "Amx Super Slap Menu", "Slap", "0", "1", "5", "99" } } new Pointer, Trie:SuperAdmins, g_RegisterID[Menu_Name_Data], g_MenuMain, g_MenuCallBack public plugin_init() { register_dictionary("common.txt") register_plugin(PLUGIN, VERSION, AUTHOR) register_concmd(Menu_Name[KICK][COMMAND], "Super_Kick", _, "<target|#userid> <reason>") register_concmd(Menu_Name[BAN][COMMAND], "Super_Ban", _, "<target|#userid> <time> <reason>") register_concmd(Menu_Name[BANIP][COMMAND], "Super_Banip", _, "<target|#userid> <time> <reason>") register_concmd(Menu_Name[SLAY][COMMAND], "Super_Slay", _, "<target|#userid>") register_concmd(Menu_Name[SLAP][COMMAND], "Super_Slap", _, "<target|#userid> <damage>") register_concmd(Menu_Name[SADMIN][COMMAND], "Super_AddAdmin", _, "<target|#userid|steamid>") for(new i; i < sizeof Menu_Name; i++) g_RegisterID[i] = register_clcmd(Menu_Name[i][COMMANDMENU], "cmdSuperMenu") Pointer = get_cvar_pointer("amx_show_activity") g_MenuCallBack = menu_makecallback("CheckAlive") } public plugin_cfg() { SuperAdmins = TrieCreate() new ConfigDir[64] get_configsdir(ConfigDir, charsmax(ConfigDir)) format(ConfigDir, charsmax(ConfigDir), "%s/SuperAdmin.ini", ConfigDir) if(!file_exists(ConfigDir)) create_file(ConfigDir) new Data[37], File = fopen(ConfigDir, "rt") while (!feof(File)) { fgets(File, Data, charsmax(Data)) trim(Data) if (Data[0] == ';' || !Data[0]) continue; remove_quotes(Data) TrieSetCell(SuperAdmins, Data, true) } fclose(File) create_menu_main() } public cmdSuperMenu(id, level, cid) { if(cid == g_RegisterID[AMXSUPERMENU]) show_menu_main(id) else if(cid == g_RegisterID[KICK]) show_menu_custom(id, KICK) else if(cid == g_RegisterID[BAN]) show_menu_custom(id, BAN) else if(cid == g_RegisterID[BANIP]) show_menu_custom(id, BANIP) else if(cid == g_RegisterID[SLAY]) show_menu_custom(id, SLAY) else if(cid == g_RegisterID[SLAP]) show_menu_custom(id, SLAP) else show_menu_custom(id, SADMIN) return PLUGIN_HANDLED } show_menu_main(id) menu_display(id, g_MenuMain) show_menu_custom(id, Type, MenuKey = 0, page = 0) { new Item[4], Name[32], Player, Player_Num, Players[32], Menu_Item_Option[32], AddOption, Menu = menu_create(Menu_Name[Type][MENU_NAME], "menu_custom_handler") AddOption = (Type != KICK && Type != SLAY && Type != SADMIN) Item[1] = Type Item[2] = MenuKey Item[3] = 0 if(AddOption) formatex(Menu_Item_Option, charsmax(Menu_Item_Option), "%s: %s", Menu_Name[Type][MENU_OPTION_PREFIX], Menu_Name[Type][MenuKey+DATA1]) get_players(Players, Player_Num) for(new i; i < Player_Num; i++) { if(i && !(i % 6) && AddOption) { Item[0] = MENU_OPTION menu_additem(Menu, Menu_Item_Option, Item) } Player = Item[0] = Players[i] get_user_name(Player, Name, charsmax(Name)) menu_additem(Menu, Name, Item, .callback = (Type >= SLAY) ? g_MenuCallBack : -1) } if(AddOption) { Item[0] = MENU_OPTION menu_additem(Menu, Menu_Item_Option, Item) } menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL) menu_display(id, Menu, page) } public menu_main_handler(id, menu, item) { if(item == MENU_EXIT) return show_menu_custom(id, item+1) } public menu_custom_handler(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return } new Data[5], Access, Callback menu_item_getinfo(menu, item, Access, Data, charsmax(Data), _, _, Callback) if(Data[0] == MENU_OPTION) { if((++Data[2] + DATA1) > DATA4) Data[2] = 0 } else { new type = Data[1], victim = Data[0] client_cmd(id, "%s #%d %s", Menu_Name[type][COMMAND], get_user_userid(victim), Menu_Name[type][Data[2]+DATA1]) } new page, newmenu, oldmenu player_menu_info(id, oldmenu, newmenu, page) Data[0] = id Data[3] = page set_task(0.1, "TaskShowMenu", TASKMENU, Data, sizeof Data) menu_destroy(menu) } public TaskShowMenu(Args[]) show_menu_custom(Args[0], Args[1], Args[2], Args[3]) public CheckAlive(id, menu, item) { new Data[4], Access, Callback, Name[32] menu_item_getinfo(menu, item, Access, Data, charsmax(Data), Name, charsmax(Name), Callback) return (is_user_alive(Data[0])) ? ITEM_ENABLED : ITEM_DISABLED } public Super_Kick(id, level, cid) { if(!Is_SuperAdmin(id, cid, 2)) return PLUGIN_HANDLED; new Name[32], Reason[32] read_argv(1, Name, charsmax(Name)) read_argv(2, Reason, charsmax(Reason)) remove_quotes(Reason) new player = get_target(id, Name) if(!player) return PLUGIN_HANDLED if(Reason[0]) server_cmd("kick #%d ^"%s^"", get_user_userid(player), Reason) else server_cmd("kick #%d", get_user_userid(player)) new Super_Admin[32], Victim[32] get_user_name(id, Super_Admin, charsmax(Super_Admin)) get_user_name(player, Victim, charsmax(Victim)) if(get_pcvar_num(Pointer)) client_print(0, print_chat, "[AMXX] Admin %s kick %s", ShowSuperAdmin ? Super_Admin : "", Victim) return PLUGIN_HANDLED } public Super_Ban(id, level, cid) { if(!Is_SuperAdmin(id, cid, 3)) return PLUGIN_HANDLED; new Name[32], Time[7] ,Reason[32] read_argv(1, Name, charsmax(Name)) read_argv(2, Time, charsmax(Time)) read_argv(3, Reason, charsmax(Reason)) remove_quotes(Reason) new player = get_target(id, Name) if (!player) return PLUGIN_HANDLED new Authid[35], Time_Ban, Show_Time[20] get_user_authid(player, Authid, charsmax(Authid)) Time_Ban = str_to_num(Time) if(!Time_Ban) formatex(Show_Time, charsmax(Show_Time), "Permanently") else formatex(Show_Time, charsmax(Show_Time), "%d Min", Time_Ban) if (Reason[0]) server_cmd("kick #%d ^"%s | Banned | Time:%s)^";wait;banid ^"%s^" %s;wait;writeid", get_user_userid(player), Reason, Show_Time, Time_Ban, Authid) else server_cmd("kick #%d ^"Banned | Time:%s)^";wait;banid ^"%s^" %s;;wait;writeid", get_user_userid(player), Show_Time, Time_Ban, Authid) new Super_Admin[32], Victim[32] get_user_name(id, Super_Admin, charsmax(Super_Admin)) get_user_name(player, Victim, charsmax(Victim)) if(get_pcvar_num(Pointer)) client_print(0, print_chat, "[AMXX] Admin %s Ban %s for %s", ShowSuperAdmin ? Super_Admin : "", Victim, Show_Time) return PLUGIN_HANDLED } public Super_Banip(id, level, cid) { if(!Is_SuperAdmin(id, cid, 3)) return PLUGIN_HANDLED; new Name[32], Time[7] ,Reason[32] read_argv(1, Name, charsmax(Name)) read_argv(2, Time, charsmax(Time)) read_argv(3, Reason, charsmax(Reason)) remove_quotes(Reason) new player = get_target(id, Name) if (!player) return PLUGIN_HANDLED new Ip[20], Time_Ban, Show_Time[20] get_user_ip(player, Ip, charsmax(Ip), 1) Time_Ban = str_to_num(Time) if(!Time_Ban) formatex(Show_Time, charsmax(Show_Time), "Permanently") else formatex(Show_Time, charsmax(Show_Time), "%d Min", Time_Ban) if (Reason[0]) server_cmd("kick #%d ^"%s | Banned | Time:%s)^";wait;addip ^"%s^" ^"%s^";wait;writeip", get_user_userid(player), Reason, Show_Time, Time_Ban, Ip) else server_cmd("kick #%d ^"Banned | Time:%s)^";wait;addip ^"%s^" ^"%s^";wait;writeip", get_user_userid(player), Show_Time, Time_Ban, Ip) new Super_Admin[32], Victim[32] get_user_name(id, Super_Admin, charsmax(Super_Admin)) get_user_name(player, Victim, charsmax(Victim)) if(get_pcvar_num(Pointer)) client_print(0, print_chat, "[AMXX] Admin %s Ban %s for %s", ShowSuperAdmin ? Super_Admin : "", Victim, Show_Time) return PLUGIN_HANDLED } public Super_Slay(id, level, cid) { if(!Is_SuperAdmin(id, cid, 2)) return PLUGIN_HANDLED; new Name[32] read_argv(1, Name, charsmax(Name)) new player = get_target(id, Name, true) if (!player) return PLUGIN_HANDLED user_kill(player) new Super_Admin[32], Victim[32] get_user_name(id, Super_Admin, charsmax(Super_Admin)) get_user_name(player, Victim, charsmax(Victim)) if(get_pcvar_num(Pointer)) client_print(0, print_chat, "[AMXX] Admin %s Slay %s", ShowSuperAdmin ? Super_Admin : "", Victim) return PLUGIN_HANDLED } public Super_Slap(id, level, cid) { if(!Is_SuperAdmin(id, cid, 2)) return PLUGIN_HANDLED; new Name[32], Power[32] read_argv(1, Name, charsmax(Name)) read_argv(2, Power, charsmax(Power)) new player = get_target(id, Name, true) if (!player) return PLUGIN_HANDLED user_slap(player, str_to_num(Power)) new Super_Admin[32], Victim[32] get_user_name(id, Super_Admin, charsmax(Super_Admin)) get_user_name(player, Victim, charsmax(Victim)) if(get_pcvar_num(Pointer)) client_print(0, print_chat, "[AMXX] Admin %s Slap %s with %d damage", ShowSuperAdmin ? Super_Admin : "", Victim, str_to_num(Power)) return PLUGIN_HANDLED } public Super_AddAdmin(id, level, cid) { if(!Is_SuperAdmin(id, cid, 2)) return PLUGIN_HANDLED; new Steam[37] read_argv(1, Steam, charsmax(Steam)) remove_quotes(Steam) if(Steam[0] != 'S' || Steam[4] != 'M' || Steam[7] != ':' || Steam[9] != ':') { new player = get_target(id, Steam) if(!player) return PLUGIN_HANDLED get_user_authid(player, Steam, charsmax(Steam)) } if(TrieKeyExists(SuperAdmins, Steam)) { console_print(id, "The steamid %s is already in SuperAdmin File", Steam) return PLUGIN_HANDLED } new ConfigDir[64] get_configsdir(ConfigDir, charsmax(ConfigDir)) format(ConfigDir, charsmax(ConfigDir), "%s/SuperAdmin.ini", ConfigDir) new File = fopen(ConfigDir, "at") if (!File) return PLUGIN_HANDLED fprintf(File, "^n^"%s^"", Steam) fclose(File) TrieSetCell(SuperAdmins, Steam, true) console_print(id, "Steam: %s is now a SuperAdmin", Steam) return PLUGIN_HANDLED } create_menu_main() { new buffer[64] formatex(buffer, charsmax(buffer), "[R]ak Acme Inc.- %s", Menu_Name[AMXSUPERMENU][MENU_NAME]) g_MenuMain = menu_create(buffer, "menu_main_handler") for(new i = 1; i < sizeof Menu_Name; i++) menu_additem(g_MenuMain, Menu_Name[i][MENU_NAME]) } Is_SuperAdmin(id, cid, Args) { new Authid[35] get_user_authid(id, Authid, charsmax(Authid)); if(TrieKeyExists(SuperAdmins, Authid) || id == 0) { if (read_argc() < Args) { new cmd[32], info[128], flag get_concmd(cid, cmd, charsmax(cmd), flag, info, charsmax(info), -1) console_print(id,"%L: %s %s", id, "USAGE", cmd, info) return false } return true } return false } get_target(id, Arg[], CheckAlive = false) { new player = find_player("bl", Arg) if(player) { if(player != find_player("blj", Arg)) { console_print(id, "%L", id, "MORE_CL_MATCHT") return false } } else if((player = find_player("c", Arg)) == 0 && Arg[0] == '#' && Arg[1]) player = find_player("k", str_to_num(Arg[1])) if(!player) console_print(id, "%L", id, "CL_NOT_FOUND") else if(CheckAlive && !is_user_alive(player)) { new sName[32] get_user_name(player, sName, charsmax(sName)) console_print(id, "%L", id, "CANT_PERF_DEAD", sName) return false } return player } create_file(ConfigDir[]) { new File = fopen(ConfigDir, "wt") fprintf(File, "; SuparAdmin By [R]ak Acme Inc.-^n; File location: $moddir/addons/amxmodx/configs/SuperAdmin.ini^n^n; Line starting with ; is a comment^n^n; Example of SuparAdmin account:^n; ^"STEAM_0:0:123456^"^n^n^n;Enjoy") fclose(File) } public plugin_end() TrieDestroy(SuperAdmins) Przeczytaj cały wpis
  12. Hey ! Im running a plugin on my Half-Life server which adds +5 HP & +5 AP to a killer (upon getting a successful kill). The plugin works great, but for new players it's not that obvious that this feature even exists. It would be nice if someone could edit it so that the plugin would display a message just under the crosshair (or in that general area) "+5 HP & +5 AP !" whenever a player gets a kill, also a line in the code for a color code for that message would be nice as I'd like to customize it to my desire. Thank you ! Attached Files Get Plugin or Get Source (vampire.sma - 1.2 KB) Przeczytaj cały wpis
  13. I remember there was this Healing Box plugin: A healing box would appear on the map, either in the CT/TR zone or in the middle of the map, even if requested, a player with HP below 40 could go over this Healing Box and automatically recover "X" life. . The Healing Box appears on the map X times. There was an editable file, which you could edit, sometimes this healing box would appear in the round, edit how much HP you could get from this healing box and also edit the amount of HP it regenerated. Does anyone have this plugin or something like that for download? Przeczytaj cały wpis
  14. So, whenever someone has selected the cerberus class a message gets sent, which is good. But when they are nemesis and they also have selected cerberus class the message gets sent, which i dont want. Could anyone help? I use ZP 4.3 . The Tesla class works, I tried doing it the same way but it doesnt work PHP Code: public zp_user_infected_post(id, infector) { if (zp_get_user_zombie_class(id) == g_cerberus) { ColorChat(id, GREEN, "^x04[SPK ZM]^x01 [Ability: %d Fury | Cooldown: 1 round]", get_pcvar_num(cvar_fury)) g_veces[id] = get_pcvar_num(cvar_fury) i_fury_time[id] = get_pcvar_num(cvar_furytime) emit_sound(id, CHAN_STREAM, idle, 1.0, ATTN_NORM, 0, PITCH_HIGH) remove_task(id) } { if (g_cerberus == zp_get_user_zombie_class(id) && !zp_get_user_nemesis(id)) ColorChat(id, GREEN, "^x04[SPK ZM]^x01 Test", get_pcvar_num(cvar_fury)) } } Tesla one ( works good ) PHP Code: public zp_user_infected_post(id, infector) { reset_cvars(id) if (g_zclass_energyball == zp_get_user_zombie_class(id)) { ChatColor(id, "!g[SPK ZM] !y%L",id,"TESLA_INFO11"); } { if (g_zclass_energyball == zp_get_user_zombie_class(id) && !zp_get_user_nemesis(id)) emit_sound(id, CHAN_VOICE, g_Classic_Infect_Sound[random(sizeof g_Classic_Infect_Sound)], VOL_NORM, ATTN_NORM, 0, PITCH_NORM) } } Przeczytaj cały wpis
  15. https://heylink.me/opaltogel.ai/ https://bit.ly/m/opaltogel OPALTOGEL merupakan situs bandar online nomor satu yang terpercaya di Indonesia. Dikenal dengan layanan terbaik dan keamanan yang terjamin, OPALTOGEL menjadi pilihan utama para pecinta judi online. Dengan berbagai jenis permainan yang disediakan seperti togel, slot, casino, sportsbook, dan poker, OPALTOGEL mampu memenuhi kebutuhan para pemain judi online dengan baik. OPALTOGEL juga dikenal dengan kemudahan aksesnya melalui OPALTOGEL login yang cepat dan mudah. Para pemain dapat mengakses situs ini kapan saja dan di mana saja melalui perangkat komputer atau smartphone mereka. Selain itu, OPALTOGEL juga menyediakan berbagai opsi pembayaran yang aman dan terjamin keamanannya. LINK ALTERNATIF: https://longkeith.com/ Bagi para pemain yang mengalami kendala dalam mengakses situs utama, OPALTOGEL juga menyediakan OPALTOGEL alternatif yang dapat diakses dengan mudah melalui link alternatif yang disediakan. Dengan demikian, para pemain tetap dapat menikmati berbagai jenis permainan yang disediakan oleh OPALTOGEL tanpa adanya hambatan. Sebagai situs online terpercaya, OPALTOGEL juga memberikan jaminan keamanan data pribadi para pemain serta transaksi keuangan yang dilakukan. Dengan sistem keamanan yang canggih, para pemain dapat bermain dengan nyaman dan tenang tanpa perlu khawatir akan kebocoran data pribadi atau transaksi yang tidak aman. Dengan reputasi yang baik dan layanan terbaik yang ditawarkan, tidak heran jika OPALTOGEL menjadi situs bandar online terpercaya nomor satu di Indonesia. Bagi para pecinta judi online, OPALTOGEL adalah pilihan yang tepat untuk menikmati pengalaman bermain judi online yang aman, nyaman, dan menguntungkan. Wyświetl pełny artykuł
  16. Descriptionmanager for 4v4 survival arena mode. the team will win the game if another team all inacp/dead earlier. current support translation: chi(Simplified Chinese). I won't add more translations, you could make your own or ask another one. requirementsSurvivor 4v4 Arena(PVPVE Coop) Related PluginsBot Takeover Customized version for 4v4 Survival Arena Playable Demo Commandssm_arenateam :swap to the opponent team Change log Spoiler Code: 1.0 (2024-03-09: -init public release. Attached Files survival.phrases.txt (1.1 KB) Get Plugin or Get Source (survival.sp - 7.8 KB) Wyświetl pełny artykuł
  17. Descriptionallow human survivors takeover another valid bot by observing it and press shift button after death. suggest only use this plugin in modes disabled rescue. current support translation: chi(Simplified Chinese). I won't add more translations, you could make your own or ask another one. requirementsLeft 4 DHooks Direct Related Cvars And Pluginssm_cvar allow_all_bot_survivor_team "1" Auto Enable/Disable "sb_all_bot_game" Cvars PHP Code: // 1 = enable, 0 = disable. required at least 1 survivor still not incapacitated to try to takeover bot? // - // Default: "1" bot_takeover_alright "1" Change log Spoiler Code: 2.0 (2024-03-09: -init public release. Attached Files bot_takeover.phrases.txt (521 Bytes) bot_takeover.inc (663 Bytes) Get Plugin or Get Source (bot_takeover.sp - 8.0 KB) Wyświetl pełny artykuł
  18. May anyone help me make this for only a flag ( ADMIN_LEVEL_D) ? I know its zp user infected but i tried several times and failed. PHP Code: public zp_user_infected_post(id, infector) { if (zp_get_user_zombie_class(id) == g_cerberus) { client_print(id, print_chat, "[SPK ZM] [Ability: %d Fury | Cooldown: 1 round]", get_pcvar_num(cvar_fury)) g_veces[id] = get_pcvar_num(cvar_fury) i_fury_time[id] = get_pcvar_num(cvar_furytime) emit_sound(id, CHAN_STREAM, idle, 1.0, ATTN_NORM, 0, PITCH_HIGH) remove_task(id) } } FULL CODE PHP Code: #include <amxmodx> #include <zombieplague> #include <engine> #include <fun> #include <fakemeta> #include <hamsandwich> #define ID_FURY (taskid - TASK_FURY) // Task offsets enum (+= 100) { TASK_FURY } /*================================================================================ [Customizations] =================================================================================*/ // Zombie Attributes new const zclass10_name[] = { "Cerberus Dog"} new const zclass10_info[] = { "You have a fury" } new const zclass10_model[] = { "Cerberus_frk_14" } new const zclass10_clawmodel[] = { "v_doghands.mdl" } const zclass10_health = 1200 const zclass10_speed = 275 const Float:zclass10_gravity = 0.8 const Float:zclass10_knockback = 0.5 new const idle[] = "zombie_plague/cerberus_idle.wav" new const fury[] = "zombie_plague/cerberus_fury.wav" new const normaly[] = "zombie_plague/cerberus_normaly.wav" /*================================================================================ Customization ends here! Any edits will be your responsibility =================================================================================*/ // Plugin info. #define PLUGIN "[ZP] Zombie Class: Cerberus Dog" #define VERSION "0.1" #define AUTHOR "DJHD!" // Variables new g_cerberus, g_veces[33], i_fury_time[33], g_maxplayers // Cvar Pointers new cvar_fury, cvar_furytime /*================================================================================ [Init, CFG and Precache] =================================================================================*/ public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) cvar_fury = register_cvar("zp_cerberus_fury", "1") cvar_furytime = register_cvar("zp_cerberus_fury_time", "30„.0") static szCvar[30] formatex(szCvar, charsmax(szCvar), "v%s by %s", VERSION, AUTHOR) register_cvar("zp_zclass_cerberus", szCvar, FCVAR_SERVER|FCVAR_SPONLY) register_logevent("roundStart", 2, "1=Round_Start") register_forward(FM_PlayerPreThink, "fw_PlayerPreThink") g_maxplayers = get_maxplayers() } public plugin_precache() { g_cerberus = zp_register_zombie_class(zclass10_name, zclass10_info, zclass10_model, zclass10_clawmodel, zclass10_health, zclass10_speed, zclass10_gravity, zclass10_knockback) precache_sound(idle) precache_sound(fury) precache_sound(normaly) } /*================================================================================ [Zombie Plague Forwards] =================================================================================*/ public zp_user_infected_post(id, infector) { if (zp_get_user_zombie_class(id) == g_cerberus) { client_print(id, print_chat, "[SPK ZM] [Ability: %d Fury | Cooldown: 1 round]", get_pcvar_num(cvar_fury)) g_veces[id] = get_pcvar_num(cvar_fury) i_fury_time[id] = get_pcvar_num(cvar_furytime) emit_sound(id, CHAN_STREAM, idle, 1.0, ATTN_NORM, 0, PITCH_HIGH) remove_task(id) } } public zp_user_humanized_post(taskid) { new id = ID_FURY remove_task(id+TASK_FURY) set_user_godmode(id, 0) } /*================================================================================ [Main Forwards] =================================================================================*/ public fw_PlayerPreThink(id) { if (!is_user_alive(id)) return FMRES_IGNORED new button = get_user_button(id) new oldbutton = get_user_oldbutton(id) if (zp_get_user_zombie(id) && (zp_get_user_zombie_class(id) == g_cerberus)) { if (!(oldbutton & IN_RELOAD) && (button & IN_RELOAD)) clcmd_furia(id) } return PLUGIN_CONTINUE } /*================================================================================ [Internal Functions] =================================================================================*/ public clcmd_furia(taskid) { new id = ID_FURY if(!is_user_alive(id) || !is_user_connected(id)|| !zp_get_user_zombie(id) || zp_get_user_nemesis(id) || zp_get_user_zombie_class(id) != g_cerberus) return PLUGIN_HANDLED if(g_veces[id] > 0) { g_veces[id] = g_veces[id] -1 set_task(0.1, "effects", id+TASK_FURY, _, _, "b") i_fury_time[id] = get_pcvar_num(cvar_furytime) set_task(1.0, "ShowHUD", id+TASK_FURY, _, _, "a", i_fury_time[id]) emit_sound(id, CHAN_STREAM, fury, 1.0, ATTN_NORM, 0, PITCH_HIGH) } else { return PLUGIN_HANDLED } return PLUGIN_HANDLED } public effects(id) { if(!is_user_alive(id) || !is_user_connected(id)|| !zp_get_user_zombie(id) || zp_get_user_nemesis(id) || zp_get_user_zombie_class(id) != g_cerberus) return static origin[3] get_user_origin(id, origin) message_begin(MSG_PVS, SVC_TEMPENTITY, origin) write_byte(TE_PARTICLEBURST) // TE id write_coord(origin[0]) // x write_coord(origin[1]) // y write_coord(origin[2]) // z write_short(130) // radius write_byte(70) // color write_byte(3) // duration (will be randomized a bit) message_end() message_begin(MSG_PVS, SVC_TEMPENTITY, origin) write_byte(TE_DLIGHT) // TE id write_coord(origin[0]) // x write_coord(origin[1]) // y write_coord(origin[2]) // z write_byte(22) // radius write_byte(255) // r write_byte(0) // g write_byte(30) // b write_byte(2) // life write_byte(0) // decay rate message_end() set_user_godmode(id, 1) set_task(get_pcvar_float(cvar_furytime), "remove_fury", id) } public ShowHUD(id) { if(is_user_alive(id)) { i_fury_time[id] = i_fury_time[id] - 1; set_hudmessage(200, 100, 0, -1.0, -0.46, 0, 1.0, 1.1, 0.0, 0.0, -1) show_hudmessage(id, "Fury: %d", i_fury_time[id]+1) } else { remove_task(id+TASK_FURY) } } public remove_fury(taskid) { new id = ID_FURY remove_task(id+TASK_FURY) set_user_godmode(id, 0) emit_sound(id, CHAN_STREAM, normaly, 1.0, ATTN_NORM, 0, PITCH_HIGH) } public roundStart() { for(new i = 1; i <= g_maxplayers; i++) { i_fury_time[i] = get_pcvar_num(cvar_furytime) remove_task(i) } } Przeczytaj cały wpis
  19. https://forums.alliedmods.net/showthread.php?t=55245 Hello! Can someone add an extra zone option? The point would be that there would be an AFK zone and whoever is in the zone would be put into spectator mode after 30 seconds. Przeczytaj cały wpis
  20. Descriptiondivide the survivors into two teams according to the model: yellow and green. can't revive/heal/defib across team. bot wont' try to liberate besieged or give pills across team. you'd better use auto respawn plugins and self revive plugins. current support translation: chi(Simplified Chinese). I won't add more translations, you could make your own or ask another one. requirementsActions Left 4 DHooks Direct superversus1.8.15.5-modify survivor_chat_select Change log Spoiler Code: 1.0 test (2024-03-08: -init public release. Attached Files 4v4_arena.phrases.txt (708 Bytes) Get Plugin or Get Source (4v4_arena.sp - 12.5 KB) Wyświetl pełny artykuł
  21. Hey ! I'll forward my post here from aghl.ru in the hopes to reach more potential people who'd be able to assist me as I suspect there is a broken part of the code or something similar of that nature: I have an issue with this plugin, in particular, the tripmines. To my knowledge, when placing a tripmine with a secondary attack, it should emit a different laser beam and not the same one as with the primary attack. Im saying that because I've been in 8 different servers which had Severian's Mod, and whenever you'd place a tripmine using MOUSE2 in those servers, not only it would do 150% damage compared to MOUSE1, but the laser beam would look completely different, indicating that its a more potent tripmine. But when I installed this plugin into my server, both attacks work correctly in terms of damage dealt when triggered, secondary attack does 150% damage as it should, but the laser beam when the tripmine is deployed using the secondary attack is the same one as the primary attack's laser, which is the default Half-Life laser beam look. Even in the plugin's description, they are describing the tripmine (when placed with a secondary attack) as a "lightning" mine, quoted: * "Tripmines, when right-clicked, will place a 'lightning' mine which will blow up with 150% of the damage of a regular mine." I will now attach a photo/.gif to visually show what I mean: Primary attack tripmine laser beam look: https://i.imgur.com/fgV1tqX.jpeg Secondary attack tripmine laser beam (how it should look like): https://i.imgur.com/HOKDNBy.gif As you can see, it looks like "lightning" and is animated. (In-game, the beam is "moving" a lot faster, it just appears this slow in the .gif because of the capped FPS) I'd like to add that I have a separate plugin, which makes the tripmine laser beam random color, not just the default green, also the mine itself glows. This has nothing to do with Severian's mod :good: A link to the plugin: https://aghl.ru/forum/viewtopic.php?f=19&t=528 Thanks ! Przeczytaj cały wpis
  22. Hi there, may anyone add to this rocket any "jumping action" on zombies when they get bombed as you can see in the following video: (https://youtu.be/rx4BfGXIa7Y?si=Oy8Ib6NNGoM9tIOs) PHP Code: #include <amxmodx> #include <amxmisc> #include <fakemeta> #include <hamsandwich> #include <zombieplague> static const plugin[] = "[ZP] Extra Item: Original Rocket"; static const mrocket[] = "models/rocket_missile.mdl"; static const mrpg_w[] = "models/v_originalrocket.mdl"; static const mrpg_v[] = "models/v_originalrocket.mdl"; static const mrpg_p[] = "models/p_originalrocket.mdl"; static const sfire[] = "weapons/rocketfire1.wav"; static const sfly[] = "weapons/nuke_fly.wav"; static const shit[] = "weapons/mortarhit.wav"; static const spickup[] = "items/gunpickup2.wav"; static const g_item_name[] = "Original Rocket"; const g_item_cost = 25; new g_itemid; new gmsg_screenshake, gmsg_death, gmsg_damage, pcvar_delay, pcvar_maxdmg, pcvar_radius, pcvar_map; new rocketsmoke, explosion, bazsmoke, white; new bool:has_baz[33], bool:CanShoot[33]; new dmgcount[33], pcvar_dmgforpacks, pcvar_award; public plugin_init() { register_plugin(plugin, "0.6", "Random1"); pcvar_delay = register_cvar("zp_baz_delay", "10.0"); pcvar_maxdmg = register_cvar("zp_baz_dmg", "500"); pcvar_radius = register_cvar("zp_baz_radius", "750"); pcvar_map = register_cvar("zp_baz_map", "0"); pcvar_dmgforpacks = get_cvar_pointer("zp_human_damage_reward"); pcvar_award = register_cvar("zp_baz_awardpacks", "1"); if ( pcvar_dmgforpacks == 0 ) { set_pcvar_num(pcvar_award, 0); //if we couldn't read the dmg cvar from zp then set a stop state on dmg reward log_amx("[%s] error reading zp_human_damage_reward cvar from zombie plague, turning award for damage off", plugin); } g_itemid = zp_register_extra_item(g_item_name, g_item_cost, ZP_TEAM_HUMAN); register_concmd("zp_bazooka", "give_bazooka", ADMIN_KICK, "<name/@all> gives a bazooka to the spcified target"); register_event("CurWeapon","switch_to_knife","be","1=1","2=29"); register_event("HLTV", "event_HLTV", "a", "1=0", "2=0") // New Round register_clcmd("drop", "drop_call"); //supports 2 methods of firing, attacking while holding knife and a bind register_clcmd("baz_fire", "fire_call"); register_forward(FM_PlayerPreThink, "fw_prethink"); register_forward(FM_Touch, "fw_touch"); gmsg_screenshake = get_user_msgid("ScreenShake"); gmsg_death = get_user_msgid("DeathMsg"); gmsg_damage = get_user_msgid("Damage"); } public event_HLTV() { //remove entities regardless of cvar new rpg_temp = engfunc(EngFunc_FindEntityByString, -1, "classname", "rpg_temp"); while( rpg_temp > 0) { engfunc(EngFunc_RemoveEntity, rpg_temp); rpg_temp = engfunc(EngFunc_FindEntityByString, -1, "classname", "rpg_temp"); } if ( get_pcvar_num(pcvar_map) ) return; for( new id = 1; id <= 32; id++ ) has_baz[id] = false; } public zp_extra_item_selected(player, itemid) { if (itemid == g_itemid) { if ( has_baz[player] ) { zp_set_user_ammo_packs( player, zp_get_user_ammo_packs(player) + g_item_cost ); client_print(player, print_chat, "[ZP BAZ] You already have a bazooka, drop it first by hitting you drop key while holding knife"); } else { has_baz[player] = true; CanShoot[player] = true; client_print(player, print_chat, "[ZP BAZ] You now have a bazooka, attack while holding knife(will take %2.1f seconds to reload", get_pcvar_float(pcvar_delay)); } } } public give_bazooka(id,level,cid) { if (!cmd_access(id,level,cid,1)) { console_print(id,"You have no access to that command"); return; } if (read_argc() > 2) { console_print(id,"Too many arguments supplied."); return; } new arg1[32]; read_argv(1, arg1, sizeof(arg1) - 1); new player = cmd_target(id, arg1, 10); if ( !player ) { if ( arg1[0] == '@' ) { for ( new i = 1; i <= 32; i++ ) { if ( is_user_connected(i) && !has_baz[i] && !zp_get_user_zombie(i) ) { has_baz[i] = true; CanShoot[i] = true; client_print(i, print_chat, "[ZP BAZ] You now have a bazooka, attack while holding knife(will take %2.1f seconds to reload", get_pcvar_float(pcvar_delay)); } } } else { client_print(id, print_chat, "No Such Player/Team"); return; } } else if ( !has_baz[player] && !zp_get_user_zombie(player) ) { has_baz[player] = true; CanShoot[player] = true; client_print(player, print_chat, "[ZP BAZ] You now have a bazooka, attack while holding knife(will take %2.1f seconds to reload", get_pcvar_float(pcvar_delay)); } } public zp_user_infected_post(id, infector) if ( has_baz[id] ) drop_rpg_temp(id); public plugin_precache() { precache_model(mrocket); precache_model(mrpg_w); precache_model(mrpg_v); precache_model(mrpg_p); precache_sound(sfire); precache_sound(sfly); precache_sound(shit); precache_sound(spickup); rocketsmoke = precache_model("sprites/smoke.spr"); explosion = precache_model("sprites/zerogxplode.spr"); } public switch_to_knife(id) { if ( !is_user_alive(id) ) return; if ( has_baz[id] && CanShoot[id] ) { set_pev(id, pev_viewmodel2, mrpg_v); set_pev(id, pev_weaponmodel2, mrpg_p); } } public fw_prethink(id) { static button; button = pev(id, pev_button); if ( button & IN_ATTACK ) fire_call(id); } public fire_call(id) { if ( !is_user_alive(id) || !has_baz[id] || !CanShoot[id] ) return; new weapon = get_user_weapon(id); if ( weapon == CSW_KNIFE ) fire_rocket(id); } fire_rocket(id) { if ( !CanShoot[id] ) return; CanShoot[id] = false; set_task(get_pcvar_float(pcvar_delay), "rpg_reload", id); engclient_cmd(id, "weapon_knife"); //attempt to force model to reset new Float:StartOrigin[3], Float:Angle[3]; pev(id, pev_origin, StartOrigin); pev(id, pev_angles, Angle); new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target")); set_pev(ent, pev_classname, "rpgrocket"); engfunc(EngFunc_SetModel, ent, mrocket); set_pev(ent, pev_mins, {-1.0, -1.0, -1.0}); set_pev(ent, pev_maxs, {1.0, 1.0, 1.0}); engfunc(EngFunc_SetOrigin, ent, StartOrigin); set_pev(ent, pev_angles, Angle); set_pev(ent, pev_solid, 2); set_pev(ent, pev_movetype, 5); set_pev(ent, pev_owner, id); new Float:nVelocity[3]; velocity_by_aim(id, 1500, nVelocity); set_pev(ent, pev_velocity, nVelocity); emit_sound(ent, CHAN_WEAPON, sfire, VOL_NORM, ATTN_NORM, 0, PITCH_NORM); emit_sound(ent, CHAN_VOICE, sfly, VOL_NORM, ATTN_NORM, 0, PITCH_NORM); message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(22); write_short(ent); write_short(rocketsmoke); write_byte(30); write_byte(3); write_byte(255); write_byte(255); write_byte(255); write_byte(255); message_end(); } //--------------------------------------------------------------------------------------- public rpg_reload(id) { CanShoot[id] = true; if ( get_user_weapon(id) == CSW_KNIFE ) switch_to_knife(id); //sets our model } //--------------------------------------------------------------------------------------- public fw_touch(ent, touched) { if ( !pev_valid(ent) ) return FMRES_IGNORED; static entclass[32]; pev(ent, pev_classname, entclass, 31); if ( equali(entclass, "rpg_temp") ) { static touchclass[32]; pev(touched, pev_classname, touchclass, 31); if ( !equali(touchclass, "player") ) return FMRES_IGNORED; if( !is_user_alive(touched) || zp_get_user_zombie(touched) ) return FMRES_IGNORED; emit_sound(touched, CHAN_VOICE, spickup, 1.0, ATTN_NORM, 0, PITCH_NORM); has_baz[touched] = true; engfunc(EngFunc_RemoveEntity, ent); return FMRES_HANDLED; } else if ( equali(entclass, "rpgrocket") ) { new Float:EndOrigin[3]; pev(ent, pev_origin, EndOrigin); new NonFloatEndOrigin[3]; NonFloatEndOrigin[0] = floatround(EndOrigin[0]); NonFloatEndOrigin[1] = floatround(EndOrigin[1]); NonFloatEndOrigin[2] = floatround(EndOrigin[2]); emit_sound(ent, CHAN_WEAPON, shit, VOL_NORM, ATTN_NORM, 0, PITCH_NORM); emit_sound(ent, CHAN_VOICE, shit, VOL_NORM, ATTN_NORM, 0, PITCH_NORM); message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(17); write_coord(NonFloatEndOrigin[0]); write_coord(NonFloatEndOrigin[1]); write_coord(NonFloatEndOrigin[2] + 128); write_short(explosion); write_byte(60); write_byte(255); message_end(); message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(5); write_coord(NonFloatEndOrigin[0]); write_coord(NonFloatEndOrigin[1]); write_coord(NonFloatEndOrigin[2] + 256); write_short(bazsmoke); write_byte(125); write_byte(5); message_end(); new maxdamage = get_pcvar_num(pcvar_maxdmg); new damageradius = get_pcvar_num(pcvar_radius); new PlayerPos[3], distance, damage; for (new i = 1; i <= 32; i++) { if ( is_user_alive(i)) { new id = pev(ent, pev_owner) if ((zp_get_user_zombie(id)) || (zp_get_user_nemesis(id))) if ((zp_get_user_zombie(i)) || (zp_get_user_nemesis(i))) continue; if ((!zp_get_user_zombie(id)) && (!zp_get_user_nemesis(id))) if ((!zp_get_user_zombie(i)) && (!zp_get_user_nemesis(i))) continue; get_user_origin(i, PlayerPos); distance = get_distance(PlayerPos, NonFloatEndOrigin); if (distance <= damageradius) { message_begin(MSG_ONE, gmsg_screenshake, {0,0,0}, i); write_short(1<<14); write_short(1<<14); write_short(1<<14); message_end(); damage = maxdamage - floatround(floatmul(float(maxdamage), floatdiv(float(distance), float(damageradius)))); new attacker = pev(ent, pev_owner); baz_damage(i, attacker, damage, "bazooka"); } } } message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(21); write_coord(NonFloatEndOrigin[0]); write_coord(NonFloatEndOrigin[1]); write_coord(NonFloatEndOrigin[2]); write_coord(NonFloatEndOrigin[0]); write_coord(NonFloatEndOrigin[1]); write_coord(NonFloatEndOrigin[2] + 320); write_short(white); write_byte(0); write_byte(0); write_byte(16); write_byte(128); write_byte(0); write_byte(255); write_byte(255); write_byte(192); write_byte(128); write_byte(0); message_end(); engfunc(EngFunc_RemoveEntity, ent); return FMRES_HANDLED; } return FMRES_IGNORED; } //--------------------------------------------------------------------------------------- public drop_call(id) { if ( has_baz[id] && get_user_weapon(id) == CSW_KNIFE ) { drop_rpg_temp(id); return PLUGIN_HANDLED; //attempt to block can't drop knife message } return PLUGIN_CONTINUE; } drop_rpg_temp(id) { new Float:fAim[3] , Float:fOrigin[3]; velocity_by_aim(id , 64 , fAim); pev(id , pev_origin , fOrigin); fOrigin[0] += fAim[0]; fOrigin[1] += fAim[1]; new rpg = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target")); set_pev(rpg, pev_classname, "rpg_temp"); engfunc(EngFunc_SetModel, rpg, mrpg_w); set_pev(rpg, pev_mins, { -16.0, -16.0, -16.0 } ); set_pev(rpg, pev_maxs, { 16.0, 16.0, 16.0 } ); set_pev(rpg , pev_solid , 1); set_pev(rpg , pev_movetype , 6); engfunc(EngFunc_SetOrigin, rpg, fOrigin); has_baz[id] = false; } //--------------------------------------------------------------------------------------- baz_damage(id, attacker, damage, weaponDescription[]) { if ( pev(id, pev_takedamage) == DAMAGE_NO ) return; if ( damage <= 0 ) return; new userHealth = get_user_health(id); if (userHealth - damage <= 0 ) { dmgcount[attacker] += userHealth - damage; set_msg_block(gmsg_death, BLOCK_SET); ExecuteHamB(Ham_Killed, id, attacker, 2); set_msg_block(gmsg_death, BLOCK_NOT); message_begin(MSG_BROADCAST, gmsg_death); write_byte(attacker); write_byte(id); write_byte(0); write_string(weaponDescription); message_end(); set_pev(attacker, pev_frags, float(get_user_frags(attacker) + 1)); new kname[32], vname[32], kauthid[32], vauthid[32], kteam[10], vteam[10]; get_user_name(attacker, kname, 31); get_user_team(attacker, kteam, 9); get_user_authid(attacker, kauthid, 31); get_user_name(id, vname, 31); get_user_team(id, vteam, 9); get_user_authid(id, vauthid, 31); log_message("^"%s<%d><%s><%s>^" killed ^"%s<%d><%s><%s>^" with ^"%s^"", kname, get_user_userid(attacker), kauthid, kteam, vname, get_user_userid(id), vauthid, vteam, weaponDescription); } else { dmgcount[attacker] += damage; new origin[3]; get_user_origin(id, origin); message_begin(MSG_ONE,gmsg_damage,{0,0,0},id); write_byte(21); write_byte(20); write_long(DMG_BLAST); write_coord(origin[0]); write_coord(origin[1]); write_coord(origin[2]); message_end(); set_pev(id, pev_health, pev(id, pev_health) - float(damage)); } if ( !get_pcvar_num(pcvar_award) ) return; new breaker = get_pcvar_num(pcvar_dmgforpacks); if ( dmgcount[attacker] > breaker ) { new temp = dmgcount[attacker] / breaker if ( temp * breaker > dmgcount[attacker] ) return; //should never be possible dmgcount[attacker] -= temp * breaker; zp_set_user_ammo_packs( attacker, zp_get_user_ammo_packs(attacker) + temp ); } } Przeczytaj cały wpis
  23. Description RPG Maker 2 is a gigantic parser, which reads a bunch of different config files and interprets them, essentially providing a shell with a bunch of parameters, allowing you to create the RPG of your dreams (within some reason) without ever having to write a single line of code -- though support for expansion plugins to extend the functionality of talents does exist via IPC native/forward calls, and will be covered in a later post. Most features of RPG Maker 2 can be disabled/enabled as you see fit; the main config file holds about 500 different cvars, most of which are gameplay-affecting and customizable. RPG Maker 2 will work with any source game, but it only comes with the config files assembled for Left 4 Dead 2. You'll have to edit the events and weapondamages configs and update them appropriately to support other source games. Honestly, you'll have to edit most of the configs, but none of it's code, and it's mostly well-documented? Requirements/Dependencies RPG Maker 2 still requires Ready Up ( https://github.com/exSkye/rpgmaker2/...y)/ReadyUp-8.x ) and I don't see myself ever removing this dependency, as it provides many important natives/forwards to greatly-extend the amount of events that occur in l4d2. This version is still on old syntax, but is running perfectly-fine on my server, which runs the latest version of SM. I will, however, be porting Ready Up to the new syntax in the near future for uniformity. SM Lib - I use this for custom chat/text colours that are otherwise unavailable. Left 4 DHooks l4d_stocks.inc (/include/ is found in the archive included on this page.) A MySQL database is required even if localhost. SQLite is not supported, and I have no plans to add support for it, though if you do and would like it merged into the official code branch, please open a ticket on the github page. Github I will try to keep regular updates here, but don't forget to always check the github for the latest updates just in case, and if you need to post any issues/bugs that need fixing, it is preferred that you do it on github tickets so that it is all in one place. https://github.com/exSkye/rpgmaker2/...RPGMaker2/v3.x I'm sure there's something I forgot to post, since it's super late, I'm super baked, and I've been coding non-stop for many hours... many, many hours. Remind me, or I'll remember later and add it. You can connect to the server and test out the plugin running the exact version of the files that are in the archive/posted on the github, here: http://skyrpg.org - click the server, then click 'connect' on the drop-down, or alternatively connect skyrpg.org in console. Attached Files rum_rpg_ns.smx (306.9 KB) RPGMaker_v3.4_Mar6_2024.zip (737.6 KB) Wyświetl pełny artykuł
  24. Hey ! Im interested in a HUD which would display the time that's left until map change and system clock. After a bit of research on the forums I've managed to find a plugin which displays system time only, maybe it would be possible to edit it? I'll attach the said plugin. Would it be possible to edit the following: #1 add timeleft until map change just below the system clock #2 make the HUD enabled by default upon entering the server #3 if its a possibility, make the whole HUD/font a bit smaller so that its not that intrusive Thank you ! Attached Files clock.amxx (2.6 KB) Get Plugin or Get Source (clock.sma - 1.2 KB) Przeczytaj cały wpis
  25. Descriptionallow dump survivor voice snene to usermsg id by admin command. make sure yo use this plugin while the game won't auto vocalize anything. Cvars PHP Code: voice_usermsgid_dumper_interval "0.5" voice_usermsgid_dumper_log_path "/logs" Commandssm_dumpvoice :dump a given file. for exmaple: /dumpvoice "adrenaline01" sm_dumpvoicewd :dump files by a wildcard. for exmaple: /dumpvoicewd "thanks" sm_enddumpvoice :end the current voice dump. Change log Spoiler Code: 1.1 test (2024-03-05: -add check and feedback if no file found by arg. 1.0 test (2024-03-05: -init public release. Attached Files Get Plugin or Get Source (voice_usermsgid_dumper.sp - 11.1 KB) Wyświetl pełny artykuł
×
×
  • Dodaj nową pozycję...