#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fakemeta>
#include <cstrike>
#include <fun>
#include <colorchat>
#define menunev "[szervernév]\y Freerun menü" // a menü elsõ sora (név)
#define szamszin "\w" // fehér
#define szoveg1 "^1Megöltél egy CT-t ezért visszatöltöttük a hp-d 100-ra!" //Ha a t megöl egy ct-t ezt az üzenetet kapja!
#define szoveg3 "^1FreeRun van! Ilyenkor nem használhatsz csapdákat!" // feerunkor ha a ct gombot nyom ezt az üzenetet kapja!
#define szoveg4 "^1Ezt a csapdát már használtad!" // ha nincs freerun és a ct már használta azt a csapdát ezt az üzenetet kapja
#define szoveg5 "^1Vigyázz CT ként csak 3× használhatsz gombokat!!" // ct leszabályzott gombnyomásra való figyelmeztetések:
#define szoveg6 "^1Vigyázz CT ként csak 3× (már csak 2x) használhatsz gombokat!!"
#define szoveg7 "^1Vigyázz CT ként csak 3× (már csak 1x) használhatsz gombokat!!"
#define szoveg8 "^1Te sajnos ebben a körben több gombot nem használhatsz!" // ct 4. gombhasználata után ezt az üzenetet kapja
#define szoveg2 "^1A terrorista nem választott! Nincs free kör!" // ha afk a terrorista akkor automata nincs freerun (15 sec után), ilyenkor errõl ezt az információt kapjuk"
#define szoveg9 "^1A terrorista döntött! Ez a kör freerun lesz!" // a terrorista döntésénél való visszejelzés (freerun)
#define szoveg10 "^1A terrorista döntött! Ez a kör nem lesz freerun!" // a terrorista döntésénél való visszejelzés (nincs freerun)
#define szoveg11 "^1Ez a kör freerun! (Kés/Ruli)" //kör lekérdezésekor ezt kapjuk, ha freerun van.
#define szoveg12 "^1Ez a kör nem freerun (Szabad ölni a Terroirstát!)" //kör lekérdezésekor ezt kapjuk, ha nincs freerun.
#define szoveg13 "^1A terrorista döntött! Ez a kör freerun lesz (RULI!)" // ha amx_dr_matchmode cvar értéke 1, akkor ezeket az üzeneteket írja ki (freerun usp-vel)
#define szoveg14 "^1A terrorista döntött! Ez a kör freerun lesz (KÉS!)" // ha amx_dr_matchmode cvar értéke 1, akkor ezeket az üzeneteket írja ki (freerun késsel)
#define szoveg15 "^1Ez a kör freerun! (KÉS!)" //ha amx_dr_matchmode cvar értéke 1, akkor ezt írja ki ha kés kör van
#define szoveg16 "^1Ez a kör freerun! (RULI!)" //ha amx_dr_matchmode cvar értéke 1, akkor ezt írja ki ha ruli kör van (USP)
#define MAX_BUTTONS 3276800
new g_menu;
new g_freemenu;
new g_bEnable;
new free = 0
new valasztott;
new g_used[MAX_BUTTONS];
new g_usedid[32];
new prefix[] = "[szervernév]";
new knife = 0;
new g_cvar_hpup;
new g_cvar_freebuttonst;
new g_cvar_freebuttonsct;
new g_cvar_freerunperknifematch;
new g_cvar_pickupinfreerun;
public plugin_init() {
register_plugin("FreeRun menu", "1.2", "Random");
g_cvar_hpup = register_cvar("amx_dr_hpup","1"); // ha a terrorista freerun közben megöl egy ct-t és kevesebb a hp-ja mint 100 akkor töltse-e vissza 100-ra? (0- ne, 1, igen)
g_cvar_freebuttonst = register_cvar("amx_dr_tfreebuttons", "1") // Terrorista gombhasználatának szabályzása, ha freerun van nem tudjon gombot nyomni ha nincs freerun csak 1x tudjon egy gombot megnyomni, (0- ne legyen szabályozva, 1-legyen szabályozva)
g_cvar_freebuttonsct = register_cvar("amx_dr_ctfreebuttons", "1") // CT gombhasználatának korlátozása, csak 3x nyomhat gombot egy kör alatt (0-ne legyen korlátozva, 1-legyen korlátozva)
g_cvar_freerunperknifematch = register_cvar("amx_dr_matchmode", "1") //Freerunon belül külön válaszható legyen-e a kés és a ruli vagy egy menüponton belül legyen csak simán freerun? (0-egy menüpont (freerun), 1-külön ruli és külön kés kör)
g_cvar_pickupinfreerun = register_cvar("amx_dr_pickup", "1") // Fegyverfelvétel szabályzása (0- bármikor tudjanak felvenni fegyvert, 1-freerun közben nemtudnak felvenni fegyvert)
RegisterHam(Ham_Spawn,"player","openmenu", 1);
RegisterHam( Ham_Touch, "armoury_entity", "FwdHamPlayerPickup" );
RegisterHam( Ham_Touch, "weaponbox", "FwdHamPlayerPickup" );
RegisterHam(Ham_Use, "func_button", "fwButtonUsed");
RegisterHam(Ham_Use, "func_rot_button", "fwButtonUsed");
RegisterHam(Ham_Use, "button_target", "fwButtonUsed");
register_clcmd("say /fr", "showagain")
register_clcmd("say fr", "showagain")
register_clcmd("say /free", "showagain")
register_clcmd("say free", "showagain")
register_clcmd("say /kor", "checkfree")
register_clcmd("say kor", "checkfree")
register_clcmd("say /kör", "checkfree")
register_clcmd("say kör", "checkfree")
register_event( "DeathMsg" , "DeathMsgEvent" , "a" );
}
public DeathMsgEvent()
{
if (get_pcvar_num(g_cvar_hpup) == 1) {
new iKiller = read_data( 1 );
new health = get_user_health(iKiller)
new iVictim = read_data(2)
if (get_user_team(iVictim) == 1) {
client_cmd(iVictim, "slot3");
}
if (get_user_team(iKiller) == 1 && free == 1 ) {
if (health < 100){
set_user_health(iKiller, 100)
ColorChat(iKiller, GREEN, "%s %s", prefix, szoveg1)
}
}
}
}
public showagain(id) {
if (valasztott == 0) {
menu_display(id, g_menu, 0)
}
}
public openmenu(id) {
g_usedid[id] = 0;
if(get_user_team(id) == 1){
g_menu = menu_create(menunev, "freemenu")
g_freemenu = menu_create(menunev, "freerunmenu");
create_menu();
resetButtons();
free = 0
valasztott = 0
g_bEnable = false;
menu_display(id, g_menu, 0)
set_task(15.0, "stopshow", id)
}
return PLUGIN_HANDLED;
}
public stopshow(id) {
if (get_user_team(id) == 1){
if (free == 0) {
client_cmd(id, "slot3");
}
}
}
public stopdraw(id) {
if (get_user_team(id) == 1) {
ColorChat(0, GREEN, "%s %s", prefix, szoveg2)
free = 2
valasztott = 1
}
}
public resetButtons() {
for(new i=0;i<MAX_BUTTONS;i++){
g_used[i] = 0;
}
}
public fwButtonUsed(this, id, idactivator, use_type, Float:value){
if(get_user_team(id) == 1 && get_pcvar_num(g_cvar_freebuttonst) == 1 ){
if(id!=idactivator) return HAM_IGNORED;
if (free == 1) {
ColorChat(id,GREEN, "%s %s", prefix, szoveg3);
return HAM_SUPERCEDE;
}
else if ( free == 2 && g_used[this] != 1) {
g_used[this] = 1;
return HAM_IGNORED;
}
else if (free == 2 && g_used[this] <= 1){
ColorChat(id,GREEN, "%s %s", prefix, szoveg4);
return HAM_SUPERCEDE;
}
}
else if (get_user_team(id) == 2 && get_pcvar_num(g_cvar_freebuttonsct) == 1 )
{
if (g_usedid[id] == 0 )
{
ColorChat(id,GREEN, "%s %s", prefix, szoveg5);
g_usedid[idactivator] = 1
return HAM_IGNORED;
}
else if (g_usedid[id] == 1)
{
ColorChat(id,GREEN, "%s %s", prefix, szoveg6);
g_usedid[idactivator] = 2
return HAM_IGNORED;
}
else if (g_usedid[idactivator] == 2)
{
ColorChat(id,GREEN, "%s %s", prefix, szoveg7);
g_usedid[idactivator] = 3
return HAM_IGNORED;
}
else if (g_usedid[id] == 3)
{
ColorChat(id,GREEN, "%s %s", prefix, szoveg8);
return HAM_SUPERCEDE;
}
}
return HAM_IGNORED;
}
public select(id, version) {
if (get_pcvar_num(g_cvar_freerunperknifematch) == 0) {
if (get_user_team(id) == 1) {
menu_destroy(g_freemenu)
if(version == 1) {
free = 1
valasztott = 1
g_bEnable = true;
ColorChat(0, GREEN, "%s %s", prefix, szoveg9)
new players[32], num;
get_players(players, num, "a");
for(new i=0;i<num;i++)
strip_user_weapons(players[i])
for(new i=0;i<num;i++)
give_item(players[i], "weapon_knife")
for(new i=0;i<num;i++)
give_item(players[i], "weapon_usp")
for(new i=0;i<num;i++)
cs_set_user_bpammo(players[i], CSW_USP, 100)
}
else if(version == 2) {
free = 2
valasztott = 1
g_bEnable = false;
ColorChat(0, GREEN, "%s %s", prefix, szoveg10)
}
}
}
else
{
if (get_user_team(id) == 1) {
if(version == 1) {
menu_display(id, g_freemenu, 0)
valasztott = 1
}
else if(version == 2) {
free = 2
valasztott = 1
g_bEnable = false;
ColorChat(0, GREEN, "%s %s", prefix, szoveg10)
}
else if(version == 3) {
free = 1
knife = 0
valasztott = 1
g_bEnable = true;
ColorChat(0, GREEN, "%s %s", prefix, szoveg13)
new players[32], num;
get_players(players, num, "a");
for(new i=0;i<num;i++)
strip_user_weapons(players[i])
for(new i=0;i<num;i++)
give_item(players[i], "weapon_knife")
for(new i=0;i<num;i++)
give_item(players[i], "weapon_usp")
for(new i=0;i<num;i++)
cs_set_user_bpammo(players[i], CSW_USP, 100)
}
else if(version == 4) {
free = 1
knife = 1
valasztott = 1
g_bEnable = true;
ColorChat(0, GREEN, "%s %s", prefix, szoveg14)
new players[32], num;
get_players(players, num, "a");
for(new i=0;i<num;i++)
strip_user_weapons(players[i])
for(new i=0;i<num;i++)
give_item(players[i], "weapon_knife")
}
}
}
}
public checkfree(id) {
if (get_pcvar_num(g_cvar_freerunperknifematch) == 0) {
if (free == 1 ) {
ColorChat(id, GREEN, "%s %s",prefix, szoveg11)
}
else
{
ColorChat(id, GREEN, "%s %s",prefix, szoveg12)
}
}
else if(get_pcvar_num(g_cvar_freerunperknifematch) == 1){
if (free == 1 && knife == 1) {
ColorChat(id, GREEN, "%s %s",prefix, szoveg15)
}
else if(free == 1 && knife == 0)
{
ColorChat(id, GREEN, "%s %s",prefix, szoveg16)
}
else
{
ColorChat(id, GREEN, "%s %s",prefix, szoveg12)
}
}
}
public create_menu() {
menu_additem(g_menu, "\yLegyen FreeRun", "", 0);
menu_additem(g_menu, "\yNe legyen FreeRun", "", 0);
menu_additem(g_menu, "\rKilépés!", "", 0)
menu_setprop(g_menu, MPROP_EXIT, MEXIT_NEVER);
menu_setprop(g_menu, MPROP_PERPAGE, 0);
menu_setprop(g_menu, MPROP_NOCOLORS, 1);
menu_setprop(g_menu, MPROP_NUMBER_COLOR, szamszin);
menu_additem(g_freemenu, "\yRuli kör legyen", "", 0);
menu_additem(g_freemenu, "\yKés kör legyen", "", 0);
menu_setprop(g_freemenu, MPROP_EXIT, MEXIT_ALL);
menu_setprop(g_freemenu, MPROP_PERPAGE, 0);
menu_setprop(g_freemenu, MPROP_NOCOLORS, 1);
menu_setprop(g_freemenu, MPROP_NUMBER_COLOR, szamszin);
}
public freemenu(id, menu, item)
{
new command[6], name[64], access, callback;
menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
switch(item)
{
case 0: select(id, 1);
case 1: select(id, 2);
case 2: stopdraw(id);
}
menu_cancel(menu);
return PLUGIN_HANDLED;
}
public freerunmenu(id,menu, item)
{
if(item == MENU_EXIT)
{
menu_cancel(id);
return PLUGIN_HANDLED;
}
new command[6], name[64], access, callback;
menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
switch(item)
{
case 0: select(id, 3);
case 1: select(id, 4);
}
menu_cancel(menu);
return PLUGIN_HANDLED;
}
public FwdHamPlayerPickup( iEntity, id ) {
if (get_pcvar_num(g_cvar_pickupinfreerun) == 1) {
return g_bEnable ? HAM_SUPERCEDE : HAM_IGNORED
}
else
{
return HAM_IGNORED;
}
return HAM_IGNORED;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1038\\ f0\\ fs16 \n\\ par }
*/