hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2023.02.03. 07:52



Jelenlévő felhasználók

Jelenleg 47 felhasználó van jelen :: 0 regisztrált, 0 rejtett és 47 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: nincs regisztrált felhasználó az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 10 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: idönként dolgok eltünnek
HozzászólásElküldve: 2023.01.15. 18:31 
Offline
Jómunkásember

Csatlakozott: 2020.06.14. 17:59
Hozzászólások: 319
Megköszönt másnak: 62 alkalommal
Megköszönték neki: 8 alkalommal
Helló!

Gondom lenne a következő, hogy idönként eltünnek dolgok a játékosoknál! Hibát nem tudok írni mert nincsen.
Segítséget thx előre is!

  1. #include <amxmodx>
  2.     #include <amxmisc>
  3.     #include <cstrike>
  4.     #include <sqlx>
  5.     #include <fakemeta>
  6.      
  7.     #define MAXPLAYERS 33 // player id-k lesznek
  8.     #define MAXLVL 50 // max szint
  9.     #define MAXRANK 11 // maximum rang
  10.     #pragma semicolon 1 // mindenhova ahova lehet tegyék ; jelet
  11.     #define ChatColor print_team_default // -1 csak szürke a ^3 -2 csak piros, -3 csak kék, print_team_default az alap
  12.     #define Tablename "Hlmodra_tabla"
  13.      
  14.     #define OWNER ADMIN_IMMUNITY // OWnerben taroljuk az immunitas jogot
  15.     #define FOADMIN ADMIN_LEVEL_E // foadminban meg a o jogot
  16.     #define ADMIN ADMIN_MAP // adminban a mapvaltas jogot
  17.     #define VIP ADMIN_LEVEL_H  //vipben meg egy h jogot
  18.      
  19.     //(valamelyik előtt mindenképpen legyen // jel!)
  20.     #define RANK_ON // ha latni akarsz rangokat chatben (tulaj admin vip)
  21.     //#define RANK_OFF // ha nem akarsz latni rangokat chatben (tulaj admin vip)
  22.     //(valamelyik előtt mindenképpen legyen // jel!)
  23.      
  24.     enum _:ePlayer{eXp,eLvl,eRank,eRankCounter,};
  25.     new g_ePlayer[ePlayer][MAXPLAYERS], cvarPrefix, gSyncHud, Handle:g_SqlTuple;
  26.      
  27.     enum _:eRanks{eRankName[64], eRankLvl,};
  28.     new const cRanks[MAXRANK][eRanks] = {
  29.         {"Kezdő", 0}, //rang neve, szint
  30.         {"szőlőcukor", 5},
  31.         {"Csöves", 10},
  32.         {"Cukros Bácsi", 15},
  33.         {"Retardált", 20},
  34.         {"Hajléktalan", 25},
  35.         {"Fogyatékos", 30},
  36.         {"Drogos", 35},
  37.         {"Szittyós", 40},
  38.         {"Gyerekrabló", 45},
  39.         {"Rabszolgatartó", MAXLVL} //bővíteni ? MAXLVLt írd át a max szintre és mindenképpen legalulra kerüljön! | a szinteket ötösével adjad meg ha lehet! mert ha nem elfog csúszni a rang.
  40.     };
  41.     public plugin_init()
  42.     {
  43.         register_plugin("Hlmodra", "valamiverziosiskell?", "szeretjükatejetazbiztos!");
  44.        
  45.         register_clcmd("say /info", "info_p");
  46.         //register_clcmd("say /rs", "statreset_p");
  47.        
  48.         register_event("DeathMsg", "ev_deathmsg", "a");
  49.        
  50.         cvarPrefix = register_cvar("Prefix", "^4[.:*[DarK*_*Light]*:.]^3 »");
  51.        
  52.         ////////////////////////////////////////
  53.         register_clcmd("say", "sayhook");      //Maradjon alul!
  54.         ////////////////////////////////////////
  55.        
  56.         gSyncHud = CreateHudSyncObj();
  57.     }
  58.     get_cprefix(){
  59.         new sPrefix[32];
  60.         get_pcvar_string(cvarPrefix, sPrefix, charsmax(sPrefix));
  61.         return sPrefix;
  62.     }
  63.     public info_p(id)
  64.     {
  65.         new Xp, Xp2;
  66.         Xp = 15+g_ePlayer[eLvl][id];
  67.         Xp2 = 15*30+g_ePlayer[eLvl][id]*Xp;
  68.         client_print_color(id, ChatColor, "%s^1 Rangod: %s | Szinted/Xpd: %d/%d | Következő rang: %s", get_cprefix(), cRanks[g_ePlayer[eRank][id]][eRankName],
  69.         g_ePlayer[eXp][id], Xp2, cRanks[g_ePlayer[eRank][id]+1][eRankName]);
  70.     }
  71.     public client_PreThink(id)
  72.         LvlCheck(id);
  73.      
  74.     public LvlCheck(id)
  75.     {
  76.         if(g_ePlayer[eLvl][id] == MAXLVL || g_ePlayer[eRank][id] == MAXRANK)
  77.             return PLUGIN_HANDLED;
  78.        
  79.         new Xp, Xp2, sName[64];
  80.         Xp = 15+g_ePlayer[eLvl][id];
  81.         Xp2 = 15*30+g_ePlayer[eLvl][id]*Xp;
  82.        
  83.         if(g_ePlayer[eXp][id] >= Xp2)
  84.         {
  85.             g_ePlayer[eLvl][id]++;
  86.             g_ePlayer[eXp][id] = 0;
  87.             g_ePlayer[eRankCounter][id]++;
  88.            
  89.             if(g_ePlayer[eRankCounter][id] == 5)
  90.             {
  91.                 g_ePlayer[eRank][id]++;
  92.                 g_ePlayer[eRankCounter][id] = 0;
  93.             }
  94.             get_user_name(id, sName, charsmax(sName));
  95.             client_print_color(0, ChatColor, "^4%s^3 %s^1 szintet lépett, szintje: %d.", get_cprefix(), sName, g_ePlayer[eLvl][id]);
  96.         }
  97.         return PLUGIN_HANDLED;
  98.     }
  99.     public ev_deathmsg()
  100.     {
  101.         new iKiller = read_data(1);
  102.         new iVictim = read_data(2);
  103.         new iHs = read_data(3);
  104.         new iRnd, sName[64];
  105.        
  106.         if(!iKiller || !iVictim || iVictim == iKiller)
  107.             return PLUGIN_HANDLED;
  108.        
  109.         get_user_name(iVictim, sName, charsmax(sName));
  110.        
  111.         if(iHs)
  112.         {
  113.             iRnd = random_num(5, 10);
  114.             g_ePlayer[eXp][iKiller] += iRnd;
  115.             client_print_color(iKiller, ChatColor, "%s^1 Kaptál^3 %d^1 Xp-t^3 %s^1 fejbelövéséért!", get_cprefix(), iRnd, sName);
  116.         }
  117.         else
  118.         {
  119.             iRnd = random_num(1, 5);
  120.             g_ePlayer[eXp][iKiller] += iRnd;
  121.             client_print_color(iKiller, ChatColor, "%s^1 Kaptál^3 %d^1 Xp-t^3 %s^1 megöléséért!", get_cprefix(), iRnd, sName);
  122.         }
  123.         return PLUGIN_HANDLED_MAIN;
  124.     }
  125.     public sayhook(id)
  126.     {
  127.         new sMessage[512], sText[128], sDeath[16], iLen, sName[64];
  128.         read_args(sMessage, charsmax(sMessage));
  129.         remove_quotes(sMessage);
  130.        
  131.         if(strlen(sMessage) == 0 || sMessage[0] == '/' || sMessage[0] == '@')
  132.             return PLUGIN_HANDLED_MAIN;
  133.        
  134.         new iTeam, iColor;
  135.         iTeam = get_user_team(id);
  136.        
  137.         switch(iTeam) //itt lehet elvalasztani hogy ha ctk irnak a tk kéken lássák, és fordítva, ha specek akkor szürkén látják.
  138.         {
  139.             case CS_TEAM_CT: iColor = -3; //kék
  140.                 case CS_TEAM_T: iColor = -2;//piros
  141.                 case CS_TEAM_SPECTATOR: iColor = -1;//szürke
  142.             }
  143.        
  144.         format(sDeath, charsmax(sDeath), is_user_alive(id) ? "":"*Halott*");
  145.         iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^1%s", sDeath);
  146.         #if defined RANK_ON
  147.         if(get_user_flags(id) & OWNER)
  148.             iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^3[^4Tulajdonos^3]^1");
  149.         else if(get_user_flags(id) & ADMIN)
  150.             iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^3[^4FőAdmin^3]^1");
  151.         else if(get_user_flags(id) & FOADMIN)
  152.             iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^3[^4Admin^3]^1");
  153.         else if(get_user_flags(id) & VIP)
  154.             iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^3[^4VIP^3]^1");
  155.         else
  156.             iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^3[^4Játékos^3]^1");
  157.        
  158.         iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^3[^4Szint: %d^3]", g_ePlayer[eLvl][id]);
  159.         #endif
  160.        
  161.         #if defined RANK_OFF
  162.         iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^3[^4Szint: %d^3]", g_ePlayer[eLvl][id]);
  163.         #endif
  164.        
  165.         get_user_name(id, sName, charsmax(sName));
  166.         format(sMessage, charsmax(sMessage), "%s ^1%s ^3»^3 %s", sText, sName, sMessage);
  167.        
  168.         for(new i; i < get_maxplayers(); i++)
  169.         {
  170.             if(!is_user_connected(i))
  171.                 continue;
  172.            
  173.             client_print_color(i, iColor, sMessage);
  174.         }
  175.         return PLUGIN_HANDLED_MAIN;
  176.     }
  177.     public hudshow_p(id)
  178.     {
  179.         if(!is_user_connected(id))
  180.             return PLUGIN_HANDLED_MAIN;
  181.        
  182.         new sText[256], iLen, idT;
  183.         new Target = pev(id, pev_iuser1) == 4 ? pev(id, pev_iuser2) : id;
  184.         idT = is_user_alive(id) ? id:Target;
  185.        
  186.         new Xp, Xp2;
  187.         Xp = 15+g_ePlayer[eLvl][idT];
  188.         Xp2 = 15*30+g_ePlayer[eLvl][idT]*Xp;
  189.        
  190.         iLen += formatex(sText[iLen], charsmax(sText)-iLen, "Szint: [ %d --> %d ]^n", g_ePlayer[eLvl][idT], MAXLVL);
  191.         iLen += formatex(sText[iLen], charsmax(sText)-iLen, "Rang: -- %s --^n", cRanks[g_ePlayer[eRank][idT]][eRankName]);
  192.         iLen += formatex(sText[iLen], charsmax(sText)-iLen, "XP: [ %d --> %d ]", g_ePlayer[eXp][idT], Xp2);
  193.        
  194.         set_hudmessage(0, 255, 0, -1.0, 0.85, 0, 6.0, 1.0, 0.1, 0.2, -1);
  195.         ShowSyncHudMsg(id, gSyncHud, "%s", sText);
  196.        
  197.         set_task(1.0, "hudshow_p", id);
  198.        
  199.         return PLUGIN_HANDLED;
  200.     }
  201.     public client_authorized(id)
  202.     {
  203.         if(is_user_bot(id))
  204.             return;
  205.        
  206.         set_task(5.0, "hudshow_p", id);
  207.        
  208.         g_ePlayer[eXp][id] = 0;
  209.         g_ePlayer[eLvl][id] = 0;
  210.         g_ePlayer[eRank][id] = 0;
  211.         g_ePlayer[eRankCounter][id] = 0;
  212.        
  213.         SelectDataTable(id);
  214.     }
  215.     public client_disconnected(id)
  216.     {
  217.         if(is_user_bot(id))
  218.             return;
  219.        
  220.         TableUpdate(id);
  221.        
  222.         if(task_exists(id))
  223.             remove_task(id);
  224.     }
  225.     public plugin_cfg()
  226.     {
  227.         //Kiszolgáló | Felhasználó | Jelszó | Adatbázis
  228.        
  229.         g_SqlTuple = SQL_MakeDbTuple("maria.srkhost.eu", "", "", "s17878_newszerver");
  230.         CreateTable();
  231.     }
  232.     public CreateTable(){
  233.         new iLen;
  234.         static sQuery[2048];
  235.        
  236.         iLen += formatex(sQuery[iLen], charsmax(sQuery), "CREATE TABLE IF NOT EXISTS `%s` ", Tablename);
  237.         iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "( ");
  238.         iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`Id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,");
  239.         iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`SteamId` varchar(64) NOT NULL,");
  240.         iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`qSzint` int(11) NOT NULL,");
  241.         iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`qXp` int(11) NOT NULL,");
  242.         iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`qRank` int(11) NOT NULL,");
  243.         iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`qRankCounter` int(11) NOT NULL)");
  244.        
  245.         SQL_ThreadQuery(g_SqlTuple, "TableCreateThread", sQuery);
  246.     }
  247.     public TableUpdate(id)
  248.     {
  249.         static sQuery[2048];
  250.         new iLen, sSteamID[64];
  251.         get_user_authid(id, sSteamID, charsmax(sSteamID));
  252.        
  253.         iLen += formatex(sQuery[iLen], charsmax(sQuery), "UPDATE `%s` SET ", Tablename);
  254.         iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "qSzint = ^"%i^",", g_ePlayer[eLvl][id]);
  255.         iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "qXp = ^"%i^",", g_ePlayer[eXp][id]);
  256.         iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "qRank = ^"%i^",", g_ePlayer[eRank][id]);
  257.        
  258.         iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "qRankCounter = ^"%i^" WHERE `SteamId` = ^"%s^";", g_ePlayer[eRankCounter][id], sSteamID);
  259.         SQL_ThreadQuery(g_SqlTuple, "QuerySetDataTable", sQuery);
  260.     }
  261.     public TableCreateThread(iFailState, Handle:sQuery, sError[], iErrcode, sData[], iDataSize, Float:fQueuetime)
  262.     {
  263.         if(iFailState == TQUERY_CONNECT_FAILED)
  264.             set_fail_state("[Create] Nem lehet csatlakozni az adatbazishoz!");
  265.         else if(iFailState == TQUERY_QUERY_FAILED)
  266.             set_fail_state("[Create] Lekerdezesi hiba");
  267.         if(iErrcode)
  268.             log_amx("[Create] Hiba:**!! %s !!**", sError);
  269.     }
  270.     public TableInsert(id)
  271.     {
  272.         static sQuery[2048], sSteamID[64];
  273.        
  274.         get_user_authid(id, sSteamID, charsmax(sSteamID));
  275.         formatex(sQuery, charsmax(sQuery), "INSERT INTO `%s` (`SteamId`) VALUES (^"%s^");", Tablename, sSteamID);
  276.         SQL_ThreadQuery(g_SqlTuple, "QuerySetDataTable", sQuery);
  277.     }
  278.     public SelectDataTable(id)
  279.     {
  280.         static sQuery[2048];
  281.         new sData[1], sSteamID[64];
  282.         sData[0] = id;
  283.        
  284.         get_user_authid(id, sSteamID, charsmax(sSteamID));
  285.        
  286.         formatex(sQuery, charsmax(sQuery), "SELECT * FROM `%s` WHERE SteamId = ^"%s^";", Tablename, sSteamID);
  287.         SQL_ThreadQuery(g_SqlTuple, "QuerySelectDataTable", sQuery, sData, 1);
  288.     }
  289.     public QuerySelectDataTable(iFailState, Handle:sQuery, sError[], iErrcode, sData[], iDataSize, Float:fQueuetime)
  290.     {
  291.         if(iFailState == TQUERY_CONNECT_FAILED || iFailState == TQUERY_QUERY_FAILED)
  292.         {
  293.             log_amx("[Insert] Hiba:**!! %s !!**", sError);
  294.             return;
  295.         }
  296.         else
  297.         {
  298.             new id = sData[0];
  299.            
  300.             if(SQL_NumRows(sQuery) > 0)
  301.             {
  302.                 g_ePlayer[eLvl][id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "qSzint"));
  303.                 g_ePlayer[eXp][id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "qXp"));
  304.                 g_ePlayer[eRank][id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "qRank"));
  305.                 g_ePlayer[eRankCounter][id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "qRankCounter"));
  306.             }
  307.             else
  308.                 TableInsert(id);
  309.         }
  310.     }
  311.     public QuerySetDataTable(iFailState, Handle:sQuery, sError[], iErrcode, sData[], iDataSize, Float:fQueuetime)
  312.     {
  313.         if(iFailState == TQUERY_CONNECT_FAILED || iFailState == TQUERY_QUERY_FAILED)
  314.         {
  315.             log_amx("[SetData] Hiba:**!! %s !!**", sError);
  316.             return;
  317.         }
  318.     }


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: idönként dolgok eltünnek
HozzászólásElküldve: 2023.01.15. 21:49 
Offline
Jómunkásember
Avatar

Csatlakozott: 2019.08.20. 18:19
Hozzászólások: 492
Megköszönt másnak: 240 alkalommal
Megköszönték neki: 43 alkalommal
Milyen dolgok tünnek el a játékosnál? a szint az xp? vagy a rank?
What?


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: idönként dolgok eltünnek
HozzászólásElküldve: 2023.01.16. 06:28 
Offline
Jómunkásember

Csatlakozott: 2020.06.14. 17:59
Hozzászólások: 319
Megköszönt másnak: 62 alkalommal
Megköszönték neki: 8 alkalommal
8mTNNe írta:
Milyen dolgok tünnek el a játékosnál? a szint az xp? vagy a rank?
What?



Szia! Xp, rang, szint ! Magyarul az összes!


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: idönként dolgok eltünnek
HozzászólásElküldve: 2023.01.16. 18:03 
Offline
Developer
Avatar

Csatlakozott: 2011.06.01. 21:11
Hozzászólások: 7949
Megköszönt másnak: 295 alkalommal
Megköszönték neki: 530 alkalommal
Teljesen nullázódik, vagy csak egy régebbi értékeket kap?

_________________
http://www.easyrankup.eu


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: idönként dolgok eltünnek
HozzászólásElküldve: 2023.01.16. 18:48 
Offline
Jómunkásember

Csatlakozott: 2020.06.14. 17:59
Hozzászólások: 319
Megköszönt másnak: 62 alkalommal
Megköszönték neki: 8 alkalommal
kiki írta:
Teljesen nullázódik, vagy csak egy régebbi értékeket kap?


Szia!

Teljesen nullázódik!


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: idönként dolgok eltünnek
HozzászólásElküldve: 2023.01.16. 21:56 
Offline
Fanatikus

Csatlakozott: 2018.05.05. 18:34
Hozzászólások: 179
Megköszönt másnak: 37 alkalommal
Megköszönték neki: 7 alkalommal
Mikor jelenik meg a hiba?
Amikor le csatlakozik vagy map váltáskor?

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: idönként dolgok eltünnek
HozzászólásElküldve: 2023.01.17. 04:33 
Offline
Jómunkásember

Csatlakozott: 2020.06.14. 17:59
Hozzászólások: 319
Megköszönt másnak: 62 alkalommal
Megköszönték neki: 8 alkalommal
konfigos312 írta:
Mikor jelenik meg a hiba?
Amikor le csatlakozik vagy map váltáskor?


Szia! Felcsatlakozásnál!


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: idönként dolgok eltünnek
HozzászólásElküldve: 2023.01.17. 20:05 
Offline
Őstag
Avatar

Csatlakozott: 2017.08.21. 15:51
Hozzászólások: 1097
Megköszönt másnak: 36 alkalommal
Megköszönték neki: 195 alkalommal
Steameseknek is nullázódik?


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: idönként dolgok eltünnek
HozzászólásElküldve: 2023.01.18. 06:17 
Offline
Jómunkásember

Csatlakozott: 2020.06.14. 17:59
Hozzászólások: 319
Megköszönt másnak: 62 alkalommal
Megköszönték neki: 8 alkalommal
Pika írta:
Steameseknek is nullázódik?



Szia! Igen


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: idönként dolgok eltünnek
HozzászólásElküldve: 2023.01.18. 08:30 
Offline
Tud valamit
Avatar

Csatlakozott: 2020.05.14. 11:32
Hozzászólások: 117
Megköszönt másnak: 13 alkalommal
Megköszönték neki: 51 alkalommal
A probléma (mivel mást nem nagyon látni) több mint valószínű hogy azért van mert rosszkor próbáljátok betölteni a játékos adatait. Felcsatlakozás közben általában droppol egyet a kliens, tehát lehetséges hogy a dc is lefut közben, de az is lehet hogy kétszer fut le az authorized rossz időben. Nekem volt anno a szerveremen üdvözlő plugin, ami volt hogy 2x köszöntötte a felcsatlakozó játékost. Az eventre már nem emlékszem amit az meghívott, viszont szerintem itt is hasonló lehet a helyzet.
Megoldás:
Kód:
#include <amxmodx>
    #include <amxmisc>
    #include <cstrike>
    #include <sqlx>
    #include <fakemeta>
     
    #define MAXPLAYERS 33 // player id-k lesznek
    #define MAXLVL 50 // max szint
    #define MAXRANK 11 // maximum rang
    #pragma semicolon 1 // mindenhova ahova lehet tegyék ; jelet
    #define ChatColor print_team_default // -1 csak szürke a ^3 -2 csak piros, -3 csak kék, print_team_default az alap
    #define Tablename "Hlmodra_tabla"
     
    #define OWNER ADMIN_IMMUNITY // OWnerben taroljuk az immunitas jogot
    #define FOADMIN ADMIN_LEVEL_E // foadminban meg a o jogot
    #define ADMIN ADMIN_MAP // adminban a mapvaltas jogot
    #define VIP ADMIN_LEVEL_H  //vipben meg egy h jogot
     
    //(valamelyik előtt mindenképpen legyen // jel!)
    #define RANK_ON // ha latni akarsz rangokat chatben (tulaj admin vip)
    //#define RANK_OFF // ha nem akarsz latni rangokat chatben (tulaj admin vip)
    //(valamelyik előtt mindenképpen legyen // jel!)
     
    enum _:ePlayer{eXp,eLvl,eRank,eRankCounter,};
    new g_ePlayer[ePlayer][MAXPLAYERS], cvarPrefix, gSyncHud, Handle:g_SqlTuple;
     
    enum _:eRanks{eRankName[64], eRankLvl,};
    new const cRanks[MAXRANK][eRanks] = {
        {"Kezdő", 0}, //rang neve, szint
        {"szőlőcukor", 5},
        {"Csöves", 10},
        {"Cukros Bácsi", 15},
        {"Retardált", 20},
        {"Hajléktalan", 25},
        {"Fogyatékos", 30},
        {"Drogos", 35},
        {"Szittyós", 40},
        {"Gyerekrabló", 45},
        {"Rabszolgatartó", MAXLVL} //bővíteni ? MAXLVLt írd át a max szintre és mindenképpen legalulra kerüljön! | a szinteket ötösével adjad meg ha lehet! mert ha nem elfog csúszni a rang.
    };
    public plugin_init()
    {
        register_plugin("Hlmodra", "valamiverziosiskell?", "szeretjükatejetazbiztos!");
       
        register_clcmd("say /info", "info_p");
        //register_clcmd("say /rs", "statreset_p");
       
        register_event("DeathMsg", "ev_deathmsg", "a");
       
        cvarPrefix = register_cvar("Prefix", "^4[.:*[DarK*_*Light]*:.]^3 »");
       
        ////////////////////////////////////////
        register_clcmd("say", "sayhook");      //Maradjon alul!
        ////////////////////////////////////////
       
        gSyncHud = CreateHudSyncObj();
    }
    get_cprefix(){
        new sPrefix[32];
        get_pcvar_string(cvarPrefix, sPrefix, charsmax(sPrefix));
        return sPrefix;
    }
    public info_p(id)
    {
        new Xp, Xp2;
        Xp = 15+g_ePlayer[eLvl][id];
        Xp2 = 15*30+g_ePlayer[eLvl][id]*Xp;
        client_print_color(id, ChatColor, "%s^1 Rangod: %s | Szinted/Xpd: %d/%d | Következő rang: %s", get_cprefix(), cRanks[g_ePlayer[eRank][id]][eRankName],
        g_ePlayer[eXp][id], Xp2, cRanks[g_ePlayer[eRank][id]+1][eRankName]);
    }
    public client_PreThink(id)
        LvlCheck(id);
     
    public LvlCheck(id)
    {
        if(g_ePlayer[eLvl][id] == MAXLVL || g_ePlayer[eRank][id] == MAXRANK)
            return PLUGIN_HANDLED;
       
        new Xp, Xp2, sName[64];
        Xp = 15+g_ePlayer[eLvl][id];
        Xp2 = 15*30+g_ePlayer[eLvl][id]*Xp;
       
        if(g_ePlayer[eXp][id] >= Xp2)
        {
            g_ePlayer[eLvl][id]++;
            g_ePlayer[eXp][id] = 0;
            g_ePlayer[eRankCounter][id]++;
           
            if(g_ePlayer[eRankCounter][id] == 5)
            {
                g_ePlayer[eRank][id]++;
                g_ePlayer[eRankCounter][id] = 0;
            }
            get_user_name(id, sName, charsmax(sName));
            client_print_color(0, ChatColor, "^4%s^3 %s^1 szintet lépett, szintje: %d.", get_cprefix(), sName, g_ePlayer[eLvl][id]);
        }
        return PLUGIN_HANDLED;
    }
    public ev_deathmsg()
    {
        new iKiller = read_data(1);
        new iVictim = read_data(2);
        new iHs = read_data(3);
        new iRnd, sName[64];
       
        if(!iKiller || !iVictim || iVictim == iKiller)
            return PLUGIN_HANDLED;
       
        get_user_name(iVictim, sName, charsmax(sName));
       
        if(iHs)
        {
            iRnd = random_num(5, 10);
            g_ePlayer[eXp][iKiller] += iRnd;
            client_print_color(iKiller, ChatColor, "%s^1 Kaptál^3 %d^1 Xp-t^3 %s^1 fejbelövéséért!", get_cprefix(), iRnd, sName);
        }
        else
        {
            iRnd = random_num(1, 5);
            g_ePlayer[eXp][iKiller] += iRnd;
            client_print_color(iKiller, ChatColor, "%s^1 Kaptál^3 %d^1 Xp-t^3 %s^1 megöléséért!", get_cprefix(), iRnd, sName);
        }
        return PLUGIN_HANDLED_MAIN;
    }
    public sayhook(id)
    {
        new sMessage[512], sText[128], sDeath[16], iLen, sName[64];
        read_args(sMessage, charsmax(sMessage));
        remove_quotes(sMessage);
       
        if(strlen(sMessage) == 0 || sMessage[0] == '/' || sMessage[0] == '@')
            return PLUGIN_HANDLED_MAIN;
       
        new iTeam, iColor;
        iTeam = get_user_team(id);
       
        switch(iTeam) //itt lehet elvalasztani hogy ha ctk irnak a tk kéken lássák, és fordítva, ha specek akkor szürkén látják.
        {
            case CS_TEAM_CT: iColor = -3; //kék
                case CS_TEAM_T: iColor = -2;//piros
                case CS_TEAM_SPECTATOR: iColor = -1;//szürke
            }
       
        format(sDeath, charsmax(sDeath), is_user_alive(id) ? "":"*Halott*");
        iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^1%s", sDeath);
        #if defined RANK_ON
        if(get_user_flags(id) & OWNER)
            iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^3[^4Tulajdonos^3]^1");
        else if(get_user_flags(id) & ADMIN)
            iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^3[^4FőAdmin^3]^1");
        else if(get_user_flags(id) & FOADMIN)
            iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^3[^4Admin^3]^1");
        else if(get_user_flags(id) & VIP)
            iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^3[^4VIP^3]^1");
        else
            iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^3[^4Játékos^3]^1");
       
        iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^3[^4Szint: %d^3]", g_ePlayer[eLvl][id]);
        #endif
       
        #if defined RANK_OFF
        iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^3[^4Szint: %d^3]", g_ePlayer[eLvl][id]);
        #endif
       
        get_user_name(id, sName, charsmax(sName));
        format(sMessage, charsmax(sMessage), "%s ^1%s ^3»^3 %s", sText, sName, sMessage);
       
        for(new i; i < get_maxplayers(); i++)
        {
            if(!is_user_connected(i))
                continue;
           
            client_print_color(i, iColor, sMessage);
        }
        return PLUGIN_HANDLED_MAIN;
    }
    public hudshow_p(id)
    {
        if(!is_user_connected(id))
            return PLUGIN_HANDLED_MAIN;
       
        new sText[256], iLen, idT;
        new Target = pev(id, pev_iuser1) == 4 ? pev(id, pev_iuser2) : id;
        idT = is_user_alive(id) ? id:Target;
       
        new Xp, Xp2;
        Xp = 15+g_ePlayer[eLvl][idT];
        Xp2 = 15*30+g_ePlayer[eLvl][idT]*Xp;
       
        iLen += formatex(sText[iLen], charsmax(sText)-iLen, "Szint: [ %d --> %d ]^n", g_ePlayer[eLvl][idT], MAXLVL);
        iLen += formatex(sText[iLen], charsmax(sText)-iLen, "Rang: -- %s --^n", cRanks[g_ePlayer[eRank][idT]][eRankName]);
        iLen += formatex(sText[iLen], charsmax(sText)-iLen, "XP: [ %d --> %d ]", g_ePlayer[eXp][idT], Xp2);
       
        set_hudmessage(0, 255, 0, -1.0, 0.85, 0, 6.0, 1.0, 0.1, 0.2, -1);
        ShowSyncHudMsg(id, gSyncHud, "%s", sText);
       
        set_task(1.0, "hudshow_p", id);
       
        return PLUGIN_HANDLED;
    }
    public client_putinserver(id)
    {
        if(is_user_bot(id))
            return;
       
        set_task(5.0, "hudshow_p", id);
       
        g_ePlayer[eXp][id] = 0;
        g_ePlayer[eLvl][id] = 0;
        g_ePlayer[eRank][id] = 0;
        g_ePlayer[eRankCounter][id] = 0;
       
        SelectDataTable(id);
    }
    public client_disconnected(id)
    {
        if(is_user_bot(id))
            return;
       
        TableUpdate(id);
       
        if(task_exists(id))
            remove_task(id);
    }
    public plugin_cfg()
    {
        //Kiszolgáló | Felhasználó | Jelszó | Adatbázis
       
        g_SqlTuple = SQL_MakeDbTuple("maria.srkhost.eu", "", "", "s17878_newszerver");
        CreateTable();
    }
    public CreateTable(){
        new iLen;
        static sQuery[2048];
       
        iLen += formatex(sQuery[iLen], charsmax(sQuery), "CREATE TABLE IF NOT EXISTS `%s` ", Tablename);
        iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "( ");
        iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`Id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,");
        iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`SteamId` varchar(64) NOT NULL,");
        iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`qSzint` int(11) NOT NULL,");
        iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`qXp` int(11) NOT NULL,");
        iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`qRank` int(11) NOT NULL,");
        iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`qRankCounter` int(11) NOT NULL)");
       
        SQL_ThreadQuery(g_SqlTuple, "TableCreateThread", sQuery);
    }
    public TableUpdate(id)
    {
        static sQuery[2048];
        new iLen, sSteamID[64];
        get_user_authid(id, sSteamID, charsmax(sSteamID));
       
        iLen += formatex(sQuery[iLen], charsmax(sQuery), "UPDATE `%s` SET ", Tablename);
        iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "qSzint = ^"%i^",", g_ePlayer[eLvl][id]);
        iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "qXp = ^"%i^",", g_ePlayer[eXp][id]);
        iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "qRank = ^"%i^",", g_ePlayer[eRank][id]);
       
        iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "qRankCounter = ^"%i^" WHERE `SteamId` = ^"%s^";", g_ePlayer[eRankCounter][id], sSteamID);
        SQL_ThreadQuery(g_SqlTuple, "QuerySetDataTable", sQuery);
    }
    public TableCreateThread(iFailState, Handle:sQuery, sError[], iErrcode, sData[], iDataSize, Float:fQueuetime)
    {
        if(iFailState == TQUERY_CONNECT_FAILED)
            set_fail_state("[Create] Nem lehet csatlakozni az adatbazishoz!");
        else if(iFailState == TQUERY_QUERY_FAILED)
            set_fail_state("[Create] Lekerdezesi hiba");
        if(iErrcode)
            log_amx("[Create] Hiba:**!! %s !!**", sError);
    }
    public TableInsert(id)
    {
        static sQuery[2048], sSteamID[64];
       
        get_user_authid(id, sSteamID, charsmax(sSteamID));
        formatex(sQuery, charsmax(sQuery), "INSERT INTO `%s` (`SteamId`) VALUES (^"%s^");", Tablename, sSteamID);
        SQL_ThreadQuery(g_SqlTuple, "QuerySetDataTable", sQuery);
    }
    public SelectDataTable(id)
    {
        static sQuery[2048];
        new sData[1], sSteamID[64];
        sData[0] = id;
       
        get_user_authid(id, sSteamID, charsmax(sSteamID));
       
        formatex(sQuery, charsmax(sQuery), "SELECT * FROM `%s` WHERE SteamId = ^"%s^";", Tablename, 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)
            {
                g_ePlayer[eLvl][id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "qSzint"));
                g_ePlayer[eXp][id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "qXp"));
                g_ePlayer[eRank][id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "qRank"));
                g_ePlayer[eRankCounter][id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "qRankCounter"));
            }
            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;
        }
    }

_________________
ExTasY Zombie Mutation
217.144.54.193:27057
Facebook
Discord

Kép


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 10 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 13 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole