Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- #include <amxmisc>
- #include <cstrike>
- #include <fun>
- #include <engine>
- #include <hamsandwich>
- #include <sqlx>
- /* Bonus List
- ---------------
- [1] Spawn with 125 HP (by cvar) and 100 AP (by cvar)
- [2] Set "VIP" in Score Board (by cvar)
- [3] Guns menu after 3 rounds (by cvar)
- [4] VIP Model (by cvar)
- [5] Kill HP Refill (by cvar)
- [6] Double Jump (by cvar)
- Other
- ---------------
- [1] Auto Stop on specified maps
- [2] VIP Event
- */
- //#define DEBUG
- #define VIP_EVENT
- #define user_host "89.34.24.240"
- #define user_user "dgamero_vip"
- #define user_pass "w#HZA)wChjw["
- #define user_db "dgamero_vip"
- #define vip_model "vip"
- new Handle:g_Tuple, g_Name[33][32], g_Pass[33][32], g_Query[256], g_rounds[33], jumpnum[33], bool:is_user_vip[33], bool:jump[33];
- new cvar_spawnhp, cvar_spawnap, cvar_vipflag, cvar_guns, cvar_rounds, cvar_model, cvar_benefits, cvar_double, cvar_msg;
- #if defined VIP_EVENT
- new ora = -1, bool:event_on, bool:first;
- const TASK_VERIFICARE = 123123;
- new cvar_start, cvar_stop;
- #endif
- new const maps_running[] = {
- "awp_",
- "36hp"
- };
- public plugin_precache() {
- #if defined DEBUG
- server_print("[VIP SQLx] Forward ^"plugin_precache^" called");
- #endif
- g_Tuple = SQL_MakeDbTuple(user_host, user_user, user_pass, user_db, 10);
- new filelocation[128];
- get_configsdir(filelocation, charsmax(filelocation));
- add(filelocation, charsmax(filelocation), "/vip.cfg");
- if(!file_exists(filelocation))
- log_amx("[VIP SQLx] We can't found ^"vip.cfg^" from ^"configs^" folder to execute, running with default settings");
- else
- server_cmd("exec %s", filelocation);
- new model[128];
- formatex(model, charsmax(model), "models/player/%s/%s.mdl", vip_model, vip_model);
- precache_model(model);
- }
- public plugin_init() {
- #if defined DEBUG
- server_print("[VIP SQLx] Forward ^"plugin_init^" called");
- #endif
- new mapname[32];
- get_mapname(mapname, charsmax(mapname));
- for(new i = 0; i < sizeof maps_running; i++)
- {
- if(equal(mapname, maps_running[i]))
- {
- log_amx("Plugin it stop automatically on the map: %s", mapname);
- pause("ade");
- }
- }
- register_plugin("SQL VIP", "1.1", "LondoN eXtream");
- register_cvar("london_sql_vip", "1.1", FCVAR_SERVER|FCVAR_SPONLY);
- set_cvar_string("london_sql_vip", "1.1");
- register_clcmd("say /vip", "showinfo");
- cvar_spawnhp = register_cvar("vip_sqlx_spawn_hp", "125");
- cvar_spawnap = register_cvar("vip_sqlx_spawn_ap", "100");
- cvar_vipflag = register_cvar("vip_sqlx_scoreboard", "1");
- cvar_guns = register_cvar("vip_sqlx_guns", "1");
- cvar_rounds = register_cvar("vip_sqlx_rounds", "3");
- cvar_model = register_cvar("vip_sqlx_model", "1");
- cvar_benefits = register_cvar("vip_sqlx_benefits", "1");
- cvar_double = register_cvar("vip_sqlx_double", "1");
- cvar_msg = register_cvar("vip_sqlx_msg", "1");
- #if defined VIP_EVENT
- first = true;
- cvar_start = register_cvar("vip_sqlx_free_hour_start", "22");
- cvar_stop = register_cvar("vip_sqlx_free_hour_stop", "10");
- set_task(60.0, "check_vip", TASK_VERIFICARE);
- #endif
- RegisterHam(Ham_Spawn, "player", "HamPlayerSpawnPost", 1);
- if(get_pcvar_num(cvar_vipflag))
- {
- #if defined DEBUG
- server_print("[VIP SQLx] Score Board Attrib found, begin code");
- #endif
- register_message(get_user_msgid("ScoreAttrib"), "make_score_board");
- }
- if(get_pcvar_num(cvar_benefits)) {
- #if defined DEBUG
- server_print("[VIP SQLx] Death Msg Event Found");
- #endif
- register_cvar("vip_sqlx_kill_hp", "15");
- register_cvar("vip_sqlx_kill_ap", "10");
- register_cvar("vip_sqlx_max_hp", "125");
- register_event("DeathMsg", "event_death", "a");
- }
- }
- public showinfo(id) show_motd(id, "addons/amxmodx/configs/vip.html");
- public check_vip(task) {
- time(ora, _, _);
- event_on = (ora >= get_pcvar_num(cvar_start) && ora < get_pcvar_num(cvar_stop)) ? true : false;
- if(event_on) {
- if(first) {
- server_print("VIP EVENT IS ON");
- first = false;
- }
- new players[32], num, id;
- get_players(players, num);
- for(new i = 0; i < num; i++) {
- id = players[i];
- if(!is_user_connected(id) || is_user_vip[id])
- continue;
- is_user_vip[id] = true;
- }
- }
- }
- public event_death() {
- static killer; killer = read_data(1);
- static victim; victim = read_data(2);
- static head; head = read_data(3);
- if(!killer || killer == victim || !is_user_alive(killer))
- return;
- new hp = head ? get_cvar_num("vip_sqlx_kill_hp") : (get_cvar_num("vip_sqlx_kill_hp") * 2);
- new ap = head ? get_cvar_num("vip_sqlx_kill_ap") : (get_cvar_num("vip_sqlx_kill_ap") * 2);
- set_user_health(killer, clamp(get_user_health(killer) + hp, 0, get_cvar_num("vip_sqlx_max_hp")));
- set_user_armor(killer, clamp(get_user_armor(killer) + ap, 0, 100));
- }
- public make_score_board(msg_id, msg_dest, msg_reciver) {
- static id; id = get_msg_arg_int(1);
- if(is_user_vip[id])
- set_msg_arg_int(2, ARG_BYTE, (1<<2));
- }
- public HamPlayerSpawnPost(id) {
- if(!is_user_alive(id) || !is_user_vip[id])
- return;
- #if defined DEBUG
- server_print("[VIP SQLx] Event: Ham_Spawn | On user: %s", g_Name[id]);
- #endif
- set_user_health(id, get_pcvar_num(cvar_spawnhp));
- set_user_armor(id, get_pcvar_num(cvar_spawnap));
- if(get_pcvar_num(cvar_model))
- cs_set_user_model(id, vip_model);
- if(get_pcvar_num(cvar_guns)) {
- g_rounds[id]++;
- if(g_rounds[id] >= get_pcvar_num(cvar_rounds))
- show_guns_menu(id);
- }
- }
- public client_PreThink(id) {
- if(!get_pcvar_num(cvar_double) || !is_user_vip[id] || !is_user_alive(id))
- return PLUGIN_HANDLED;
- new button = get_user_button(id);
- new obutton = get_user_oldbutton(id);
- if((button & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obutton & IN_JUMP)) {
- if(jumpnum[id] < 1) {
- jump[id] = true;
- jumpnum[id]++;
- return PLUGIN_CONTINUE;
- }
- }
- if((button & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND)) {
- jumpnum[id] = 0;
- return PLUGIN_CONTINUE;
- }
- return PLUGIN_CONTINUE;
- }
- public client_PostThink(id) {
- if(!(get_pcvar_num(cvar_double)) || !is_user_vip[id] || !is_user_alive(id) || !jump[id])
- return;
- new Float:vector_velocity[3];
- entity_get_vector(id, EV_VEC_velocity, vector_velocity);
- vector_velocity[2] = random_float(265.0, 285.0);
- entity_set_vector(id, EV_VEC_velocity, vector_velocity);
- jump[id] = false;
- }
- public show_guns_menu(id) {
- static menu_title[] = "\rChoose Your Guns";
- static menu_id;
- menu_id = menu_create(menu_title, "guns_menu_handler");
- menu_additem(menu_id, "\wM4A1 + Deagle");
- menu_additem(menu_id, "\wAK47 + Deagle");
- menu_additem(menu_id, "\wAWP + Deagle");
- menu_setprop(menu_id, MPROP_EXIT, MEXIT_ALL);
- menu_display(id, menu_id, 0);
- }
- public guns_menu_handler(id, menu_id, item) {
- if(!(item == MENU_EXIT))
- {
- switch(item)
- {
- case 0:
- {
- strip_user_weapons(id);
- give_item(id, "weapon_knife");
- give_item(id, "weapon_deagle");
- give_item(id, "weapon_m4a1");
- cs_set_user_bpammo(id, CSW_DEAGLE, 35);
- cs_set_user_bpammo(id, CSW_M4A1, 90);
- Print(id, "^x04[VIP]^x01 Ai ales setul de arme");
- }
- case 1:
- {
- strip_user_weapons(id);
- give_item(id, "weapon_knife");
- give_item(id, "weapon_deagle");
- give_item(id, "weapon_ak47");
- cs_set_user_bpammo(id, CSW_DEAGLE, 35);
- cs_set_user_bpammo(id, CSW_AK47, 90);
- Print(id, "^x04[VIP]^x01 Ai ales setul de arme");
- }
- case 2:
- {
- strip_user_weapons(id);
- give_item(id, "weapon_knife");
- give_item(id, "weapon_deagle");
- give_item(id, "weapon_awp");
- cs_set_user_bpammo(id, CSW_DEAGLE, 35);
- cs_set_user_bpammo(id, CSW_AWP, 35);
- Print(id, "^x04[VIP]^x01 Ai ales AWP");
- }
- }
- }
- menu_destroy(menu_id);
- return PLUGIN_HANDLED;
- }
- public client_connect(id) {
- #if defined DEBUG
- server_print("[VIP SQLx] Forward ^"client_connect^" called");
- #endif
- if(is_user_bot(id) || is_user_hltv(id))
- return;
- get_user_name(id, g_Name[id], charsmax(g_Name));
- get_user_info(id, "_pass", g_Pass[id], charsmax(g_Pass));
- formatex(g_Query, charsmax(g_Query), "SELECT * FROM vip_users WHERE username=^"%s^" AND password=^"%s^"", g_Name[id], g_Pass[id]);
- new QueryData[1];
- QueryData[0] = id;
- SQL_ThreadQuery(g_Tuple, "ReadInfo", g_Query, QueryData, sizeof(QueryData));
- }
- public ReadInfo(FailState, Handle:Query, szError[], Errcode, Data[], DataSize) {
- #if defined DEBUG
- server_print("[VIP SQLx] Query retriving vip information have executed");
- #endif
- QueryStatus(FailState, szError, Errcode);
- new Player = Data[0];
- if(SQL_NumResults(Query) > 0) {
- is_user_vip[Player] = true;
- server_print("[VIP SQLx] %s connected with success", g_Name[Player]);
- if(get_pcvar_num(cvar_msg))
- Print(0, "^x04[VIP]^x03 %s^x01 has connected", g_Name[Player]);
- }
- else
- {
- server_print("[VIP SQLx] %s is not a VIP", g_Name[Player]);
- server_print("[VIP SQLx] It let them connect");
- }
- }
- public QueryStatus(FailState, szError[], Errcode) {
- if(FailState == TQUERY_CONNECT_FAILED) {
- log_amx("[MySQL Error] %s [Error Code: %d]", szError, Errcode);
- return;
- }
- else if(FailState == TQUERY_QUERY_FAILED) {
- log_amx("[MySQL Error] %s [Error Code: %d]", szError, Errcode);
- return;
- }
- else if(Errcode) {
- log_amx("[MySQL Error] Error Code: %d", Errcode);
- return;
- }
- #if defined DEBUG
- server_print("[VIP SQLx] No error found during execute SQL Query");
- #endif
- }
- stock Print(const id, const input[], any:...) {
- new count = 1, players[32];
- static msg[191];
- vformat(msg, 190, input, 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();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement