Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Plugin generated by AMXX-Studio */
- #include <amxmodx>
- #include <amxmisc>
- #include <cstrike>
- #include <hamsandwich>
- #include <fun>
- #define PLUGIN "OOE Shop"
- #define VERSION "1.1.2"
- #define AUTHOR "Kia"
- #define get_player_cash(%1) get_pdata_int(%1, 115)
- // ===============================================================================
- // Variables
- // ===============================================================================
- /* Booleans */
- new bool:g_bHasGrenade[33]
- new bool:g_bHasFlashbang[33]
- new bool:g_bHasFrostNade[33]
- new bool:g_bHasHealth[33]
- new bool:g_bHasRespawn[33]
- new bool:g_bHasGravity[33] // Vec imamo registrovan bool za gravity tako da nema potrebe da pravimo novi. Znaci samo cemo mu malo izmeniti ulogu
- new bool:g_bHasNoFlash[33]
- new bool:g_bHasNoFrost[33]
- /* Misc */
- new g_msgScreenFade
- // ===============================================================================
- // plugin_init
- // ===============================================================================
- public plugin_init()
- {
- register_plugin(PLUGIN, VERSION, AUTHOR)
- RegisterHam(Ham_Spawn, "player", "SpawnedEvent", 1) // Registrujemo spawn event da bismo mogli da mu damo gravity ako nije umro u prosloj rundi
- /* Events */
- register_event("ScreenFade", "Event_Flashed", "be", "4=255", "5=255", "6=255", "7>199")
- register_event("DeathMsg", "DeathMsg", "a") // Registrujemo death event da bismo mogli da mu sklonimo gravity kad umre..
- /* Logevents */
- register_logevent("LogEvent_RoundEnd", 2, "1=Round_End")
- /* Commands */
- register_clcmd("say /shop", "cmd_Shop")
- register_clcmd("say_team /shop", "cmd_Shop")
- register_clcmd("say /store", "cmd_Shop")
- register_clcmd("say_team /store", "cmd_Shop")
- register_clcmd("say /prodavnica", "cmd_Shop")
- register_clcmd("say_team /prodavnica", "cmd_Shop")
- register_clcmd("say /kupi", "cmd_Shop")
- register_clcmd("say_team /kupi", "cmd_Shop")
- register_clcmd("shop", "cmd_Shop")
- /* Misc */
- g_msgScreenFade = get_user_msgid("ScreenFade")
- }
- // ===============================================================================
- // Event_Flashed - Called when a player gets flashed
- // ===============================================================================
- public Event_Flashed(id)
- {
- if(g_bHasNoFlash[id])
- {
- message_begin(MSG_ONE, g_msgScreenFade, {0,0,0},id)
- write_short(1)
- write_short(1)
- write_short(1)
- write_byte(0)
- write_byte(0)
- write_byte(0)
- write_byte(255)
- message_end()
- }
- }
- // ===============================================================================
- // LogEvent_RoundEnd - Called when a Round ends
- // ===============================================================================
- public LogEvent_RoundEnd()
- {
- arrayset(g_bHasGrenade, 0, sizeof(g_bHasNoFlash))
- arrayset(g_bHasFlashbang, 0, sizeof(g_bHasFlashbang))
- arrayset(g_bHasFrostNade, 0, sizeof(g_bHasFrostNade))
- arrayset(g_bHasHealth, 0, sizeof(g_bHasHealth))
- arrayset(g_bHasRespawn, 0, sizeof(g_bHasRespawn))
- arrayset(g_bHasNoFlash, 0, sizeof(g_bHasNoFlash))
- arrayset(g_bHasNoFrost, 0, sizeof(g_bHasNoFrost))
- }
- public SpawnedEvent(id) // Na spawnu, ako igrac ima gravity, tj. ako je bool hasgravity == true, stavljamo mu gravitaciju. Posto se gravity inace gubi na pocetku runde...
- if(g_bHasGravity[id])
- func_giveitem_gravity(id)
- public DeathMsg(id) // Kada igrac umre, prebacujemo bool na false, da igrac nebi vise dobijao gravity na spawnu...
- if(g_bHasGravity[id])
- g_bHasGravity[id] = false
- // ===============================================================================
- // cmd_Shop - Called when someone is typing (say(_team)) (/)shop
- // ===============================================================================
- public cmd_Shop(id)
- {
- switch(cs_get_user_team(id))
- {
- case CS_TEAM_T : func_OpenTShop(id)
- case CS_TEAM_CT : func_OpenCTShop(id)
- }
- }
- // ===============================================================================
- // func_OpenTShop - Opened when a Terrorist opens the Shop
- // ===============================================================================
- public func_OpenTShop(id)
- {
- new szMenuTitle[64]
- formatex(szMenuTitle, charsmax(szMenuTitle), "[TriP KNIFE] - TT Shop")
- new menu = menu_create(szMenuTitle, "func_OpenTShop_handler")
- menu_additem(menu, "HE Grenade [14000$]", "0", g_bHasGrenade[id] || !is_user_alive(id) ? 1<<31 : 0)
- menu_additem(menu, "FlashBang [4000$]", "1", g_bHasFlashbang[id] || !is_user_alive(id) ? 1<<31 : 0)
- menu_additem(menu, "SmokeNade [2000$]", "2", g_bHasFrostNade[id] || !is_user_alive(id) ? 1<<31 : 0)
- menu_additem(menu, "+40 HP [15000$]", "3", g_bHasHealth[id] || !is_user_alive(id) ? 1<<31 : 0)
- menu_additem(menu, "Respawn [10000$]", "4", is_user_alive(id) || g_bHasRespawn[id] ? 1<<31 : 0)
- menu_additem(menu, "Gravitacija [5000$]", "5", g_bHasGravity[id] || !is_user_alive(id) ? 1<<31 :0)
- menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
- menu_display( id, menu, 0 )
- return PLUGIN_HANDLED
- }
- public func_OpenTShop_handler(id, menu, item)
- {
- if( item == MENU_EXIT )
- {
- return PLUGIN_HANDLED;
- }
- new money = cs_get_user_money(id)
- switch(item)
- {
- case 0:
- {
- if(money >= 14000)
- {
- Reduce(id, 14000)
- func_giveitem_he(id)
- }
- else
- client_print(id, print_chat, "Nemas dovoljno para da kupis HE Grenade treba ti 14000$.")
- }
- case 1:
- {
- if(money >= 4000)
- {
- Reduce(id, 4000)
- func_giveitem_flash(id)
- }
- else
- client_print(id, print_chat, "Nemas dovoljno para da kupis FlashBang treba ti 4000$.")
- }
- case 2:
- {
- if(money >= 2000)
- {
- Reduce(id, 2000)
- func_giveitem_frost(id)
- }
- else
- client_print(id, print_chat, "Nemas dovoljno para da kupis SmokeNade treba ti 2000$.")
- }
- case 3:
- {
- if(money >= 15000)
- {
- Reduce(id, 15000)
- func_giveitem_health(id)
- }
- else
- client_print(id, print_chat, "Nemas dovoljno para da kupis +40 HP treba ti 15000$.")
- }
- case 4:
- {
- if(money >= 10000)
- {
- Reduce(id, 10000)
- func_giveitem_respawn(id)
- }
- else
- client_print(id, print_chat, "Nemas dovoljno para da kupis Resapwn treba ti 10000$.")
- }
- case 5:
- {
- if(money >= 5000)
- {
- Reduce(id, 5000)
- func_giveitem_gravity(id)
- g_bHasGravity[id] = true // Postavljanje boola na true sam prebacio ovde umesto dole u funkciji, da bismo mogli da pozivamo func_giveitem_gravity na spawnu i da ne postavljamo ponovo bool na true posto vec znamo da je postavljen cim pozivamo funkciju... U principu skroz nebitna stvar, ali eto malo stedimo memoriju servera
- }
- else
- client_print(id, print_chat, "Nemas dovoljno para da kupis Gravitaciju treba ti 5000$.")
- }
- }
- return PLUGIN_CONTINUE
- }
- // ===============================================================================
- // func_OpenTShop - Opened when a CT opens the Shop
- // ===============================================================================
- public func_OpenCTShop(id)
- {
- new szMenuTitle[64]
- formatex(szMenuTitle, charsmax(szMenuTitle), "[TriP KNIFE] - CT Shop")
- new menu = menu_create(szMenuTitle, "func_OpenCTShop_handler")
- menu_additem(menu, "HE Grenade [14000$]", "0", g_bHasGrenade[id] || !is_user_alive(id) ? 1<<31 : 0)
- menu_additem(menu, "+40 HP [15000$]", "1", g_bHasHealth[id] || !is_user_alive(id) ? 1<<31 : 0)
- menu_additem(menu, "Respawn [10000$]", "2", is_user_alive(id) || g_bHasRespawn[id] ? 1<<31 : 0)
- menu_additem(menu, "Anti-Flash [4000$]", "3", g_bHasNoFlash[id] || !is_user_alive(id) ? 1<<31 : 0)
- menu_additem(menu, "Anti-Smoke [2000$]", "4", g_bHasNoFrost[id] || !is_user_alive(id) ? 1<<31 : 0)
- menu_additem(menu, "Gravitacija [5000$]", "5", g_bHasGravity[id] || !is_user_alive(id) ? 1<<31 : 0)
- menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
- menu_display( id, menu, 0 )
- return PLUGIN_HANDLED
- }
- public func_OpenCTShop_handler(id, menu, item)
- {
- if( item == MENU_EXIT )
- {
- return PLUGIN_HANDLED;
- }
- new money = cs_get_user_money(id)
- switch(item)
- {
- case 0:
- {
- if(money >= 14000)
- {
- Reduce(id, 14000)
- func_giveitem_he(id)
- }
- else
- client_print(id, print_chat, "Nemas dovoljno para da kupis HE Grenade treba ti 14000$.")
- }
- case 1:
- {
- if(money >= 15000)
- {
- Reduce(id, 15000)
- func_giveitem_health(id)
- }
- else
- client_print(id, print_chat, "Nemas dovoljno para da kupis +40 HP treba ti 15000$.")
- }
- case 2:
- {
- if(money >= 10000)
- {
- Reduce(id, 10000)
- func_giveitem_respawn(id)
- }
- else
- client_print(id, print_chat, "Nemas dovoljno para da kupis Respawn treba ti 10000$.")
- }
- case 3:
- {
- if(money >= 4000)
- {
- Reduce(id, 4000)
- func_giveitem_aflash(id)
- }
- else
- client_print(id, print_chat, "Nemas dovoljno para da kupis Anti-Flash treba ti 4000$.")
- }
- case 4:
- {
- if(money >= 2000)
- {
- Reduce(id, 2000)
- func_giveitem_afrost(id)
- }
- else
- client_print(id, print_chat, "Nemas dovoljno para da kupis Anti-Smoke treba ti 2000$.")
- }
- case 5:
- {
- if(money >= 5000)
- {
- Reduce(id, 5000)
- func_giveitem_gravity(id)
- g_bHasGravity[id] = true // Postavljanje boola na true sam prebacio ovde umesto dole u funkciji, da bismo mogli da pozivamo func_giveitem_gravity na spawnu i da ne postavljamo ponovo bool na true posto vec znamo da je postavljen cim pozivamo funkciju... U principu skroz nebitna stvar, ali eto malo stedimo memoriju servera
- }
- else
- client_print(id, print_chat, "Nemas dovoljno para da kupis Gravitaciju treba ti 5000$.")
- }
- }
- return PLUGIN_CONTINUE
- }
- // ===============================================================================
- // Item Handlers
- // ===============================================================================
- public func_giveitem_he(id)
- {
- give_item(id, "weapon_hegrenade")
- g_bHasGrenade[id] = true
- }
- public func_giveitem_flash(id)
- {
- give_item(id, "weapon_flashbang")
- g_bHasFlashbang[id] = true
- }
- public func_giveitem_gravity(id)
- {
- set_user_gravity(id, 0.5)
- }
- public func_giveitem_frost(id)
- {
- give_item(id, "weapon_smokegrenade")
- g_bHasFrostNade[id] = true
- }
- public func_giveitem_health(id)
- {
- set_user_health(id, get_user_health(id) + 40)
- g_bHasHealth[id] = true
- }
- public func_giveitem_respawn(id)
- {
- ExecuteHamB(Ham_CS_RoundRespawn, id)
- new szName[33]
- get_user_name(id, szName, charsmax(szName))
- client_print(0, print_chat, "%s je kupio RESPAWN!", szName)
- g_bHasRespawn[id] = true
- }
- public func_giveitem_aflash(id)
- g_bHasNoFlash[id] = true
- public func_giveitem_afrost(id)
- g_bHasNoFrost[id] = true
- // ===============================================================================
- // FrostNades
- // ===============================================================================
- public frostnades_player_chilled( victim, attacker )
- {
- if(g_bHasNoFrost[victim])
- return PLUGIN_HANDLED
- return PLUGIN_CONTINUE
- }
- public frostnades_player_frozen( victim, attacker )
- {
- if(g_bHasNoFrost[victim])
- return PLUGIN_HANDLED
- return PLUGIN_CONTINUE
- }
- // ===============================================================================
- // Stocks
- // ===============================================================================
- stock Reduce(id, amount)
- cs_set_user_money(id, cs_get_user_money(id) - amount)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement