#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <colorchat>
#include <engine>
#define PLUGIN "Unison v1.0"
#define VERSION "1.0"
#define AUTHOR "o"
new const Prefix[] = "[#BlackBox*]";
//Egyebek
new Arany[33], Lada[33], Kulcs[33], Xp[33], Szint[33], Skin[33];
//Skinek
new Kes[2][33]
//Hud
new g_SyncHud1
//Skinek sebzese
new bool:sebzes[33];
//Piac
new Erteke[33], kicucc[33], kirakva[33], pido;
enum _:ADAT { Name[32], Model[64] };
new const Kesek[][ADAT] =
{
{ "Karambit Knife", "models/black/v_karambit.mdl" },
{ "Bayonet Knife", "models/black/v_bayonet.mdl" }
};
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_impulse(201, "fomenu")
register_clcmd("say /menu", "fomenu")
register_event("DeathMsg","Halal","a")
set_task(0.5,"TaskHalfSecond",.flags="b");
g_SyncHud1 = CreateHudSyncObj();
RegisterHam(Ham_Item_Deploy, "weapon_knife", "FegyverValtas", 1);
RegisterHam( Ham_TakeDamage , "player" , "Sebzesek", 0)
}
public plugin_precache()
{
for(new i;i < 2; i++)
precache_model(Kesek[i][Model]);
}
public Sebzesek(victim,inflictor,attacker,Float:damage, DamageBits)
{
if(is_user_alive(attacker))
{
new weap = get_user_weapon(attacker)
if(sebzes[attacker] && weap == CSW_KNIFE && Skin[attacker] == 1)
{
SetHamParamFloat(1, damage * 1.1)
}
if(sebzes[attacker] && weap == CSW_KNIFE && Skin[attacker] == 2)
{
SetHamParamFloat(2, damage * 1.4)
}
return HAM_HANDLED;
}
return HAM_IGNORED;
}
public FegyverValtas(ent)
{
new id = get_pdata_cbase(ent, 41, 4);
switch(get_user_weapon(id))
{
case CSW_KNIFE:
{
switch(Skin[id])
{
case 1: set_pev(id, pev_viewmodel2, Kesek[0][Model]);
case 2: set_pev(id, pev_viewmodel2, Kesek[1][Model]);
}
}
}
}
public TaskHalfSecond() {
new players[32], pnum, tempid;
get_players(players, pnum, "ac");
for(new i;i<pnum; i++)
{
tempid = players[i];
set_hudmessage(255, 255, 255, 0.01, 0.17, 0, 1.0, 1.0);
ShowSyncHudMsg(tempid, g_SyncHud1, "Szint: %d^nXP: %d/100(%.1f%%)^nArany: %d^n^nLada: %d | Kulcs: %d", Szint[tempid], Xp[tempid], float(Xp[tempid])*100, Arany[tempid], Lada[tempid], Kulcs[tempid]);
}
}
public Halal()
{
new Gyilkos = read_data(1);
new Aldozat = read_data(2);
new Num = random_num(1, 10);
new elezaparaszt = is_user_alive(Gyilkos);
new pPont;
pPont += random_num(11, 19);
if(Gyilkos == Aldozat)
return;
Arany[Gyilkos] += pPont;
client_printcolor(Gyilkos, "!g%s !nKaptal !g+%d !nAranyat.", Prefix, pPont);
if(Szint[Gyilkos] >= 0 && Szint[Gyilkos] <= 1000) Xp[Gyilkos] += random_num(12, 15);
if(Xp[Gyilkos] > 100)
{
Xp[Gyilkos] -= 100;
Szint[Gyilkos] ++;
}
new Nev[32]; get_user_name(Gyilkos, Nev, 31);
if(Num == 7 && elezaparaszt)
{
Lada[Gyilkos] ++;
client_printcolor(0, "!g%s !t%s !nTalalt egy ladat.", Prefix, Nev);
}
else if(Num == 5 && elezaparaszt)
{
Kulcs[Gyilkos] ++;
client_printcolor(0, "!g%s !t%s !nTalalt egy kulcsot.", Prefix, Nev);
}
}
public fomenu(id)
{
new menu = menu_create("\wGlobal Unison v1.0 \y- \dFomenu", "Fomenu_h");
menu_additem(menu, "\wFelszereles", "1", 0);
menu_additem(menu, "\yLada \rnyitas", "2", 0);
menu_additem(menu, "\yPiac", "3", 0);
menu_additem(menu, "\dAddolas \r[Tulajoknak]", "4", 0);
menu_display(id, menu, 0);
}
public Fomenu_h(id, menu, item){
if(item == MENU_EXIT)
{
menu_destroy(menu);
return;
}
new data[9], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new key = str_to_num(data);
switch(key) {
case 1: felszereles(id);
case 2: ladanyitas(id);
case 3: piac(id);
case 4: addolas(id);
}
}
public addolas(id){
if (get_user_flags(id) & ADMIN_IMMUNITY)
{
new menu = menu_create("\r#\yAddolas \d+\y1 \rLada \d& 1 \rKulcs", "menu_handler")
new players[32], pnum, tempid
new szName[32], szTempid[20]
get_players(players, pnum)
for( new i; i<pnum; i++ )
{
tempid = players[i];
get_user_name(tempid, szName, charsmax(szName))
num_to_str(tempid, szTempid, charsmax(szTempid))
menu_additem(menu, szName, szTempid, 0)
}
menu_display(id, menu, 0)
}
else
{
ColorChat(id, RED, "Sajnos te nem vagy TULAJDONOS !.")
}
}
public menu_handler(id, menu, item)
{
if( item == MENU_EXIT )
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new tempid = str_to_num(data);
if( is_user_alive(tempid) )
{
Kulcs[tempid] += 1
Lada[tempid] += 1
ColorChat(id, GREEN,"Sikeres Addolas !.")
}
client_cmd(id,"adas")
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public piac(id)
{
new cim[121];
format(cim, charsmax(cim), "\wGlobal Unison v1.0 \y- \dPiac");
new menu = menu_create(cim, "Piac_h");
menu_additem(menu, "Eladas", "1", 0);
menu_additem(menu, "Vasarlas", "2", 0);
menu_display(id, menu, 0);
}
public Piac_h(id, menu, item){
if(item == MENU_EXIT)
{
menu_destroy(menu);
return;
}
new data[9], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new key = str_to_num(data);
switch(key)
{
case 1: Eladas(id);
case 2: Vasarlas(id);
}
}
public Eladas(id) {
new cim[121], ks1[121], ks2[121];
format(cim, charsmax(cim), "\wPaintball \y- \dEladas");
new menu = menu_create(cim, "eladas_h" );
if(kirakva[id] == 0){
for(new i=0; i < 110; i++) {
if(kicucc[id] == 0) format(ks1, charsmax(ks1), "Targy: \dValasz Valamit!^n");
else if(kicucc[id] == i) format(ks1, charsmax(ks1), "Targy: \d%s^n", Kesek[i-1][Name]);
}
menu_additem(menu, ks1 ,"0",0);
}
if(kirakva[id] == 0){
format(ks2, charsmax(ks2), "\wAr: \d%d", Erteke[id]);
menu_additem(menu,ks2,"1",0);
}
if(kirakva[id] == 0)
menu_additem(menu,"\yKirakas!","2",0);
if(Erteke[id] != 0 && kirakva[id] == 1)
menu_additem(menu,"Targy \dVisszavonas","-2",0);
menu_setprop(menu, MPROP_EXITNAME, "Kilepes");
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0);
}
public eladas_h(id, menu, item){
if( item == MENU_EXIT )
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[9], szName[64], name[32];
get_user_name(id, name, charsmax(name));
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new key = str_to_num(data);
switch(key)
{
case -2:{
kirakva[id] = 0;
kicucc[id] = 0;
Erteke[id] = 0;
}
case 0:{
fvalaszt(id);
}
case 1:{
client_cmd(id, "messagemode ARANY");
}
case 2:{
for(new i=0; i < 110; i++) {
if(kicucc[id] == i && Kes[i-1][id] >= 1) {
client_printcolor(0, "!g%s !t%s !nKirakott egy !g%s-!nt %d aranyert",Prefix, name, Kesek[i-1][Name], Erteke[id]);
kirakva[id] = 1;
}
}
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public fvalaszt(id) {
new szMenuTitle[ 121 ],cim[121];
format( szMenuTitle, charsmax( szMenuTitle ), "\wGlobal Unison v1.0 \y- \dFegyver Valasz");
new menu = menu_create( szMenuTitle, "fvalaszt_h" );
for(new i=0; i < 110; i++) {
if(Kes[i-1][id] > 0) {
new Num[6];
num_to_str(i, Num, 5);
formatex(cim, charsmax(cim), "\y%s \r| \d%d DB", Kesek[i][Name], Kes[i][id]);
menu_additem(menu, cim, Num);
}
}
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0);
}
public fvalaszt_h(id, menu, item){
if(item == MENU_EXIT)
{
menu_destroy(menu);
return;
}
new data[9], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new key = str_to_num(data);
kicucc[id] = key+1;
Eladas(id);
}
public lekeres(id) {
new ertek, adatok[32];
read_args(adatok, charsmax(adatok));
remove_quotes(adatok);
ertek = str_to_num(adatok);
new hossz = strlen(adatok);
if(hossz > 7)
{
client_cmd(id, "messagemode DOLLAR");
}
else if(ertek < 20)
{
client_printcolor(id, "!g%s !nNem tudsz eladni fegyver!t 20 arany alatt.", Prefix);
Eladas(id);
}
else
{
Erteke[id] = ertek;
Eladas(id);
}
}
public Vasarlas(id)
{
new mpont[512], menu, cim[121];
static players[32],temp[10],pnum;
get_players(players,pnum,"c");
format(cim, charsmax(cim), "\wGlobal Unison v1.0 \y- \dVasarlas");
menu = menu_create(cim, "vasarlas_h" );
for (new i; i < pnum; i++)
{
if(kirakva[players[i]] == 1 && Erteke[players[i]] > 0)
{
for(new a=0; a < 110; a++) {
if(kicucc[players[i]] == a)
formatex(mpont,256,"\r%s \y| \w%s \y| \w%d \yArany", Kesek[i-1][Name], get_player_name(players[i]), Erteke[players[i]]);
}
num_to_str(players[i],temp,charsmax(temp));
menu_additem(menu, mpont, temp);
}
}
menu_setprop(menu, MPROP_PERPAGE, 6);
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL );
menu_display(id, menu);
return PLUGIN_HANDLED;
}
public vasarlas_h(id,menu, item){
if(item == MENU_EXIT)
{
menu_destroy(menu);
return;
}
if(pido != 0){
Vasarlas(id);
return;
}
new data[6] ,szName[64],access,callback;
new name[32], name2[32];
get_user_name(id, name, charsmax(name));
menu_item_getinfo(menu, item, access, data, charsmax(data), szName, charsmax(szName), callback);
new player = str_to_num(data);
get_user_name(player, name2, charsmax(name2));
pido = 2;
set_task(2.0, "vido");
for(new i=0; i < 110; i++) {
if(Arany[id] >= Erteke[player] && kicucc[player] == i && kirakva[player] == 1)
{
kirakva[player] = 0;
client_printcolor(0, "!g%s !t%s !nvett egy !g%s !n%s-tol %d Aranyert!",Prefix, name, Kesek[i-1][Name], name2, Erteke[player]);
Arany[player] += Erteke[player];
Arany[id] -= Erteke[player];
Kes[i-1][id] ++;
Kes[i-1][player] --;
kicucc[player] = 0;
Erteke[player] = 0;
}
}
}
public ladanyitas(id)
{
new menu = menu_create("\wGlobal Unison v1.0 \y- \dLadaNyitas", "LadaNyit_h");
menu_additem(menu, "\yLadaNyitas\r!^n\d1 Lada & 1 Kulcs!", "1", 0);
menu_display(id, menu, 0);
}
public LadaNyit_h(id, menu, item){
if(item == MENU_EXIT)
{
menu_destroy(menu);
return;
}
new data[9], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new key = str_to_num(data);
switch(key) {
case 1:
{
if(Lada[id] >= 1 && Kulcs[id] >= 1)
{
Lada[id] --;
Kulcs[id] --;
Talal(id);
}
ladanyitas(id);
}
}
}
public felszereles(id)
{
new cim[121];
new menu = menu_create("\wGlobal Unison v1.0 \y- \dFelszereles", "Felszereles_h");
for(new i=0;i < 2; i++)
{
if(Kes[i][id] > 0)
{
new Sor[6]; num_to_str(i, Sor, 5);
formatex(cim, charsmax(cim), "\r%s \y| \d%d DB", Kesek[i][Name], Kes[i][id]);
menu_additem(menu, cim, Sor);
}
}
menu_display(id, menu, 0);
}
public Felszereles_h(id, menu, item){
if(item == MENU_EXIT)
{
menu_destroy(menu);
return;
}
new data[9], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new key = str_to_num(data);
Skin[id] = key+1;
client_printcolor(id, "!g%s !nSikeresen Kivalasztottad a : !g%s !nSkin.", Prefix, Kesek[key][Name]);
}
public Talal(id)
{
new Szam = random_num(1, 700);
new Nev[32]; get_user_name(id, Nev, 31);
if(Szam < 300)
{
switch(random_num(1, 2))
{
case 1:
{
Kes[0][id] ++;
client_printcolor(0, "!g%s !t%s !nTalalta ezt: !g%s!", Prefix, Nev, Kesek[0][Name]);
}
case 2:
{
Kes[1][id] ++;
client_printcolor(0, "!g%s !t%s !nTalalta ezt: !g%s!", Prefix, Nev, Kesek[1][Name]);
}
}
}
}
public vido()
{
pido = 0;
}
stock get_player_name(id){
static Nev[32];
get_user_name(id, Nev,31);
return Nev;
}
stock client_printcolor(const id, const input[], any:...)
{
new count = 1, players[32];
static msg[191];
vformat(msg, 190, input, 3);
replace_all(msg, 190, "!g", "^4");
replace_all(msg, 190, "!n", "^1");
replace_all(msg, 190, "!t", "^3");
if (id) players[0] = id; else get_players(players, count, "ch");
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
return PLUGIN_HANDLED;
}