Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2020
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 11.70 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <amxmodx>
  4. #include <cstrike>
  5. #include <fakemeta>
  6. #include <engine>
  7. #include <hamsandwich>
  8. #include <print_color>
  9. #include <inc_rang>
  10. #include <sqlx>
  11.  
  12. #define TABLENAME "sql_save"
  13. #define g_iMaxlevel 60
  14.  
  15. new g_iQuery[1024], g_sSteamid[32];
  16. new const SQLBELEPO[][] = { "db.synhosting.eu", "TuranDR", "Faszombeled12989", "TuranDR" };
  17. new Handle:g_SqlTuple;
  18.  
  19. enum _: g_eData{
  20.     g_sUspname[64],
  21.     g_sFile[64],
  22.     g_ieLevel[64],
  23.     Float:g_fDamage[64]
  24. };
  25. new g_iGold[33], g_iKills[33], g_iLevel[33], g_iExp[33], g_iSkin[33], g_sTitle[256];
  26. new const g_cSkins[][g_eData] ={
  27.     {"Alap USP", "models/v_usp.mdl", 0},
  28.     {"Spitfire", "models/uspskinek_DR/USP1.mdl", 3},
  29.     {"Night shark", "models/uspskinek_DR/USP2.mdl", 7},
  30.     {"Torque", "models/uspskinek_DR/USP3.mdl", 15},
  31.     {"Engraved camo", "models/uspskinek_DR/USP4.mdl", 20},
  32.     {"Bright line", "models/uspskinek_DR/USP5.mdl", 23},
  33.     {"Caiman", "models/uspskinek_DR/USP6.mdl", 25},
  34.     {"Chicken", "models/uspskinek_DR/USP7.mdl", 27},
  35.     {"Cyrex", "models/uspskinek_DR/USP8.mdl", 30},
  36.     {"Kill confirmed", "models/uspskinek_DR/USP9.mdl", 33},
  37.     {"Orion", "models/uspskinek_DR/USP10.mdl", 36},
  38.     {"Makarov PB", "models/uspskinek_DR/USP11.mdl", 39},
  39.     {"Comet", "models/uspskinek_DR/USP12.mdl", 40},
  40.     {"Hyper beast", "models/uspskinek_DR/USP13.mdl", 45},
  41.     {"Vexter blue", "models/uspskinek_DR/USP14.mdl", 4},
  42.     {"Fade \w(2x damage)", "models/uspskinek_DR/USP15.mdl", 50, 2.0}, //2x damage 15
  43.     {"Gold \w(3x damage)", "models/uspskinek_DR/USP16.mdl", 53, 3.0}, //3x damage 16
  44.     {"Silver \w(4x damage)", "models/uspskinek_DR/USP17.mdl", 55, 4.0}, //4x damage 17
  45.     {"Hitman \w(5x damage)", "models/uspskinek_DR/USP18.mdl", 60, 5.0} //5x damage 18
  46. }
  47. new const g_cExppoint[g_iMaxlevel] ={
  48.     50, 150, 300, 400, 500, 650, 800, 1000, 1150, 1300,
  49.     1550, 1700, 1850, 2000, 2150, 2400, 2550, 2700, 2900, 3050,
  50.     303200, 3300, 3500, 3750, 3990, 4120, 4530 ,4710, 4905, 5050,
  51.     5160, 5300, 5450, 5670, 5980, 6230, 6455, 6840, 7000, 7240,
  52.     7350, 7510, 7770, 7990, 8100, 8340, 8560, 8695, 8820, 9000,
  53.     10500, 10650, 10850, 11000, 12500, 12990, 13560, 15000, 15500, 16000//60
  54. };
  55. public plugin_init(){
  56.     register_plugin("Deathrunskinek", "1.0.0", "Turán*");
  57.    
  58.     RegisterHam(Ham_TakeDamage,"player","weapondamage",0);
  59.     register_event("CurWeapon", "Weaponchange", "be", "1=1");
  60.     register_clcmd("say /menu", "menu_mainmenu");
  61. }
  62. public weapondamage(iVictim, iInflicator, iKiller, Float:damage){
  63.     if(!is_user_connected(iKiller))
  64.         return;
  65.    
  66.     if(iVictim == iKiller || !iVictim)
  67.         return;
  68.    
  69.     if(iKiller != iVictim){
  70.         new iKillnum, sName[32];
  71.         get_user_name(iVictim, sName, charsmax(sName));
  72.         iKillnum = random_num(1,15);
  73.         g_iExp[iKiller] += iKillnum;
  74.         g_iGold[iKiller] += iKillnum;
  75.         g_iKills[iKiller]++;
  76.         check_level(iKiller);
  77.         print_color(iKiller, "Kaptal +%d xpt, +%d olest, +%d aranyat, %s megoleseert.",g_iExp[iKiller],g_iKills[iKiller],g_iGold[iKiller],sName);
  78.     }
  79.     if(get_user_weapon(iKiller) == CSW_USP && g_iSkin[iKiller] == 15){
  80.         SetHamParamFloat(4, damage * g_cSkins[15][g_fDamage])
  81.     }
  82.     else if(get_user_weapon(iKiller) == CSW_USP && g_iSkin[iKiller] == 16){
  83.         SetHamParamFloat(4, damage * g_cSkins[16][g_fDamage])
  84.     }
  85.     else if(get_user_weapon(iKiller) == CSW_USP && g_iSkin[iKiller] == 17){
  86.         SetHamParamFloat(4, damage * g_cSkins[17][g_fDamage])
  87.     }
  88.     else if(get_user_weapon(iKiller) == CSW_USP && g_iSkin[iKiller] == 18){
  89.         SetHamParamFloat(4, damage * g_cSkins[18][g_fDamage])
  90.     }
  91.    
  92. }
  93. public menu_mainmenu(iId){
  94.     new iMenu = menu_create("Fomenu | valassz valamit", "menu_mainmenu_h");
  95.    
  96.     menu_additem(iMenu, "USP skinek", "1",0);
  97.     menu_additem(iMenu, "Kesmenu", "2",0);
  98.     menu_additem(iMenu, "Shop", "3",0);
  99.     menu_additem(iMenu, "Informacio", "4",0);
  100.    
  101.     menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL);
  102.     menu_setprop(iMenu, MPROP_BACKNAME, "Vissza");
  103.     menu_setprop(iMenu, MPROP_NEXTNAME, "Kovetkezo");
  104.     menu_setprop(iMenu, MPROP_EXITNAME, "Kilepes");
  105.     menu_display(iId, iMenu, 0);
  106. }
  107. public menu_mainmenu_h(iId, iMenu, iItem){
  108.     if(iItem == MENU_EXIT){
  109.         menu_destroy(iMenu);
  110.         return PLUGIN_HANDLED;
  111.     }
  112.     new sData[6], iAccess;
  113.     menu_item_getinfo(iMenu, iItem, iAccess, sData, charsmax(sData));
  114.     new iKey = str_to_num(sData);
  115.     switch(iKey){
  116.         case 1:menu_uspskins(iId);
  117.             case 2:client_cmd(iId, "say /kes");
  118.             case 3:client_cmd(iId, "say /shop");
  119.             case 4:menu_infos(iId)
  120.         }
  121.     return PLUGIN_HANDLED;
  122. }
  123. public menu_uspskins(iId){
  124.     new sRow[7];
  125.     formatex(g_sTitle, charsmax(g_sTitle), "USP skinek | valassz skint");
  126.     new iMenu = menu_create(g_sTitle, "menu_uspskins_h");
  127.     for(new i = 0;i < sizeof(g_cSkins); i++){
  128.         if(g_iLevel[iId] >= g_cSkins[i][g_ieLevel]){
  129.             num_to_str(i, sRow, 6);
  130.             formatex(g_sTitle, charsmax(g_sTitle), "%s | feloldva", g_cSkins[i][g_sUspname]);
  131.             menu_additem(iMenu, g_sTitle, sRow);
  132.         }
  133.         else{
  134.             num_to_str(i, sRow, 6);
  135.             formatex(g_sTitle, charsmax(g_sTitle), "%s | %d. szinttol", g_cSkins[i][g_sUspname], g_cSkins[i][g_ieLevel]);
  136.             menu_additem(iMenu, g_sTitle, sRow);
  137.         }
  138.     }
  139.     menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL);
  140.     menu_setprop(iMenu, MPROP_BACKNAME, "Vissza");
  141.     menu_setprop(iMenu, MPROP_NEXTNAME, "Kovetkezo");
  142.     menu_setprop(iMenu, MPROP_EXITNAME, "Kilepes");
  143.     menu_display(iId, iMenu, 0);
  144. }
  145. public menu_uspskins_h(iId, iMenu, iItem){
  146.     if(iItem == MENU_EXIT){
  147.         menu_destroy(iMenu);
  148.         return PLUGIN_HANDLED;
  149.     }
  150.     new sData[6], iAccess;
  151.     menu_item_getinfo(iMenu, iItem, iAccess, sData, charsmax(sData));
  152.     new iKey = str_to_num(sData);
  153.    
  154.     if(g_iSkin[iId] == iKey && g_iLevel[iId] >= g_cSkins[iKey][g_ieLevel]){
  155.         print_color(iId, "Sikeresen kivalasztottad a(z) %s skint.", g_cSkins[iKey][g_sUspname])
  156.     }
  157.     else if(g_iLevel[iId] < g_cSkins[iKey][g_ieLevel]){
  158.         print_color(iId, "A %s skin %d szinttol erheto el..", g_cSkins[iKey][g_sUspname], g_cSkins[iKey][g_ieLevel])
  159.         g_iSkin[iId] = 0;
  160.     }
  161.     return PLUGIN_HANDLED;
  162. }
  163. public menu_infos(iId){
  164.     formatex(g_sTitle, charsmax(g_sTitle), "Informacio");
  165.     new iMenu = menu_create(g_sTitle, "menu_infos_h");
  166.    
  167.     for(new i = 0; i < sizeof(Chat_resz); i++){
  168.         formatex(g_sTitle, charsmax(g_sTitle), "Rangod: %s", Chat_resz[i][rang]);
  169.         menu_additem(iMenu , g_sTitle, "1",0);
  170.         formatex(g_sTitle, charsmax(g_sTitle), "Jogaid: %s", Chat_resz[i][rangflag]);
  171.         menu_additem(iMenu , g_sTitle, "2",0);
  172.         break;
  173.     }
  174.    
  175.     formatex(g_sTitle, charsmax(g_sTitle), "Aranyad: %d", g_iGold[iId]);
  176.     menu_additem(iMenu , g_sTitle, "3",0);
  177.     formatex(g_sTitle, charsmax(g_sTitle), "Oleseid: %d", g_iKills[iId]);
  178.     menu_additem(iMenu , g_sTitle, "4",0);
  179.     formatex(g_sTitle, charsmax(g_sTitle), "Szinted: %d | XP: %d", g_iLevel[iId], g_iExp[iId]);
  180.     menu_additem(iMenu , g_sTitle, "5",0);
  181.    
  182.     menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL);
  183.     menu_setprop(iMenu, MPROP_BACKNAME, "Vissza");
  184.     menu_setprop(iMenu, MPROP_NEXTNAME, "Kovetkezo");
  185.     menu_setprop(iMenu, MPROP_EXITNAME, "Kilepes");
  186.     menu_display(iId, iMenu, 0);
  187. }
  188. public menu_infos_h(iId, iMenu, iItem){
  189.     if(iItem == MENU_EXIT){
  190.         menu_destroy(iMenu);
  191.         return PLUGIN_HANDLED;
  192.     }
  193.     if(iItem < 6)
  194.         menu_infos(iId);
  195.    
  196.     return PLUGIN_HANDLED;
  197. }
  198. public check_level(iId){
  199.     if(is_user_bot(iId) && is_user_connected(iId))
  200.         return PLUGIN_HANDLED;
  201.    
  202.     while(g_iExp[iId] >= g_cExppoint[g_iLevel[iId]]){
  203.         if(g_iLevel[iId] < g_iMaxlevel){
  204.             g_iLevel[iId]++;
  205.             print_color(iId, "Sikeres szintlepes szinted: %d/%d.",g_iLevel[iId], g_iMaxlevel);
  206.         }
  207.     }
  208.     if(g_iLevel[iId] == g_iMaxlevel)
  209.         print_color(iId, "Elerted a(z) %d. szintet, ami a jelenlegi max.", g_iMaxlevel);
  210.    
  211.     if(g_iLevel[iId] == g_iMaxlevel && g_iExp[iId] > g_cExppoint[g_iLevel[iId]]){
  212.         g_iExp[iId] = g_cExppoint[g_iLevel[iId]];
  213.         sql_save(iId)
  214.         sql_update(iId)
  215.     }
  216.     if(g_iLevel[iId] >= g_iMaxlevel){
  217.         g_iLevel[iId] = g_iMaxlevel;
  218.         sql_save(iId)
  219.         sql_update(iId)
  220.     }
  221.     return PLUGIN_HANDLED;
  222. }
  223. public Weaponchange(iId){
  224.     new iWeapon = get_user_weapon(iId);
  225.    
  226.     for(new i;i < sizeof(g_cSkins); i++){
  227.         if(g_iSkin[iId] == i && iWeapon == CSW_USP){
  228.             set_pev(iId, pev_viewmodel2, g_cSkins[i][g_sFile]);
  229.         }
  230.     }
  231. }
  232. public plugin_precache(){
  233.     for(new i;i < sizeof(g_cSkins); i++){
  234.         precache_model(g_cSkins[i][g_sFile]);
  235.     }
  236. }
  237. public client_connect(iId){
  238.     if(is_user_bot(iId))
  239.         return;
  240.     get_user_authid(iId, g_sSteamid, charsmax(g_sSteamid));
  241.     sql_load(iId);
  242.     g_iGold[iId] = 0;
  243.     g_iKills[iId] = 0;
  244.     g_iLevel[iId] = 0;
  245.     g_iExp[iId] = 0;
  246.     g_iSkin[iId] = 0;
  247. }
  248. public client_disconnected(iId){
  249.     if(is_user_bot(iId))
  250.         return;
  251.     sql_save(iId);
  252.     g_iGold[iId] = 0;
  253.     g_iKills[iId] = 0;
  254.     g_iLevel[iId] = 0;
  255.     g_iExp[iId] = 0;
  256.     g_iSkin[iId] = 0;
  257. }
  258. public plugin_cfg(){
  259.     g_SqlTuple = SQL_MakeDbTuple(SQLBELEPO[0], SQLBELEPO[1], SQLBELEPO[2], SQLBELEPO[3]);
  260.     new Len = 0;
  261.     Len += formatex(g_iQuery[Len], charsmax(g_iQuery), "CREATE TABLE IF NOT EXISTS `%s`", TABLENAME);
  262.     Len += formatex(g_iQuery[Len], charsmax(g_iQuery)-Len, "(`Steamid` varchar(64) NOT NULL,");
  263.     Len += formatex(g_iQuery[Len], charsmax(g_iQuery)-Len, "`Arany` int(11) NOT NULL,");
  264.     Len += formatex(g_iQuery[Len], charsmax(g_iQuery)-Len, "`Oles` int(11) NOT NULL,");
  265.     Len += formatex(g_iQuery[Len], charsmax(g_iQuery)-Len, "`Szint` int(11) NOT NULL,");
  266.     Len += formatex(g_iQuery[Len], charsmax(g_iQuery)-Len, "`Xp` int(11) NOT NULL, `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)");
  267.     SQL_ThreadQuery(g_SqlTuple, "createTableThread", g_iQuery);
  268. }
  269. public createTableThread(FailState, Handle:g_iQuery, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  270.     if(FailState == TQUERY_CONNECT_FAILED)
  271.         set_fail_state("[*HIBA*] NEM LEHET KAPCSOLODNI AZ ADATBAZISHOZ!");
  272.     else if(FailState == TQUERY_QUERY_FAILED)
  273.         set_fail_state("[*HIBA*] A LEKERDEZES MEGSZAKADT!");
  274.     if(Errcode)
  275.         log_amx("[*HIBA*] PROBLEMA A LEKERDEZESNEL! ( %s )",Error);
  276. }
  277. public sql_load(iId){
  278.     new Data[2];
  279.     Data[0] = iId;
  280.     Data[1] = get_user_userid(iId);
  281.    
  282.     formatex(g_iQuery, charsmax(g_iQuery), "SELECT * FROM `%s` WHERE Steamid = ^"%s^";", TABLENAME, g_sSteamid)
  283.     SQL_ThreadQuery(g_SqlTuple, "sql_load_thr", g_iQuery, Data, 2);
  284. }
  285. public sql_load_thr(FailState, Handle:g_iQuery, Error[], Errcode, Data[], DataSize, Float:Queuetime){
  286.     if(FailState == TQUERY_CONNECT_FAILED)
  287.         set_fail_state("[*HIBA*] NEM LEHET KAPCSOLODNI AZ ADATBAZISHOZ!");
  288.     else if(FailState == TQUERY_QUERY_FAILED)
  289.         set_fail_state("[*HIBA*] A LEKERDEZES MEGSZAKADT!");
  290.     if(Errcode)
  291.         log_amx("[*HIBA*] PROBLEMA A LEKERDEZESNEL! ( %s )",Error);
  292.    
  293.     new iId = Data[0];
  294.     if(get_user_userid(iId) != Data[1])
  295.         return;
  296.    
  297.     if(SQL_NumRows(g_iQuery) > 0){
  298.         g_iGold[iId] = SQL_ReadResult(g_iQuery, SQL_FieldNameToNum(g_iQuery, "Arany"));
  299.         g_iKills[iId] = SQL_ReadResult(g_iQuery, SQL_FieldNameToNum(g_iQuery, "Oles"));
  300.         g_iLevel[iId] = SQL_ReadResult(g_iQuery, SQL_FieldNameToNum(g_iQuery, "Szint"));
  301.         g_iExp[iId] = SQL_ReadResult(g_iQuery, SQL_FieldNameToNum(g_iQuery, "Xp"));
  302.     }
  303.     else{
  304.         sql_save(iId);
  305.     }
  306. }
  307. public sql_update(iId){
  308.     new Len = 0;
  309.     Len += formatex(g_iQuery[Len], charsmax(g_iQuery), "UPDATE `%s` SET gold = ^"%i^", ",TABLENAME, g_iGold[iId]);
  310.     Len += formatex(g_iQuery[Len], charsmax(g_iQuery)-Len, "Oles = ^"%i^", ", g_iKills[iId]);
  311.     Len += formatex(g_iQuery[Len], charsmax(g_iQuery)-Len, "Szint = ^"%i^", ", g_iLevel[iId]);
  312.     Len += formatex(g_iQuery[Len], charsmax(g_iQuery)-Len, "Xp = ^"%i^" WHERE Steamid = ^"%s^";", g_iExp[iId], g_sSteamid);
  313.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", g_iQuery);
  314. }
  315. public sql_save(iId){
  316.     formatex(g_iQuery, charsmax(g_iQuery), "INSERT INTO `%s` (`Steamid`) VALUES (^"%s^");",TABLENAME, g_sSteamid);
  317.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", g_iQuery);
  318. }
  319. public QuerySetData(FailState, Handle:g_iQuery, Error[], Errcode, Data[], DataSize, Float:Queuetime){
  320.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
  321.         log_amx("%s", Error);
  322. }
  323. public plugin_end(){
  324.     SQL_FreeHandle(g_SqlTuple);
  325. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement