cristiii. 2 Posted May 11, 2019 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.. Share this post Link to post Share on other sites More sharing options...