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

    28694
  • Dołączył

  • Ostatnia wizyta

    nigdy
  • Wygrane w rankingu

    11

Treść opublikowana przez MYGO.pl

  1. Hello i dont know how to code but i wanted to see if chatgpt could create me a csgo plugin that i want in my server I wanted to make a plugin would reward online players 10 points every minute Can someone fix this? #include <sourcemod> public void OnPluginStart() { // Register the command to reward players RegConsoleCmd("reward", Cmd_Reward); // Create a timer to reward players every minute CreateTimer(60.0, Timer_Reward, _, TIMER_REPEAT); } public Action Cmd_Reward(int client, const char[] args) { // Get the client's SteamID new steamid[20]; GetClientAuthId(client, steamid, sizeof(steamid)); // Reward the client with 100 points RewardPlayer(steamid, 100); return Plugin_Handled; } public Action Timer_Reward(Handle timer) { // Loop through all connected clients for (int i = 1; i <= MaxClients; i++) { // Check if the client is connected if (IsClientInGame(i)) { // Get the client's SteamID new steamid[20]; GetClientAuthId(i, steamid, sizeof(steamid)); // Reward the client with 10 points RewardPlayer(steamid, 10); } } return Plugin_Continue; } public void RewardPlayer(const char[] steamid, int points) { // Open a connection to the MySQL database new database = SQL_Connect("localhost", "username", "password", "database"); // Check if the connection was successful if (SQL_IsError(database)) { LogError("Failed to connect to database: %s", SQL_GetLastError()); return; } // Create the query string new query[256]; Format(query, sizeof(query), "INSERT INTO rewards (steamid, points) VALUES ('%s', %d)", steamid, points); // Execute the query new result = SQL_Query(database, query); // Check if the query was successful if (SQL_IsError(result)) { LogError("Failed to execute query: %s", SQL_GetLastError()); } // Free the query result SQL_FreeResult(result); // Close the database connection SQL_Disconnect(database); } i am getting these errors (50) : error 017: undefined symbol "SQL_IsError" (52) : error 017: undefined symbol "SQL_GetLastError" (64) : error 017: undefined symbol "SQL_IsError" (70) : error 017: undefined symbol "SQL_FreeResult" (73) : error 017: undefined symbol "SQL_Disconnect" any help would be useful Attached Files Get Plugin or Get Source (newplugin.sp - 2.0 KB) Przeczytaj cały wpis
  2. I didn't thoroughly test this. The cvars are meant as both defaults for every command, or for specific commands to only affect one team, or only your team. This was created to enable !buy fheal @los to use the Point System feature to heal a survivor, but sometimes you end up being unable to find his name, or gibberish name, so this solves it. This also has the hidden benefit: Whenever a survivor is bugged outside the map, you can stare at him, then !tele @los. This will target that survivor if you stare at him, and because you're staring at a wall, it will teleport him to that wall, inside the map boundaries. This is better than @aim for two reasons: 1. Works through walls ( Maybe @aim also works through walls, not sure ) 2. No need to precisely aim at the target. Attached Files Get Plugin or Get Source (TargetLOS.sp - 2.4 KB) Wyświetl pełny artykuł
  3. So, I'm using this biohazard shop plugin for the biohazard mod, but I want to change the "Infect me" item for this "Invisibility" item. It would be awesome if the CT can buy 15 seconds of invisibility instead of being able to infect himself. I have no problem if you guys think there's a better version of the invisibility plugin or there's a better way to do it. Thanks! PHP Code: #include <amxmodx> #include <fun> #include <cstrike> #include <fakemeta> #include <engine> #include <xs> #include <hamsandwich> #include <dhudmessage> #include <biohazard> #define PLUGIN_NAME "[Biohazard] Shop" #define PLUGIN_AUTHORS "YONTU" #define PLUGIN_VERSION "1.0" #define is_user_player(%1) (1 <= %1 <= max_players) #define DMG_HEGRENADE (1<<24) #define ENG_NULLENT -1 #define EV_INT_WEAPONKEY EV_INT_impulse #define GAK_WEAPONKEY 6871 #define TASK_DELAY 91249 new g_HostName[64], g_Ak47Gold[33], g_Ak47GoldenZoom[33], g_HealthRegen[33], Float:g_RegenDelay[33]; new g_user_xp[33], g_item[4][33], g_msg_ItemPickUp; new g_PowerGlobalDelay = 0, g_PowerDelay[33]; new SpriteTexture, Lightning, PowerSprite, ShockWave; new menu, text_menu[128], text_items[5][128], menu_callback, money; new data[6], name[64], access, CallBack; new max_players, cvar_hostname; new bool:ignorecost = false; enum { COST_GOLDEN_AK47 = 0, COST_REGENERATOR_HUMAN, COST_FROSTNADE, COST_INFECTME } enum { COST_NOFLASH = 0, COST_SPEED, COST_HEALTH, COST_GRAVITY, COST_STRIPW } // Costul itemelor din shop-ul oamenilor new const SHOP_HUMANS[] = { 16000, // COSTUL AK-47 DE AUR 3000, // COSTUL REGENERATORULUI DE VIATA (VIATA MAXIMA = 200) 4000, // COSTUL GRENADEI FROST 15000 // COSTUL AUTO-INFECTIEI } // Costul itemelor din shop-ul zombilor new const SHOP_ZOMBIES[] = { 2, // NO FLASH 4, // SPEED BOOST 6, // EXTRA HEALTH 3, // LOW GRAVITY 8 // STRIP HUMANS WEAPONS } // Poti adauga mai multe ore respectand matricea de mai jos. Intre orele respective, costul itemelor va fi ignorat, adica itemele vor fi gratuite. // NOTA: Dupa ultima linie a matriciei nu se pune virgula (vezi mai jos) new ignore_cost_hours[][] = { {00, 22}, // intre ora 00:00 si 07:00 {16, 17} // intre ora 16:00 si 17:00 } new const GoldenAK[][] = { "models/biohazard/v_ak47_golden.mdl", "models/biohazard/p_ak47_golden.mdl", "models/biohazard/w_ak47_golden.mdl" } new const TAG[] = "[Biohazard]"; new const TargetAimingSound[][] = { "biohazard/target.wav", "biohazard/target2.wav" }; new const PowerSound[] = "biohazard/wizard_skill.wav"; new const SpritePower[] = "sprites/biohazard/wizard.spr"; const PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90) const SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE) public plugin_init() { register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHORS); is_biomod_active() ? plugin_init2() : pause("ad") } public plugin_init2() { new o, m, s, i; time(o, m, s); for(i = 0; i < sizeof ignore_cost_hours; i++) { if(o >= ignore_cost_hours[i][0] && o < ignore_cost_hours[i][1]) { ignorecost = true; } } register_event("HLTV", "event_NewRound", "a", "1=0", "2=0"); register_event("CurWeapon", "event_CurWeapon", "be", "1=1"); register_event("Damage", "event_Damage", "be"); register_event("DeathMsg", "event_DeathMsg", "a"); RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamagePre"); RegisterHam(Ham_Item_AddToPlayer, "weapon_ak47", "fw_AddToPlayer"); RegisterHam(Ham_TraceAttack, "worldspawn", "fw_TraceAttack", 1); RegisterHam(Ham_TraceAttack, "player", "fw_TraceAttack", 1); register_forward(FM_SetModel, "fw_SetModel"); register_forward(FM_CmdStart, "fw_CmdStart"); register_forward(FM_PlayerPreThink, "fw_PlayerPreThink"); register_message(get_user_msgid("ScreenFade"), "msg_ScreenFade"); register_clcmd("say /shop", "ShowShopMenu"); register_clcmd("say_team /shopS", "ShowShopMenu"); register_clcmd("say shop", "ShowShopMenu"); register_clcmd("say_team shop", "ShowShopMenu"); register_clcmd("drop", "cmd_use_power"); g_msg_ItemPickUp = get_user_msgid("ItemPickup"); cvar_hostname = get_cvar_pointer("hostname"); max_players = get_maxplayers(); } public plugin_precache() { new i; for(i = 0; i < sizeof GoldenAK; i++) precache_model(GoldenAK[i]); for(i = 0; i < sizeof TargetAimingSound; i++) precache_sound(TargetAimingSound[i]); precache_sound(PowerSound); precache_sound("weapons/zoom.wav"); Lightning = precache_model("sprites/lgtning.spr"); ShockWave = precache_model("sprites/shockwave.spr"); PowerSprite = precache_model(SpritePower); SpriteTexture = precache_model("sprites/dot.spr"); } public plugin_cfg() { get_pcvar_string(cvar_hostname, g_HostName, charsmax(g_HostName)); } public client_putinserver(id) { reset_vars(id); } public ShowShopMenu(id) { if(!is_user_alive(id)) { ColorChat(id, "!4%s!1 Trebuie sa fii in viata pentru a deschide shop-ul.", TAG); return PLUGIN_HANDLED; } else if(!game_started()) { ColorChat(id, "!4%s!1 Trebuie sa astepti pana incepe infectia pentru a deschide shop-ul.", TAG); return PLUGIN_HANDLED; } if(!is_user_zombie(id)) HumanShop(id); else ZombieShop(id); return PLUGIN_CONTINUE; } public HumanShop(id) { !ignorecost ? formatex(text_menu, charsmax(text_menu), "\wHumans SHOP_HUMANS | Money:\r %d^n\y%s", cs_get_user_money(id), g_HostName) : formatex(text_menu, charsmax(text_menu), "\wHumans SHOP_HUMANS | FREE ITEMS^n\y%s", g_HostName); menu = menu_create(text_menu, "HumansHandler"); menu_callback = menu_makecallback("CallBackMenuH"); !ignorecost ? formatex(text_items[0], charsmax(text_items[]), "Golden AK-47 -\r %d $", SHOP_HUMANS[COST_GOLDEN_AK47]) : formatex(text_items[0], charsmax(text_items[]), "Golden AK-47"); menu_additem(menu, text_items[0], "1", 0, menu_callback); !ignorecost ? formatex(text_items[1], charsmax(text_items[]), "Health Regenerator (200 HP) -\r %d $", SHOP_HUMANS[COST_REGENERATOR_HUMAN]) : formatex(text_items[1], charsmax(text_items[]), "Health Regenerator (200 HP)"); menu_additem(menu, text_items[1], "2", 0, menu_callback); !ignorecost ? formatex(text_items[2], charsmax(text_items[]), "Frost Nade -\r %d $", SHOP_HUMANS[COST_FROSTNADE]) : formatex(text_items[2], charsmax(text_items[]), "Frost Nade"); menu_additem(menu, text_items[2], "3", 0, menu_callback); formatex(text_items[3], charsmax(text_items[]), "Infect me -\r %d $", SHOP_HUMANS[COST_INFECTME]); menu_additem(menu, text_items[3], "4", 0, menu_callback); menu_setprop(menu, MPROP_EXIT, MEXIT_ALL); menu_display(id, menu, 0); return PLUGIN_CONTINUE; } public CallBackMenuH(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_HANDLED; } money = cs_get_user_money(id); menu_item_getinfo(menu, item, access, data, charsmax(data), name, charsmax(name), CallBack); new key = str_to_num(data); switch(key) { case 1: { if(SHOP_HUMANS[COST_GOLDEN_AK47] > money && !ignorecost || g_Ak47Gold[id] == 1) return ITEM_DISABLED; } case 2: { if(SHOP_HUMANS[COST_REGENERATOR_HUMAN] > money && !ignorecost || g_HealthRegen[id] == 1) return ITEM_DISABLED; } case 3: { if(SHOP_HUMANS[COST_FROSTNADE] > money && !ignorecost || user_has_weapon(id, CSW_SMOKEGRENADE)) return ITEM_DISABLED; } case 4: { if(SHOP_HUMANS[COST_INFECTME] > money || !allow_infection()) return ITEM_DISABLED; } } return ITEM_ENABLED; } public HumansHandler(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_HANDLED; } money = cs_get_user_money(id); menu_item_getinfo(menu, item, access, data, charsmax(data), name, charsmax(name), CallBack); new key = str_to_num(data); switch(key) { case 1: { new szWeapons[32], iNum; get_user_weapons(id, szWeapons, iNum); for(new i = 0; i < iNum; i++) { if(PRIMARY_WEAPONS_BIT_SUM & (1<<szWeapons[i])) { new weaponname[32]; get_weaponname(szWeapons[i], weaponname, charsmax(weaponname)); bacon_strip_weapon(id, weaponname); } } g_Ak47Gold[id] = 1; give_item(id, "weapon_ak47"); if(!ignorecost) { new cost_ak47 = SHOP_HUMANS[COST_GOLDEN_AK47]; cs_set_user_money(id, money - cost_ak47); ColorChat(id, "!4%s!1 You bought!3 Golden AK-47!1 with!3 %d!1 money.", TAG, cost_ak47); } } case 2: { g_HealthRegen[id] = 1; ColorChat(id, "!4%s!1 Your health will be regenerated with!3 1 HP!1/!3sec!1 (!3MAX 200 HP!1).", TAG); if(!ignorecost) { new cost_regen = SHOP_HUMANS[COST_REGENERATOR_HUMAN]; cs_set_user_money(id, money - cost_regen); ColorChat(id, "!4%s!1 You bought!3 health regenerator!1 with!3 %d!1 money.", TAG, cost_regen); } } case 3: { if(!ignorecost) { new cost_fn = SHOP_HUMANS[COST_FROSTNADE]; cs_set_user_money(id, money - cost_fn); ColorChat(id, "!4%s!1 You bought a!3 frostnade!1 with!3 %d!1 money.", TAG, cost_fn); } give_item(id, "weapon_smokegrenade"); } case 4: { infect_user(id, 0); new zm_name[32]; get_user_name(id, zm_name, charsmax(zm_name)); ColorChat(0, "!4%s!3 %s!1 become a zombie. He was infected by a strange plague.", TAG, zm_name); } } menu_destroy(menu); return PLUGIN_HANDLED; } public ZombieShop(id) { formatex(text_menu, charsmax(text_menu), "\wXP:\r %d^n\w* Infect more humans and gain experience points.^n*\r ONLY\w first zombie can receive XP.^n*\y 1 infection = 1 XP^n\w* Only item during one round.", g_user_xp[id]); menu = menu_create(text_menu, "ZombiesHandler"); menu_callback = menu_makecallback("CallBackMenuZ"); formatex(text_items[0], charsmax(text_items[]), "NO FLASH -\d Immune to flashbangs\w [\y%d XP\w]", SHOP_ZOMBIES[COST_NOFLASH]); menu_additem(menu, text_items[0], "1", 0, menu_callback); formatex(text_items[1], charsmax(text_items[]), "SPEED BOOST -\d Increase your speed by 20%%\w [\y%d XP\w]", SHOP_ZOMBIES[COST_SPEED]); menu_additem(menu, text_items[1], "2", 0, menu_callback); formatex(text_items[2], charsmax(text_items[]), "EXTRA HEALTH -\d Increase your health by 30%%\w [\y%d XP\w]", SHOP_ZOMBIES[COST_HEALTH]); menu_additem(menu, text_items[2], "3", 0, menu_callback); formatex(text_items[3], charsmax(text_items[]), "LOW GRAVITY -\d Increase your gravity with 50%%\w [\y%d XP\w]", SHOP_ZOMBIES[COST_GRAVITY]); menu_additem(menu, text_items[3], "4", 0, menu_callback); formatex(text_items[4], charsmax(text_items[]), "STRIP HUMANS WEAPONS [\y%d XP\w]", SHOP_ZOMBIES[COST_STRIPW]); menu_additem(menu, text_items[4], "5", 0, menu_callback); menu_setprop(menu, MPROP_EXIT, MEXIT_ALL); menu_display(id, menu, 0); return PLUGIN_CONTINUE; } public CallBackMenuZ(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_HANDLED; } new data[6], name[64], access, CallBack; menu_item_getinfo(menu, item, access, data, charsmax(data), name, charsmax(name), CallBack); switch(data[0]) { case '1': { if(g_user_xp[id] < 0 || SHOP_ZOMBIES[COST_NOFLASH] > g_user_xp[id] || g_item[0][id] == 1) return ITEM_DISABLED; } case '2': { if(g_user_xp[id] < 0 || SHOP_ZOMBIES[COST_SPEED] > g_user_xp[id] || g_item[1][id] == 1) return ITEM_DISABLED; } case '3': { if(g_user_xp[id] < 0 || SHOP_ZOMBIES[COST_HEALTH] > g_user_xp[id] || get_user_health(id) >= 500) return ITEM_DISABLED; } case '4': { if(g_user_xp[id] < 0 || SHOP_ZOMBIES[COST_GRAVITY] > g_user_xp[id] || g_item[2][id] == 1) return ITEM_DISABLED; } case '5': { if(g_user_xp[id] < 0 || SHOP_ZOMBIES[COST_STRIPW] > g_user_xp[id] || g_item[3][id] == 1) return ITEM_DISABLED; } } return ITEM_ENABLED; } public ZombiesHandler(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_HANDLED; } new data[6], name[64], access, CallBack; menu_item_getinfo(menu, item, access, data, charsmax(data), name, charsmax(name), CallBack); new iKey = str_to_num(data); switch(iKey) { case 1: { new cost_nf = SHOP_ZOMBIES[COST_NOFLASH]; g_item[0][id] = 1; g_user_xp[id] -= cost_nf; ColorChat(id, "!4%s!1 You bought!3 no flash!1 with!3 %d!1 XP.", TAG, cost_nf); } case 2: { new Float:speed = 0.2 * get_user_maxspeed(id); new cost_speed = SHOP_ZOMBIES[COST_SPEED]; set_user_maxspeed(id, get_user_maxspeed(id) + speed); g_item[1][id] = 1; g_user_xp[id] -= cost_speed; ColorChat(id, "!4%s!1 You bought!3 %0.1f!1 speed with!3 %d!1 XP.", TAG, speed, cost_speed); } case 3: { new Float:health; pev(id, pev_health, health); new Float:hp = 0.3 * health; new cost_hp = SHOP_ZOMBIES[COST_HEALTH]; new Float:max_hp = 500.0; message_begin(MSG_ONE, g_msg_ItemPickUp, _, id); write_string("cross"); write_byte(255); write_byte(0); write_byte(0); message_end(); emit_sound(id, CHAN_VOICE, "items/tr_kevlar.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM); set_pev(id, pev_health, floatclamp(health + hp, 0.0, max_hp)); g_user_xp[id] -= cost_hp; ColorChat(id, "!4%s!1 You bought!3 %0.1f!1 health with!3 %d!1 XP.", TAG, (get_user_health(id) >= max_hp) ? max_hp : hp, cost_hp); } case 4: { new Float:gravity = 0.5 * get_user_gravity(id); new cost_gv = SHOP_ZOMBIES[COST_GRAVITY]; set_user_gravity(id, get_user_gravity(id) - gravity); g_item[2][id] = 1; g_user_xp[id] -= cost_gv; ColorChat(id, "!4%s!1 You bought gravity with!3 %d!1 XP. Your gravity:!3 %0.1f!1.", TAG, cost_gv, get_user_gravity(id) * 800.0); } case 5: { new cost_shw = SHOP_ZOMBIES[COST_STRIPW]; g_item[3][id] = 1; PowerGlobalDelay(); g_user_xp[id] -= cost_shw; ColorChat(id, "!4%s!1 Now, you can strip humans weapons. Find a human, aim it, and!3 PRESS G!1.", TAG); ColorChat(id, "!4%s!1 Cooldown:!3 15 sec.", TAG); } } menu_destroy(menu); return PLUGIN_HANDLED; } public event_NewRound() { new Players[32], Num, id, i; get_players(Players, Num); for(i = 0; i < Num; i++) { id = Players[i]; if(!is_user_connected(id)) continue; reset_vars(id); } if(ignorecost) { ColorChat(0, "!1%s!4 TOATE ITEMELE DIN SHOP-UL OAMENILOR SUNT GRATIS.", TAG); } } public event_infect(victim, infector) { if(!is_user_alive(victim) || !is_user_alive(infector)) return PLUGIN_HANDLED; reset_vars(victim); if(victim == infector || !is_user_infected(infector)) return PLUGIN_HANDLED; g_user_xp[infector]++; return PLUGIN_CONTINUE; } public event_CurWeapon(id) { if(!is_user_alive(id) || g_Ak47Gold[id] == 0) return PLUGIN_HANDLED; if(get_user_weapon(id) == CSW_AK47) { set_pev(id, pev_viewmodel2, GoldenAK[0]); set_pev(id, pev_weaponmodel2, GoldenAK[1]); // unlimited clip set_pdata_int(get_pdata_cbase(id, 373), 51, 30, 4); } return PLUGIN_CONTINUE; } public event_Damage(victim) { if(!is_user_alive(victim) || g_HealthRegen[victim] == 0 || is_user_zombie(victim)) return PLUGIN_CONTINUE static Float:gametime; gametime = get_gametime(); g_RegenDelay[victim] = gametime + 1.0; return PLUGIN_CONTINUE; } public event_DeathMsg() { new id = read_data(2); if(is_user_connected(id)) reset_vars(id); } public fw_TakeDamagePre(iVictim, iInflictor, iAttacker, Float:fDamage, iDmgType) { if(iVictim == iAttacker || !is_user_player(iAttacker) || !is_user_alive(iAttacker) || g_Ak47Gold[iAttacker] == 0) return HAM_HANDLED; if(is_user_player(iAttacker) && get_user_weapon(iAttacker) == CSW_AK47 && is_user_zombie(iVictim)) { // bug fix if(iDmgType & DMG_HEGRENADE) return HAM_IGNORED; new Float:Damage = 2.0; fDamage *= Damage; SetHamParamFloat(4, fDamage); return HAM_HANDLED; } return HAM_IGNORED; } public fw_TraceAttack(ent, attacker, Float:damage, Float:dir[3], ptr, iDamageType) { if(is_user_player(attacker) && g_Ak47Gold[attacker] == 1 && is_user_alive(attacker) && get_user_weapon(attacker) == CSW_AK47) { new Float:flEnd[3]; get_tr2(ptr, TR_vecEndPos, flEnd); message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_BEAMENTPOINT); write_short(attacker | 0x1000); engfunc(EngFunc_WriteCoord, flEnd[0]); engfunc(EngFunc_WriteCoord, flEnd[1]); engfunc(EngFunc_WriteCoord, flEnd[2]); write_short(SpriteTexture); write_byte(0); // framerate write_byte(0); // framerate write_byte(1); // life write_byte(5); // width write_byte(0); // noise write_byte(255); // r, g, b write_byte(215); // r, g, b write_byte(0); // r, g, b write_byte(200); // brightness write_byte(10); // speed message_end(); } return HAM_IGNORED; } public fw_AddToPlayer(ent, id) { if(is_valid_ent(ent) && is_user_connected(id) && entity_get_int(ent, EV_INT_WEAPONKEY) == GAK_WEAPONKEY) { g_Ak47Gold[id] = 1; entity_set_int(ent, EV_INT_WEAPONKEY, 0); return HAM_HANDLED; } return HAM_IGNORED; } public fw_SetModel(entity, model[]) { if(!is_valid_ent(entity)) return FMRES_IGNORED; if(!equal(model, "models/w_ak47.mdl")) return FMRES_IGNORED; static szClassName[33]; entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName)); if(!equal(szClassName, "weaponbox")) return FMRES_IGNORED static iOwner, iStoredAkID iOwner = entity_get_edict(entity, EV_ENT_owner); iStoredAkID = fm_find_ent_by_owner(ENG_NULLENT, "weapon_ak47", entity); if(g_Ak47Gold[iOwner] == 1 && is_valid_ent(iStoredAkID)) { entity_set_int(iStoredAkID, EV_INT_WEAPONKEY, GAK_WEAPONKEY); g_Ak47Gold[iOwner] = 0; entity_set_model(entity, GoldenAK[2]); return FMRES_SUPERCEDE; } return FMRES_IGNORED; } public fw_CmdStart(id, uc_handle, seed) { if(!is_user_alive(id)) return PLUGIN_HANDLED if((get_uc(uc_handle, UC_Buttons) & IN_ATTACK2) && !(pev(id, pev_oldbuttons) & IN_ATTACK2)) { if(get_user_weapon(id) == CSW_AK47 && g_Ak47Gold[id] == 1) { switch(g_Ak47GoldenZoom[id]) { case 1: { g_Ak47GoldenZoom[id] = 0; cs_set_user_zoom(id, CS_RESET_ZOOM, 0); } case 0: { g_Ak47GoldenZoom[id] = 1 cs_set_user_zoom(id, CS_SET_AUGSG552_ZOOM, 0); emit_sound(id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100); } } } return PLUGIN_CONTINUE; } return PLUGIN_HANDLED; } public fw_PlayerPreThink(id) { if(!is_user_alive(id) || g_HealthRegen[id] == 0 || is_user_zombie(id)) return FMRES_IGNORED; static Float:gametime gametime = get_gametime(); if(get_user_health(id) < 200 && g_RegenDelay[id] < gametime) { set_user_health(id, get_user_health(id) + 1); g_RegenDelay[id] = gametime + 1; } return FMRES_IGNORED; } public msg_ScreenFade(msgid, dest, id) { if(g_item[0][id] == 1 && is_user_zombie(id) && is_user_connected(id)) { static data[4]; data[0] = get_msg_arg_int(4); data[1] = get_msg_arg_int(5); data[2] = get_msg_arg_int(6); data[3] = get_msg_arg_int(7); if(data[0] == 255 && data[1] == 255 && data[2] == 255 && data[3] > 199) return PLUGIN_HANDLED; } return PLUGIN_CONTINUE; } public cmd_use_power(id) { if(is_user_alive(id) && is_user_zombie(id) && g_item[3][id] == 1) { set_dhudmessage(20, 255, 0, -1.0, 0.78, 0, _, 1.0); if(g_PowerGlobalDelay > 0) { show_dhudmessage(id, "Strip ability not ready.^n(%d second%s remaining)", g_PowerGlobalDelay, g_PowerGlobalDelay == 1 ? "" : "s"); } else if(g_PowerDelay[id] > 0) { show_dhudmessage(id, "Strip ability not ready.^n(%d second%s remaining)", g_PowerDelay[id], g_PowerDelay[id] == 1 ? "" : "s"); } else { g_PowerDelay[id] = 15; PowerDelay(id); new target, body; static Float:StartPos[3], Float:EndPos[3]; pev(id, pev_origin, StartPos); fm_get_aim_origin(id, EndPos); StartPos[2] += 16.0; EndPos[2] += 16.0; get_user_aiming(id, target, body, 90000); if(is_user_alive(target) && get_user_team(id) != get_user_team(target)) { message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_EXPLOSION); engfunc(EngFunc_WriteCoord, EndPos[0]); engfunc(EngFunc_WriteCoord, EndPos[1]); engfunc(EngFunc_WriteCoord, EndPos[2]); write_short(PowerSprite); write_byte(10); write_byte(30); write_byte(4); message_end(); emit_sound(id, CHAN_WEAPON, PowerSound, VOL_NORM, ATTN_NORM, 0, PITCH_NORM); emit_sound(target, CHAN_AUTO, TargetAimingSound[random_num(0, charsmax(TargetAimingSound))], VOL_NORM, ATTN_NORM, 0, PITCH_NORM); ShakeScreen(target, 3.0); CreateTeBeamCylinder(target); CreateThunder(target); new szWeapons[32], iNum; get_user_weapons(target, szWeapons, iNum); for(new i = 0; i < iNum; i++) { if(PRIMARY_WEAPONS_BIT_SUM|SECONDARY_WEAPONS_BIT_SUM & (1<<szWeapons[i])) { static szWeaponName[32]; get_weaponname(szWeapons[i], szWeaponName, charsmax(szWeaponName)); bacon_strip_weapon(target, szWeaponName); } } ColorChat(target, "!4%s!1 YOU LOST YOUR WEAPONS", TAG); if(!is_user_connected(target)) { ColorChat(id, "!4%s!1 You didn't aim corectly.", TAG); } else { new name[32]; get_user_name(target, name, charsmax(name)); ColorChat(id, "!4%s!1 TARGET:!3 %s!1. He loses his weapons.", TAG, name); } ShakeScreen(id, 2.0); } message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_BEAMENTS); write_short(id); write_short(target); write_short(Lightning); write_byte(0); write_byte(15); write_byte(20); write_byte(80); write_byte(10); write_byte(47); write_byte(217); write_byte(90); write_byte(255); write_byte(0); message_end(); } } return PLUGIN_CONTINUE; } public CreateTeBeamCylinder(id) { new fOrigin[3]; get_user_origin(id, fOrigin, 0); message_begin(MSG_ALL, SVC_TEMPENTITY); write_byte(21); write_coord(fOrigin[0]); write_coord(fOrigin[1]); write_coord(fOrigin[2] + 10); write_coord(fOrigin[0]); write_coord(fOrigin[1]); write_coord(fOrigin[2] + 80); write_short(ShockWave); write_byte(0); write_byte(0); write_byte(4); write_byte(60); write_byte(0); write_byte(100); write_byte(200); write_byte(50); write_byte(255); write_byte(0); message_end(); } public CreateThunder(id) { new fOrigin[3], iStartPos[3]; get_user_origin(id, fOrigin); fOrigin[2] -= 26; iStartPos[0] = fOrigin[0] + 150; iStartPos[1] = fOrigin[1] + 150; iStartPos[2] = fOrigin[2] + 800; message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_BEAMPOINTS); write_coord(iStartPos[0]); write_coord(iStartPos[1]); write_coord(iStartPos[2]); write_coord(fOrigin[0]); write_coord(fOrigin[1]); write_coord(fOrigin[2]); write_short(Lightning); write_byte(1); write_byte(5); write_byte(7); write_byte(20); write_byte(30); write_byte(255); write_byte(251); write_byte(176); write_byte(200); write_byte(200); message_end(); message_begin(MSG_PVS, SVC_TEMPENTITY, fOrigin); write_byte(TE_SPARKS); write_coord(fOrigin[0]); write_coord(fOrigin[1]); write_coord(fOrigin[2]); message_end(); } public ShakeScreen(id, const Float:iSeconds) { static g_msg_SS = 0; if(!g_msg_SS) g_msg_SS = get_user_msgid("ScreenShake"); message_begin(MSG_ONE, g_msg_SS, _, id); write_short(floatround(4096.0 * iSeconds, floatround_round)); write_short(floatround(4096.0 * iSeconds, floatround_round)); write_short(1<<13); message_end(); } stock fm_get_aim_origin(id, Float:fOrigin[3]) { new Float:start[3], Float:view_ofs[3]; pev(id, pev_origin, start); pev(id, pev_view_ofs, view_ofs); xs_vec_add(start, view_ofs, start); new Float:dest[3]; pev(id, pev_v_angle, dest); engfunc(EngFunc_MakeVectors, dest); global_get(glb_v_forward, dest); xs_vec_mul_scalar(dest, 9999.0, dest); xs_vec_add(start, dest, dest); engfunc(EngFunc_TraceLine, start, dest, 0, id, 0); get_tr2(0, TR_vecEndPos, fOrigin); return PLUGIN_HANDLED; } public reset_vars(id) { if(g_item[3][id] == 1) if(task_exists(TASK_DELAY + id)) remove_task(TASK_DELAY + id); new i; for(i = 0; i < 4; i++) g_item[i][id] = 0; if(g_Ak47Gold[id]) { g_Ak47Gold[id] = 0; g_Ak47GoldenZoom[id] = 0; cs_set_user_zoom(id, CS_RESET_ZOOM, 0); } g_HealthRegen[id] = 0; g_RegenDelay[id] = 0.0; } public PowerGlobalDelay() { new Players[32], Num, id; get_players(Players, Num); for(new i = 0; i < Num; i++) { id = Players[i]; if(is_user_zombie(id)) { if(g_PowerGlobalDelay > 1) { g_PowerGlobalDelay--; set_task(1.0, "PowerGlobalDelay") } else if(g_PowerGlobalDelay <= 1) { g_PowerGlobalDelay = 0; if(is_user_alive(id)) { set_dhudmessage(20, 255, 0, -1.0, 0.78, 0, _, 2.0); show_dhudmessage(id, "STRIP ABILITY is ready.^nNow, find a HUMAN and strip his weapons."); } } } } } public PowerDelay(id) { if(id >= TASK_DELAY) id -= TASK_DELAY; if(is_user_alive(id) && is_user_zombie(id)) { if(g_PowerDelay[id] > 1) { g_PowerDelay[id]--; set_task(1.0, "PowerDelay", id+TASK_DELAY); } else if(g_PowerDelay[id] <= 1) { g_PowerDelay[id] = 0; set_dhudmessage(20, 255, 0, -1.0, 0.78, 0, _, 2.0); show_dhudmessage(id, "STRIP ABILITY is ready.^nNow, find a HUMAN and strip his weapons."); } } } stock ColorChat(id, String[], any:...) { static szMesage[192]; vformat(szMesage, charsmax(szMesage), String, 3); replace_all(szMesage, charsmax(szMesage), "!1", "^1"); replace_all(szMesage, charsmax(szMesage), "!3", "^3"); replace_all(szMesage, charsmax(szMesage), "!4", "^4"); static g_msg_SayText = 0; if(!g_msg_SayText) g_msg_SayText = get_user_msgid("SayText"); new Players[32], iNum = 1, i; if(id) Players[0] = id; else get_players(Players, iNum, "ch"); for(--iNum; iNum >= 0; iNum--) { i = Players[iNum]; message_begin(MSG_ONE_UNRELIABLE, g_msg_SayText, _, i); write_byte(i); write_string(szMesage); message_end(); } } stock fm_find_ent_by_owner(id, const szClassName[], iOwner, jghgtype = 0) { new str_type[11] = "classname", iEnt = id; switch(jghgtype) { case 1: str_type = "target"; case 2: str_type = "targetname"; } while((iEnt = engfunc(EngFunc_FindEntityByString, iEnt, str_type, szClassName)) && pev(iEnt, pev_owner) != iOwner) { } return iEnt; } stock bacon_strip_weapon(index, weapon[]) { if(!equal(weapon, "weapon_", 7)) return PLUGIN_CONTINUE; static weaponid; weaponid = get_weaponid(weapon) if(!weaponid) return PLUGIN_CONTINUE; static weaponent; weaponent = fm_find_ent_by_owner(-1, weapon, index); if(!weaponent) return PLUGIN_CONTINUE; if(get_user_weapon(index) == weaponid) ExecuteHamB(Ham_Weapon_RetireWeapon, weaponent); if(!ExecuteHamB(Ham_RemovePlayerItem, index, weaponent)) return PLUGIN_CONTINUE; ExecuteHamB(Ham_Item_Kill, weaponent); set_pev(index, pev_weapons, pev(index, pev_weapons) & ~(1<<weaponid)); return PLUGIN_HANDLED; } // from biohazard by cheap_suit stock bool:allow_infection() { static count[2]; count[0] = 0; count[1] = 0; static index; for(index = 1; index <= max_players; index++) { if(is_user_connected(index) && is_user_zombie(index)) count[0]++; else if(is_user_alive(index)) count[1]++; } return (count[0] < 31 && count[1] > 1) ? true : false; } Attachment 200272 Attached Files Get Plugin or Get Source (item_invisibilidad.sma - 1.6 KB) Przeczytaj cały wpis
  4. Hi! I have a biohazard server, I'm using this mod: HTML Code: https://forums.alliedmods.net/showthread.php?t=68523The problem is that when a user gets infected they can respawn as humans if they type retry in the console or they rejoin the server. Is there a way to block this, or use amx_infect on those who rejoined the server if they were already infected during the round? Some trolls are just killing the mod by rejoining time and time again. Thanks! Przeczytaj cały wpis
  5. MYGO.pl

    RSSHide Cvars

    Hello iam loking for plugin that hide cvars of server when owner changes cvar it will automaticly hidden in chat like ADMIN QuickDroLLL has set cvar: amx_roundtime 10 it will be only shown for owners in chat Przeczytaj cały wpis
  6. SourceMod Re-Banner GitHub | Download Fights ban evasion through client-side "fingerprinting". Relies on security through obscurity. Sometimes, a ban isn't enough to stop them from trying to play on your servers. This solution tries to combat such players by leaving tiny unique files in download folders to recognize players. Supports Basebans and SourceBans++. I release this in hope to help the community fight ban evasion, as I personally know how annoying it can be. Nothing can be ideal, and there are loopholes that can easily make players immune to this. Designed to run autonomously without admin intervention. Dependencies:SourceMod 1.11+ File Network by Batfoxkid (my fork for now, as the changes required for this to work are not upstream yet) (Optional) SourceBans++ What does it do? The plugin forces all clients to download a unique file to their download folder, heavily relying on security through obscurity (file name and path disguised to look as similar to genuine server content as possible). Each file is unique for each client, containing a random string of numbers. This "fingerprint" is then stored in a database and gets associated with the player's IP address and SteamID. Every time a player connects, the system tries to recognize them either by requesting their local fingerprint file and reading it's value, or by SteamID, or by IP address. If at least one of the three matches with a known fingerprint, the client is recognized and any missing information (for example a new IP address or new alt account SteamID) is associated with the same fingerprint. If the player does not have the fingerprint file locally(different PC, or re-install), the system will re-send the fingerprint file (as long as they are recognized and an association is possible) to them. What happens if someone gets banned? When a player gets banned, their unique fingerprint gets marked as banned in the internal database. Any subsequent attempts to join the server from another IP address/account/PC (any combination of the 3) will lead to a re-ban if any of the conditions are met: Client SteamID is associated with a banned fingerprint (if the account sent the same local fingerprint value as another account at any point in time). Client IP address is associated with a banned fingerprint. Clientside fingerprint is recognized. Checks are ran in the same order as shown above. If player SteamID/IP address is matched to a known fingerprint, current client fingerprint value is discarded and not taken into account. In an event that the alt account player is missing their fingerprint client-side (and they are recognized), the fingerprint file is re-sent before they get re-banned. Tampering prevention? If the plugin is unable to identify the client via SteamID and IP address, but the client has a fingerprint locally which we can use for identification, this will make sure that the fingerprint is not tampered with. Well, "tampered with" is a rather big word, it checks whether the file only contains numbers (the fingerprint is numeric only) (and) if the fingerprint is known by the server. If the file has anything else (say, SQL commands, etc), or it's not recognized by the plugin, Anti-tamper will raise a red flag and, if configured, will kick the client. The fingerprint won't ever reach the database to prevent SQL injection. Setup: Install the latest version of File Network by Batfoxkid Install this plugin, either by downloading it from GitHub Releases HERE or by compiling it manually. Add the following database record to addons/sourcemod/configs/databases.cfg: Code: "rebanner" { "driver" "sqlite" "host" "localhost" "database" "rebanner" "user" "root" "pass" "" } Load the plugin It's recommended to have rb_log_level set to 3 for some time to ensure that the plugin is working properly By default, Re-Banner will scan your existing downloads table, pick a random file from it and use that as the fingerprint path and name (appending "1" to the filename). If the downloads table is empty or small enough, Re-Banner will fall-back to the default path, though it's recommended to change it. If you wish to use a different path or use custom kick/ban reasons, you may edit them in addons/sourcemod/configs/rebanner.log: Code: "Settings" { "fingerprint path" "materials/models/texture.vmt" "ban reason" "Alternative account detected. Re-applying ban" "tampering kick reason" "File tampering detected! Please download server files from scratch" }Make sure that the path actually exists on the server (you cannot point to non-existent directories). Modify the next two keys with your desired ban/kick reasons. ConVars: rb_log_level (0|1|2|3) - Logging level. 0 - off, 1 - log alt bans, 2 - log new associations, 3 - debug (SPAM). rb_check_ip (0|1) - Whether Rebanner should take IP addresses into account. 0 - disable, 1 - enable (RECOMMENDED) rb_antitamper_mode (0|1|2) - Antitamper subsystem mode. 0 - Disable, 1 - check client fingerprints for tampering, 2 - also check whether the fingerprint is known by the server (RECOMMENDED) rb_antitamper_action (0|1) - Antitamper subsystem action when it detects tampering. 0 - do nothing, 1 - kick the client rb_reban_type (0|1) - 0 - Re-ban detected alts for the same duration as original ban, 1 - re-ban for remaining ban duration Commands: Code: rb_unbansteam <SteamID2> - remove the ban flag from a fingerprint by SteamID match Code: rb_unbanip <IP> - remove the ban flag from a fingerprint by IP address match Known issues: Setting cl_allowupload to 0 renders this system useless, though the default value is 1. SourceBans++ bans applied via Web UI are not taken into account - a SourceBans design limitation that I'm unable to work around yet. Banned alt. accounts will not be un-banned if the master account is un-banned earlier than expected. ...? If you happen to stumble upon a bug/error message, please make sure to post it here or in GitHub Issues. Much appreciated! To-Do:Natives and forwards for easy integration Command to completely remove a given player from the system to re-scan them Whitelisting Unban banned alt. accounts when master account is unbanned early ... Credits:Batfoxkid, Artvin and the Zombie Riot team for help with File Network Samm-Cheese for being my test subject and providing fresh ideas Naydef for QA, IP address check suggestion, de-bugging Source file queues and generally being a legend The AlliedMods Discord members for help with various code-related questions Attached Files ReBanner 1.0.zip (28.9 KB) Wyświetl pełny artykuł
  7. [ANY] SLAYER IP Detector (Anti-IP Promotion) Description: Hi there, I create this plugin to detect the IP Address if anyone tries to Promote the IP Address of any other Server in the Chat. And also Log the Player Name, Player Steam ID, and IP Address of the Server which the player tries to promote. The plugin can detect many possible ways to give IP addresses. I hope you will like it. Features:Anti-IP Promotion in Chat Detect the IP Address in the Chat Plugin Can Detect many possible ways to give an IP address to other players. Player can still give the IP Address of the Current Server in which he playing. Plugin will ignore the IP Address/IP Address with Specific Port if it was Founded in the IP Whitelist. This feature is useful to add the IPs of other Servers of your Community OR the Server of your Partner/Friend in the Whitelist so players can share the IP of those Servers. (IP Whitelist can be configured from CFG file) Admin with the specific flag can give the IP Address of any server (Can be configured from CFG File) Plugin will log the Player Name, Player Steam ID, and IP Address of the Server which the player tries to promote. (Logging can be disabled from the CFG file) The IP Address will be removed from the Chat that the player tries to promote so no one can see that IP Address and copy it. Some Tested Possible ways to give an IP Address that can be detected by the Plugin: PHP Code: // Note: Plugin can still detect any IP Address if there was any other symbol or letter instead of '.' 192.168.10.2 192.168.10.2:27015 192/168/10/2 192/168/10/2/27015 192,168,10.2 192[168)10/2 192a168b10c2 192 168 10 2 Hello Guys! Please Join my Server: 192.168.10.2 SLAYER bro come to this Server: 192.168.10.2:27015 ip192.168,10/2[27015ip And Many other ways the plugin can detect the IP Address in the Chat :) Installation: 1. Download and Upload files to your server. 2. Change the Map or load the plugin. Requirements: Sourcemod 1.8+ Command: sm_ip - A public command which gives the IP Address+Port of the Current Server. ConVars: PHP Code: // This file was auto-generated by SourceMod (v1.10.0.6460) // ConVars for plugin "SLAYER_IPDetector.smx" // Enabled/Disabled SLAYER IP Detector Plugin (1 = Enabled, 0 = Disabled) // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" ip_detector_enabled "1" // Admins with these admin flags can give any IP address // - // Default: "z" ip_detector_flag "z" // IPs that the plugin will Ignore (Separate IPs with ';') // - // Default: "192.168.10.2;192.168.10.3" ip_detector_whitelist "192.168.10.2:27015;192.168.10.3" Changelog: April 15, 2023 (v1.0):Initial Release Donate: If you like my work, you can donate to me via Steam Trade Offer Attached Files [ANY] SLAYER_IPDetector v1.0.zip (11.5 KB) Wyświetl pełny artykuł
  8. So, I'm using this awesome parachute plugin by Krotal. I'm wondering if it's possible for users with the ADMIN_LEVEL_A level to define the parachute_fallspeed for themselves (in a range from 50 to 150). The plugin already does that, but it's the same fallspeed for everyone. I want the user to choose the fallspeed of their liking. Thanks! Attachment 200252 Attached Files Get Plugin or Get Source (amx_parachute.sma - 13.4 KB) Przeczytaj cały wpis
  9. Hi, can someone make me a plugin that makes zombie eyes glow but works with sprite?, I show you a photo Attached Thumbnails Przeczytaj cały wpis
  10. Hello Can someone make a plugin? I get 15% more health every time I'm killed and resurrected More death, more health Only for tr Przeczytaj cały wpis
  11. Old Sandman Bonk! Description: This plugin brings back Bonk! on Sandman (so before Jungle Inferno Update) on TF2. I made a first version in 2017 here and decided to release it after a rework, it's slightly better from the first release. Cvars:tf2_bonk_version - Version of the plugin. Installation:bonk.smx goes into addons/sourcemod/plugins/ Downloads:You can also find it on my GitHub:[TF2] Old Sandman Bonk!Plans: None Changelogs: Quote: 2023-04-14 - (v1.1) * Added a version cvar. * Reformat file * Optimized the algorithm and made it more maintainable. 2022-05-12 - (v1.0) * Initial release on Github. Attached Files Get Plugin or Get Source (bonk.sp - 4.1 KB) bonk.smx (6.3 KB) Wyświetl pełny artykuł
  12. Greetings! Please, I need your help guys, I saw servers with plugins where if you heal a teammate, you are rewarded with a new medkit. I've been looking for the plugin or maybe just a cvar, idk, that can do that but i wasn't able to find it, I found Bonus Healing: https://forums.alliedmods.net/showthread.php?p=2772492 But, it's not the same that I saw, wich gives extra medkit for healing teammate. Screenshot: https://ibb.co/nBSFvV2 Przeczytaj cały wpis
  13. Is there a way so only people with ADMIN_LEVEL_C can buy certain weapons, mainly shield, for example? I want to restrict it so only a few people can buy and use it. Thanks! Przeczytaj cały wpis
  14. Introuduction: I know many people use Vscript in nut to modify the default weapon which is spawn by map. I just make it in plugin. Now you can use this plugin to modify which weapon should spawn on map, which will not. Feature: 1. If you want to ban ak47 and smg from map spawn, just set the first cvar in 0 and sum the ak47 count and smg count ( 1024+4 = 1028 ) and set it in the second cvar. 2. IF you want only awp in the map, just set the first cvar in 1 and the second cvar into the count of awp. 3. This plugin only prevent the entity which spawn by map. You could use the ban weapon by "give" command or any other way you want. Cvar: Code: "l4d2_ban_weapon_mode" -description: switch the mode of weapon filter. 0 = blacklist, weapon in the follow cvar can't be spawn. 1 = whitelist, weapon only in cvar can be spawn. -default: 1 "l4d2_ban_weapon" -select the weapon you want to manager. add the count of the weapon you want. -default: 32768 [each weapon count]: PISTOL 1 PISTOL_MAGNUM 2 SMG 4 SMG_SLIENCED 8 SMG_MP5 16 SHOTGUN_PUMP 32 SHOTGUN_CHROME 64 SHOTGUN_AUTO 128 SHOTGUN_SPASS 256 RIFLE_M16 512 RIFLE_AK47 1024 RIFLE_DESERT 2048 RIFLE_SG552 4096 SNIPER_HUNTING 8192 SNIPER_MILITARY 16384 SNIPER_AWP 32768 SNIPER_SCOUT 65536 M60 131072 GRENADE_LAUNCHER 262144Known Issue: If the plugin start work, it makes the map spawn weapon in random, and you could see the tier2 weapon in the first chapter. I have no idea to solve that because it seems diffcult to get the KeyValue "weapon_selection" of the entity "weapon_spawn". So i simply use random. Attached Files Get Plugin or Get Source (map_weapon_manager.sp - 10.8 KB) Wyświetl pełny artykuł
  15. Hello QuickDroLLL here, so basicly iam loking for plugin that make he throw directly without delay or animaton it will throw directly Thank You <3 Przeczytaj cały wpis
  16. Provides methods of moving players to a different team. How is this plugin different than the existing ones? It's intended to work in any source game by extending the main plugin. You can use the forwards and natives to add specific teams for your game (see playermove_csgo for example). You can make a pull request to add support for a game, or you can start an issue by providing team names, team indexes and team identifiers. You can download the plugin and read more on github: https://github.com/Ilusion9/playermove-sm/ Wyświetl pełny artykuł
  17. Hello, Is there a plugin that at the beginning of the round you have 25 HP? or with cvar to spawn with custom HP I was thinking of trying a plugin that 1 Shot = 1 Kill but they usually have a lot of problems, I think it's better to directly modify the HP (I plan to use it for a kind of "Realistic Mode", in which a shot from a Glock is something serious.) Przeczytaj cały wpis
  18. Is there any good csgo plugin that i could use for my retakes server. I just need a menu with guns for vips at the start of every round, and also a prefix for every vip. Does anyone know any existing plugins which i could i use? Przeczytaj cały wpis
  19. Description: Allows players to create props in-game based on "credits", which are accrued through gameplay and are not saved on disconnect / map changes. ConVars:zprop_credits_max - Max credits that can be attained (0: No limit). zprop_credits_connect - The number of free credits a player received when they join the game. zprop_credits_spawn - The number of free credits given on spawn. zprop_credits_infect - The number of credits given for infecting a human as zombie. zprop_credits_kill - The number of credits given for killing a zombie as human. zprop_credits_roundstart - The number of free credits given on start of the round. GitHub repo. Attached Files zprop_csgo_fixed.smx (9.9 KB) Get Plugin or Get Source (zprop_csgo_fixed.sp - 8.0 KB) zprop-master.zip (3.34 MB) Wyświetl pełny artykuł
  20. MYGO.pl

    RSSStatus2

    Good morning, Following a new wave of cheaters copying a player's name, I tried to create a simple solution. The sourcemod admin menu quickly has its limits, if 2 players have the same name. This can be managed with HLSW but since on day of defeat source there are flaws using the RCON, I prefer to disable the RCON. I simply created a plugin that displays the userid, the name of the players, the number of kills and deaths they have, and what team they are in, so you can differentiate between the cheater and you can ban using sm_ban #userid 0. No configuration, just put the plugin on the server, connect to your server and type the command: "status2" in your dod console. Attached Thumbnails Attached Files Get Plugin or Get Source (status2.sp - 5.3 KB) Wyświetl pełny artykuł
  21. Harry Potter Mod - v0.0.1, last update at : 07/04/2023 Want to feel like a wizard? This is your chance! Quick Video About the Mod+Attack2 Makes you fly +Attack Makes you stop fly Q Makes you cast Kadabra Spell and insta kill someone W Makes you cast Obscuro and make your enemy blind E Gives you a Shield Force that is immune to all Spells R Gives you an Invisibility Cloak Everything is configurable, delays, durations, etc. Just open harrypotter.ini for more information DeathMatch, 1 vs All, the fun doesn't stop! RequirementsInfinite Round Map Spawns Editor not really required but highly recommended To Do List Make an internal & independent Spawn Point system Add 2 new Spells on F & G Keys Models made by frk_14 Ambience sound made by me on Fl Studio, not sure if you like it but yeah, tried my best :up: Attached Files resources.zip (6.15 MB) Get Plugin or Get Source (harrypotter.sma - 20.3 KB) Przeczytaj cały wpis
  22. Hello friends, I have a question for you about the basebuilder mod. I have seen on some servers and in some YouTube videos that there are extra items on some basebuilder servers. However, when I tried to add these items to my server, most of them didn't work. When I try to compile the script, it says that I am missing some include files. I then find these files online, add them, and then there are no issues with compiling. After that, I add the script to the plugins and name everything correctly. However, when I type amx_plugins, it usually says "bad load". Why is this happening? Przeczytaj cały wpis
  23. Hello, is there a semiclip plugin/module for enabling it only at round start for everyone? Like 5 secs when new round starts? reSemiclip doesn't quite work, tried changing it configs with that time option, but it just ignores it. Przeczytaj cały wpis
  24. Hi, I want to modify this plugin. https://forums.alliedmods.net/showthread.php?t=325315 I want a Main menu that will include this plugin like my first option(first submenu) and a second submenu with cso weapons! Also if is possible for any new username to start with 300 points. (Money/points/ammopack is included in he's plugin.) This plugin have to run on a BaseBuilder server, same like Oxicrom shop plugin. Thank you! Przeczytaj cały wpis
  25. Hey, I would love if someone can create a plugin that'll store maps played in a log file by date. An admin can then use a command /lastmaps to get last maps played shown in chat. A cvar to set how many maps to show would also be nice. Thanks! Przeczytaj cały wpis
×
×
  • Dodaj nową pozycję...