#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <cstrike>
#include <engine>
#include <fun>
#include <fakemeta>
#include <sqlx>
/////////////////////////////////////////////////////
#define PLUGIN "New Plugin"
#define AUTHOR "Unknown"
#define VERSION "1.0"
/////////////////////////////////////////////////////
#define Tablename "deadrising"
//////////////////////////////////////////////////////
#define TULAJ ADMIN_IMMUNITY
#define FOADMIN ADMIN_LEVEL_E
#define ADMIN ADMIN_BAN
#define VIP ADMIN_LEVEL_H
/////////////////////////////////////////////////////
#define MAX_MUSIC 32
/////////////////////////////////////////////////////
//-------------------------------------------------
//Beállitások
//-------------------------------------------------
///////////////////////////////////////////////////
new const gMenuPrefix[] = "\r.:[Dead~Rising]:.";
new const gChatPrefix[] = ".:[Dead~Rising]:.";
///////////////////////////////////////////////////
///////////////////////////////////////////////////
new gHud[33], gMasodpercek[33], gDollar[33], gKills[33], gRang[33];
enum gePlayer{eKills, geUnclockedSkin};
new gPlayer[gePlayer][33];
enum _:eWData {eWName[64],eWFile[64],eWKill,eWType[64],};
new giActiveSkin[10][33], giWeaponKills[10][33], iLoadedSkins, iTempID, iMaxPlayers, iChoosedMode, SynHud;
new Array: aWSkins;
new betoltve[33];
new musics[MAX_MUSIC][64], music_count, play_count, bool:gkorvegi[33];
new g_sPrefix[33][64];
new bool:g_bChangedPrefix;
///////////////////////////////////////////////////
enum _:Rangs { Szint[32], Xp[8] };
new const Rangok[][Rangs] =
{
{ "Silver I", 20 },
{ "Silver II", 40 },
{ "Silver III", 60 },
{ "Silver IV", 80 },
{ "Silver Elite", 100 },
{ "Silver Elite Master", 120 },
{ "Gold Nova I", 140 },
{ "Gold Nova II", 160 },
{ "Gold Nova III", 180 },
{ "Gold Nova Master", 200 },
{ "Master Guardian I", 220 },
{ "Master Guardian II", 240 },
{ "Master Guardian Elite", 260 },
{ "Distinguished Master Guardian", 280 },
{ "Legendary Eagle", 300 },
{ "Legendary Eagle Master", 320 },
{ "The Global Elite", 340 },
{ "saXXo Tanitványa", 360 },
{ "Sexuális", 380 },
{ "Meleg", 400 },
{ "Homokos", 420 },
{ "Milf", 440 },
{ "Hot Mom Mifl", 460 },
{ "Pornó Sztár", 480 },
{ "MacY Tanitványa", 500 }
};
//////////////////////////////////////////////////////////
public plugin_init(){
register_plugin(PLUGIN, VERSION, AUTHOR);
register_impulse(201, "main_menu");
register_clcmd("say /menu", "main_menu");
register_clcmd("say", "sayhook");
register_clcmd("type_itemremoveoradd", "type_itemammount");
register_event("SendAudio", "PlayMusic", "a", "2&%!MRAD_ctwin") //CT Körvégi
register_event("SendAudio", "PlayMusic", "a", "2&%!MRAD_terwin") // T Körvégi
register_clcmd("message_prefix", "Type_Prefix");
RegisterHam(Ham_Killed, "player", "PlayerKilled_p", 1);
RegisterHam(Ham_Item_Deploy, "weapon_m4a1", "WeaponChange_p", 1);
RegisterHam(Ham_Item_Deploy, "weapon_ak47", "WeaponChange_p", 1);
RegisterHam(Ham_Item_Deploy, "weapon_awp", "WeaponChange_p", 1);
RegisterHam(Ham_Item_Deploy, "weapon_scout", "WeaponChange_p", 1);
RegisterHam(Ham_Item_Deploy, "weapon_famas", "WeaponChange_p", 1);
RegisterHam(Ham_Item_Deploy, "weapon_xm1014", "WeaponChange_p", 1);
RegisterHam(Ham_Item_Deploy, "weapon_knife", "WeaponChange_p", 1);
RegisterHam(Ham_Item_Deploy, "weapon_deagle", "WeaponChange_p", 1);
RegisterHam(Ham_Item_Deploy, "weapon_usp", "WeaponChange_p", 1);
RegisterHam(Ham_Item_Deploy, "weapon_glock18", "WeaponChange_p", 1);
//iMaxPlayers = get_maxplayers();
SynHud = CreateHudSyncObj();
set_task(1.0, "AutoCheck",_,_,_,"b");
}
public AutoCheck()
{
new p[32],n;
get_players(p,n,"ch");
for(new i=0;i<n;i++)
{
new id = p[i];
if(gHud[id])
{
InfoHud(id);
}
}
}
public InfoHud(id)
{
new Target = pev(id, pev_iuser1) == 4 ? pev(id, pev_iuser2) : id;
if(is_user_alive(id))
{
new iMasodperc, iPerc, iOra, Nev[32];
get_user_name(id, Nev, 31);
iMasodperc = gMasodpercek[id] + get_user_time(id);
iPerc = iMasodperc / 60;
iOra = iPerc / 60;
iMasodperc = iMasodperc - iPerc * 60;
iPerc = iPerc - iOra * 60;
set_hudmessage(255, 255, 255, 0.01, 0.15, 0, 6.0, 1.1, 0.0, 0.0, -1);
ShowSyncHudMsg(id, SynHud, "Üdv %s! ^n^nÖlés: [ %d ] ^nRang: [ %s ] ^nJátssz idő: %i óra %i perc %i mp", Nev, gKills[id], Rangok[gRang[id]][Szint], iOra, iPerc, iMasodperc);
}
else
{
new iMasodperc, iPerc, iOra;
iMasodperc = gMasodpercek[Target] + get_user_time(Target);
iPerc = iMasodperc / 60;
iOra = iPerc / 60;
iMasodperc = iMasodperc - iPerc * 60;
iPerc = iPerc - iOra * 60;
set_hudmessage(255, 255, 255, 0.01, 0.15, 0, 6.0, 1.1, 0.0, 0.0, -1);
ShowSyncHudMsg(id, SynHud, "Nézett játékos adatai: ^n^nÖlés: [ %d ] ^nRang: [ %s ] ^nJátssz idő: %i óra %i perc %i mp", gKills[Target],Rangok[gRang[Target]][Szint], iOra, iPerc, iMasodperc);
}
}
public plugin_precache(){
LoadSkins();
}
public LoadSkins(){
aWSkins = ArrayCreate(eWData);
new sPath[40];
get_configsdir(sPath, charsmax(sPath));
format(sPath, charsmax(sPath), "%s/skins.ini", sPath);
if(!file_exists(sPath)){
log_amx("[HIBA]: Ez a fájl nem létezik: (%s).", sPath);
return;
}
if(file_exists(sPath)){
enum aDatas{eName[64],eFile[64],eKill2[64],eType[64],};
new sData[aDatas];
new sLineData[512], iLine;
new iFile = fopen(sPath, "rt");
while(!feof(iFile)){
fgets(iFile, sLineData, charsmax(sLineData));
replace(sLineData, charsmax(sLineData), "^n", "");
if(sLineData[0] == ';' || !sLineData[0]) continue;
parse(sLineData, sData[eName], charsmax(sData), sData[eFile], charsmax(sData), sData[eKill2], charsmax(sData),
sData[eType], charsmax(sData));
remove_quotes(sData[eName]);remove_quotes(sData[eFile]);
remove_quotes(sData[eKill2]);remove_quotes(sData[eType]);
static eData[eWData];
copy(eData[eWName], sizeof(eData[eWName]) - 1, sData[eName]);
copy(eData[eWFile], sizeof(eData[eWFile]) - 1, sData[eFile]);
eData[eWKill] = str_to_num(sData[eKill2]);
copy(eData[eWType], sizeof(sData[eWType])- 1, sData[eType]);
ArrayPushArray(aWSkins, eData);
precache_model(eData[eWFile]);
iLine++;
}
fclose(iFile);
iLoadedSkins = iLine;
}
new sBuffer[192], sFile[128], sData[64], pFile;
get_localinfo("amxx_configsdir", sFile, charsmax(sFile));
format(sFile, charsmax(sFile), "%s/korvegi_zene.ini", sFile);
pFile = fopen(sFile, "rt");
if(pFile) {
while(music_count < MAX_MUSIC && !feof(pFile)) {
fgets(pFile, sBuffer, charsmax(sBuffer));
trim(sBuffer);
if(sBuffer[0] != ';' && parse(sBuffer, sData, charsmax(sData))) {
if(contain(sData, ".mp3") != -1) {
precache_sound(sData)
copy(musics[music_count++], charsmax(musics[]), sData)
}
}
}
fclose(pFile);
}
else
write_file(sFile, ";^"mappa/valami.mp3^"");
if(!music_count) set_fail_state("Nem találtunk zenéket! Ellenőrizd a fájlt ^"addons/amxmodx/configs/korvegi_zene.ini^"");
}
public PlayMusic() {
new Mp3File[128], players[32], num, tempid;
formatex(Mp3File, charsmax(Mp3File), "sound/%s", musics[play_count == music_count ? (play_count = 0) : play_count++]);
get_players(players, num, "c");
for(new i; i < num; i++) {
tempid = players[i];
if(gkorvegi[tempid]) {
client_cmd(tempid, "mp3 play %s", Mp3File);
}
}
}
stock bool:user_roundmusic(id) {
new azonosit[8];
get_user_info(id, "korvegi", azonosit, charsmax(azonosit));
if(equal(azonosit, "0")) return false;
return true;
}
public WeaponChange_p(iEnt){
new id = get_pdata_cbase(iEnt, 41, 4);
if(!is_user_alive(id) || !is_user_connected(id))
return HAM_IGNORED;
static eData[eWData];
new iWeapon = cs_get_weapon_id(iEnt);
switch(iWeapon){
case CSW_M4A1: {if(giActiveSkin[0][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, giActiveSkin[0][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
case CSW_AK47: {if(giActiveSkin[1][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, giActiveSkin[1][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
case CSW_AWP: {if(giActiveSkin[2][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, giActiveSkin[2][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
case CSW_SCOUT: {if(giActiveSkin[3][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, giActiveSkin[3][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
case CSW_FAMAS: {if(giActiveSkin[4][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, giActiveSkin[4][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
case CSW_XM1014: {if(giActiveSkin[5][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, giActiveSkin[5][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
case CSW_KNIFE: {if(giActiveSkin[6][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, giActiveSkin[6][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
case CSW_DEAGLE: {if(giActiveSkin[7][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, giActiveSkin[7][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
case CSW_USP: {if(giActiveSkin[8][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, giActiveSkin[8][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
case CSW_GLOCK18: {if(giActiveSkin[9][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, giActiveSkin[9][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
}
return HAM_IGNORED;
}
public PlayerKilled_p(iVictim, iKiller)
{
new iVictim = read_data(1);
new iKiller = read_data(2);
while(gKills[iVictim] >= Rangok[gRang[iVictim]][Xp])
if(iVictim == iKiller || !iKiller || !iVictim)
return PLUGIN_HANDLED;
gKills[iVictim]++;
new iWeapon = get_user_weapon(iKiller);
new id;
gPlayer[eKills][iKiller]++;
hp_up(iKiller);
switch(iWeapon){
case CSW_M4A1:{
giWeaponKills[0][iKiller] += 1;
set_hudmessage(0, 255, 0, -1.00, 0.85, 0, 6.0, 2.0);
ShowSyncHudMsg(id, SynHud, "+1 M4A1 Pont",iKiller);
}
case CSW_AK47:{
giWeaponKills[1][iKiller] += 1;
set_hudmessage(0, 255, 0, -1.00, 0.85, 0, 6.0, 2.0);
ShowSyncHudMsg(id, SynHud,"+1 AK47 Pont",iKiller);
}
case CSW_AWP:{
giWeaponKills[2][iKiller] += 1;
set_hudmessage(0, 255, 0, -1.00, 0.85, 0, 6.0, 2.0);
ShowSyncHudMsg(id, SynHud, "+1 AWP Pont",iKiller);
}
case CSW_SCOUT:{
giWeaponKills[3][iKiller] += 1;
set_hudmessage(0, 255, 0, -1.00, 0.85, 0, 6.0, 2.0);
ShowSyncHudMsg(id, SynHud, "+1 SCOUT Pont",iKiller);
}
case CSW_FAMAS:{
giWeaponKills[4][iKiller] += 1;
set_hudmessage(0, 255, 0, -1.00, 0.85, 0, 6.0, 2.0);
ShowSyncHudMsg(id, SynHud, "+1 FAMAS Pont",iKiller);
}
case CSW_XM1014:{
giWeaponKills[5][iKiller] += 1;
set_hudmessage(0, 255, 0, -1.00, 0.85, 0, 6.0, 2.0);
ShowSyncHudMsg(id, SynHud,"+1 XM1014 Pont",iKiller);
}
case CSW_KNIFE:{
giWeaponKills[6][iKiller] += 1;
set_hudmessage(0, 255, 0, -1.00, 0.85, 0, 6.0, 2.0);
ShowSyncHudMsg(id, SynHud,"+1 KNIFE Pont",iKiller);
}
case CSW_DEAGLE:{
giWeaponKills[7][iKiller] += 1;
set_hudmessage(0, 255, 0, -1.00, 0.85, 0, 6.0, 2.0);
ShowSyncHudMsg(id, SynHud, "+1 DEAGLE Pont",iKiller);
}
case CSW_USP:{
giWeaponKills[8][iKiller] += 1;
set_hudmessage(0, 255, 0, -1.00, 0.85, 0, 6.0, 2.0);
ShowSyncHudMsg(id, SynHud,"+1 USP Pont",iKiller);
}
case CSW_GLOCK18:{
giWeaponKills[9][iKiller] += 1;
set_hudmessage(0, 255, 0, -1.00, 0.85, 0, 6.0, 2.0);
ShowSyncHudMsg(id, SynHud, "+1 GLOCK18 Pont",iKiller);
}
}
return PLUGIN_HANDLED;
}
public hp_up(id)
{
new iHealth = get_user_health(id);
if(iHealth < 100)
set_user_health(id, iHealth + 5);
if(iHealth > 100)
set_user_health(id, 110);
}
public main_menu(id){
new sTitle[128];
format(sTitle, charsmax(sTitle), "%s \dFőmenü", gMenuPrefix);
new iMenu = menu_create(sTitle, "menu_main_h");
formatex(sTitle, charsmax(sTitle), "\y[\wFegyver Skinek\y]");
menu_additem(iMenu, sTitle, "1", 0);
menu_additem(iMenu, "\y[\wBeállitások\y]", "2", 0);
menu_additem(iMenu, "\y[\wAdatkezelő\y]", "3", 0);
menu_additem(iMenu, "\y[\wPrefix Menü\y]", "4", 0);
menu_setprop(iMenu, MPROP_EXITNAME, "Kilépés");
menu_display(id, iMenu, 0);
}
public menu_main_h(id, iMenu, iItem){
if(iItem == MENU_EXIT){menu_destroy(iMenu);return;}
new sData[10], sName[64];
new iAccess, iCallback;
menu_item_getinfo(iMenu, iItem, iAccess, sData, charsmax(sData), sName, charsmax(sName), iCallback);
new iKey = str_to_num(sData);
switch(iKey)
{
case 1: menu_storage(id);
case 2: beallitasok(id);
case 3:
if(get_user_flags(id) & TULAJ) adminmenuopen(id);
else
client_print_color(id, print_team_default, "^4%s ^1Ezt a menüt csak ^4Tulajdonos ^1használhatja^3.", gChatPrefix)
case 4: Prefix_menu(id);
}
playspk(id);
}
public menu_storage(id){
new sTitle[128];
formatex(sTitle, charsmax(sTitle), "%s \dVálassz fegyvert", gMenuPrefix);
new iMenu = menu_create(sTitle, "menu_storage_h");
menu_additem(iMenu, "\rM4A1 \ySkinek", "0", 0);
menu_additem(iMenu, "\rAK47 \ySkinek", "1", 0);
menu_additem(iMenu, "\rAWP \ySkinek", "2", 0);
menu_additem(iMenu, "\rSCOUT \ySkinek", "3", 0);
menu_additem(iMenu, "\rFAMAS \ySkinek", "4", 0);
menu_additem(iMenu, "\rXM1014 \ySkinek", "5", 0);
menu_additem(iMenu, "\rKÉS \ySkinek", "6", 0);
menu_additem(iMenu, "\rDEAGLE \ySkinek", "7", 0);
menu_additem(iMenu, "\rUSP \ySkinek", "8", 0);
menu_additem(iMenu, "\rGLOCK18 \ySkinek", "9", 0);
menu_setprop(iMenu, MPROP_EXITNAME, "Kilépés");
menu_setprop(iMenu, MPROP_BACKNAME, "Vissza");
menu_setprop(iMenu, MPROP_NEXTNAME, "Tovább");
menu_display(id, iMenu, 0);
}
public menu_storage_h(id, iMenu, iItem){
if(iItem == MENU_EXIT){menu_destroy(iMenu);return;}
new sData[10], sName[64];
new iAccess, iCallback;
menu_item_getinfo(iMenu, iItem, iAccess, sData, charsmax(sData), sName, charsmax(sName), iCallback);
new iKey = str_to_num(sData);
switch(iKey){
case 0..10: WeaponSkins(id, iKey);
}
playspk(id);
}
public WeaponSkins(id, iWhich){
new sTitle[128], sRow[8];
static eData[eWData];
format(sTitle, charsmax(sTitle), "%s \dFegyver Skinek", gMenuPrefix);
new iMenu = menu_create(sTitle, "WeaponSkins_h");
switch(iWhich){
case 0:{
for(new i; i < iLoadedSkins; i++)
{
ArrayGetArray(aWSkins, i, eData);
if(equali(eData[eWType], "M4A1")){
num_to_str(i, sRow, 7);
if(gPlayer[eKills][id] < eData[eWKill])
formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eKills]);
else
formatex(sTitle, charsmax(sTitle), "\w%s \y*Elérhető", eData[eWName]);
menu_additem(iMenu, sTitle, sRow);
}
}
}
case 1:{
for(new i; i < iLoadedSkins; i++)
{
ArrayGetArray(aWSkins, i, eData);
if(equali(eData[eWType], "AK47")){
num_to_str(i, sRow, 7);
if(gPlayer[eKills][id] < eData[eWKill])
formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eWKill]);
else
formatex(sTitle, charsmax(sTitle), "\w%s \y*Elérhető", eData[eWName]);
menu_additem(iMenu, sTitle, sRow);
}
}
}
case 2:{
for(new i; i < iLoadedSkins; i++)
{
ArrayGetArray(aWSkins, i, eData);
if(equali(eData[eWType], "AWP")){
num_to_str(i, sRow, 7);
if(gPlayer[eKills][id] < eData[eWKill])
formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eWKill]);
else
formatex(sTitle, charsmax(sTitle), "\w%s \y*Elérhető", eData[eWName]);
menu_additem(iMenu, sTitle, sRow);
}
}
}
case 3:{
for(new i; i < iLoadedSkins; i++)
{
ArrayGetArray(aWSkins, i, eData);
if(equali(eData[eWType], "SCOUT")){
num_to_str(i, sRow, 7);
if(gPlayer[eKills][id] < eData[eWKill])
formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eWKill]);
else
formatex(sTitle, charsmax(sTitle), "\w%s \y*Elérhető", eData[eWName]);
menu_additem(iMenu, sTitle, sRow);
}
}
}
case 4:{
for(new i; i < iLoadedSkins; i++)
{
ArrayGetArray(aWSkins, i, eData);
if(equali(eData[eWType], "FAMAS")){
num_to_str(i, sRow, 7);
if(gPlayer[eKills][id] < eData[eWKill])
formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eWKill]);
else
formatex(sTitle, charsmax(sTitle), "\w%s \y*Elérhető", eData[eWName]);
menu_additem(iMenu, sTitle, sRow);
}
}
}
case 5:{
for(new i; i < iLoadedSkins; i++)
{
ArrayGetArray(aWSkins, i, eData);
if(equali(eData[eWType], "XM1014")){
num_to_str(i, sRow, 7);
if(gPlayer[eKills][id] < eData[eWKill])
formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eWKill]);
else
formatex(sTitle, charsmax(sTitle), "\w%s \y*Elérhető", eData[eWName]);
menu_additem(iMenu, sTitle, sRow);
}
}
}
case 6:{
for(new i; i < iLoadedSkins; i++)
{
ArrayGetArray(aWSkins, i, eData);
if(equali(eData[eWType], "KNIFE")){
num_to_str(i, sRow, 7);
if(gPlayer[eKills][id] < eData[eWKill])
formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eWKill]);
else
formatex(sTitle, charsmax(sTitle), "\w%s", eData[eWName]);
menu_additem(iMenu, sTitle, sRow);
}
}
}
case 7:{
for(new i; i < iLoadedSkins; i++)
{
ArrayGetArray(aWSkins, i, eData);
if(equali(eData[eWType], "DEAGLE")){
num_to_str(i, sRow, 7);
if(gPlayer[eKills][id] < eData[eWKill])
formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eWKill]);
else
formatex(sTitle, charsmax(sTitle), "\w%s \y*Elérhető", eData[eWName]);
menu_additem(iMenu, sTitle, sRow);
}
}
}
case 8:{
for(new i; i < iLoadedSkins; i++)
{
ArrayGetArray(aWSkins, i, eData);
if(equali(eData[eWType], "USP")){
num_to_str(i, sRow, 7);
if(gPlayer[eKills][id] < eData[eWKill])
formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eWKill]);
else
formatex(sTitle, charsmax(sTitle), "\w%s", eData[eWName]);
menu_additem(iMenu, sTitle, sRow);
}
}
}
case 9:{
for(new i; i < iLoadedSkins; i++)
{
ArrayGetArray(aWSkins, i, eData);
if(equali(eData[eWType], "GLOCK18")){
num_to_str(i, sRow, 7);
if(gPlayer[eKills][id] < eData[eWKill])
formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eWKill]);
else
formatex(sTitle, charsmax(sTitle), "\w%s \y*Elérhető", eData[eWName]);
menu_additem(iMenu, sTitle, sRow);
}
}
}
}
menu_setprop(iMenu, MPROP_EXITNAME, "Kilépés");
menu_setprop(iMenu, MPROP_BACKNAME, "Vissza");
menu_setprop(iMenu, MPROP_NEXTNAME, "Tovább");
menu_display(id, iMenu, 0);
}
public WeaponSkins_h(id, iMenu, iItem){
if(iItem == MENU_EXIT){menu_destroy(iMenu);return;}
new sData[10], sName[64];
new iAccess, iCallback;
static eData[eWData];
menu_item_getinfo(iMenu, iItem, iAccess, sData, charsmax(sData), sName, charsmax(sName), iCallback);
new iKey = str_to_num(sData);
ArrayGetArray(aWSkins, iKey, eData);
if(equali(eData[eWType], "M4A1")){
if(gPlayer[eKills][id] < eData[eWKill])
client_print_color(id, print_team_default, "^4%s ^1Nincs elegendő ölésed a skinhez.", gChatPrefix);
else{
giActiveSkin[0][id] = iKey;
client_print_color(id, print_team_default, "^4%s ^1Kiválasztottad a(z) %s skint.", gChatPrefix, eData[eWName]);
}
}
else if(equali(eData[eWType], "AK47")){
if(gPlayer[eKills][id] < eData[eWKill])
client_print_color(id, print_team_default, "%s ^1Nincs elegendő ölésed a skinhez.", gChatPrefix);
else{
giActiveSkin[1][id] = iKey;
client_print_color(id, print_team_default, "^4%s ^1Kiválasztottad a(z) %s skint.", gChatPrefix, eData[eWName]);
}
}
else if(equali(eData[eWType], "AWP")){
if(gPlayer[eKills][id] < eData[eWKill])
client_print_color(id, print_team_default, "^4%s ^1Nincs elegendő ölésed a skinhez.", gChatPrefix);
else{
giActiveSkin[2][id] = iKey;
client_print_color(id, print_team_default, "^4%s ^1Kiválasztottad a(z) %s skint.", gChatPrefix, eData[eWName]);
}
}
else if(equali(eData[eWType], "SCOUT")){
if(gPlayer[eKills][id] < eData[eWKill])
client_print_color(id, print_team_default, "^4%s ^1Nincs elegendő ölésed a skinhez.", gChatPrefix);
else{
giActiveSkin[3][id] = iKey;
client_print_color(id, print_team_default, "^4%s ^1Kiválasztottad a(z) %s skint.", gChatPrefix, eData[eWName]);
}
}
else if(equali(eData[eWType], "FAMAS")){
if(gPlayer[eKills][id] < eData[eWKill])
client_print_color(id, print_team_default, "^4%s ^1Nincs elegendő ölésed a skinhez.", gChatPrefix);
else{
giActiveSkin[4][id] = iKey;
client_print_color(id, print_team_default, "^4%s ^1Kiválasztottad a(z) %s skint.", gChatPrefix, eData[eWName]);
}
}
else if(equali(eData[eWType], "XM1014")){
if(gPlayer[eKills][id] < eData[eWKill])
client_print_color(id, print_team_default, "^4%s ^1Nincs elegendő ölésed a skinhez.", gChatPrefix);
else{
giActiveSkin[5][id] = iKey;
client_print_color(id, print_team_default, "^4%s ^1Kiválasztottad a(z) %s skint.", gChatPrefix, eData[eWName]);
}
}
else if(equali(eData[eWType], "KNIFE")){
if(gPlayer[eKills][id] < eData[eWKill])
client_print_color(id, print_team_default, "^4%s ^1Nincs elegendő ölésed a skinhez.", gChatPrefix);
else{
giActiveSkin[6][id] = iKey;
client_print_color(id, print_team_default, "^4%s ^1Kiválasztottad a(z) %s skint.", gChatPrefix, eData[eWName]);
}
}
else if(equali(eData[eWType], "DEAGLE")){
if(gPlayer[eKills][id] < eData[eWKill])
client_print_color(id, print_team_default, "^4%s ^1Nincs elegendő ölésed a skinhez.", gChatPrefix);
else{
giActiveSkin[7][id] = iKey;
client_print_color(id, print_team_default, "^4%s ^1Kiválasztottad a(z) %s skint.", gChatPrefix, eData[eWName]);
}
}
else if(equali(eData[eWType], "USP")){
if(gPlayer[eKills][id] < eData[eWKill])
client_print_color(id, print_team_default, "^4%s ^1Nincs elegendő ölésed a skinhez.", gChatPrefix);
else{
giActiveSkin[8][id] = iKey;
client_print_color(id, print_team_default, "^4%s ^1Kiválasztottad a(z) %s skint.", gChatPrefix, eData[eWName]);
}
}
else if(equali(eData[eWType], "GLOCK18")){
if(gPlayer[eKills][id] < eData[eWKill])
client_print_color(id, print_team_default, "^4%s ^1Nincs elegendő ölésed a skinhez.", gChatPrefix);
else{
giActiveSkin[9][id] = iKey;
client_print_color(id, print_team_default, "^4%s ^1Kiválasztottad a(z) %s skint.", gChatPrefix, eData[eWName]);
}
}
playspk(id);
}
public beallitasok(id){
new sTitle[128];
formatex(sTitle, charsmax(sTitle), "%s \dBeállitások", gMenuPrefix);
new iMenu = menu_create(sTitle, "Beallitasok_h");
menu_additem(iMenu, gHud[id] == 1 ? "HUD: \rBekapcsolva":"HUD: \rKikapcsolva", "1",0);
menu_additem(iMenu, gkorvegi[id] == true ? "Zene: \rBekapcsolva":"Zene: \rKikapcsolva", "2",0);
menu_setprop(iMenu, MPROP_EXITNAME, "Kilépés");
menu_display(id, iMenu, 0);
}
public Beallitasok_h(id, iMenu, iItem){
if(iItem == MENU_EXIT){menu_destroy(iMenu);return;}
new sData[10], sName[64];
new iAccess, iCallback;
menu_item_getinfo(iMenu, iItem, iAccess, sData, charsmax(sData), sName, charsmax(sName), iCallback);
new iKey = str_to_num(sData);
switch(iKey)
{
case 1: gHud[id] = !gHud[id]
case 2: gkorvegi[id] = !gkorvegi[id]
}
beallitasok(id);
}
public adminmenuopen(id){
new sTitle[128];
format(sTitle, charsmax(sTitle), "%s \dJátékosok kezelése", gMenuPrefix);
new iMenu = menu_create(sTitle, "adminmenuopen_h");
menu_additem(iMenu, "\wPont küldés", "1", 0);
menu_additem(iMenu, "\wPont elvétel", "2", 0);
menu_setprop(iMenu, MPROP_EXITNAME, "Kilépés");
menu_display(id, iMenu, 0);
}
public adminmenuopen_h(id, iMenu, iItem){
if(iItem == MENU_EXIT){menu_destroy(iMenu);return;}
new sData[10], sName[64];
new iAccess, iCallback;
menu_item_getinfo(iMenu, iItem, iAccess, sData, charsmax(sData), sName, charsmax(sName), iCallback);
new iKey = str_to_num(sData);
switch(iKey){
case 1: {menu_chooseplayer(id); iChoosedMode = 0;}
case 2: {menu_chooseplayer(id); iChoosedMode = 1;}
}
playspk(id);
}
public menu_chooseplayer(id){
new sTitle[128], iPlayers[32], iPNum, iId, sName[64], sId[10];
format(sTitle, charsmax(sTitle), "%s \dVálassz játékost", gMenuPrefix);
new iMenu = menu_create(sTitle, "menu_chooseplayer_h");
get_players(iPlayers, iPNum);
for(new i; i < iPNum; i++)
{
iId = iPlayers[i];
if(is_user_bot(iId) || !is_user_connected(iId))
continue;
get_user_name(iId, sName, charsmax(sName));
num_to_str(iId, sId, charsmax(sId));
menu_additem(iMenu, sName, sId, 0);
}
menu_setprop(iMenu, MPROP_EXITNAME, "Kilépés");
menu_display(id, iMenu, 0);
}
public menu_chooseplayer_h(id, iMenu, iItem){
if(iItem == MENU_EXIT){menu_destroy(iMenu);return;}
new sData[10], sName[64];
new iAccess, iCallback;
menu_item_getinfo(iMenu, iItem, iAccess, sData, charsmax(sData), sName, charsmax(sName), iCallback);
iTempID = str_to_num(sData);
client_cmd(id, "messagemode type_itemremoveoradd");
playspk(id);
}
public type_itemammount(id){
new sItem[128], iItemAmmount, sSenderName[64], sTargetName[64];
read_args(sItem, charsmax(sItem));
remove_quotes(sItem);
get_user_name(id, sSenderName, charsmax(sSenderName));
get_user_name(iTempID, sTargetName, charsmax(sTargetName));
iItemAmmount = str_to_num(sItem);
if(iItemAmmount < 0){
client_print_color(id, print_team_default, "^4%s ^1Nem írhatsz ^40 ^1értéket^3.", gChatPrefix);
return PLUGIN_HANDLED;
}
switch(iChoosedMode){
case 0:{
for(new i = 0; i < 10; i++)
giWeaponKills[i][iTempID] += iItemAmmount;
client_print_color(id, print_team_default, "%s ^1Sikeresen jóváírtak:^4 %d ^1pontot, neki:^4 %s", gChatPrefix, iItemAmmount, sTargetName);
client_print_color(iTempID, print_team_default, "%s ^1jóváírtak neked^4 %d ^1pontot! BY:^4 %s", gChatPrefix, iItemAmmount, sTargetName);
client_print_color(id, print_team_default, "%s %s | Játékos: %s | összeg: %d | Tipus: pont jóváírás", gChatPrefix, sSenderName, sTargetName, iItemAmmount);
return PLUGIN_HANDLED;
}
case 1:{
for(new i = 0; i < 10; i++)
giWeaponKills[i][iTempID] -= iItemAmmount;
client_print_color(id, print_team_default, "%s ^1Sikeresen elvettek:^4 %d ^1, tőle:^4 %s", gChatPrefix, iItemAmmount, sTargetName);
client_print_color(iTempID, print_team_default, "%s ^1Elvettek tőled^4 %d ^1pontot! BY:^4 %s", gChatPrefix, iItemAmmount, sTargetName);
client_print_color(id, print_team_default, "%s %s | Játékos: %s | összeg: %d | Tipus: Pont elvétel", gChatPrefix, sSenderName, sTargetName, iItemAmmount);
return PLUGIN_HANDLED;
}
}
return PLUGIN_HANDLED;
}
//////////////////////////////
public Prefix_check(id)
{
if(g_bChangedPrefix)
{
client_print_color(id, print_team_default, "^4%s Prefixet legközelebb kilépés után változtathatsz.");
}
else
{
client_cmd(id, "messagemode message_prefix");
client_print_color(id, print_team_default, "^4%s ^1Írd be^4, ^1a prefixet^4!", gChatPrefix);
}
return PLUGIN_HANDLED;
}
public Type_Prefix(id)
{
new sPrefix[64];
read_args(sPrefix, charsmax(sPrefix));
remove_quotes(sPrefix);
new sMustnt[4];
sMustnt[0] = containi(sPrefix, "Admin");
sMustnt[1] = containi(sPrefix, "Tulaj");
sMustnt[2] = containi(sPrefix, "Vip");
sMustnt[3] = containi(sPrefix, "FőAdmin");
if(strlen(sPrefix) == 0)
{
client_print_color(id, print_team_default, "^4%s ^1Nem irhatsz prefixet!", gChatPrefix);
return PLUGIN_HANDLED;
}
else
{
if(gDollar[id] < 0)
{
client_print_color(id, print_team_default, "^4%s ^1Ingyenes a Prefix létrehozása/használata!.", gChatPrefix);
}
else if(sMustnt[0] != -1 || sMustnt[1] != -1 || sMustnt[2] != -1 || sMustnt[3] != -1)
{
client_print_color(id, print_team_default, "^4%s ^1Nem irhatsz olyan prefixet amibe szerepel a(z) !t[Admin, Tulaj, Vip, FőAdmin]", gChatPrefix);
}
else
{
client_print_color(id, print_team_default, "^4%s ^1Sikeresen létrehoztad a prefixet^4.", gChatPrefix);
g_bChangedPrefix = true;
g_sPrefix[id] = sPrefix;
}
}
return PLUGIN_CONTINUE;
}
public Prefix_menu(id)
{
new sTitle[128];
formatex(sTitle, charsmax(sTitle), "%s \wPrefix létrehozása^n\dDollár: \r%d\\$", gMenuPrefix, gDollar[id]);
new iMenu = menu_create(sTitle, "Prefix_menu_h");
formatex(sTitle, charsmax(sTitle), "\wPrefix létrehozás/megváltoztatás \d|\y0 Dollár");
menu_additem(iMenu, sTitle, "1", 0);
formatex(sTitle, charsmax(sTitle), "\wJelenlegi prefixed: \r[\d%s\r]", strlen(g_sPrefix[id]) == 0 ? "\wNincs": g_sPrefix[id]);
menu_additem(iMenu, sTitle, "2", 0);
menu_setprop(iMenu, MPROP_EXITNAME, "Kilépés");
menu_display(id, iMenu, 0);
}
public Prefix_menu_h(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
switch(item)
{
case 0:
{
Prefix_check(id);
}
case 1:
{
Prefix_menu(id);
}
}
return PLUGIN_HANDLED;
}
public client_putinserver(id){
if(is_user_bot(id))
return;
betoltve[id] = false;
gPlayer[eKills][id] = 0;
gPlayer[geUnclockedSkin][id] = 0;
gHud[id] = 1;
gRang[id] = 0;
gKills[id] = 0;
gkorvegi[id] = true;
g_bChangedPrefix = false;
for(new i = 0; i < 10; i++)
giActiveSkin[i][id] = -1;
for(new i = 0; i < 10; i++)
giWeaponKills[i][id] = 0;
SelectDataTable(id);
}
public client_disconnected(id)
{
if(is_user_bot(id))
return;
TableUpdate(id);
}
new Handle:g_SqlTuple;
public plugin_cfg()
{
//Kiszolgáló | Felhasználó | Jelszó | Adatbázis
g_SqlTuple = SQL_MakeDbTuple("", "", "", "");
CreateTable();
}
public CreateTable()
{
new iLen;
static sQuery[10048];
iLen += format(sQuery[iLen], charsmax(sQuery) - iLen, "CREATE TABLE IF NOT EXISTS \\`%s\\` ", Tablename);
iLen += format(sQuery[iLen], charsmax(sQuery) - iLen, "( ");
iLen += format(sQuery[iLen], charsmax(sQuery) - iLen, "\\`Id\\` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,");
iLen += format(sQuery[iLen], charsmax(sQuery) - iLen, "\\`SteamId\\` varchar(64) NOT NULL,");
iLen += format(sQuery[iLen], charsmax(sQuery) - iLen, "\\`gUnlockedSkin\\` int(11) NOT NULL,");
iLen += format(sQuery[iLen], charsmax(sQuery) - iLen, "\\`gOlesek\\` int(11) NOT NULL,");
iLen += format(sQuery[iLen], charsmax(sQuery) - iLen, "\\`gHud\\` int(11) NOT NULL,");
iLen += format(sQuery[iLen], charsmax(sQuery) - iLen, "\\`gMasodpercek\\` int(11) NOT NULL,");
iLen += format(sQuery[iLen], charsmax(sQuery) - iLen, "\\`gRang\\` int(11) NOT NULL,");
iLen += format(sQuery[iLen], charsmax(sQuery) - iLen, "\\`gOles\\` int(11) NOT NULL,");
iLen += format(sQuery[iLen], charsmax(sQuery) - iLen, "\\`gkorvegi\\` int(11) NOT NULL,");
iLen += format(sQuery[iLen], charsmax(sQuery) - iLen, "\\`Prefix\\` varchar(64) NOT NULL,");
for(new i = 0; i < 10; i++)
iLen += formatex(sQuery[iLen], charsmax(sQuery) - iLen, "\\`gWK%d\\` int(11) NOT NULL,", i);
for(new i = 0; i < 10; i++)
iLen += formatex(sQuery[iLen], charsmax(sQuery) - iLen, "\\`gMentettSkin_%d\\` int(11) NOT NULL,", i);
sQuery[iLen - 1] = ')';
sQuery[iLen] = 0;
SQL_ThreadQuery(g_SqlTuple, "TableCreateThread", sQuery);
}
public TableCreateThread(iFailState, Handle:sQuery, sError[], iErrcode, sData[], iDataSize, Float:fQueuetime)
{
if(iFailState == TQUERY_CONNECT_FAILED)
{
log_amx("[Create] Nem lehet csatlakozni az adatbázishoz!");
set_fail_state("[Create] Nem lehet csatlakozni az adatbázishoz!");
}
else if(iFailState == TQUERY_QUERY_FAILED)
{
log_amx("[Create] Lekérdezési hiba: %s", sError);
set_fail_state("[Create] Lekérdezési hiba");
}
else
{
log_amx("[Create] Tábla sikeresen létrehozva.");
}
if(iErrcode)
{
log_amx("[Create] Hiba:**!! %s !!**", sError);
}
}
public TableUpdate(id)
{
if(betoltve[id])
{
static sQuery[10048];
new iLen, g_sSteamID[64];
get_user_authid(id, g_sSteamID, charsmax(g_sSteamID));
iLen += formatex(sQuery[iLen], charsmax(sQuery), "UPDATE \\`%s\\` SET ", Tablename);
iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "gUnlockedSkin = ^"%i^", ", gPlayer[geUnclockedSkin][id]);
iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "gHud = ^"%i^", ", gHud[id]);
iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "gMasodpercek = ^"%i^", ", gMasodpercek[id] + get_user_time(id));
iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "gRang = ^"%i^",", gRang[id]);
iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "gOles = ^"%i^",", gKills[id]);
iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "gkorvegi = ^"%i^",", gkorvegi[id]);
iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "Prefix = ^"%s^", ", g_sPrefix[id]);
for(new i = 0; i < 10; i++)
iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "gWK%d = ^"%i^", ", i, giWeaponKills[i][id]);
for(new i = 0; i < 10; i++)
iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "gMentettSkin_%d = ^"%i^", ", i, giActiveSkin[i][id]);
iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "gOlesek = ^"%i^" WHERE Steamid = ^"%s^";", gPlayer[eKills][id], g_sSteamID);
SQL_ThreadQuery(g_SqlTuple, "QuerySetDataTable", sQuery);
}
}
public TableInsert(id)
{
static sQuery[10048], g_sSteamID[64];
get_user_authid(id, g_sSteamID, charsmax(g_sSteamID));
formatex(sQuery, charsmax(sQuery), "INSERT INTO \\`%s\\` (\\`SteamId\\`) VALUES (^"%s^");", Tablename, g_sSteamID);
SQL_ThreadQuery(g_SqlTuple, "QuerySetDataTable", sQuery);
betoltve[id] = true;
}
public SelectDataTable(id)
{
static sQuery[10048];
new sData[1], g_sSteamID[64];
sData[0] = id;
get_user_authid(id, g_sSteamID, charsmax(g_sSteamID));
formatex(sQuery, charsmax(sQuery), "SELECT * FROM \\`%s\\` WHERE SteamId = ^"%s^";", Tablename, g_sSteamID);
SQL_ThreadQuery(g_SqlTuple, "QuerySelectDataTable", sQuery, sData, 1);
}
public QuerySelectDataTable(iFailState, Handle:sQuery, sError[], iErrcode, sData[], iDataSize, Float:fQueuetime)
{
if(iFailState == TQUERY_CONNECT_FAILED || iFailState == TQUERY_QUERY_FAILED)
{
log_amx("[Insert] Hiba:**!! %s !!**", sError);
return;
}
else
{
new id = sData[0];
if(SQL_NumRows(sQuery) > 0)
{
gPlayer[geUnclockedSkin][id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "gUnlockedSkin"));
for(new i = 0; i < 10; i++){
new sString[64];
formatex(sString, charsmax(sString), "gWK%d", i);
giWeaponKills[i][id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, sString));
}
for(new i = 0; i < 10; i++){
new sString[64];
formatex(sString, charsmax(sString), "gMentettSkin_%d", i);
giActiveSkin[i][id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, sString));
}
gPlayer[eKills][id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "gOlesek"));
gHud[id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "gHud"));
gMasodpercek[id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "gMasodpercek"));
gKills[id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "gOles"));
gRang[id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "gRang"));
SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "gkorvegi"), gkorvegi[id], charsmax(gkorvegi[]));
SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "Prefix"), g_sPrefix[id], charsmax(g_sPrefix[]));
betoltve[id] = true;
}
else
{
TableInsert(id);
}
}
}
public QuerySetDataTable(iFailState, Handle:sQuery, sError[], iErrcode, sData[], iDataSize, Float:fQueuetime)
{
if(iFailState == TQUERY_CONNECT_FAILED || iFailState == TQUERY_QUERY_FAILED)
{
log_amx("[SetData] Hiba:**!! %s !!**", sError);
return;
}
}
public playspk(id){
client_cmd(id, "spk buttons/lightswitch2");
}
public sayhook(id)
{
new Message[192];
read_args(Message, charsmax(Message))
remove_quotes(Message)
if(strlen(Message) == 0 || Message[0] == '/')
return PLUGIN_HANDLED_MAIN;
new Death[16], sName[MAX_NAME_LENGTH];
get_user_name(id, sName, charsmax(sName));
new sRank[64], sColor[16];
switch(get_user_flags(id))
{
case TULAJ:{ sRank = "^4[^3Tulaj^4]"; sColor = "^4";}
case FOADMIN:{ sRank = "^4[^3FőAdmin^4]"; sColor = "^4";}
case ADMIN:{ sRank = "^4[^3Admin^4]"; sColor = "^4";}
case VIP:{ sRank = "^4[^3Vip^4]"; sColor = "^3";}
default:{ sRank = "^4[^3Játékos^4]"; sColor = "^1";}
}
for(new i = 1; i <= get_maxplayers(); i++)
{
if(is_user_connected(i) && !is_user_bot(i) || get_user_flags(id) & ADMIN_BAN)
{
formatex(Death, charsmax(Death), is_user_alive(id) ? "":"*Halott*");
client_print_color(i, print_team_default, "%s%s^3%s: %s%s", Death, sRank, sName, sColor, Message);
}
}
return PLUGIN_HANDLED_MAIN;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1038\\ f0\\ fs18 \n\\ par }
*/