hlmod.hu

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



Jelenlévő felhasználók

Jelenleg 223 felhasználó van jelen :: 0 regisztrált, 1 rejtett és 222 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  [ 2 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: VIP élet újra töltődés
HozzászólásElküldve: 2023.04.28. 13:45 
Offline
Tag
Avatar

Csatlakozott: 2023.03.12. 22:01
Hozzászólások: 42
Megköszönt másnak: 16 alkalommal
Sziasztok, szeretném ha ebben a pluginban lenne olyan funkció hogy amikor le ment a HP-ja a VIP-nek (csak 10-hp nál tölt vissza annál lentebb már nem) akkor azt vissza tölti szépen, köszönöm.
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <dhudmessage>
  4. #include <cstrike>
  5. #include <fun>
  6. #include <hamsandwich>
  7.  
  8. #define PLUGIN "VIP TAB NO PREFIX"
  9. #define VERSION "1.0"
  10. #define AUTHOR "author"
  11.  
  12. #define JOG ADMIN_LEVEL_E
  13.  
  14. #define kicktime 0
  15. #define bantime 0
  16. #define pausetime 3
  17.  
  18. #define TASK_INTERVAL 4.0
  19. #define MAX_ELET 100
  20.  
  21. enum {
  22.     SCOREATTRIB_ARG_PLAYERID = 1,
  23.     SCOREATTRIB_ARG_FLAGS
  24. };
  25.  
  26. enum ( <<= 1 ) {
  27.     SCOREATTRIB_FLAG_NONE = 0,
  28.     SCOREATTRIB_FLAG_DEAD = 1,
  29.     SCOREATTRIB_FLAG_BOMB,
  30.     SCOREATTRIB_FLAG_VIP
  31. };
  32.  
  33. new file_to_write[64], iName[32], tName[32], iFormatId[30], tFormatId[30], g_Indok[121], userip;
  34.  
  35. new banid, valamid, vipid;
  36.  
  37. new choice;
  38. new const Prefix[] = "!g[Információ]";
  39.  
  40. new maxplayers;
  41. new gmsgSayText;
  42. new kickvolt[33], banvolt[33];
  43. new bool:ban=false;
  44.  
  45.  
  46. public plugin_init() {
  47.     register_plugin(PLUGIN, VERSION, AUTHOR);
  48.    
  49.     maxplayers = get_maxplayers();
  50.     gmsgSayText = get_user_msgid("SayText");
  51.    
  52.     register_clcmd( "say /vipmenu","VIPMenu");
  53.     register_concmd("vipmenu", "VIPMenu");
  54.     register_clcmd("say /vips", "vipek");
  55.    
  56.     register_event("DeathMsg","onDeath","a");
  57.    
  58.     register_clcmd("INDOK_KICK", "cmdKickUserFromMenu");
  59.     register_clcmd("INDOK_BAN", "cmdBanUserFromMenu");
  60.    
  61.    
  62.     register_message( get_user_msgid( "ScoreAttrib" ), "MessageScoreAttrib" );
  63.    
  64.     register_menucmd(register_menuid("menu1"),(1<<0)|(1<<1),"ban_szavazatok");
  65.    
  66.     new configsdir[64];
  67.     get_configsdir(configsdir, 63);
  68.     formatex(file_to_write, 63,"%s/vipban.txt", configsdir);
  69.    
  70.     RegisterHam(Ham_Killed, "player", "fwdKilledPost");
  71.    
  72. }
  73. public onDeath()
  74. {
  75.     new killer = read_data(1);
  76.     new victim = read_data(2);
  77.     new bool: TK = get_user_team(killer) == get_user_team(victim);
  78.    
  79.     if(get_user_flags(killer) & JOG)
  80.     {
  81.         if(killer != victim && !TK && is_user_alive(killer))
  82.         {
  83.             new nhp, khp = get_user_health(killer);
  84.             if(khp >= 140)
  85.                 nhp = 150;
  86.             else
  87.                 nhp = khp + 2;
  88.             set_user_health(killer, nhp);
  89.            
  90.         }
  91.     }
  92. }
  93.  
  94. public client_putinserver(id) {
  95.     if(get_user_flags(id) & JOG) {
  96.         kickvolt[id]=kicktime;
  97.         if(task_exists(id+444))
  98.             remove_task(id+444);
  99.         set_task(60.0, "kick_volt", id+444);
  100.         banvolt[id]=bantime;
  101.         if(task_exists(id+333))
  102.             remove_task(id+333);
  103.         set_task(60.0, "ban_volt", id+333);
  104.         set_task(2.0, "udvozlo", id+222);
  105.     }
  106. }
  107.  
  108. public udvozlo(id)
  109. {
  110.     if(!(get_user_flags(id-222) & ADMIN_KICK))
  111.     {
  112.         print_color(id-222, "%s !tVIP!y tag vagy ezen a szerveren, használhatod a !t/vipmenu !y parancsot.", Prefix)
  113.         new name[32]
  114.         get_user_name(id-222, name, charsmax(name));
  115.         print_color(0, "%s !t%s !yVIP tag csatlakozott a szerverre.", Prefix, name)
  116.     }
  117. }
  118. public VIPMenu(id) {
  119.     if(get_user_flags(id) & JOG) {
  120.        
  121.         new menu = menu_create("\n[HYPER] \rVIP menĂĽ", "VMenu_h")
  122.         new szText[128];
  123.        
  124.         if(kickvolt[id]>0)
  125.         {
  126.             formatex(szText, charsmax(szText), "\dJátĂ©kos kirugás\r(%d perc mĂşlva)", kickvolt[id])
  127.             menu_additem(menu, szText, "1", 0);
  128.         }
  129.         else menu_additem(menu, "\wJátekos kirugás", "1", 0);
  130.        
  131.         if(banvolt[id]>0)
  132.         {
  133.             formatex(szText, charsmax(szText), "\dBannolás szavaztatás\r(%d perc mĂşlva)", banvolt[id])
  134.             menu_additem(menu, szText, "2", 0);
  135.         }
  136.         else menu_additem(menu, "\wBannolás szavaztatás", "2", 0);
  137.        
  138.         menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  139.         menu_display(id, menu, 0);
  140.     }
  141.     else print_color(id, "%s !yEzt a parancsot csak !tVIP !ytagok használhatják!", Prefix)
  142.    
  143. }
  144.  
  145. public VMenu_h(id, menu, item, level, cid) {
  146.     if( item == MENU_EXIT ) {
  147.         menu_destroy(menu);
  148.         return PLUGIN_HANDLED;
  149.     }
  150.    
  151.     new data[6], szName[64];
  152.     new access, callback;
  153.    
  154.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  155.    
  156.     new key = str_to_num(data);
  157.     switch(key) {
  158.         case 1: {
  159.            
  160.             if(kickvolt[id]>0) print_color(id, "%s !yNem tudsz kirĂşgni senkit mĂ©g !t%d !ypercig!", Prefix, kickvolt[id])
  161.             else PlayersMenu(id, 0)
  162.         }
  163.         case 2: {
  164.             if(banvolt[id]>0) print_color(id, "%s !yNem tudsz bannolást szavaztatni mĂ©g !t%d !ypercig!", Prefix, banvolt[id])
  165.             else PlayersMenu(id, 1)
  166.         }
  167.     }
  168.    
  169.     menu_destroy(menu);
  170.     return PLUGIN_HANDLED;
  171.    
  172. }
  173.  
  174. public PlayersMenu(id, menumod)
  175. {
  176.     new menu = menumod == 1 ?  menu_create("\yJátĂ©kos bannolás menĂĽ:", "vipbanmenu_h") : menu_create("\yJátĂ©kos kirugás menĂĽ:", "vipkickmenu_h")
  177.    
  178.     new players[32], pnum, tempid;
  179.     new szName[32], szTempid[10];
  180.     new szText[128];
  181.     get_players(players, pnum);
  182.    
  183.     for( new i; i<pnum; i++ ) {
  184.         tempid = players[i];
  185.         get_user_name(tempid, szName, charsmax(szName));
  186.         num_to_str(tempid, szTempid, charsmax(szTempid));
  187.         if((get_user_flags(tempid) & ADMIN_KICK || get_user_flags(tempid) & JOG))
  188.         {
  189.             formatex(szText, charsmax(szText), "%s \r*", szName)
  190.             menu_additem(menu, szText, szTempid, 0);
  191.         }
  192.         else menu_additem(menu, szName, szTempid, 0);
  193.     }
  194.     menu_display(id, menu, 0);
  195. }
  196. public vipbanmenu_h(id, menu, item)
  197. {
  198.     if( item == MENU_EXIT ) {
  199.        
  200.         menu_destroy(menu);
  201.         if( is_user_connected(id) )
  202.             VIPMenu(id);
  203.         return PLUGIN_HANDLED;
  204.        
  205.     }
  206.     new data[6], szName[64], access, callback;
  207.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  208.    
  209.     banid = str_to_num(data);
  210.     client_cmd(id, "messagemode INDOK_BAN");
  211.    
  212.     menu_destroy(menu);
  213.     return PLUGIN_HANDLED;
  214. }
  215. public vipkickmenu_h(id, menu, item)
  216. {
  217.     if( item == MENU_EXIT ) {
  218.        
  219.         menu_destroy(menu);
  220.         if( is_user_connected(id) )
  221.             VIPMenu(id);
  222.         return PLUGIN_HANDLED;
  223.        
  224.     }
  225.     new data[6], szName[64], access, callback;
  226.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  227.    
  228.     valamid = str_to_num(data);
  229.     client_cmd(id, "messagemode INDOK_KICK");
  230.    
  231.     menu_destroy(menu);
  232.     return PLUGIN_HANDLED;
  233. }
  234. public cmdBanUserFromMenu(id) {
  235.     read_args(g_Indok, charsmax(g_Indok))
  236.     remove_quotes(g_Indok)
  237.    
  238.     if(strlen(g_Indok) >= 15) {
  239.         client_cmd(id, "messagemode INDOK_BAN");
  240.         return PLUGIN_HANDLED
  241.     }
  242.    
  243.     if(ban) print_color(id, "%s !yJelenleg folyamatban van egy ban szavazás, nem tudsz bannolást szavaztatni.", Prefix)
  244.     else if(get_user_flags(banid) & ADMIN_KICK || get_user_flags(banid) & JOG)
  245.     {
  246.         PlayersMenu(id, 1);
  247.         client_print(id, print_center, "Ban szavazás sikertelen immunitás miatt!");
  248.     }
  249.     else
  250.     {
  251.         userip = get_user_userid(banid)
  252.         get_user_name(id, iName, charsmax(iName));
  253.         get_user_name(banid, tName, charsmax(tName));
  254.         get_user_authid(id, iFormatId, charsmax(iFormatId));
  255.         get_user_authid(banid, tFormatId, charsmax(tFormatId));
  256.         print_color(id, "%s !yVIP !t%s!y: szavazást indĂ­tott !t%s !ybannolásárĂłl. Indok: %s", Prefix, iName, tName, g_Indok)
  257.         ban_szavazas()
  258.         ban=true;
  259.     }
  260.     return PLUGIN_HANDLED
  261. }
  262.  
  263. public cmdKickUserFromMenu(id) {
  264.     read_args(g_Indok, charsmax(g_Indok))
  265.     remove_quotes(g_Indok)
  266.    
  267.     if(strlen(g_Indok) >= 15) {
  268.         client_cmd(id, "messagemode INDOK_KICK");
  269.         return PLUGIN_HANDLED
  270.     }
  271.    
  272.     if(get_user_flags(valamid) & ADMIN_KICK || get_user_flags(valamid) & JOG) {
  273.         PlayersMenu(id, 0);
  274.         client_print(id, print_center, "KickelĂ©s sikertelen immunitas miatt!")
  275.     }
  276.     else
  277.     {
  278.         get_user_name(id, iName, charsmax(iName))
  279.         get_user_name(valamid, tName, charsmax(tName))
  280.         get_user_authid(id, iFormatId, charsmax(iFormatId))
  281.         get_user_authid(valamid, tFormatId, charsmax(tFormatId))
  282.         print_color(0, "%s !yVIP !t%s!y: kirĂşgta !t%s!y-t. Indok: %s", Prefix, iName, tName, g_Indok)
  283.         server_cmd("kick #%d",  get_user_userid(valamid))
  284.        
  285.         cmdLogVipKick()
  286.         g_Indok = ""
  287.         kickvolt[id]=kicktime
  288.         if(task_exists(id+444))
  289.             remove_task(id+444)
  290.         set_task(60.0, "kick_volt", id+444);
  291.     }
  292.     return PLUGIN_HANDLED
  293. }
  294. public ban_szavazas()
  295. {
  296.     new szText[128], Name[32];
  297.     get_user_name(banid, Name, charsmax(Name));
  298.     formatex(szText, charsmax(szText), "\wBannoljuk \r%s\w-t \d15 \wpercre? \y(Indok: %s)\w^n^n1. Igen^n2. Nem", Name, g_Indok)
  299.     show_menu(0,(1<<0)|(1<<1), szText, 15, "menu1")
  300.     set_task(15.0,"ban_eredmeny")
  301.     choice = 0
  302.     return PLUGIN_HANDLED    
  303.    
  304. }
  305.  
  306. public ban_szavazatok(id,key){
  307.     new name[32]
  308.     get_user_name(id,name,31)
  309.     new players[32], pnum;
  310.     get_players(players, pnum);
  311.     new what[6]
  312.     if (key == 0) {
  313.         what = "Igen"
  314.         choice++
  315.     }
  316.     if (key == 1) what = "Nem"
  317.     new Float:iSzamol = float(100/pnum*choice)
  318.     print_color(0,"!t%s !yszavazata !t%s !y(!g%0.0f%% !y/ !g100%%!y)", name, what, iSzamol)
  319.     return PLUGIN_HANDLED
  320. }
  321.  
  322. public ban_eredmeny(){
  323.     new Name[32];
  324.     get_user_name(banid, Name, charsmax(Name));
  325.     new players[32], pnum;
  326.     get_players(players, pnum);
  327.     new Float:iSzamol = float(100/pnum*choice)
  328.     new Float:Otven = 50.0
  329.    
  330.     if(iSzamol > Otven)
  331.     {
  332.         print_color(0,"%s !ySzavazás sikeres, !t%s !ybannolva !t15 !ypercre. Indok: %s", Prefix, Name, g_Indok)
  333.        
  334.         if(!is_user_connected(banid)) server_cmd("amx_addban ^"%s^" ^"%s^" ^"15^" ^"VIP altal Bannolva^"", tName, tFormatId);
  335.         else server_cmd("amx_banip #%i ^"15.0^" ^"VIP altal Bannolva^"", userip);
  336.        
  337.         cmdLogVipBan()
  338.         g_Indok = ""
  339.         userip = 0
  340.         banvolt[vipid]=bantime
  341.         if(is_user_connected(vipid)) set_task(60.0, "ban_volt", vipid+333 );
  342.        
  343.     }
  344.     else
  345.     {
  346.         banvolt[vipid]=pausetime
  347.         if(task_exists(vipid+333))
  348.             remove_task(vipid+333)
  349.         if(is_user_connected(vipid))
  350.             set_task(60.0, "ban_volt", vipid+333 );
  351.         print_color(0,"%s !yBannolás sikertelen kevĂ©s szavazat miatt, !t%s!y nem lesz bannolva.", Prefix,Name)
  352.     }
  353.     ban=false;
  354.     return PLUGIN_CONTINUE
  355. }
  356.  
  357. public kick_volt(id)
  358. {
  359.     if(kickvolt[id-444]+1>0)
  360.     {
  361.         kickvolt[id-444]--
  362.         if(task_exists(id))
  363.             remove_task(id)
  364.         set_task(60.0, "kick_volt", id);
  365.     }
  366. }
  367. public ban_volt(id)
  368. {
  369.     if(banvolt[id-333]+1>0)
  370.     {
  371.         banvolt[id-333]--
  372.         if(task_exists(id))
  373.             remove_task(id)
  374.         set_task(60.0, "ban_volt", id);
  375.     }
  376. }
  377.  
  378. public vipek(user) {
  379.     new names[32]
  380.     new message[256]
  381.     new id, count, x, len
  382.    
  383.     for(id = 1 ; id <= maxplayers ; id++)
  384.         if(is_user_connected(id))
  385.         if((get_user_flags(id) & JOG) && !(get_user_flags(id) & ADMIN_KICK))
  386.         get_user_name(id, names[count++], 31)
  387.    
  388.     len = format(message, 255, "^x04[InformáciĂł]^x01 Online VIP tagok:^x03 ")
  389.     if(count > 0) {
  390.         for(x = 0 ; x < count ; x++) {
  391.             len += format(message[len], 255-len, "%s%s ", names[x], x < (count-1) ? "^x01,^x04 ":"")
  392.             if(len > 96 ) {
  393.                 print_message(user, message)
  394.                 len = format(message, 255, "^x04 ")
  395.             }
  396.         }
  397.         print_message(user, message)
  398.     }
  399.     else {
  400.         len += format(message[len], 255-len, "Jelenleg nincs VIP a szerveren.")
  401.         print_message(user, message)
  402.     }
  403. }
  404.  
  405. print_message(id, msg[]) {
  406.     message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
  407.     write_byte(id)
  408.     write_string(msg)
  409.     message_end()
  410. }
  411.  
  412. public MessageScoreAttrib( iMsgId, iDest, iReceiver ) {
  413.     new iPlayer = get_msg_arg_int( SCOREATTRIB_ARG_PLAYERID );
  414.    
  415.     if(get_user_flags(iPlayer) & JOG)
  416.         set_msg_arg_int( SCOREATTRIB_ARG_FLAGS, ARG_BYTE, SCOREATTRIB_FLAG_VIP );
  417. }
  418.  
  419. stock print_color(const id, const input[], any:...)
  420. {
  421.     new count = 1, players[32]
  422.     static msg[191]
  423.     vformat(msg, 190, input, 3)
  424.    
  425.     replace_all(msg, 190, "!g", "^4")
  426.     replace_all(msg, 190, "!y", "^1")
  427.     replace_all(msg, 190, "!t", "^3")      
  428.    
  429.     if (id) players[0] = id; else get_players(players, count, "ch")
  430. {
  431.     for (new i = 0; i < count; i++)
  432.     {
  433.         if (is_user_connected(players[i]))
  434.         {
  435.             message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
  436.             write_byte(players[i])
  437.             write_string(msg)
  438.             message_end()
  439.         }
  440.     }
  441. }
  442. return PLUGIN_HANDLED
  443. }
  444.  
  445. public cmdLogVipBan() {
  446. new output[364], iTimes[64]
  447. get_time("< Datum: %Y-%m-%d | Ido: %H-%M-%S >", iTimes, charsmax(iTimes));
  448. formatex(output, 363, "%s VIP %s [ID: %s] bannolta %s-t [ID: %s] 15 percre! Indok: %s^n", iTimes, iName, iFormatId, tName, tFormatId, g_Indok)
  449. new file = fopen(file_to_write, "at")
  450. fprintf(file, "%s", output)
  451. fclose(file)
  452. }
  453.  
  454. public cmdLogVipKick() {
  455. new output[364], iTimes[64]
  456. get_time("< Datum: %Y-%m-%d | Ido: %H-%M-%S >", iTimes, charsmax(iTimes));
  457. formatex(output, 363, "%s VIP %s [ID: %s] kickelte %s-t [ID: %s] | Indok: %s^n", iTimes, iName, iFormatId, tName, tFormatId, g_Indok)
  458. new file = fopen(file_to_write, "at")
  459. fprintf(file, "%s", output)
  460. fclose(file)
  461. }

_________________
Mindenki a tettei következményeit szenvedi.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: VIP élet újra töltődés
HozzászólásElküldve: 2023.05.26. 04:12 
Offline
Nagyúr
Avatar

Csatlakozott: 2016.03.05. 20:56
Hozzászólások: 663
Megköszönt másnak: 27 alkalommal
Megköszönték neki: 124 alkalommal
  1. new Recovery, Health = get_user_health(id);
  2.             if(Health >= 10)
  3.             Recovery = Health + 2;
  4.             set_user_health(id, Recovery);

_________________
Global Offensive modok:

Global Offensive Mode 1.0
Global Offensive Mode 3.0
exodus Global Offensive 4.0


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


Ki van itt

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