hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.03.28. 14:33



Jelenlévő felhasználók

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

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

Regisztrált felhasználók: Bing [Bot] 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  [ 5 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Rank Chat
HozzászólásElküldve: 2021.03.07. 04:52 
Offline
Senior Tag
Avatar

Csatlakozott: 2021.01.08. 18:25
Hozzászólások: 273
Megköszönt másnak: 26 alkalommal
Megköszönték neki: 20 alkalommal
Sziasztok a képen látható igényesen pirossal bekarikázott Chat / Hud "plugint" keresem :D
nem tudom hogy van -e esetleg ilyen publikálva, vagy ez egyedi?
És ha egyedi?
Elkészítés összege mennyi lenne?

Kép
Kép

Ugye, ez ami a szerveren van, ez sajna csak ennyi. Amik a képen látszódnak, meg lehetne spékelni teszem fel: /lvl , és írna hogy mi a helyzet veled, mint ami a húdban is van, esetleg hogy mi lesz a következő Rangja az illetőnek.

_________________
Kép
FÓRUM


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Rank Chat
HozzászólásElküldve: 2021.03.07. 11:26 
Offline
Őstag
Avatar

Csatlakozott: 2017.08.21. 15:51
Hozzászólások: 1109
Megköszönt másnak: 36 alkalommal
Megköszönték neki: 195 alkalommal
Hát én egy 10-esbe összepattintom neked ezt a plugint, ha megéri neked pénzt adni ezért.
De megválaszolva a kérdésed, nem tudom, hogy egyedi-e vagy létező plugin, épp ezért ajánlom fel pro tudásom.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Rank Chat
HozzászólásElküldve: 2021.03.09. 14:49 
Offline
Senior Tag
Avatar

Csatlakozott: 2015.12.27. 11:34
Hozzászólások: 295
Megköszönt másnak: 944 alkalommal
Megköszönték neki: 16 alkalommal
Nem kell hozzá egy tizes sem....

Vissza emlékszek kedves Pika a régebbi dolgaidra, akkor még elítélted aki pénzért segített volna itt a fórumon akár. Most meg magad hírdeted, hogy megcsinálod tizesért. Fura vagy Pika :D





Hudot remélem majd bele tudod írni.

  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <cstrike>
  4. #include <colorchat>
  5. #include <sqlx>
  6.  
  7. #define PLUGIN "HLMOD.Hus Rangok"
  8. #define VERSION "1.0"
  9. #define AUTHOR "ExTraaaa and qKKKJ;>"
  10.  
  11. new const SQLINFO[][] = { "kiszolgáló", "felhasználó", "jelszó", "adatbázis" };
  12.  
  13. new name[32][33], Rang[33], Oles[33];
  14. new Handle:g_SqlTuple;
  15.  
  16. new Temp[192];
  17. static color[10];
  18.  
  19. enum _:Rangs{   Level[32], Szint[32], Xp[8] };
  20.  
  21. new const Rangok[][Rangs] =
  22. {
  23. { "Level 0", "Újonc", 0  },
  24. { "Level 1", "Lelkes", 100  },
  25. { "Level 2", "Tag", 250  },
  26. { "Level 3", "Beavatott", 400  },
  27. { "Level 4", "Tud valamit", 550  },
  28. { "Level 5", "Fanatikus", 800  },
  29. { "Level 6", "Senior Tag", 1210  },
  30. { "Level 7", "Jómunkásember", 1560  },
  31. { "Level 8", "Nagyúr", 2200  },
  32. { "Level 9", "Félisten", 2400  },
  33. { "Level 10", "Östag", 2700  },
  34. { "Level 11", "Veterán", 3200  },
  35. { "Level 12", "Őskövület", 3700  },
  36. { "Level 13", "Mindenható", 4200  },
  37. { "Level 14", "ISTEN", 4700  },
  38. { "Level 15", "Mindent Tudó", 5000  }
  39. };
  40.  
  41. public plugin_init()
  42. {
  43.     register_plugin(PLUGIN, VERSION, AUTHOR)
  44.    
  45.    
  46.     register_clcmd("say /rang", "ranginfo");
  47.     register_clcmd("say_team /rang", "ranginfo");
  48.    
  49.     register_clcmd("say", "sayhook");
  50.     register_clcmd("say_team", "sayhook");
  51.  
  52.     register_event("DeathMsg", "halal", "a");
  53.  
  54. }
  55. public ranginfo(id)
  56. {
  57.         ColorChat(0, GREY, "^3%s ^1Rang^3: %s,^1 Ölések:^3 %d,^1 Kell még:^3 %d", Rangok[Rang[id]][Level], Rangok[Rang[id]][Szint], Rangok[Rang[id]][Xp], Rangok[Rang[id]][Xp]-Oles[id]);
  58.     if(Rang[id] > 15)
  59.         ColorChat(0, GREY, "^3%s ^1Rang^3: %s,  ^4MAX RANGOD VAN, GRATULÁLOK!", Rangok[Rang[id]][Level], Rangok[Rang[id]][Szint]);
  60. }
  61.  
  62. public sayhook(id)
  63. {
  64.     new message[192], nev[32], none[2][32], chat[192];
  65.  
  66.     read_args(message, 191);
  67.     remove_quotes(message);
  68.  
  69.     formatex(none[0], 31, ""), formatex(none[1], 31, " ");
  70.  
  71.     if (message[0] == '@' || message[0] == '/' || message[0] == '#' || message[0] == '!' || equal (message, ""))
  72.         return PLUGIN_HANDLED;
  73.  
  74.     if(!equali(message, none[0]) && !equali(message, none[1]))
  75.     {
  76.         get_user_name(id, nev, 31);
  77.         if(is_user_alive(id))
  78.         {
  79.                 formatex(chat, 191, "^x04[%s][%s] ^x03%s^x01: %s", Rangok[Rang[id]][Level], Rangok[Rang[id]][Szint], nev, message);
  80.         }
  81.         else
  82.         {
  83.             get_user_team(id, color, 9);       
  84.                 formatex(chat, 191, "^x03*Halott^x04[%s][%s] ^x03%s^x01: %s", Rangok[Rang[id]][Level], Rangok[Rang[id]][Szint], nev, message);
  85.         }
  86.         if (!is_user_connected(id))
  87.             return PLUGIN_CONTINUE;
  88.        
  89.         switch(cs_get_user_team(id))
  90.         {
  91.             case 1: ColorChat(0, RED, chat);
  92.             case 2: ColorChat(0, BLUE, chat);
  93.         }
  94.         if(cs_get_user_team(id) == CS_TEAM_SPECTATOR)
  95.             ColorChat(0, GREY, chat);
  96.        
  97.         return PLUGIN_HANDLED;
  98.     }
  99.    
  100.     return PLUGIN_CONTINUE;
  101. }
  102.  
  103. public teamf(player, team[])
  104. {
  105.     message_begin(MSG_ONE, get_user_msgid("TeamInfo"), _, player);
  106.     write_byte(player);
  107.     write_string(team);
  108.     message_end();
  109. }
  110.  
  111. public elkuldes(player, Temp[])
  112. {
  113.     message_begin( MSG_ONE, get_user_msgid( "SayText" ), _, player);
  114.     write_byte( player );
  115.     write_string( Temp );
  116.     message_end();
  117. }
  118. public halal()
  119. {
  120.    
  121.     new Gyilkos = read_data(1);
  122.     new Aldozat = read_data(2);
  123.    
  124.    
  125.     if(Gyilkos == Aldozat)
  126.         return PLUGIN_HANDLED;
  127.    
  128.     Oles[Gyilkos]++;
  129.    
  130.     while(Oles[Gyilkos] >= Rangok[Rang[Gyilkos]][Xp])
  131.         Rang[Gyilkos]++;           
  132. }
  133.  
  134. public client_disconnect(id)
  135. {
  136. if(!is_user_bot(id))
  137. {
  138.     Update(id);
  139. }
  140.  
  141. Rang[id] = 0;
  142. Oles[id] = 0;
  143.  
  144. copy(name[id], charsmax(name[]), "");
  145. }
  146. public client_putinserver(id)
  147. {
  148. if(!is_user_bot(id))
  149. {
  150.     get_user_name(id, name[id], charsmax(name));
  151.     Load(id);
  152. }
  153. }
  154. public plugin_cfg()
  155. {
  156.     g_SqlTuple = SQL_MakeDbTuple(SQLINFO[0], SQLINFO[1], SQLINFO[2], SQLINFO[3]);
  157.    
  158.     static Query[100048];
  159.     new Len;
  160.    
  161.     Len += formatex(Query[Len], charsmax(Query), "CREATE TABLE IF NOT EXISTS `rangrendszer`");
  162.     Len += formatex(Query[Len], charsmax(Query)-Len, "(`Nev` varchar(32) NOT NULL, ");
  163.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Szint` int(11) NOT NULL,");
  164.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Oles` int(11) NOT NULL,");
  165.        
  166.     Len += formatex(Query[Len], charsmax(Query)-Len, "`id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)");
  167.    
  168.     SQL_ThreadQuery(g_SqlTuple, "createTableThread", Query);
  169. }
  170. public Load(id)
  171. {
  172.     static Query[100048];
  173.     new Data[1];
  174.     Data[0] = id;
  175.  
  176.     formatex(Query, charsmax(Query), "SELECT * FROM `rangrendszer` WHERE Nev = ^"%s^";", name[id]);
  177.     SQL_ThreadQuery(g_SqlTuple, "QuerySelectData", Query, Data, 1);
  178. }
  179. public QuerySelectData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  180.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  181.         log_amx("%s", Error);
  182.         return;
  183.     }
  184.     else {
  185.         new id = Data[0];
  186.  
  187.         if(SQL_NumRows(Query) > 0) {
  188.             Rang[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Szint"));          
  189.             Oles[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Oles"));   
  190.         }
  191.         else
  192.         {
  193.             Save(id);
  194.         }
  195.     }
  196. }
  197. public SQL_Update_Reg(id)
  198. {
  199. static Query[100048];
  200. new Len;
  201.  
  202.  
  203. Len += formatex(Query[Len], charsmax(Query), "UPDATE `rangrendszer` SET Oles = ^"%i^", ", Oles[id]);
  204. Len += formatex(Query[Len], charsmax(Query)-Len, "WHERE Nev = ^"%s^";", name[id]);
  205.  
  206. SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
  207. }
  208. public Save(id)
  209. {
  210. static Query[256];
  211.  
  212. formatex(Query, charsmax(Query), "INSERT INTO `rangrendszer` (`Nev`) VALUES (^"%s^");", name[id]);
  213.  
  214. SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
  215. }
  216. public Update(id)
  217. {
  218.     static Query[100048];
  219.     new Len;
  220.    
  221.    
  222.     Len += formatex(Query[Len], charsmax(Query), "UPDATE `rangrendszer` SET Oles = ^"%i^", ", Oles[id]);
  223.     Len += formatex(Query[Len], charsmax(Query)-Len, "Szint = ^"%i^" WHERE Nev = ^"%s^";", Rang[id], name[id]);
  224.    
  225.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
  226. }
  227. public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  228.     if(FailState == TQUERY_CONNECT_FAILED)
  229.         set_fail_state("[HIBA*] NEM TUDTAM CSATLAKOZNI AZ ADATBAZISHOZ!");
  230.     else if(FailState == TQUERY_QUERY_FAILED)
  231.         set_fail_state("Query Error");
  232.     if(Errcode)
  233.         log_amx("[HIBA*] HIBAT DOBTAM: %s",Error);
  234. }
  235. public QuerySetData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  236.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  237.         log_amx("%s", Error);
  238.         return;
  239.     }
  240. }

_________________
Kép

Facebook Oldalunk
Facebook Csoportunk


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Rank Chat
HozzászólásElküldve: 2021.03.09. 19:25 
Offline
Senior Tag
Avatar

Csatlakozott: 2017.08.09. 17:01
Hozzászólások: 266
Megköszönt másnak: 61 alkalommal
Megköszönték neki: 72 alkalommal
kajlakaki01 írta:
Sziasztok a képen látható igényesen pirossal bekarikázott Chat / Hud "plugint" keresem :D


Szeva, amit a kepen lattam lemasoltam, belulrol nem tudom mi alapjan kapta a rangot, én szinthez kötöttem, a leiras majd ugyis segit.

  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 ADMIN ADMIN_MAP // adminban a mapvaltas jogot
  16. #define VIP ADMIN_LEVEL_H  //vipben meg egy h jogot
  17.  
  18. //(valamelyik előtt mindenképpen legyen // jel!)
  19. #define RANK_ON // ha latni akarsz rangokat chatben (tulaj admin vip)
  20. //#define RANK_OFF // ha nem akarsz latni rangokat chatben (tulaj admin vip)
  21. //(valamelyik előtt mindenképpen legyen // jel!)
  22.  
  23. enum _:ePlayer{eXp,eLvl,eRank,eRankCounter,};
  24. new g_ePlayer[ePlayer][MAXPLAYERS], cvarPrefix, gSyncHud, Handle:g_SqlTuple;
  25.  
  26. enum _:eRanks{eRankName[64], eRankLvl,};
  27. new const cRanks[MAXRANK][eRanks] = {
  28.     {"Valaki új", 0}, //rang neve, szint
  29.     {"Kezdő", 5},
  30.     {"Szereti a tejet", 10},
  31.     {"Szereti a cukrot", 15},
  32.     {"Cukros bácsi/néni", 20},
  33.     {"Loli", 25},
  34.     {"Elismert cukros bácsi/néni", 30},
  35.     {"Újféle cukor", 35},
  36.     {"Gyűjtögető", 40},
  37.     {"Gyerekrabló", 45},
  38.     {"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.
  39. };
  40. public plugin_init()
  41. {
  42.     register_plugin("Hlmodra", "valamiverziosiskell?", "szeretjükatejetazbiztos!");
  43.    
  44.     register_clcmd("say /info", "info_p");
  45.     //register_clcmd("say /rs", "statreset_p");
  46.    
  47.     register_event("DeathMsg", "ev_deathmsg", "a");
  48.    
  49.     cvarPrefix = register_cvar("Prefix", "^4[PREFIX] ^3»");
  50.    
  51.     ////////////////////////////////////////
  52.     register_clcmd("say", "sayhook");      //Maradjon alul!
  53.     register_clcmd("say_team", "saythook"); //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;
  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;
  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[^4Admin^3]^1~");
  151.     else if(get_user_flags(id) & VIP)
  152.         iLen += formatex(sText[iLen], charsmax(sText)-iLen, "~^3[^4VIP^3]^1~");
  153.     else
  154.         iLen += formatex(sText[iLen], charsmax(sText)-iLen, "~^3[^4Játékos^3]^1~");
  155.    
  156.     iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^3[^4Szint: %d^3]~", g_ePlayer[eLvl][id]);
  157.     #endif
  158.    
  159.     #if defined RANK_OFF
  160.     iLen += formatex(sText[iLen], charsmax(sText)-iLen, "~^3[^4Szint: %d^3]~", g_ePlayer[eLvl][id]);
  161.     #endif
  162.    
  163.     get_user_name(id, sName, charsmax(sName));
  164.     format(sMessage, charsmax(sMessage), "%s ^1%s ^3»^3 %s", sText, sName, sMessage);
  165.    
  166.     for(new i; i < get_maxplayers(); i++)
  167.     {
  168.         if(!is_user_connected(i))
  169.             continue;
  170.        
  171.         client_print_color(i, iColor, sMessage);
  172.     }
  173.     return PLUGIN_HANDLED;
  174. }
  175. public saythook(id)
  176. {
  177.     new sMessage[512], sText[128], sDeath[16], iLen, sName[64];
  178.     read_args(sMessage, charsmax(sMessage));
  179.     remove_quotes(sMessage);
  180.    
  181.     if(strlen(sMessage) == 0 || sMessage[0] == '/' || sMessage[0] == '@')
  182.         return PLUGIN_HANDLED;
  183.    
  184.     new iTeam, sTeam[32], iColor;
  185.     iTeam = get_user_team(id, sTeam, charsmax(sTeam));
  186.    
  187.     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!
  188.     {
  189.         case CS_TEAM_CT: {sTeam = "Terrorelhárító"; iColor = -3;} //kék
  190.         case CS_TEAM_T: {sTeam = "Terrorista"; iColor = -2;} //piros
  191.         case CS_TEAM_SPECTATOR: {sTeam = "Nézelődő"; iColor = -1;} //szürke
  192.     }
  193.    
  194.     format(sDeath, charsmax(sDeath), is_user_alive(id) ? "":"*Halott*");
  195.     iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^3(%s)", sTeam);
  196.     iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^1%s", sDeath);
  197.    
  198.     #if defined RANK_ON
  199.     if(get_user_flags(id) & OWNER)
  200.         iLen += formatex(sText[iLen], charsmax(sText)-iLen, "~^3[^4Tulajdonos^3]^1~");
  201.     else if(get_user_flags(id) & ADMIN)
  202.         iLen += formatex(sText[iLen], charsmax(sText)-iLen, "~^3[^4Admin^3]^1~");
  203.     else if(get_user_flags(id) & VIP)
  204.         iLen += formatex(sText[iLen], charsmax(sText)-iLen, "~^3[^4VIP^3]^1~");
  205.     else
  206.         iLen += formatex(sText[iLen], charsmax(sText)-iLen, "~^3[^4Játékos^3]^1~");
  207.    
  208.     iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^3[^4Szint: %d^3]^1~", g_ePlayer[eLvl][id]);
  209.     #endif
  210.    
  211.     #if defined RANK_OFF
  212.     iLen += formatex(sText[iLen], charsmax(sText)-iLen, "~^3[^4Szint: %d^3]~", g_ePlayer[eLvl][id]);
  213.     #endif
  214.    
  215.     get_user_name(id, sName, charsmax(sName));
  216.     format(sMessage, charsmax(sMessage), "%s ^1%s ^3»^3 %s", sText, sName, sMessage);
  217.    
  218.     for(new i; i < get_maxplayers(); i++)
  219.     {
  220.         if(!is_user_connected(i))
  221.             continue;
  222.        
  223.         if(cs_get_user_team(id) == CS_TEAM_CT)
  224.             client_print_color(i, iColor, sMessage);
  225.         else if(cs_get_user_team(id) == CS_TEAM_T)
  226.             client_print_color(i, iColor, sMessage);
  227.         else
  228.             client_print_color(i, iColor, sMessage);
  229.     }
  230.     return PLUGIN_HANDLED;
  231. }
  232. public hudshow_p(id)
  233. {
  234.     if(!is_user_connected(id))
  235.         return PLUGIN_HANDLED;
  236.    
  237.     new sText[256], iLen, idT;
  238.     new Target = pev(id, pev_iuser1) == 4 ? pev(id, pev_iuser2) : id;
  239.     idT = is_user_alive(id) ? id:Target;
  240.    
  241.     new Xp, Xp2;
  242.     Xp = 15+g_ePlayer[eLvl][idT];
  243.     Xp2 = 15*30+g_ePlayer[eLvl][idT]*Xp;
  244.    
  245.     iLen += formatex(sText[iLen], charsmax(sText)-iLen, "Szint: [ %d --> %d ]^n", g_ePlayer[eLvl][idT], MAXLVL);
  246.     iLen += formatex(sText[iLen], charsmax(sText)-iLen, "Rang: -- %s --^n", cRanks[g_ePlayer[eRank][idT]][eRankName]);
  247.     iLen += formatex(sText[iLen], charsmax(sText)-iLen, "XP: [ %d --> %d ]", g_ePlayer[eXp][idT], Xp2);
  248.    
  249.     set_hudmessage(0, 255, 0, -1.0, 0.85, 0, 6.0, 1.0, 0.1, 0.2, -1);
  250.     ShowSyncHudMsg(id, gSyncHud, "%s", sText);
  251.    
  252.     set_task(1.0, "hudshow_p", id);
  253.    
  254.     return PLUGIN_HANDLED;
  255. }
  256. public client_authorized(id)
  257. {
  258.     if(is_user_bot(id))
  259.         return;
  260.    
  261.     set_task(5.0, "hudshow_p", id);
  262.    
  263.     g_ePlayer[eXp][id] = 0;
  264.     g_ePlayer[eLvl][id] = 0;
  265.     g_ePlayer[eRank][id] = 0;
  266.     g_ePlayer[eRankCounter][id] = 0;
  267.    
  268.     SelectDataTable(id);
  269. }
  270. public client_disconnected(id)
  271. {
  272.     if(is_user_bot(id))
  273.         return;
  274.    
  275.     TableUpdate(id);
  276.    
  277.     if(task_exists(id))
  278.         remove_task(id);
  279. }
  280. public plugin_cfg()
  281. {
  282.     //Kiszolgáló | Felhasználó | Jelszó | Adatbázis
  283.    
  284.     g_SqlTuple = SQL_MakeDbTuple("", "", "", "");
  285.     CreateTable();
  286. }
  287. public CreateTable(){
  288.     new iLen;
  289.     static sQuery[2048];
  290.    
  291.     iLen += formatex(sQuery[iLen], charsmax(sQuery), "CREATE TABLE IF NOT EXISTS `%s` ", Tablename);
  292.     iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "( ");
  293.     iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`Id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,");
  294.     iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`SteamId` varchar(64) NOT NULL,");
  295.     iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`qSzint` int(11) NOT NULL,");
  296.     iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`qXp` int(11) NOT NULL,");
  297.     iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`qRank` int(11) NOT NULL,");
  298.     iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`qRankCounter` int(11) NOT NULL)");
  299.    
  300.     SQL_ThreadQuery(g_SqlTuple, "TableCreateThread", sQuery);
  301. }
  302. public TableUpdate(id)
  303. {
  304.     static sQuery[2048];
  305.     new iLen, sSteamID[64];
  306.     get_user_authid(id, sSteamID, charsmax(sSteamID));
  307.    
  308.     iLen += formatex(sQuery[iLen], charsmax(sQuery), "UPDATE `%s` SET ", Tablename);
  309.     iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "qSzint = ^"%i^",", g_ePlayer[eLvl][id]);
  310.     iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "qXp = ^"%i^",", g_ePlayer[eXp][id]);
  311.     iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "qRank = ^"%i^",", g_ePlayer[eRank][id]);
  312.    
  313.     iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "qRankCounter = ^"%i^" WHERE `SteamId` = ^"%s^";", g_ePlayer[eRankCounter][id], sSteamID);
  314.     SQL_ThreadQuery(g_SqlTuple, "QuerySetDataTable", sQuery);
  315. }
  316. public TableCreateThread(iFailState, Handle:sQuery, sError[], iErrcode, sData[], iDataSize, Float:fQueuetime)
  317. {
  318.     if(iFailState == TQUERY_CONNECT_FAILED)
  319.         set_fail_state("[Create] Nem lehet csatlakozni az adatbazishoz!");
  320.     else if(iFailState == TQUERY_QUERY_FAILED)
  321.         set_fail_state("[Create] Lekerdezesi hiba");
  322.     if(iErrcode)
  323.         log_amx("[Create] Hiba:**!! %s !!**", sError);
  324. }
  325. public TableInsert(id)
  326. {
  327.     static sQuery[2048], sSteamID[64];
  328.    
  329.     get_user_authid(id, sSteamID, charsmax(sSteamID));
  330.     formatex(sQuery, charsmax(sQuery), "INSERT INTO `%s` (`SteamId`) VALUES (^"%s^");", Tablename, sSteamID);
  331.     SQL_ThreadQuery(g_SqlTuple, "QuerySetDataTable", sQuery);
  332. }
  333. public SelectDataTable(id)
  334. {
  335.     static sQuery[2048];
  336.     new sData[1], sSteamID[64];
  337.     sData[0] = id;
  338.    
  339.     get_user_authid(id, sSteamID, charsmax(sSteamID));
  340.    
  341.     formatex(sQuery, charsmax(sQuery), "SELECT * FROM `%s` WHERE SteamId = ^"%s^";", Tablename, sSteamID);
  342.     SQL_ThreadQuery(g_SqlTuple, "QuerySelectDataTable", sQuery, sData, 1);
  343. }
  344. public QuerySelectDataTable(iFailState, Handle:sQuery, sError[], iErrcode, sData[], iDataSize, Float:fQueuetime)
  345. {
  346.     if(iFailState == TQUERY_CONNECT_FAILED || iFailState == TQUERY_QUERY_FAILED)
  347.     {
  348.         log_amx("[Insert] Hiba:**!! %s !!**", sError);
  349.         return;
  350.     }
  351.     else
  352.     {
  353.         new id = sData[0];
  354.        
  355.         if(SQL_NumRows(sQuery) > 0)
  356.         {
  357.             g_ePlayer[eLvl][id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "qSzint"));
  358.             g_ePlayer[eXp][id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "qXp"));
  359.             g_ePlayer[eRank][id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "qRank"));
  360.             g_ePlayer[eRankCounter][id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "qRankCounter"));
  361.         }
  362.         else
  363.             TableInsert(id);
  364.     }
  365. }
  366. public QuerySetDataTable(iFailState, Handle:sQuery, sError[], iErrcode, sData[], iDataSize, Float:fQueuetime)
  367. {
  368.     if(iFailState == TQUERY_CONNECT_FAILED || iFailState == TQUERY_QUERY_FAILED)
  369.     {
  370.         log_amx("[SetData] Hiba:**!! %s !!**", sError);
  371.         return;
  372.     }
  373. }

_________________
"Szeretek aludni... mert az álmaim szebbek, mint a valóság."

Ők köszönték meg HellEnergY nek ezt a hozzászólást (összesen 2): Csabika20034 (2021.03.09. 19:57) • kajlakaki01 (2021.03.12. 10:33)
  Népszerűség: 4.55%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Rank Chat
HozzászólásElküldve: 2021.03.12. 10:33 
Offline
Senior Tag
Avatar

Csatlakozott: 2021.01.08. 18:25
Hozzászólások: 273
Megköszönt másnak: 26 alkalommal
Megköszönték neki: 20 alkalommal
HellEnergY írta:
kajlakaki01 írta:
Sziasztok a képen látható igényesen pirossal bekarikázott Chat / Hud "plugint" keresem :D


Szeva, amit a kepen lattam lemasoltam, belulrol nem tudom mi alapjan kapta a rangot, én szinthez kötöttem, a leiras majd ugyis segit.

  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 ADMIN ADMIN_MAP // adminban a mapvaltas jogot
  16. #define VIP ADMIN_LEVEL_H  //vipben meg egy h jogot
  17.  
  18. //(valamelyik előtt mindenképpen legyen // jel!)
  19. #define RANK_ON // ha latni akarsz rangokat chatben (tulaj admin vip)
  20. //#define RANK_OFF // ha nem akarsz latni rangokat chatben (tulaj admin vip)
  21. //(valamelyik előtt mindenképpen legyen // jel!)
  22.  
  23. enum _:ePlayer{eXp,eLvl,eRank,eRankCounter,};
  24. new g_ePlayer[ePlayer][MAXPLAYERS], cvarPrefix, gSyncHud, Handle:g_SqlTuple;
  25.  
  26. enum _:eRanks{eRankName[64], eRankLvl,};
  27. new const cRanks[MAXRANK][eRanks] = {
  28.     {"Valaki új", 0}, //rang neve, szint
  29.     {"Kezdő", 5},
  30.     {"Szereti a tejet", 10},
  31.     {"Szereti a cukrot", 15},
  32.     {"Cukros bácsi/néni", 20},
  33.     {"Loli", 25},
  34.     {"Elismert cukros bácsi/néni", 30},
  35.     {"Újféle cukor", 35},
  36.     {"Gyűjtögető", 40},
  37.     {"Gyerekrabló", 45},
  38.     {"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.
  39. };
  40. public plugin_init()
  41. {
  42.     register_plugin("Hlmodra", "valamiverziosiskell?", "szeretjükatejetazbiztos!");
  43.    
  44.     register_clcmd("say /info", "info_p");
  45.     //register_clcmd("say /rs", "statreset_p");
  46.    
  47.     register_event("DeathMsg", "ev_deathmsg", "a");
  48.    
  49.     cvarPrefix = register_cvar("Prefix", "^4[PREFIX] ^3»");
  50.    
  51.     ////////////////////////////////////////
  52.     register_clcmd("say", "sayhook");      //Maradjon alul!
  53.     register_clcmd("say_team", "saythook"); //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;
  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;
  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[^4Admin^3]^1~");
  151.     else if(get_user_flags(id) & VIP)
  152.         iLen += formatex(sText[iLen], charsmax(sText)-iLen, "~^3[^4VIP^3]^1~");
  153.     else
  154.         iLen += formatex(sText[iLen], charsmax(sText)-iLen, "~^3[^4Játékos^3]^1~");
  155.    
  156.     iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^3[^4Szint: %d^3]~", g_ePlayer[eLvl][id]);
  157.     #endif
  158.    
  159.     #if defined RANK_OFF
  160.     iLen += formatex(sText[iLen], charsmax(sText)-iLen, "~^3[^4Szint: %d^3]~", g_ePlayer[eLvl][id]);
  161.     #endif
  162.    
  163.     get_user_name(id, sName, charsmax(sName));
  164.     format(sMessage, charsmax(sMessage), "%s ^1%s ^3»^3 %s", sText, sName, sMessage);
  165.    
  166.     for(new i; i < get_maxplayers(); i++)
  167.     {
  168.         if(!is_user_connected(i))
  169.             continue;
  170.        
  171.         client_print_color(i, iColor, sMessage);
  172.     }
  173.     return PLUGIN_HANDLED;
  174. }
  175. public saythook(id)
  176. {
  177.     new sMessage[512], sText[128], sDeath[16], iLen, sName[64];
  178.     read_args(sMessage, charsmax(sMessage));
  179.     remove_quotes(sMessage);
  180.    
  181.     if(strlen(sMessage) == 0 || sMessage[0] == '/' || sMessage[0] == '@')
  182.         return PLUGIN_HANDLED;
  183.    
  184.     new iTeam, sTeam[32], iColor;
  185.     iTeam = get_user_team(id, sTeam, charsmax(sTeam));
  186.    
  187.     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!
  188.     {
  189.         case CS_TEAM_CT: {sTeam = "Terrorelhárító"; iColor = -3;} //kék
  190.         case CS_TEAM_T: {sTeam = "Terrorista"; iColor = -2;} //piros
  191.         case CS_TEAM_SPECTATOR: {sTeam = "Nézelődő"; iColor = -1;} //szürke
  192.     }
  193.    
  194.     format(sDeath, charsmax(sDeath), is_user_alive(id) ? "":"*Halott*");
  195.     iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^3(%s)", sTeam);
  196.     iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^1%s", sDeath);
  197.    
  198.     #if defined RANK_ON
  199.     if(get_user_flags(id) & OWNER)
  200.         iLen += formatex(sText[iLen], charsmax(sText)-iLen, "~^3[^4Tulajdonos^3]^1~");
  201.     else if(get_user_flags(id) & ADMIN)
  202.         iLen += formatex(sText[iLen], charsmax(sText)-iLen, "~^3[^4Admin^3]^1~");
  203.     else if(get_user_flags(id) & VIP)
  204.         iLen += formatex(sText[iLen], charsmax(sText)-iLen, "~^3[^4VIP^3]^1~");
  205.     else
  206.         iLen += formatex(sText[iLen], charsmax(sText)-iLen, "~^3[^4Játékos^3]^1~");
  207.    
  208.     iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^3[^4Szint: %d^3]^1~", g_ePlayer[eLvl][id]);
  209.     #endif
  210.    
  211.     #if defined RANK_OFF
  212.     iLen += formatex(sText[iLen], charsmax(sText)-iLen, "~^3[^4Szint: %d^3]~", g_ePlayer[eLvl][id]);
  213.     #endif
  214.    
  215.     get_user_name(id, sName, charsmax(sName));
  216.     format(sMessage, charsmax(sMessage), "%s ^1%s ^3»^3 %s", sText, sName, sMessage);
  217.    
  218.     for(new i; i < get_maxplayers(); i++)
  219.     {
  220.         if(!is_user_connected(i))
  221.             continue;
  222.        
  223.         if(cs_get_user_team(id) == CS_TEAM_CT)
  224.             client_print_color(i, iColor, sMessage);
  225.         else if(cs_get_user_team(id) == CS_TEAM_T)
  226.             client_print_color(i, iColor, sMessage);
  227.         else
  228.             client_print_color(i, iColor, sMessage);
  229.     }
  230.     return PLUGIN_HANDLED;
  231. }
  232. public hudshow_p(id)
  233. {
  234.     if(!is_user_connected(id))
  235.         return PLUGIN_HANDLED;
  236.    
  237.     new sText[256], iLen, idT;
  238.     new Target = pev(id, pev_iuser1) == 4 ? pev(id, pev_iuser2) : id;
  239.     idT = is_user_alive(id) ? id:Target;
  240.    
  241.     new Xp, Xp2;
  242.     Xp = 15+g_ePlayer[eLvl][idT];
  243.     Xp2 = 15*30+g_ePlayer[eLvl][idT]*Xp;
  244.    
  245.     iLen += formatex(sText[iLen], charsmax(sText)-iLen, "Szint: [ %d --> %d ]^n", g_ePlayer[eLvl][idT], MAXLVL);
  246.     iLen += formatex(sText[iLen], charsmax(sText)-iLen, "Rang: -- %s --^n", cRanks[g_ePlayer[eRank][idT]][eRankName]);
  247.     iLen += formatex(sText[iLen], charsmax(sText)-iLen, "XP: [ %d --> %d ]", g_ePlayer[eXp][idT], Xp2);
  248.    
  249.     set_hudmessage(0, 255, 0, -1.0, 0.85, 0, 6.0, 1.0, 0.1, 0.2, -1);
  250.     ShowSyncHudMsg(id, gSyncHud, "%s", sText);
  251.    
  252.     set_task(1.0, "hudshow_p", id);
  253.    
  254.     return PLUGIN_HANDLED;
  255. }
  256. public client_authorized(id)
  257. {
  258.     if(is_user_bot(id))
  259.         return;
  260.    
  261.     set_task(5.0, "hudshow_p", id);
  262.    
  263.     g_ePlayer[eXp][id] = 0;
  264.     g_ePlayer[eLvl][id] = 0;
  265.     g_ePlayer[eRank][id] = 0;
  266.     g_ePlayer[eRankCounter][id] = 0;
  267.    
  268.     SelectDataTable(id);
  269. }
  270. public client_disconnected(id)
  271. {
  272.     if(is_user_bot(id))
  273.         return;
  274.    
  275.     TableUpdate(id);
  276.    
  277.     if(task_exists(id))
  278.         remove_task(id);
  279. }
  280. public plugin_cfg()
  281. {
  282.     //Kiszolgáló | Felhasználó | Jelszó | Adatbázis
  283.    
  284.     g_SqlTuple = SQL_MakeDbTuple("", "", "", "");
  285.     CreateTable();
  286. }
  287. public CreateTable(){
  288.     new iLen;
  289.     static sQuery[2048];
  290.    
  291.     iLen += formatex(sQuery[iLen], charsmax(sQuery), "CREATE TABLE IF NOT EXISTS `%s` ", Tablename);
  292.     iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "( ");
  293.     iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`Id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,");
  294.     iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`SteamId` varchar(64) NOT NULL,");
  295.     iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`qSzint` int(11) NOT NULL,");
  296.     iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`qXp` int(11) NOT NULL,");
  297.     iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`qRank` int(11) NOT NULL,");
  298.     iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`qRankCounter` int(11) NOT NULL)");
  299.    
  300.     SQL_ThreadQuery(g_SqlTuple, "TableCreateThread", sQuery);
  301. }
  302. public TableUpdate(id)
  303. {
  304.     static sQuery[2048];
  305.     new iLen, sSteamID[64];
  306.     get_user_authid(id, sSteamID, charsmax(sSteamID));
  307.    
  308.     iLen += formatex(sQuery[iLen], charsmax(sQuery), "UPDATE `%s` SET ", Tablename);
  309.     iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "qSzint = ^"%i^",", g_ePlayer[eLvl][id]);
  310.     iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "qXp = ^"%i^",", g_ePlayer[eXp][id]);
  311.     iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "qRank = ^"%i^",", g_ePlayer[eRank][id]);
  312.    
  313.     iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "qRankCounter = ^"%i^" WHERE `SteamId` = ^"%s^";", g_ePlayer[eRankCounter][id], sSteamID);
  314.     SQL_ThreadQuery(g_SqlTuple, "QuerySetDataTable", sQuery);
  315. }
  316. public TableCreateThread(iFailState, Handle:sQuery, sError[], iErrcode, sData[], iDataSize, Float:fQueuetime)
  317. {
  318.     if(iFailState == TQUERY_CONNECT_FAILED)
  319.         set_fail_state("[Create] Nem lehet csatlakozni az adatbazishoz!");
  320.     else if(iFailState == TQUERY_QUERY_FAILED)
  321.         set_fail_state("[Create] Lekerdezesi hiba");
  322.     if(iErrcode)
  323.         log_amx("[Create] Hiba:**!! %s !!**", sError);
  324. }
  325. public TableInsert(id)
  326. {
  327.     static sQuery[2048], sSteamID[64];
  328.    
  329.     get_user_authid(id, sSteamID, charsmax(sSteamID));
  330.     formatex(sQuery, charsmax(sQuery), "INSERT INTO `%s` (`SteamId`) VALUES (^"%s^");", Tablename, sSteamID);
  331.     SQL_ThreadQuery(g_SqlTuple, "QuerySetDataTable", sQuery);
  332. }
  333. public SelectDataTable(id)
  334. {
  335.     static sQuery[2048];
  336.     new sData[1], sSteamID[64];
  337.     sData[0] = id;
  338.    
  339.     get_user_authid(id, sSteamID, charsmax(sSteamID));
  340.    
  341.     formatex(sQuery, charsmax(sQuery), "SELECT * FROM `%s` WHERE SteamId = ^"%s^";", Tablename, sSteamID);
  342.     SQL_ThreadQuery(g_SqlTuple, "QuerySelectDataTable", sQuery, sData, 1);
  343. }
  344. public QuerySelectDataTable(iFailState, Handle:sQuery, sError[], iErrcode, sData[], iDataSize, Float:fQueuetime)
  345. {
  346.     if(iFailState == TQUERY_CONNECT_FAILED || iFailState == TQUERY_QUERY_FAILED)
  347.     {
  348.         log_amx("[Insert] Hiba:**!! %s !!**", sError);
  349.         return;
  350.     }
  351.     else
  352.     {
  353.         new id = sData[0];
  354.        
  355.         if(SQL_NumRows(sQuery) > 0)
  356.         {
  357.             g_ePlayer[eLvl][id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "qSzint"));
  358.             g_ePlayer[eXp][id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "qXp"));
  359.             g_ePlayer[eRank][id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "qRank"));
  360.             g_ePlayer[eRankCounter][id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "qRankCounter"));
  361.         }
  362.         else
  363.             TableInsert(id);
  364.     }
  365. }
  366. public QuerySetDataTable(iFailState, Handle:sQuery, sError[], iErrcode, sData[], iDataSize, Float:fQueuetime)
  367. {
  368.     if(iFailState == TQUERY_CONNECT_FAILED || iFailState == TQUERY_QUERY_FAILED)
  369.     {
  370.         log_amx("[SetData] Hiba:**!! %s !!**", sError);
  371.         return;
  372.     }
  373. }



Köszi, amint ráérek tesztelem.

_________________
Kép
FÓRUM


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  [ 5 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 23 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