hlmod.hu
https://hlmod.hu/

Chat név
https://hlmod.hu/viewtopic.php?f=9&t=30789
Oldal: 1 / 1

Szerző:  DaffikiD [ 2020.12.21. 10:08 ]
Hozzászólás témája:  Chat név

Sziasztok megint ezzel a problémával fordulnék hozzátok
Név váltás után TAB-nál megváltozik a név viszont chatben hudban stb NEM
próbáltam már egy névváltás tiltóval a dolgot mondom hogyha játékon kívül változtatja meg a nevét akkor reméltem működni fog de mégsem
az én tippem,hogy a hooksay-ban lehet a probléma de az istenért nem birok rá jönni,hogy mi lehet a gond viszont SQL ben sem változik meg a gamename
Hooksay:
  1. public Hook_Say(id){
  2.     if(!ska_is_user_logged(id))
  3.         return PLUGIN_HANDLED;
  4.    
  5.     new Message[512], Status[16], Num[5];
  6.    
  7.     read_args(Message, charsmax(Message));
  8.     remove_quotes(Message);
  9.     new Message_Size = strlen(Message);
  10.    
  11.     for(new i; i < Message_Size; i++){
  12.         if(Message[i] == '.')
  13.             Num[0] ++;
  14.        
  15.         if(Message[i] == ':')
  16.             Num[1] ++;
  17.        
  18.         if(Message[i] == '1' || Message[i] == '2' || Message[i] == '3' || Message[i] == '4' || Message[i] == '5'
  19.             || Message[i] == '6' || Message[i] == '7' || Message[i] == '8' || Message[i] == '9' || Message[i] == '0')
  20.         Num[2] ++;
  21.        
  22.         if(Message[i] == 'w')
  23.             Num[3] ++;
  24.     }
  25.    
  26.     if((contain(Message, "www.") != -1)
  27.         || (contain(Message, "http://") != -1)
  28.     || (contain(Message, ".io") != -1)
  29.     || (contain(Message, ".tsdns.") != -1)
  30.     || (contain(Message, "ts3.run") != -1)
  31.     || (contain(Message, ".com") != -1)
  32.     || (contain(Message, ".ro") != -1)
  33.     || (contain(Message, ".hu") != -1))
  34.     Num[4] = 1;
  35.    
  36.     if((Num[0] >= 3 && Num[1] >= 1 && Num[2] >= 8) || (Num[3] >= 3) || Num[4]){
  37.         client_print_color(id, print_team_default,  "!g[Sex+18] ^1 Tilos a hírdetés!");
  38.         return PLUGIN_HANDLED;
  39.     }
  40.    
  41.     if(Message[0] == '@' || equal (Message, "") || Message[0] == '/')
  42.         return PLUGIN_HANDLED;
  43.    
  44.     if(!is_user_alive(id))
  45.         Status = "*Halott* ";
  46.    
  47.     new len;
  48.     new sPrefix[32];
  49.    
  50.     formatex(sPrefix, charsmax(sPrefix), strlen(g_Chat_Prefix[id]) == 0 ? "":"[%s]", g_Chat_Prefix[id]);
  51.     len += formatex(String[len], charsmax(String)-len, "^1%s", Status);
  52.    
  53.     if(g_Vip[id] == 1)
  54.         len += formatex(String[len], charsmax(String)-len, "^1[^4VIP^1]");
  55.     if(g_Admin_Level[id] > 0)// && InkAdmin[id] == 0)
  56.         len += formatex(String[len], charsmax(String)-len, "^4[%s]", Admin_Permissions[g_Admin_Level[id]][0]);
  57.     if(g_ASD[id] == 1)
  58.         len += formatex(String[len], charsmax(String)-len, "^4[LvL.%i]", Player[id][SSzint]);
  59.     if(strlen(g_Chat_Prefix[id]) > 0)
  60.     len += formatex(String[len], charsmax(String)-len, "^4[%s]", g_Chat_Prefix[id]);
  61.    
  62.    
  63.    
  64.     if(g_Admin_Level[id] > 0 || g_Vip[id] == 1) //&& InkAdmin[id] == 0 ||  )
  65.         len += formatex(String[len], charsmax(String)-len, "^3%s:^4", name[id]);
  66.     else
  67.     len += formatex(String[len], charsmax(String)-len, "^3%s:^1", name[id]);
  68.    
  69.     format(Message, charsmax(Message), "%s %s", String, Message);
  70.    
  71.     for(new i; i < g_Maxplayers; i++){
  72.         if(!is_user_connected(i))
  73.             continue;
  74.        
  75.         if(cs_get_user_team(id) == CS_TEAM_CT)
  76.             client_print_color(i, id, Message);
  77.         else if(cs_get_user_team(id) == CS_TEAM_T)
  78.             client_print_color(i, id, Message);
  79.         else
  80.         client_print_color(i, id, Message);
  81.     }
  82.    
  83.     return PLUGIN_HANDLED;
  84. }
  85. stock client_printcolor(const id, const input[], any:...){
  86.     new Message[191];
  87.     vformat(Message, 190, input, 3);
  88.    
  89.     replace_all(Message, 190, "!g", "^4");
  90.     replace_all(Message, 190, "^1", "^1");
  91.     replace_all(Message, 190, "^3", "^3");  
  92.    
  93.     if(id){
  94.         message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, id);
  95.         write_byte(id);
  96.         write_string(Message);
  97.         message_end();
  98.     }
  99.     else {
  100.         for(new idx = 1; idx < g_Maxplayers; idx++){
  101.             if(!is_user_connected(idx))
  102.                 continue;
  103.            
  104.             message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, idx);
  105.             write_byte(idx);
  106.             write_string(Message);
  107.             message_end();
  108.         }
  109.     }
  110.     return PLUGIN_HANDLED;
  111. }

SQL Gamename:
Kép
Szerverchat+Hud+TAB
Kép
Köszönöm szépen a segítséget

Szerző:  The Peace [ 2020.12.21. 10:19 ]
Hozzászólás témája:  Re: Chat név

DaffikiD írta:
Sziasztok megint ezzel a problémával fordulnék hozzátok
Név váltás után TAB-nál megváltozik a név viszont chatben hudban stb NEM
próbáltam már egy névváltás tiltóval a dolgot mondom hogyha játékon kívül változtatja meg a nevét akkor reméltem működni fog de mégsem
az én tippem,hogy a hooksay-ban lehet a probléma de az istenért nem birok rá jönni,hogy mi lehet a gond viszont SQL ben sem változik meg a gamename
Hooksay:
  1. public Hook_Say(id){
  2.     if(!ska_is_user_logged(id))
  3.         return PLUGIN_HANDLED;
  4.    
  5.     new Message[512], Status[16], Num[5];
  6.    
  7.     read_args(Message, charsmax(Message));
  8.     remove_quotes(Message);
  9.     new Message_Size = strlen(Message);
  10.    
  11.     for(new i; i < Message_Size; i++){
  12.         if(Message[i] == '.')
  13.             Num[0] ++;
  14.        
  15.         if(Message[i] == ':')
  16.             Num[1] ++;
  17.        
  18.         if(Message[i] == '1' || Message[i] == '2' || Message[i] == '3' || Message[i] == '4' || Message[i] == '5'
  19.             || Message[i] == '6' || Message[i] == '7' || Message[i] == '8' || Message[i] == '9' || Message[i] == '0')
  20.         Num[2] ++;
  21.        
  22.         if(Message[i] == 'w')
  23.             Num[3] ++;
  24.     }
  25.    
  26.     if((contain(Message, "www.") != -1)
  27.         || (contain(Message, "http://") != -1)
  28.     || (contain(Message, ".io") != -1)
  29.     || (contain(Message, ".tsdns.") != -1)
  30.     || (contain(Message, "ts3.run") != -1)
  31.     || (contain(Message, ".com") != -1)
  32.     || (contain(Message, ".ro") != -1)
  33.     || (contain(Message, ".hu") != -1))
  34.     Num[4] = 1;
  35.    
  36.     if((Num[0] >= 3 && Num[1] >= 1 && Num[2] >= 8) || (Num[3] >= 3) || Num[4]){
  37.         client_print_color(id, print_team_default,  "!g[Sex+18] ^1 Tilos a hírdetés!");
  38.         return PLUGIN_HANDLED;
  39.     }
  40.    
  41.     if(Message[0] == '@' || equal (Message, "") || Message[0] == '/')
  42.         return PLUGIN_HANDLED;
  43.    
  44.     if(!is_user_alive(id))
  45.         Status = "*Halott* ";
  46.    
  47.     new len;
  48.     new sPrefix[32];
  49.    
  50.     formatex(sPrefix, charsmax(sPrefix), strlen(g_Chat_Prefix[id]) == 0 ? "":"[%s]", g_Chat_Prefix[id]);
  51.     len += formatex(String[len], charsmax(String)-len, "^1%s", Status);
  52.    
  53.     if(g_Vip[id] == 1)
  54.         len += formatex(String[len], charsmax(String)-len, "^1[^4VIP^1]");
  55.     if(g_Admin_Level[id] > 0)// && InkAdmin[id] == 0)
  56.         len += formatex(String[len], charsmax(String)-len, "^4[%s]", Admin_Permissions[g_Admin_Level[id]][0]);
  57.     if(g_ASD[id] == 1)
  58.         len += formatex(String[len], charsmax(String)-len, "^4[LvL.%i]", Player[id][SSzint]);
  59.     if(strlen(g_Chat_Prefix[id]) > 0)
  60.     len += formatex(String[len], charsmax(String)-len, "^4[%s]", g_Chat_Prefix[id]);
  61.    
  62.    
  63.    
  64.     if(g_Admin_Level[id] > 0 || g_Vip[id] == 1) //&& InkAdmin[id] == 0 ||  )
  65.         len += formatex(String[len], charsmax(String)-len, "^3%s:^4", name[id]);
  66.     else
  67.     len += formatex(String[len], charsmax(String)-len, "^3%s:^1", name[id]);
  68.    
  69.     format(Message, charsmax(Message), "%s %s", String, Message);
  70.    
  71.     for(new i; i < g_Maxplayers; i++){
  72.         if(!is_user_connected(i))
  73.             continue;
  74.        
  75.         if(cs_get_user_team(id) == CS_TEAM_CT)
  76.             client_print_color(i, id, Message);
  77.         else if(cs_get_user_team(id) == CS_TEAM_T)
  78.             client_print_color(i, id, Message);
  79.         else
  80.         client_print_color(i, id, Message);
  81.     }
  82.    
  83.     return PLUGIN_HANDLED;
  84. }
  85. stock client_printcolor(const id, const input[], any:...){
  86.     new Message[191];
  87.     vformat(Message, 190, input, 3);
  88.    
  89.     replace_all(Message, 190, "!g", "^4");
  90.     replace_all(Message, 190, "^1", "^1");
  91.     replace_all(Message, 190, "^3", "^3");  
  92.    
  93.     if(id){
  94.         message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, id);
  95.         write_byte(id);
  96.         write_string(Message);
  97.         message_end();
  98.     }
  99.     else {
  100.         for(new idx = 1; idx < g_Maxplayers; idx++){
  101.             if(!is_user_connected(idx))
  102.                 continue;
  103.            
  104.             message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, idx);
  105.             write_byte(idx);
  106.             write_string(Message);
  107.             message_end();
  108.         }
  109.     }
  110.     return PLUGIN_HANDLED;
  111. }

SQL Gamename:
Kép
Szerverchat+Hud+TAB
Kép
Köszönöm szépen a segítséget


Érdekes ez az SQL-es megoldás, de sztem updateolni kéne olyankor a táblát belépéskor meg ellenőrizni a jelenlegi nevet és ha a jelenlegi név nem egyenlő azzal a névvel ami a táblában van aakkkor kellene az UPDATE. :D


Valamint a táblában hogy van megadva a gamename?
String? text?

Szerző:  Dooz [ 2020.12.21. 10:52 ]
Hozzászólás témája:  Re: Chat név

Egyszerübb ha ez helyett
  1. len += formatex(String[len], charsmax(String)-len, "^3%s:^1", name[id]);

ezt használod:
  1. len += formatex(String[len], charsmax(String)-len, "^3%n:^1", id);


A %n-el ki tudod íratni egyből a játékos nevét, nem kell lekérd. Ezt a HUDnál is át tudod írni, illetve az SQLnél is.

ui. Amx Mod X 1.9.0 felett működik ha jól tudom.

Szerző:  DaffikiD [ 2020.12.21. 11:59 ]
Hozzászólás témája:  Re: Chat név

The Peace írta:
DaffikiD írta:
Sziasztok megint ezzel a problémával fordulnék hozzátok
Név váltás után TAB-nál megváltozik a név viszont chatben hudban stb NEM
próbáltam már egy névváltás tiltóval a dolgot mondom hogyha játékon kívül változtatja meg a nevét akkor reméltem működni fog de mégsem
az én tippem,hogy a hooksay-ban lehet a probléma de az istenért nem birok rá jönni,hogy mi lehet a gond viszont SQL ben sem változik meg a gamename
Hooksay:
  1. public Hook_Say(id){
  2.     if(!ska_is_user_logged(id))
  3.         return PLUGIN_HANDLED;
  4.    
  5.     new Message[512], Status[16], Num[5];
  6.    
  7.     read_args(Message, charsmax(Message));
  8.     remove_quotes(Message);
  9.     new Message_Size = strlen(Message);
  10.    
  11.     for(new i; i < Message_Size; i++){
  12.         if(Message[i] == '.')
  13.             Num[0] ++;
  14.        
  15.         if(Message[i] == ':')
  16.             Num[1] ++;
  17.        
  18.         if(Message[i] == '1' || Message[i] == '2' || Message[i] == '3' || Message[i] == '4' || Message[i] == '5'
  19.             || Message[i] == '6' || Message[i] == '7' || Message[i] == '8' || Message[i] == '9' || Message[i] == '0')
  20.         Num[2] ++;
  21.        
  22.         if(Message[i] == 'w')
  23.             Num[3] ++;
  24.     }
  25.    
  26.     if((contain(Message, "www.") != -1)
  27.         || (contain(Message, "http://") != -1)
  28.     || (contain(Message, ".io") != -1)
  29.     || (contain(Message, ".tsdns.") != -1)
  30.     || (contain(Message, "ts3.run") != -1)
  31.     || (contain(Message, ".com") != -1)
  32.     || (contain(Message, ".ro") != -1)
  33.     || (contain(Message, ".hu") != -1))
  34.     Num[4] = 1;
  35.    
  36.     if((Num[0] >= 3 && Num[1] >= 1 && Num[2] >= 8) || (Num[3] >= 3) || Num[4]){
  37.         client_print_color(id, print_team_default,  "!g[Sex+18] ^1 Tilos a hírdetés!");
  38.         return PLUGIN_HANDLED;
  39.     }
  40.    
  41.     if(Message[0] == '@' || equal (Message, "") || Message[0] == '/')
  42.         return PLUGIN_HANDLED;
  43.    
  44.     if(!is_user_alive(id))
  45.         Status = "*Halott* ";
  46.    
  47.     new len;
  48.     new sPrefix[32];
  49.    
  50.     formatex(sPrefix, charsmax(sPrefix), strlen(g_Chat_Prefix[id]) == 0 ? "":"[%s]", g_Chat_Prefix[id]);
  51.     len += formatex(String[len], charsmax(String)-len, "^1%s", Status);
  52.    
  53.     if(g_Vip[id] == 1)
  54.         len += formatex(String[len], charsmax(String)-len, "^1[^4VIP^1]");
  55.     if(g_Admin_Level[id] > 0)// && InkAdmin[id] == 0)
  56.         len += formatex(String[len], charsmax(String)-len, "^4[%s]", Admin_Permissions[g_Admin_Level[id]][0]);
  57.     if(g_ASD[id] == 1)
  58.         len += formatex(String[len], charsmax(String)-len, "^4[LvL.%i]", Player[id][SSzint]);
  59.     if(strlen(g_Chat_Prefix[id]) > 0)
  60.     len += formatex(String[len], charsmax(String)-len, "^4[%s]", g_Chat_Prefix[id]);
  61.    
  62.    
  63.    
  64.     if(g_Admin_Level[id] > 0 || g_Vip[id] == 1) //&& InkAdmin[id] == 0 ||  )
  65.         len += formatex(String[len], charsmax(String)-len, "^3%s:^4", name[id]);
  66.     else
  67.     len += formatex(String[len], charsmax(String)-len, "^3%s:^1", name[id]);
  68.    
  69.     format(Message, charsmax(Message), "%s %s", String, Message);
  70.    
  71.     for(new i; i < g_Maxplayers; i++){
  72.         if(!is_user_connected(i))
  73.             continue;
  74.        
  75.         if(cs_get_user_team(id) == CS_TEAM_CT)
  76.             client_print_color(i, id, Message);
  77.         else if(cs_get_user_team(id) == CS_TEAM_T)
  78.             client_print_color(i, id, Message);
  79.         else
  80.         client_print_color(i, id, Message);
  81.     }
  82.    
  83.     return PLUGIN_HANDLED;
  84. }
  85. stock client_printcolor(const id, const input[], any:...){
  86.     new Message[191];
  87.     vformat(Message, 190, input, 3);
  88.    
  89.     replace_all(Message, 190, "!g", "^4");
  90.     replace_all(Message, 190, "^1", "^1");
  91.     replace_all(Message, 190, "^3", "^3");  
  92.    
  93.     if(id){
  94.         message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, id);
  95.         write_byte(id);
  96.         write_string(Message);
  97.         message_end();
  98.     }
  99.     else {
  100.         for(new idx = 1; idx < g_Maxplayers; idx++){
  101.             if(!is_user_connected(idx))
  102.                 continue;
  103.            
  104.             message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, idx);
  105.             write_byte(idx);
  106.             write_string(Message);
  107.             message_end();
  108.         }
  109.     }
  110.     return PLUGIN_HANDLED;
  111. }

SQL Gamename:
Kép
Szerverchat+Hud+TAB
Kép
Köszönöm szépen a segítséget


Érdekes ez az SQL-es megoldás, de sztem updateolni kéne olyankor a táblát belépéskor meg ellenőrizni a jelenlegi nevet és ha a jelenlegi név nem egyenlő azzal a névvel ami a táblában van aakkkor kellene az UPDATE. :D

Valamint a táblában hogy van megadva a gamename?
String? text?



Nem értek hozzá de valszeg Query lehet most nagy hülyeséget írtam :lol:
viszont Dooz féle megoldás az jó chatre chaten megváltozott de HUD-ban és SQL-ben még mindig nem változik :/

SQL Update része:
  1. Len += formatex(Query[Len], charsmax(Query)-Len, "gamename = ^"%s^", ", name[id]);

Szerző:  Dooz [ 2020.12.21. 12:06 ]
Hozzászólás témája:  Re: Chat név

Talán mert át kellene írni erre?

  1. Len += formatex(Query[Len], charsmax(Query)-Len, "gamename = ^"%n^", ", id);


Ki is emeltem, hogy használd a %n-et, de látom nem sikerült.. :roll: Még mindig %s volt használva..

Szerző:  DaffikiD [ 2020.12.21. 21:51 ]
Hozzászólás témája:  Re: Chat név

Köszi srácok ment a gomb
most meg az a problémám hogy random át írja más emberek nevét hudba és chatben

Szerző:  Dooz [ 2020.12.21. 22:08 ]
Hozzászólás témája:  Re: Chat név

Nyiss rá külön témát és fejtsd ki jobban. Esetleg némi kóddal társítva.

Szerző:  DaffikiD [ 2020.12.24. 17:25 ]
Hozzászólás témája:  Re: Chat név

Át írtam erre
  1. Len += formatex(Query[Len], charsmax(Query)-Len, "gamename = ^"%n^", ", id);

Viszont ha feljön egy játékos akkor mysqlbe a szerveren és mindenhol mind2nek ugyan az a neve
Tehát vagyok én Rolee. én lemegyek és feljön egy játékos át írja az én nevem is annak a nevére aki feljött utánam

Szerző:  theglorious [ 2020.12.24. 21:03 ]
Hozzászólás témája:  Re: Chat név

DaffikiD írta:
Át írtam erre
  1. Len += formatex(Query[Len], charsmax(Query)-Len, "gamename = ^"%n^", ", id);

Viszont ha feljön egy játékos akkor mysqlbe a szerveren és mindenhol mind2nek ugyan az a neve
Tehát vagyok én Rolee. én lemegyek és feljön egy játékos át írja az én nevem is annak a nevére aki feljött utánam

Érdemesebb lenne kódot is mutatni. Így senki nem fogja tudni, hogy mi a hiba.

Oldal: 1 / 1 Minden időpont UTC+02:00 időzóna szerinti
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/