#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <cstrike>
#include <dhudmessage>
#include <colorchat>
#include <engine>
#include <fakemeta>
#include <fun>
#include <sqlx>
new const PLUGIN[] = "Global Unison";
new const VERSION[] = "1.0";
new const AUTHOR[] = "exodus"; //Ne írd át kösz!
//EXP Drop
#define EXPMIN 1
#define EXPMAX 3
//Arany Drop
#define ARANYMIN 1
#define ARANYMAX 20
//Rangok
#define TULAJ ADMIN_LEVEL_A
#define ADMIN ADMIN_KICK
#define VIP ADMIN_LEVEL_H
//Mentés
new Handle:g_SqlTuple;
//Szinteles,Fizetés,Lada,Kulcs
new Tapasztalat[33], Kikepzespontok[33], Szint[33], Arany[33], Lada[3][33], Kulcs[33], Mod;
//Skinek
new OsszesSkin[3][33], OsszesNev[3], Skin[1][33];
//Kepessegek
new Gyorsasag[33], Elet[33], Aranydrop[33], Ero[33];
new FegyoEro[33], FegyoElet[33], FegyoAranydrop[33], FegyoGyorsasag[33];
//Tárgyak
new Ujratekercs[33], Aranyora[33], Aranyoraido[33], Aranyorahasznal[33];
//Piac
new Erteke[33], kicucc[33], kirakva[33], pido;
//Regisztráció a kurva anyádba már
//Chat
new Temp[192];
static color[10];
new const PREFIX[] = "[exodus Global Unison]";
new const Chat_PREFIX[] = "[Információ]";
new const SQLINFO[][] =
{
"", // HOST
"", // USERNAME
"", // PASSWORD
"" // DATABASE
};
new const Ladak[][] =
{
{ "Kulcs" },
{ "Holdfény Kincsesláda" },
{ "Fa Láda" },
{ "Főnix Láda" }
};
new const Float:DropItem[][] =
{
{ 11.35 },
{ 23.62},
{ 33.23},
{ 51.86 }
};
new const Fegyverek[3][] =
{
{ "AK47 | Aquamarine \y/ \rE:\w+11 \rK:\w+8 \rGY:\w+21 \rA:\w+6" },
{ "AK47 | Carbonite \y/ \rE:\w+2 \rK:\w+40 \rGY:\w+7 \rA:\w+1" },
{ "AK47 | Fire Serpent \y/ \rE:\w+32 \rK:\w+11 \rGY:\w+1 \rA:\w+0" }
};
new const Ak47_Modelek[][] = {
"models/exodus_go_new/Alap/AK47.mdl",
"models/exodus_go_new/ak47/Aquamarine.mdl",
"models/exodus_go_new/ak47/Carbonite.mdl",
"models/exodus_go_new/ak47/Fireserpent.mdl"
};
enum _:info
{
uname[32],
pass[32]
};
new Array:regusers, data[info];
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
regusers = ArrayCreate(info);
register_impulse(201, "Fomenu");
register_clcmd("say /menu", "Fomenu");
register_clcmd("ARANY", "lekeres");
register_clcmd("say /add", "Addolas");
register_clcmd("Felhasznalo", "GetUsername");
register_clcmd("Jelszo", "GetPassword");
RegisterHam(Ham_Spawn, "player", "elet_player", 1)
RegisterHam(Ham_Spawn, "player", "ero_player", 1)
register_clcmd("say", "sayhook");
register_event("CurWeapon", "Fejlodes_h", "be", "1=1");
register_event("DeathMsg", "Halal", "a");
RegisterHam(Ham_Spawn,"player","Fegyomenu",1)
set_task(60.0, "Targyakhasznal",_,_,_,"b");
set_task(1.0, "Skinhasznal",_,_,_,"b");
}
public plugin_precache()
{
for(new i;i < sizeof(Ak47_Modelek); i++){
precache_model(Ak47_Modelek[i]);
}
}
public Addolas(id)
{
for(new i;i < 3; i++)
OsszesSkin[i][id]++;
for(new i;i < 3; i++)
Lada[i][id]++;
Tapasztalat[id] += 25;
Kulcs[id] += 25;
Kikepzespontok[id] += 20;
Aranyora[id]++;
}
public Targyakhasznal()
{
new p[32],n;
get_players(p,n,"ch");
for(new i=0;i<n;i++)
{
new id = p[i];
if(Aranyorahasznal[id] >= 1 && Aranyoraido[id] <= 1800)
{
new bPont;
bPont += random_num(ARANYMIN, ARANYMAX);
Arany[id] += bPont;
set_dhudmessage(random(256), random(256), random(256), -1.0, 0.20, 0, 6.0, 3.0);
show_dhudmessage(id, "+%d Arany", bPont);
}
}
}
public Skinhasznal()
{
new p[32],n;
get_players(p,n,"ch");
for(new i=0;i<n;i++)
{
new id = p[i];
if(Skin[0][id] == 1 && get_user_weapon(id) == CSW_AK47)
{
Ero[id] += 11
Gyorsasag[id] += 8
Elet[id] += 21
Aranydrop[id] += 6
}
}
}
public Fejlodes_h(id, victim, inflictor, attacker, Float:damage)
{
new fegyo = get_user_weapon(id);
for(new i;i < sizeof(Ak47_Modelek); i++) {
if(Skin[0][id] == i && fegyo == CSW_AK47){
set_pev(id, pev_viewmodel2, Ak47_Modelek[i]);
}
}
if(Tapasztalat[id] >= 100)
{
Tapasztalat[id] = 0;
Szint[id]++;
Kikepzespontok[id] += 2;
}
if(get_user_weapon(id) == CSW_KNIFE)
{
set_user_maxspeed(id, get_user_maxspeed(id) + Gyorsasag[id] + FegyoGyorsasag[id])
}
}
public elet_player(id)
{
if(is_user_alive(id))
{
set_user_health(id, get_user_health(id) + Elet[id] + FegyoElet[id])
}
}
public ero_player(victim, inflictor, attacker, Float:damage)
{
if(is_user_alive(attacker) && is_user_alive(victim))
{
new fgy = get_user_weapon(attacker)
if(fgy == CSW_AK47)
SetHamParamFloat(4, damage + FegyoEro[attacker] + Ero[attacker] / 2)
if(fgy == CSW_AWP)
SetHamParamFloat(4, damage + FegyoEro[attacker] + Ero[attacker] / 2)
if(fgy == CSW_FAMAS)
SetHamParamFloat(4, damage + FegyoEro[attacker] + Ero[attacker] / 2)
if(fgy == CSW_M4A1)
SetHamParamFloat(4, damage + FegyoEro[attacker] + Ero[attacker] / 2)
if(fgy == CSW_M3)
SetHamParamFloat(4, damage + FegyoEro[attacker] + Ero[attacker] / 2)
if(fgy == CSW_MP5NAVY)
SetHamParamFloat(4, damage + FegyoEro[attacker] + Ero[attacker] / 2)
if(fgy == CSW_USP)
SetHamParamFloat(4, damage + FegyoEro[attacker] + Ero[attacker])
if(fgy == CSW_DEAGLE)
SetHamParamFloat(4, damage + FegyoEro[attacker] + Ero[attacker] / 2)
}
}
public Fomenu(id)
{
new String[121];
formatex(String, charsmax(String), "%s \r- \dFĹ‘menĂĽ^n\rSzinted: \d%d \r| Tapasztalat: \d%d%%\r/\d100%% \r| Arany: \d%d", PREFIX, Szint[id], Tapasztalat[id], Arany[id])
new menu = menu_create(String, "Fomenu_h")
format(String,charsmax(String),"Kiképzés")
menu_additem(menu,String,"1")
format(String,charsmax(String),"Raktár")
menu_additem(menu,String,"2")
format(String,charsmax(String),"Láda Nyitás")
menu_additem(menu,String,"3")
format(String,charsmax(String),"Piac")
menu_additem(menu,String,"4")
menu_display(id, menu, 0)
return PLUGIN_HANDLED
}
public Fomenu_h(id, menu, item){
if(item == MENU_EXIT)
//Ne lopkodj kurva anyád. :D (eredeti AUTHOR: exodus)
{
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: Kikepzes(id);
case 2: Raktar_1(id);
case 3: LadaNyitas(id);
case 4: Piac(id);
}
}
public Kikepzes(id)
{
new String[121]
formatex(String, charsmax(String), "%s \r- \dKiképzés^n\wElosztható Pontok:\d (%d)", PREFIX, Kikepzespontok[id])
new menu = menu_create(String, "Kikepzes_h")
format(String,charsmax(String),"Erő: \r(\d%d\r) \wMax: \r95 \y(Növeli a sebzésed)^n\w +Erő: %d \r(Fegyver által)", Ero[id], FegyoEro[id])
menu_additem(menu,String,"1")
format(String,charsmax(String),"Kondicio: \r(\d%d\r) \wMax: \r95 \y(Növeli a sebességed)^n\w +Kondicio: %d \r(Fegyver által)", Gyorsasag[id], FegyoGyorsasag[id])
menu_additem(menu,String,"2")
format(String,charsmax(String),"Energia: \r(\d%d\r) \wMax: \r95 \y(Növeli az életed)^n\w +Energia: %d \r(Fegyver által)", Elet[id], FegyoElet[id])
menu_additem(menu,String,"3")
format(String,charsmax(String),"Ügyesség: \r(\d%d\r) \wMax: \r95 \y(Növeli a talált arany mennyiséget)^n\w +Ügyesség: %d \r(Fegyver által)", Aranydrop[id], FegyoAranydrop[id])
menu_additem(menu,String,"4")
menu_display(id, menu, 0)
return PLUGIN_HANDLED
}
public Kikepzes_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(Kikepzespontok[id] >= 1 && Ero[id] <= 95)
{
Ero[id]++;
Kikepzespontok[id]--;
Kikepzes(id);
ColorChat(id, GREEN, "%s^1Raktál^3 +1^1 pontot az erőre!", Chat_PREFIX)
}
else
{
ColorChat(id, GREEN, "%s^1Nincs elég kiképzési pontod.", Chat_PREFIX);
Kikepzes(id);
}
}
case 2:
{
if(Kikepzespontok[id] >= 1 && Gyorsasag[id] <= 95)
{
Gyorsasag[id]++;
Kikepzespontok[id]--;
Kikepzes(id);
ColorChat(id, GREEN, "%s^1Raktál^3 +1^1 pontot a kondicióra!", Chat_PREFIX)
}
else
{
ColorChat(id, GREEN, "%s^1Nincs elég kiképzési pontod.", Chat_PREFIX);
Kikepzes(id);
}
}
case 3:
{
if(Kikepzespontok[id] >= 1 && Elet[id] <=95)
{
Elet[id]++;
Kikepzespontok[id]--;
Kikepzes(id);
ColorChat(id, GREEN, "%s^1Raktál^3 +1^1 pontot az energiára!", Chat_PREFIX)
}
else
{
ColorChat(id, GREEN, "%s^1Nincs elég kiképzési pontod.", Chat_PREFIX);
Kikepzes(id);
}
}
case 4:
{
if(Kikepzespontok[id] >= 1 && Aranydrop[id] <=95)
{
Aranydrop[id]++;
Kikepzespontok[id]--;
Kikepzes(id);
ColorChat(id, GREEN, "%s^1Raktál^3 +1^1 pontot az ügyességre!", Chat_PREFIX)
}
else
{
ColorChat(id, GREEN, "%s^1Nincs elég kiképzési pontod.", Chat_PREFIX);
Kikepzes(id);
}
}
}
}
public Raktar_1(id)
{
new String[121];
formatex(String, charsmax(String), "%s \r- \dRaktár",PREFIX);
new menu = menu_create(String, "Raktar_1_h");
format(String, charsmax(String), "\wFelszereléseim");
menu_additem(menu, String, "1", 0);
format(String, charsmax(String), "\wTárgyaim");
menu_additem(menu, String, "2", 0);
menu_display(id, menu, 0);
}
public Raktar_1_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: Raktar(id);
case 2: Raktar2(id);
}
}
public Raktar(id)
{
new String[121];
formatex(String, charsmax(String), "%s \r- \dRaktár",PREFIX);
new menu = menu_create(String, "Raktar_h");
for(new i;i < sizeof(Fegyverek); i++)
{
if(OsszesSkin[i][id] > 0)
{
new Sor[6]; num_to_str(i, Sor, 5);
formatex(String, charsmax(String), "\w%s \y(\dĂ–sszes: \r%d\y)", Fegyverek[i][0], OsszesSkin[i][id]);
menu_additem(menu, String, Sor);
}
}
menu_display(id, menu, 0);
}
public Raktar_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 0:
{
Skin[0][id] = 1;
FegyoEro[id] = 11;
FegyoGyorsasag[id] = 8;
FegyoElet[id] = 21;
FegyoAranydrop[id] = 6;
}
case 1:
{
Skin[0][id] = 2;
FegyoEro[id] = 2;
FegyoGyorsasag[id] = 40;
FegyoElet[id] = 7;
FegyoAranydrop[id] = 1;
}
case 2:
{
Skin[0][id] = 3;
FegyoEro[id] = 38;
FegyoGyorsasag[id] = 11;
FegyoElet[id] = 1;
FegyoAranydrop[id] = 0;
}
}
}
public Raktar2(id)
{
new String[121];
formatex(String, charsmax(String), "%s \r- \dTárgyaim",PREFIX);
new menu = menu_create(String, "Raktar2_h");
if(Ujratekercs[id] >= 1)
{
format(String, charsmax(String), "\wStátusz Tekercs \y(Újraoszthatod a ponjaid)");
menu_additem(menu, String, "1", 0);
}
if(Aranyora[id] >= 1)
{
format(String, charsmax(String), "\wArany Óra \y(Időközönként ingyen arany)");
menu_additem(menu, String, "2", 0);
}
menu_display(id, menu, 0);
}
public Raktar2_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(Ujratekercs[id] >= 1)
{
Kikepzespontok[id] += Aranydrop[id];
Kikepzespontok[id] += Elet[id];
Kikepzespontok[id] += Gyorsasag[id];
Kikepzespontok[id] += Ero[id];
Aranydrop[id] = 0;
Elet[id] = 0;
Gyorsasag[id] = 0;
Ero[id] = 0;
Ujratekercs[id]--;
ColorChat(id, GREEN, "%s^1Kepessegek alap helyzetbe Allitva!", Chat_PREFIX)
}
}
case 2:
{
if(Aranyora[id] >= 1)
{
Aranyoraido[id] = 0;
Aranyora[id]--;
Aranyorahasznal[id]++;
ColorChat(id, GREEN, "%s^1Aktiváltad az aranyórát.", Chat_PREFIX)
}
}
}
}
public LadaNyitas(id)
{
new String[121];
format(String, charsmax(String), "%s \r- \dLádaNyitás^n\wKulcsaid: \d(%d) \yDrop esély: \r(%3.2f%%)", PREFIX, Kulcs[id], DropItem[3][Mod]);
new menu = menu_create(String, "LadaNyitas_h");
format(String, charsmax(String), "\w%s \d(%d) \yDrop esély: \r(%3.2f%%)", Ladak[1][0], Lada[0][id], DropItem[0][Mod]);
menu_additem(menu, String, "1", 0);
format(String, charsmax(String), "\w%s \d(%d) \yDrop esély: \r(%3.2f%%)", Ladak[2][0], Lada[1][id], DropItem[1][Mod]);
menu_additem(menu, String, "2", 0);
format(String, charsmax(String), "\w%s \d(%d) \yDrop esély: \r(%3.2f%%)", Ladak[3][0], Lada[2][id], DropItem[2][Mod]);
menu_additem(menu, String, "3", 0);
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
menu_display(id, menu, 0);
return PLUGIN_HANDLED;
}
public LadaNyitas_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[0][id] >= 1 && Kulcs[id] >= 1)
{
Szint[id]++;
}
}
case 2:
{
if(Lada[1][id] >= 1 && Kulcs[id] >= 1)
{
Szint[id]++;
}
}
case 3:
{
if(Lada[2][id] >= 1 && Kulcs[id] >= 1)
{
Szint[id]++;
}
}
}
}
public Halal()
{
new Gyilkos = read_data(1);
new Aldozat = read_data(2);
if(Gyilkos == Aldozat)
return PLUGIN_HANDLED;
//EXP Drop------------------------------
new pPont;
pPont += random_num(EXPMIN, EXPMAX);
Tapasztalat[Gyilkos] += pPont;
//------------------------------
//Arany Drop------------------------------
new aPont;
aPont += random_num(ARANYMIN, ARANYMAX);
Arany[Gyilkos] += aPont + Aranydrop[Gyilkos] + FegyoAranydrop[Gyilkos];
//------------------------------
set_dhudmessage(random(256), random(256), random(256), -1.0, 0.20, 0, 6.0, 3.0);
show_dhudmessage(Gyilkos, "+%d Arany", aPont + Aranydrop[Gyilkos] + FegyoAranydrop[Gyilkos]);
while(Tapasztalat[Gyilkos] >= 100)
Szint[Gyilkos]++;
LadaDrop(Gyilkos);
return PLUGIN_HANDLED;
}
public LadaDrop(id)
{
new Float:RandomSzam = random_float(0.01, 100.00);
new Nev[32]; get_user_name(id, Nev,31);
if(RandomSzam <= DropItem[0][Mod])
{
Lada[0][id] ++;
ColorChat(id, GREEN, "[Információ] ^3Találtál egy: ^4%s-t.", Ladak[1][0]);
}
else if(RandomSzam <= DropItem[1][Mod])
{
Lada[1][id] ++;
ColorChat(id, GREEN, "[Információ] ^3Találtál egy: ^4%s-t.", Ladak[2][0]);
}
else if(RandomSzam <= DropItem[2][Mod])
{
Lada[2][id] ++;
ColorChat(id, GREEN, "[Információ] ^3Találtál egy: ^4%s-t.", Ladak[3][0]);
}
else if(RandomSzam <= DropItem[3][Mod])
{
Kulcs[id] ++;
ColorChat(id, GREEN, "[Információ] ^3Találtál egy: ^4%s-t.", Ladak[0][0]);
}
}
public client_putinserver(id)
{
Szint[id] = 1;
Tapasztalat[id] = 0;
Arany[id] = 0;
Aranyora[id] = 0;
Aranyoraido[id] = 0;
Aranyorahasznal[id] = 0;
Kulcs[id] = 0;
Ujratekercs[id] = 0
for(new i;i < 3; i++)
OsszesNev[i] = EOS;
for(new i;i < 3; i++)
OsszesSkin[i][id] = EOS;
for(new i;i < 3; i++)
Lada[i][id] = EOS;
if(!is_user_bot(id))
Load(id);
}
public client_disconnect(id)
{
if(!is_user_bot(id))
Update(id);
}
public plugin_cfg()
{
g_SqlTuple = SQL_MakeDbTuple(SQLINFO[0], SQLINFO[1], SQLINFO[2], SQLINFO[3]);
static Query[10048];
new Len;
Len += formatex(Query[Len], charsmax(Query), "CREATE TABLE IF NOT EXISTS `exodus_unison`");
Len += formatex(Query[Len], charsmax(Query)-Len, "(`Nev` varchar(32) NOT NULL, ");
Len += formatex(Query[Len], charsmax(Query)-Len, "`Felhasznalo` varchar(32) NOT NULL,");
Len += formatex(Query[Len], charsmax(Query)-Len, "`Jelszo` varchar(32) NOT NULL,");
Len += formatex(Query[Len], charsmax(Query)-Len, "`Arany` int(11) NOT NULL,");
Len += formatex(Query[Len], charsmax(Query)-Len, "`Tapasztalat` int(11) NOT NULL,");
Len += formatex(Query[Len], charsmax(Query)-Len, "`Osszes` int(11) NOT NULL, ");
Len += formatex(Query[Len], charsmax(Query)-Len, "`Kulcs` int(11) NOT NULL, ");
Len += formatex(Query[Len], charsmax(Query)-Len, "`Ero` int(11) NOT NULL, ");
Len += formatex(Query[Len], charsmax(Query)-Len, "`Gyorsasag` int(11) NOT NULL, ");
Len += formatex(Query[Len], charsmax(Query)-Len, "`Elet` int(11) NOT NULL, ");
Len += formatex(Query[Len], charsmax(Query)-Len, "`Aranydrop` int(11) NOT NULL, ");
Len += formatex(Query[Len], charsmax(Query)-Len, "`Ujratekercs` int(11) NOT NULL, ");
Len += formatex(Query[Len], charsmax(Query)-Len, "`Aranyora` int(11) NOT NULL, ");
Len += formatex(Query[Len], charsmax(Query)-Len, "`Aranyoraido` int(11) NOT NULL, ");
Len += formatex(Query[Len], charsmax(Query)-Len, "`Aranyorahasznal` int(11) NOT NULL, ");
for(new i;i < 3; i++)
Len += formatex(Query[Len], charsmax(Query)-Len, "`F_%d` int(11) NOT NULL,", i);
for(new i;i < 3; i++)
Len += formatex(Query[Len], charsmax(Query)-Len, "`L_%d` int(11) NOT NULL,", i);
Len += formatex(Query[Len], charsmax(Query)-Len, "`Szint` int(11) NOT NULL, `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)");
SQL_ThreadQuery(g_SqlTuple, "createTableThread", Query);
}
public Load(id) {
static Query[10048];
new Data[1], Name[32];
get_user_name(id, Name, 31);
Data[0] = id;
formatex(Query, charsmax(Query), "SELECT * FROM `exodus_unison` WHERE Nev = ^"%s^";", Name);
SQL_ThreadQuery(g_SqlTuple, "QuerySelectData", Query, Data, 1);
}
public QuerySelectData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
log_amx("%s", Error);
return;
}
else {
new id = Data[0];
new Username[32]
new Password[32]
if(SQL_NumRows(Query) > 0) {
SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Felhasznalo"), Username[id], charsmax(Username[]));
SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Jelszo"), Password[id], charsmax(Password[]));
Arany[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Arany"));
Tapasztalat[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Tapasztalat"));
Szint[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Szint"));
Kulcs[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Kulcs"));
Ero[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Ero"));
Gyorsasag[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Gyorsasag"));
Elet[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Elet"));
Aranydrop[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Aranydrop"));
Aranyora[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Aranyora"));
Ujratekercs[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Ujratekercs"));
Aranyoraido[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Aranyoraido"));
Aranyoraido[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Aranyorahasznal"));
for(new i=0;i<3;i++)
OsszesNev[i] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Osszes"));
for(new i=0;i < 3; i++)
{
new String[64];
formatex(String, charsmax(String), "F_%d", i);
OsszesSkin[i][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, String));
}
for(new i;i < 3; i++)
{
new String[64];
formatex(String, charsmax(String), "L_%d", i);
Lada[i][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, String));
}
}
else
{
Save(id);
}
}
}
public Save(id)
{
static Query[256];
new Name[32]; get_user_name(id, Name, 31);
formatex(Query, charsmax(Query), "INSERT INTO `exodus_unison` (`Nev`) VALUES (^"%s^");", Name);
SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
}
public Update(id)
{
static Query[10048];
new Len;
new Name[32]; get_user_name(id, Name, 31);
new Username[32]
new Password[32]
Len += formatex(Query[Len], charsmax(Query), "UPDATE `exodus_unison` SET Arany = ^"%i^", ",Arany[id]);
Len += formatex(Query[Len], charsmax(Query)-Len, "Felhasznalo = ^"%s^", ", Username[id]);
Len += formatex(Query[Len], charsmax(Query)-Len, "Jelszo = ^"%s^", ", Password[id]);
Len += formatex(Query[Len], charsmax(Query)-Len, "Tapasztalat = ^"%i^", ", Tapasztalat[id]);
Len += formatex(Query[Len], charsmax(Query)-Len, "Kulcs = ^"%i^", ", Kulcs[id]);
Len += formatex(Query[Len], charsmax(Query)-Len, "Ero = ^"%i^", ", Ero[id]);
Len += formatex(Query[Len], charsmax(Query)-Len, "Gyorsasag = ^"%i^", ", Gyorsasag[id]);
Len += formatex(Query[Len], charsmax(Query)-Len, "Elet = ^"%i^", ", Elet[id]);
Len += formatex(Query[Len], charsmax(Query)-Len, "Aranydrop = ^"%i^", ", Aranydrop[id]);
Len += formatex(Query[Len], charsmax(Query)-Len, "Aranyora = ^"%i^", ", Aranyora[id]);
Len += formatex(Query[Len], charsmax(Query)-Len, "Ujratekercs = ^"%i^", ", Aranydrop[id]);
Len += formatex(Query[Len], charsmax(Query)-Len, "Aranyoraido = ^"%i^", ", Aranydrop[id]+get_user_time(id));
Len += formatex(Query[Len], charsmax(Query)-Len, "Aranyorahasznal = ^"%i^", ", Aranyorahasznal[id]);
for(new i=0;i < 3; i++)
Len += formatex(Query[Len], charsmax(Query)-Len, "Osszes = ^"%i^", ", OsszesNev[i]);
for(new i=0;i < 3; i++)
Len += formatex(Query[Len], charsmax(Query)-Len, "F_%d = ^"%i^", ", i, OsszesSkin[i][id]);
for(new i;i < 3; i++)
Len += formatex(Query[Len], charsmax(Query)-Len, "L_%d = ^"%i^", ", i, Lada[i][id]);
Len += formatex(Query[Len], charsmax(Query)-Len, "Szint = ^"%i^" WHERE Nev = ^"%s^";", Szint[id], Name);
SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
}
public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
if(FailState == TQUERY_CONNECT_FAILED)
set_fail_state("[HIBA*] NEM TUDTAM CSATLAKOZNI AZ ADATBAZISHOZ!");
else if(FailState == TQUERY_QUERY_FAILED)
set_fail_state("Query Error");
if(Errcode)
log_amx("[HIBA*] HIBAT DOBTAM: %s",Error);
}
public QuerySetData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
log_amx("%s", Error);
return;
}
}
public Piac(id)
{
new cim[121];
format(cim, charsmax(cim), "%s \r- \dPiac^n\yArany: \d(%d)", PREFIX, Arany[id]);
new menu = menu_create(cim, "Piac_h");
menu_additem(menu, "Eladás", "1", 0);
menu_additem(menu, "Vásárlás", "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), "%s \r- \dEladás", PREFIX);
new menu = menu_create(cim, "eladas_h" );
if(kirakva[id] == 0){
for(new i=0; i < 3; i++) {
if(kicucc[id] == 0) format(ks1, charsmax(ks1), "Válaszd ki a Tárgyat!");
else if(kicucc[id] == i) format(ks1, charsmax(ks1), "Tárgy: \r%s", Fegyverek[i-1][0]);
}
menu_additem(menu, ks1 ,"0",0);
}
if(kirakva[id] == 0){
format(ks2, charsmax(ks2), "\dĂra: \r%d \yArany", Erteke[id]);
menu_additem(menu,ks2,"1",0);
}
if(Erteke[id] != 0 && kirakva[id] == 0)
{
menu_additem(menu,"Mehet a piacra!","2",0);
}
if(Erteke[id] != 0 && kirakva[id] == 1)
menu_additem(menu,"\wVisszavonás","-2",0);
menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
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 < 3; i++) {
if(kicucc[id] == i && OsszesSkin[i-1][id] >= 1) {
ColorChat(0, GREEN, "%s ^3%s ^1Kirakott egy ^4%s-^1t %d Aranyért",Chat_PREFIX, name, Fegyverek[i-1][0], Erteke[id]);
kirakva[id] = 1;
}
}
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public fvalaszt(id) {
new szMenuTitle[ 121 ],cim[121];
format( szMenuTitle, charsmax( szMenuTitle ), "[%s] \r- \dFegyver Válasz", PREFIX);
new menu = menu_create( szMenuTitle, "fvalaszt_h" );
for(new i=0; i < 3; i++) {
if(OsszesSkin[i][id] > 0) {
new Num[6];
num_to_str(i, Num, 5);
formatex(cim, charsmax(cim), "\w%s \d(%d) \yDarab", Fegyverek[i][0], OsszesSkin[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)
{
//Ne lopkodj kurva anyád. :D (eredeti AUTHOR: exodus)
client_cmd(id, "messagemode ARANY");
}
else if(ertek < 20)
{
ColorChat(id, GREEN, "%s ^1Nem tudsz eladni fegyver^3 20 Arany alatt.", Chat_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), "%s \r- \dVásárlás", PREFIX);
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 < 3; a++) {
if(kicucc[players[i]] == a)
formatex(mpont,256,"\y%s\d(\wEladĂł: \r%s \d| \wĂra: \r%d\d)", Fegyverek[a-1][0], 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;
//Ne lopkodj kurva anyád. :D (eredeti AUTHOR: exodus)
set_task(2.0, "vido");
for(new i=0; i < 3; i++) {
if(Arany[id] >= Erteke[player] && kicucc[player] == i && kirakva[player] == 1)
{
kirakva[player] = 0;
ColorChat(0, GREEN, "%s ^3%s ^1vett egy ^4%s ^1%s-tól %d Aranyért!",Chat_PREFIX, name, Fegyverek[i-1][0], name2, Erteke[player]);
Arany[player] += Erteke[player];
Arany[id] -= Erteke[player];
OsszesSkin[i-1][id] ++;
OsszesSkin[i-1][player] --;
kicucc[player] = 0;
Erteke[player] = 0;
}
}
}
public vido()
{
pido = 0;
}
public sayhook(id)
{
new message[192], Name[32], none[2][32], chat[192];
read_args(message, 191);
remove_quotes(message);
formatex(none[0], 31, ""), formatex(none[1], 31, " ");
if (message[0] == '@' || message[0] == '/' || message[0] == '#' || message[0] == '!' || equal (message, ""))
return PLUGIN_HANDLED;
if(!equali(message, none[0]) && !equali(message, none[1]))
{
get_user_name(id, Name, 31);
if(is_user_alive(id))
{
if(get_user_flags(id) & TULAJ)
formatex(chat, 191, "^x04[Tulajdonos][Lv%d.]^3%s^x04: %s", Szint[id], Name, message);
else if(get_user_flags(id) & ADMIN)
formatex(chat, 191, "^x04[Admin][Lv%d.]^x03%s^x04: %s", Szint[id], Name, message);
else if(get_user_flags(id) & VIP)
formatex(chat, 191, "^x04[VIP][Lv%d.]^x03%s^x04: %s", Szint[id], Name, message);
else if(Szint[id] >= 0)
formatex(chat, 191, "^x04[Lv%d.]^x03%s^x01: %s", Szint[id], Name, message);
}
else {
get_user_team(id, color, 9);
if(get_user_flags(id) & TULAJ)
formatex(chat, 191, "^x01*Halott*^x04[Tulajdonos][Lv%d.]^3 %s^x04: %s", Szint[id], Name, message);
else if(get_user_flags(id) & ADMIN)
formatex(chat, 191, "^x01*Halott*^x04[Admin][Lv%d.]^x03 %s^x04: %s", Szint[id], Name, message);
else if(get_user_flags(id) & VIP)
formatex(chat, 191, "^x01*Halott*^x04[VIP][Lv%d.]^x03 %s^x04: %s", Szint[id], Name, message);
else if(Szint[id] >= 0)
formatex(chat, 191, "^x01*Halott*^x04[Lv%d.]^x03 %s^x01: %s", Szint[id], Name, message);
}
switch(cs_get_user_team(id))
{
case 1: ColorChat(0, RED, chat);
case 2: ColorChat(0, BLUE, chat);
}
if(cs_get_user_team(id) == CS_TEAM_SPECTATOR)
ColorChat(0, GREY, chat);
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
public LoadUsers()
{
new file[200];
get_configsdir(file, 199);
format(file, 199, "%s/regusers.ini", file);
if (!file_exists(file))
return PLUGIN_HANDLED;
new pFile = fopen(file, "rt");
if(pFile)
{
new Line[192];
new s[2][32];
while(!feof(pFile))
{
fgets(pFile, Line, 191);
if(Line[0] == ';' || strlen(Line) < 5)
continue;
parse(Line, s[0], 31, s[1], 31);
copy(data[uname], charsmax(data[uname]), s[0]);
copy(data[pass], charsmax(data[pass]), s[1]);
ArrayPushArray(regusers, data);
}
fclose(pFile);
}
return 0;
}
public SaveUser(const sName[], const sPass[])
{
new file[200];
copy(data[uname], charsmax(data[uname]), sName);
copy(data[pass], charsmax(data[pass]), sPass);
ArrayPushArray(regusers, data);
get_configsdir(file, 199);
format(file, 199, "%s/regusers.ini", file);
new pFile = fopen(file, "at");
if(pFile)
{
new line[70];
formatex(line, 69, "^"%s^" ^"%s^"", sName, sPass);
fputs(pFile, line);
fclose(pFile);
}
return PLUGIN_HANDLED;
}
public sendmessage(color[])
{
new teamName[10];
for(new player = 1; player < get_maxplayers(); player++)
{
get_user_team (player, teamName, 9);
teamf (player, color);
elkuldes(player, Temp);
teamf(player, teamName);
}
}
public teamf(player, team[])
{
message_begin(MSG_ONE, get_user_msgid("TeamInfo"), _, player);
write_byte(player);
write_string(team);
message_end();
}
public elkuldes(player, Temp[])
{
message_begin( MSG_ONE, get_user_msgid( "SayText" ), _, player);
write_byte( player );
write_string( Temp );
message_end();
}
stock print_color(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, "!y", "^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
}
stock get_player_name(id){
static Nev[32];
get_user_name(id, Nev,31);
return Nev;
}
public plugin_end() {
SQL_FreeHandle(g_SqlTuple);
}
public Fegyomenu(id)
{
if(is_user_alive(id) || is_user_connected(id)) {
strip_user_weapons(id)
give_item(id, "weapon_knife")
new menu = menu_create("\rGlobal Unison Mode \w- \dFegyverMenü","fegyver_h")
menu_additem(menu,"M4A1","1",0)
menu_additem(menu,"AK47","2",0)
menu_additem(menu,"AWP","3",0)
menu_additem(menu,"FAMAS","4",0)
menu_additem(menu,"MP5","5",0)
menu_additem(menu,"M3","6",0)
menu_setprop(menu, MPROP_BACKNAME, "Vissza")
menu_setprop(menu, MPROP_NEXTNAME, "Tovább")
menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
menu_display(id, menu, 0)
}
}
public fegyver_h(id,menu,item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
}
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:
{
pisztoly(id)
give_item(id, "weapon_m4a1")
cs_set_user_bpammo(id,CSW_M4A1,120)
}
case 2:
{
pisztoly(id)
give_item(id, "weapon_ak47")
cs_set_user_bpammo(id,CSW_AK47,120)
}
case 3:
{
pisztoly(id)
give_item(id, "weapon_awp")
cs_set_user_bpammo(id,CSW_AWP,50)
}
case 4:
{
pisztoly(id)
give_item(id, "weapon_famas")
cs_set_user_bpammo(id,CSW_FAMAS,120)
}
case 5:
{
pisztoly(id)
give_item(id, "weapon_mp5navy")
cs_set_user_bpammo(id,CSW_MP5NAVY,150)
}
case 6:
{
pisztoly(id)
give_item(id, "weapon_m3")
cs_set_user_bpammo(id,CSW_M3,30)
}
}
}
public pisztoly(id)
{
new menu = menu_create("\rGlobal Unison Mode \w- \dPisztolyMenü","pisztoly_h")
menu_additem(menu,"Deagle","1",0)
menu_additem(menu,"USP","2",0)
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
menu_display(id,menu,0)
}
public pisztoly_h(id,menu,item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
}
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:
{
give_item(id, "weapon_knife")
give_item(id, "weapon_deagle")
cs_set_user_bpammo(id,CSW_DEAGLE,200)
}
case 2:
{
give_item(id, "weapon_knife")
give_item(id, "weapon_usp")
cs_set_user_bpammo(id,CSW_USP,200)
}
}
}