hlmod.hu
https://hlmod.hu/

wss+ admin chat valaki ezt egybe tudná írni?
https://hlmod.hu/viewtopic.php?f=29&t=28126
Oldal: 1 / 1

Szerző:  kris128 [2017.08.15. 15:14 ]
Hozzászólás témája:  wss+ admin chat valaki ezt egybe tudná írni?

  1. new g_Rang[MAX_GROUPS][] = {
  2.        "Tulaj",
  3.        "Helyettes",
  4.        "Foadmin",
  5.        "Admin",
  6.    
  7. };
  8.  
  9. new g_RangFlag[MAX_GROUPS][] = {
  10.        "abcdefghijklmnopqrstu",
  11.        "bcdefghijklmnopqrstu",
  12.      
  13.        "bcf",
  14.        "t"
  15. };
  16.  
  17. public plugin_init() {
  18.     register_plugin("RangAdminChat", "0.5", "Ex3cuTioN");
  19.     register_clcmd("say","hook_say");
  20.     register_clcmd("say_team","hook_say2");
  21. }
  22.  
  23. public hook_say(id) {
  24.     if(!is_user_admin(id) || is_user_bot(id)) {
  25.         return PLUGIN_CONTINUE;
  26.     }
  27.    
  28.     new nick[32];
  29.     get_user_name(id,nick,31);
  30.    
  31.     static chat[32];
  32.     read_args(chat, sizeof(chat) - 1);
  33.     remove_quotes(chat);
  34.    
  35.     if(equali(chat,"")) {
  36.         return PLUGIN_CONTINUE;
  37.     }
  38.    
  39.     for(new i=0; i<MAX_GROUPS; i++) {
  40.         if(get_user_flags(id) == read_flags(g_RangFlag[i])) {
  41.             ColorChat(0,GREEN,"[%s]^x03 %s^x04 : %s",g_Rang[i],nick,chat);
  42.             return PLUGIN_HANDLED;
  43.         }
  44.     }
  45.     return PLUGIN_CONTINUE;
  46. }
  47.  
  48. public hook_say2(id) {
  49.     if(!is_user_admin(id) || is_user_bot(id)) {
  50.         return PLUGIN_CONTINUE;
  51.     }
  52.    
  53.     new nick[32];
  54.     get_user_name(id,nick,31);
  55.    
  56.     static chat[32];
  57.     read_args(chat, sizeof(chat) - 1);
  58.     remove_quotes(chat);
  59.    
  60.     if(equali(chat,"")) {
  61.         return PLUGIN_CONTINUE;
  62.     }
  63.    
  64.     for(new i=0; i<MAX_GROUPS; i++) {
  65.         if(get_user_flags(id) == read_flags(g_RangFlag[i])) {
  66.             new players[32],num;
  67.             get_players(players,num,"c");
  68.            
  69.             for(new x=0; x<num; x++) {
  70.                 if(get_user_team(id) == get_user_team(players[x])) {
  71.                     switch(get_user_team(id)) {
  72.                         case 1:
  73.                         {
  74.                             ColorChat(players[x],RED,"(Terrorist)^x04[%s]^x03 %s^x04 : %s",g_Rang[i],nick,chat);
  75.                         }
  76.                         case 2:
  77.                         {
  78.                             ColorChat(players[x],BLUE,"(Counter)^x04[%s]^x03 %s^x04 : %s",g_Rang[i],nick,chat);
  79.                         }
  80.                     }
  81.                 }
  82.                 return PLUGIN_HANDLED;
  83.             }
  84.         }
  85.     }
  86.     return PLUGIN_CONTINUE;
  87. }

  1. #include <amxmodx>
  2. #include <fun>
  3. #include <engine>
  4. #include <fakemeta>
  5. #include <hamsandwich>
  6. #include <fakemeta_util>
  7. #include <colorchat>
  8. #include <fvault>
  9.  
  10. #define PLUGIN "Weapon Skin System [WSS]"
  11. #define VERSION "1.0"
  12. #define AUTHOR "6almasok"
  13.  
  14. #define IsValidPlayers(%1,%2) ((1 <= %1 <= 32) && (1 <= %2 <= 32))
  15.  
  16. new oles[33],csomag[33], kredit[33],switchbutton[33],knife[33],getfrag[3][33]
  17. new ModelData[40][64], ModelNum, MaximumBtton
  18.  
  19. new const File[] = "addons/amxmodx/configs/wss_models.ini"
  20. new const szVaultName[] = "wss_vault"
  21. new const prefix[] = "WSS"
  22.  
  23. /*Rust Kills | Silver Kills | Gold Kills | Veteran Kills | Knife Kredit*/
  24. new const need_kills[] = { 500, 1000, 2000, 4000, 500 }
  25.  
  26. /*Pack Names*/
  27. new const csomagmsg[6][] = { "Nincs","Rozsdás Csomag","Ezüst Csomag","Arany Csomag","Veterán Csomag","Speed Knife" }
  28.  
  29. new const knifedisenable[2][] = { "Kikapcsolva", "Bekapcsolva" }
  30.  
  31. new const menuszoveg[][][] = {
  32.     {"Rozsdás Csomag \r[MEGSZEREZVE]", "\dRozsdás Csomag \r[%i/%i Ă–lĂ©s]"}, //0
  33.     {"EzĂĽst Csomag \r[MEGSZEREZVE]", "\dEzĂĽst Csomag \r[%i/%i Ă–lĂ©s]"}, //1
  34.     {"Arany Csomag \r[MEGSZEREZVE]", "\dArany Csomag \r[%i/%i Ă–lĂ©s]"}, //2
  35.     {"Veterán Csomag \r[MEGSZEREZVE]", "\dVeterán Csomag \r[%i/%i Ă–lĂ©s]"}, //3
  36.     {"Speed Knife \r[MEGSZEREZVE]^n", "\dSpeed Knife \r[%i/%i Ă–lĂ©s]^n"}, //4
  37.     {"\ySkin Csomagok \r[KIKAPCSOLVA]", "\ySkin Csomagok \r[BEKAPCSOLVA]"} //5
  38. }
  39. new const chatszoveg[10][] =
  40. {
  41.     "^4[%s]^1 FEJLĂ–VÉS!^3 %s ^1megölĂ©séért kaptál ^3+%i^1 ölĂ©st!",
  42.     "^4[%s]^3 %s ^1megölĂ©séért kaptál ^3+%i^1 ölĂ©st!",
  43.     "^4[%s]^3 %s ^1kapott ^3+1 ^1ölĂ©st ember lesebzĂ©sĂ©rt!",
  44.     "^4[%s]^1 Találtál^3 +%i^1 kreditet a csomagbol!",
  45.     "^4[%s]^1 Kiválasztottad a(z)^3 %s^1-ot!",
  46.     "^4[%s]^1 Sajnos nincs elĂ©g ölĂ©sed!",
  47.     "^4[%s]^1 Kikapcsoltad a Skin Csomagokat!",
  48.     "^4[%s]^1 Bekapcsoltad a Skin Csomagokat!",
  49.     "^4[%s]^1 A Szerveren Jelenleg a(z) ^3Weapon Skin System^1 fut. Megnyitáshoz Ă­rd be ^3/menu^1.",
  50.     "^4[%s]^1 Sajnos nincs elĂ©g kredited!"
  51. }
  52. public plugin_init() {
  53.     register_plugin(PLUGIN, VERSION, AUTHOR)
  54.    
  55.     /* Client Command */
  56.     register_clcmd("say /menu" , "fomenu")
  57.    
  58.     /* Events */
  59.     register_event("CurWeapon", "changeweapon", "be", "1=1")
  60.     register_event("Damage", "sebzes_event", "be", "2!0", "3=0", "4!0")
  61.     register_event("DeathMsg","Halal","a")
  62.    
  63.     /* Cvars */
  64.     register_cvar("wss_hudenable", "1");
  65.     register_cvar("wss_advertmp", "40.0");
  66.     register_cvar("kill_recived", "1");
  67.     register_cvar("hs_recived", "2");
  68.     register_cvar("found_kredit", "1");
  69.    
  70.     /* Other */
  71.     register_forward(FM_Touch,"ForwardTouch" );
  72.     RegisterHam(Ham_Spawn, "player", "spawn_event", 1)
  73.     set_task(1.0, "infohud", 0, _, _, "b")
  74.     set_task(get_cvar_float("wss_advertmp"), "advertist", 0, "", 0, "b", 0)
  75.  
  76.     LoadModel();
  77. }
  78. public advertist(){
  79.     ColorChat(0, GREEN, chatszoveg[8],prefix);
  80.     return PLUGIN_HANDLED;
  81. }
  82. public plugin_precache() {
  83.    
  84.     new Len, btton[196], Data[64], Letoltes[40][64];
  85.     MaximumBtton = file_size(File, 1);
  86.    
  87.     for(new Num = 0; Num < MaximumBtton; Num++){
  88.         read_file(File, Num, btton, 196, Len);
  89.         parse(btton, Data, 63);
  90.         remove_quotes(btton);
  91.         if(btton[0] == ';')
  92.         {
  93.             continue;
  94.         }
  95.         remove_quotes(Data);
  96.         format(Letoltes[Num], 63, "%s", Data);
  97.         precache_model(Letoltes[Num]);
  98.     }
  99.     precache_model("models/wss/pack/kredit.mdl");
  100. }
  101. public LoadModel()
  102. {
  103.     new Len, btton[196], Data[64];
  104.     MaximumBtton = file_size(File, 1);
  105.     for(new Num; Num < MaximumBtton; Num++){
  106.         ModelNum++;
  107.         read_file(File, Num, btton, 196, Len);
  108.         parse(btton, Data, 63);
  109.         remove_quotes(btton);
  110.         if(btton[0] == ';')
  111.         {
  112.             continue;
  113.         }
  114.         remove_quotes(Data);
  115.         format(ModelData[ModelNum], 63, "%s", Data);
  116.     }
  117. }
  118. public changeweapon(id)
  119. {
  120.     if(!is_user_alive(id) || !is_user_connected(id) || id < 1 || id > 32 || switchbutton[id] == 1)
  121.     return
  122.    
  123.     new fegyver = get_user_weapon(id)
  124.    
  125.     if(csomag[id] == 1){
  126.         if(fegyver == CSW_AK47)set_pev(id, pev_viewmodel2, ModelData[1]) //Rozsdas ak
  127.         if(fegyver == CSW_AWP)set_pev(id, pev_viewmodel2, ModelData[2]) //Rozsdas awp
  128.         if(fegyver == CSW_DEAGLE)set_pev(id, pev_viewmodel2, ModelData[3]) //Rozsdas desi
  129.         if(fegyver == CSW_M4A1)set_pev(id, pev_viewmodel2, ModelData[4]) //Rozsdas m4
  130.     }
  131.     else if(csomag[id] == 2){
  132.         if(fegyver == CSW_AK47)set_pev(id, pev_viewmodel2, ModelData[5]) //ezust ak
  133.         if(fegyver == CSW_AWP)set_pev(id, pev_viewmodel2, ModelData[6]) //ezust awp
  134.         if(fegyver == CSW_DEAGLE)set_pev(id, pev_viewmodel2, ModelData[7]) //ezust desi
  135.         if(fegyver == CSW_M4A1)set_pev(id, pev_viewmodel2, ModelData[8]) //ezust m4
  136.     }
  137.     else if(csomag[id] == 3){
  138.         if(fegyver == CSW_AK47)set_pev(id, pev_viewmodel2, ModelData[9]) //arany ak
  139.         if(fegyver == CSW_AWP)set_pev(id, pev_viewmodel2, ModelData[10]) //arany awp
  140.         if(fegyver == CSW_DEAGLE)set_pev(id, pev_viewmodel2, ModelData[11]) //arany desi
  141.         if(fegyver == CSW_M4A1)set_pev(id, pev_viewmodel2, ModelData[12]) //arany m4
  142.     }
  143.     else if(csomag[id] == 4){
  144.         if(fegyver == CSW_AK47)set_pev(id, pev_viewmodel2, ModelData[13]) //veteran ak
  145.         if(fegyver == CSW_AWP)set_pev(id, pev_viewmodel2, ModelData[14]) //veteran awp
  146.         if(fegyver == CSW_DEAGLE)set_pev(id, pev_viewmodel2, ModelData[15]) //veteran desi
  147.         if(fegyver == CSW_M4A1)set_pev(id, pev_viewmodel2, ModelData[16]) //veteran m4
  148.     }
  149.     if(knife[id] == 1 && fegyver == CSW_KNIFE){
  150.        
  151.         set_user_maxspeed(id, Float:320.0)
  152.         set_pev(id, pev_viewmodel2, ModelData[17]) //knife
  153.     }
  154.  
  155. }
  156. public spawn_event(id){
  157.     getfrag[0][id] = 0;
  158.     getfrag[1][id] = 0;
  159.     getfrag[2][id] = 0;
  160. }
  161. public sebzes_event(id)
  162. {
  163.     new tamado = get_user_attacker(id);
  164.     if(id == tamado  || !IsValidPlayers(id, tamado )) return;
  165.     getfrag[1][tamado] += read_data(2);
  166.  
  167.     if(!getfrag[2][id] && getfrag[1][tamado] >= 50)
  168.     {
  169.         getfrag[0][tamado] = id;
  170.         getfrag[2][id] = tamado;
  171.     }
  172. }
  173. public Halal() {
  174.    
  175.     new attacker = read_data(1)
  176.     new victim = read_data(2)
  177.    
  178.     new nev[32]
  179.     get_user_name(victim, nev, charsmax(nev))
  180.    
  181.     if(attacker == victim || attacker == 0)
  182.         return PLUGIN_HANDLED
  183.    
  184.     if(read_data( 3 )){
  185.         oles[attacker] += get_cvar_num("hs_recived");
  186.         ColorChat(attacker, GREEN, chatszoveg[0] ,prefix ,nev, get_cvar_num("hs_recived"))
  187.     }
  188.     else{
  189.         oles[attacker] += get_cvar_num("kill_recived");
  190.         ColorChat(attacker, GREEN, chatszoveg[1],prefix, nev, get_cvar_num("kill_recived"))
  191.     }
  192.     if(getfrag[2][victim] && getfrag[2][victim] != attacker){
  193.         new fragetkap = getfrag[2][victim];
  194.         new fragetkapneve[32];
  195.         getfrag[0][fragetkap] = 0;
  196.         getfrag[1][fragetkap] = 0;
  197.         getfrag[2][victim] = 0;
  198.         get_user_name(fragetkap, fragetkapneve, charsmax(fragetkapneve));
  199.         oles[fragetkap]++
  200.         ColorChat(0, GREEN, chatszoveg[2],prefix ,fragetkapneve);
  201.     }
  202.     switch(random_num(1,3)){
  203.         case 1: dropdobas()
  204.     }
  205.     return PLUGIN_HANDLED;
  206. }
  207. public dropdobas()
  208. {  
  209.     new victim = read_data( 2 );
  210.  
  211.     static Float:origin[ 3 ];
  212.     pev( victim, pev_origin, origin );
  213.  
  214.     new ent = engfunc( EngFunc_CreateNamedEntity, engfunc( EngFunc_AllocString, "info_target" ) );
  215.     origin[ 2 ] -= 36;
  216.     engfunc( EngFunc_SetOrigin, ent, origin );
  217.  
  218.     if( !pev_valid( ent ) )
  219.     {
  220.         return PLUGIN_HANDLED;
  221.     }
  222.    
  223.     set_pev( ent, pev_classname, "kredit" );
  224.     engfunc( EngFunc_SetModel, ent, "models/wss/pack/kredit.mdl" );
  225.     dllfunc( DLLFunc_Spawn, ent );
  226.     set_pev( ent, pev_solid, SOLID_BBOX );
  227.     set_pev( ent, pev_movetype, MOVETYPE_NONE );
  228.     engfunc( EngFunc_SetSize, ent, Float:{ -23.160000, -13.660000, -0.050000 }, Float:{ 11.470000, 12.780000, 6.720000 } );
  229.     engfunc( EngFunc_DropToFloor, ent );
  230.  
  231.     return PLUGIN_HANDLED;
  232. }
  233. public ForwardTouch( ent, id )
  234. {
  235.     if(pev_valid(ent))
  236.     {
  237.     new classname[ 32 ];
  238.     pev( ent, pev_classname, classname, charsmax( classname ) );
  239.  
  240.     if( !equal( classname, "kredit") )
  241.     {
  242.         return FMRES_IGNORED;
  243.     }
  244.  
  245.     kredit[id] += get_cvar_num("found_kredit");
  246.     ColorChat(id, GREEN, chatszoveg[3],prefix, get_cvar_num("found_kredit"));
  247.    
  248.     engfunc( EngFunc_RemoveEntity, ent );
  249.     }
  250.     return FMRES_IGNORED
  251. }
  252. public logevent_round_start()
  253. {
  254.     new hkt = FM_NULLENT;
  255.     while ( ( hkt = fm_find_ent_by_class( hkt, "kredit") ) )
  256.     {
  257.         engfunc( EngFunc_RemoveEntity, hkt );
  258.     }  
  259. }
  260. public fomenu(id)
  261. {
  262.     new String[96]
  263.     format(String, charsmax(String), "\r[Weapon Skin System] \wFĹ‘menĂĽ^n\yĂ–lĂ©sek: \d%i \w|\y Kreditek: \d%i", oles[id],kredit[id])
  264.     new menu = menu_create(String, "fomenu_MyMenu");
  265.  
  266.     menu_additem(menu, "Fegyver Skin Csomagok", "0");
  267.     menu_additem(menu, "JátĂ©kos InfĂłk", "1");
  268.     menu_additem(menu, "Pack InformáciĂłk", "2");
  269.  
  270.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  271.     menu_setprop(menu, MPROP_EXITNAME, "\rKilĂ©pĂ©s");
  272.  
  273.     menu_display(id, menu, 0);
  274.  
  275.     return PLUGIN_HANDLED;
  276. }
  277. public fomenu_MyMenu(id, menu, item)
  278. {
  279.     if(item == MENU_EXIT)
  280.     {
  281.         menu_destroy(menu);
  282.         return PLUGIN_HANDLED;
  283.     }
  284.  
  285.     new command[6], name[64], access, callback;
  286.     menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
  287.  
  288.     switch(item)
  289.     {
  290.         case 0: fegymenu(id)
  291.         case 1: playerinfo(id)
  292.         case 2: show_motd(id, "addons/amxmodx/configs/wssinfo.txt", "[WSS] Infok")
  293.     }
  294.  
  295.     menu_destroy(menu);
  296.  
  297.     return PLUGIN_HANDLED;
  298. }
  299. public playerinfo(id)
  300. {  
  301.     new some[256], menu
  302.     static players[32],szTemp[10],pnum
  303.     get_players(players,pnum,"ch");
  304.  
  305.     formatex(some,255,"\r[Weapon Skin System] \wJátĂ©kos \d|\w Ă–lĂ©s \d|\w Kredit");
  306.     menu = menu_create(some,"pinfo_Handler");
  307.  
  308.     for (new i; i < pnum; i++)
  309.     {
  310.         formatex(some,256,"%s \r(\yĂ–lĂ©se: \w%i \d| \yKreditje: \w%i\r)",get_player_name(players[i]), oles[players[i]],kredit[players[i]]);
  311.         num_to_str(players[i],szTemp,charsmax(szTemp));
  312.         menu_additem(menu, some, szTemp);
  313.     }
  314.  
  315.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL );
  316.     menu_setprop(menu, MPROP_EXITNAME, "KilĂ©pĂ©s");
  317.     menu_display(id, menu);
  318.     return PLUGIN_HANDLED;
  319. }
  320. public pinfo_Handler(id,menu, item)
  321. {
  322.     if(item == MENU_EXIT)
  323.     {
  324.         menu_destroy(menu);
  325.         return;
  326.     }
  327.  
  328.     playerinfo(id)
  329. }
  330. public fegymenu(id)
  331. {
  332.     new String[96]
  333.     format(String, charsmax(String), "\r[Weapon Skin System] \wSkin csomagok^n\yKiválasztott Csomag: \d[%s]", csomagmsg[csomag[id]])
  334.     new menu = menu_create(String, "fegymenu_handler" )
  335.  
  336.     format(String, charsmax(String), oles[id] >= need_kills[0] ? (menuszoveg[0][0]):(menuszoveg[0][1]), oles[id], need_kills[0]);
  337.     menu_additem(menu, String, "0" );
  338.     formatex(String, charsmax(String), oles[id] >= need_kills[1] ? (menuszoveg[1][0]):(menuszoveg[1][1]), oles[id], need_kills[1]);
  339.     menu_additem(menu, String, "1");
  340.     formatex(String, charsmax(String), oles[id] >= need_kills[2] ? (menuszoveg[2][0]):(menuszoveg[2][1]), oles[id], need_kills[2]);
  341.     menu_additem(menu, String, "2");
  342.     format(String, charsmax(String), oles[id] >= need_kills[3] ? (menuszoveg[3][0]):(menuszoveg[3][1]), oles[id], need_kills[3]);
  343.     menu_additem(menu, String, "3");
  344.     formatex(String, charsmax(String), kredit[id] >= need_kills[4] ? (menuszoveg[4][0]):(menuszoveg[4][1]), kredit[id], need_kills[4]);
  345.     menu_additem(menu, String, "4");
  346.     menu_additem(menu, switchbutton[id] == 1 ? (menuszoveg[5][0]):(menuszoveg[5][1]), "5");
  347.  
  348.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  349.     menu_setprop(menu, MPROP_BACKNAME, "Vissza");
  350.     menu_setprop(menu, MPROP_NEXTNAME, "ElĹ‘re");
  351.     menu_setprop(menu, MPROP_EXITNAME, "KilĂ©pĂ©s");
  352.  
  353.     menu_display(id, menu, 0);
  354.     return PLUGIN_HANDLED;
  355. }
  356. public fegymenu_handler(id, menu, item)
  357. {
  358.     if(item == MENU_EXIT)
  359.     {
  360.         menu_destroy(menu)
  361.         return PLUGIN_HANDLED;
  362.     }
  363.  
  364.     new command[6], name[64], access, callback;
  365.     menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
  366.  
  367.     switch(item)
  368.     {
  369.         case 0: {
  370.             if(oles[id] >= need_kills[0]) {
  371.             csomag[id] = 1
  372.             ColorChat(id, GREEN, chatszoveg[4],prefix, csomagmsg[csomag[id]]);
  373.             }
  374.             else  {
  375.             ColorChat(id, GREEN, chatszoveg[5],prefix);
  376.             }
  377.         }
  378.         case 1: {
  379.             if(oles[id] >= need_kills[1]) {
  380.             csomag[id] = 2
  381.             ColorChat(id, GREEN, chatszoveg[4],prefix, csomagmsg[csomag[id]]);
  382.             }
  383.             else  {
  384.             ColorChat(id, GREEN, chatszoveg[5],prefix);
  385.             }
  386.         }
  387.         case 2: {
  388.             if(oles[id] >= need_kills[2]) {
  389.             csomag[id] = 3
  390.             ColorChat(id, GREEN, chatszoveg[4],prefix, csomagmsg[csomag[id]]);
  391.             }
  392.             else  {
  393.             ColorChat(id, GREEN, chatszoveg[5],prefix);
  394.             }
  395.         }
  396.         case 3: {
  397.             if(oles[id] >= need_kills[3]) {
  398.             csomag[id] = 4
  399.             ColorChat(id, GREEN, chatszoveg[4],prefix, csomagmsg[csomag[id]]);
  400.             }
  401.             else  {
  402.             ColorChat(id, GREEN, chatszoveg[5],prefix);
  403.             }
  404.         }
  405.         case 4: {
  406.             if(kredit[id] >= need_kills[4]) {
  407.             knife[id] = 1
  408.             ColorChat(id, GREEN, chatszoveg[4],prefix, csomagmsg[5]);
  409.             }
  410.             else  {
  411.             ColorChat(id, GREEN, chatszoveg[9],prefix);
  412.             }
  413.         }
  414.         case 5: {
  415.             if(switchbutton[id] == 0){
  416.             switchbutton[id] = 1
  417.             csomag[id] = 0
  418.             knife[id] = 0
  419.             ColorChat(id, GREEN, chatszoveg[6],prefix);
  420.             }
  421.             else {
  422.             switchbutton[id] = 0
  423.             ColorChat(id, GREEN, chatszoveg[7],prefix);
  424.             }
  425.         }
  426.         case 6: {
  427.             ColorChat(id, GREEN, chatszoveg[5],prefix);
  428.         }
  429.     }
  430.  
  431.     fegymenu(id)
  432.     return PLUGIN_HANDLED;
  433. }
  434. public infohud() {
  435.    
  436.     if(!get_cvar_num("wss_hudenable")) return PLUGIN_HANDLED
  437.    
  438.     static id
  439.     for(id = 1; id <= get_maxplayers(); id++)
  440.     {
  441.         if(is_user_alive(id)){
  442.             set_hudmessage(0, 127, 255, 0.01, 0.20, 0, 6.0, 1.0)
  443.             show_hudmessage(id, "[Ă–lĂ©s: %i]^n[Kredit: %i]^n[Kiválasztott Csomag: %s]^n[Speed Knife: %s]", oles[id],kredit[id],csomagmsg[csomag[id]], knifedisenable[knife[id]])
  444.         }
  445.         else{
  446.             new target = entity_get_int(id, EV_INT_iuser2);
  447.            
  448.             if(!target)
  449.             return PLUGIN_CONTINUE;
  450.                
  451.             set_hudmessage(255, 255, 255, 0.01, 0.20, 0, 6.0, 1.0)
  452.             show_hudmessage(id, "[Ă–lĂ©s: %i]^n[Kredit: %i]^n[Kiválasztott Csomag: %s]^n[Speed Knife: %s]", oles[target],kredit[target],csomagmsg[csomag[target]], knifedisenable[knife[target]])
  453.         }
  454.     }
  455.     return PLUGIN_CONTINUE;
  456. }
  457. stock get_player_name(id){
  458.     static szName[32];
  459.     get_user_name(id,szName,31);
  460.     return szName;
  461. }
  462. public client_disconnect(id){
  463.     if(is_user_bot(id)) return;
  464.    
  465.     save(id);
  466. }
  467. public client_putinserver( id ) {
  468.     if(is_user_bot(id)) return;
  469.    
  470.     oles[id] = 0;
  471.     kredit[id] = 0;
  472.     csomag[id] = 0;
  473.     switchbutton[id] = 0;
  474.     load(id);
  475. }
  476. load(id) {
  477.     new szAuthid[32], szData[32];
  478.     get_user_name( id, szAuthid, charsmax(szAuthid));
  479.     new s1[16],s2[16],s3[16],s4[16]
  480.     fvault_get_data( szVaultName, szAuthid, szData, 31 );
  481.     parse( szData, s1, 15, s2, 15 , s3 , 15, s4 ,15);
  482.     oles[id] = str_to_num(s1);
  483.     kredit[id] = str_to_num(s2);
  484.     csomag[id] = str_to_num(s3);
  485.     switchbutton[id] = str_to_num(s4);
  486. }
  487. save(id) {
  488.     new szAuthid[ 32 ], szData[ 32 ];
  489.     get_user_name( id, szAuthid, charsmax(szAuthid));
  490.    
  491.     formatex( szData, 31, "%i %i %i %i", oles[id], kredit[id], csomag[id], switchbutton[id]);
  492.     fvault_set_data( szVaultName, szAuthid, szData );
  493. }

Szerző:  qkly [2017.08.15. 16:04 ]
Hozzászólás témája:  Re: wss+ admin chat valaki ezt egybe tudná írni?

kris128 írta:
  1. new g_Rang[MAX_GROUPS][] = {
  2.        "Tulaj",
  3.        "Helyettes",
  4.        "Foadmin",
  5.        "Admin",
  6.    
  7. };
  8.  
  9. new g_RangFlag[MAX_GROUPS][] = {
  10.        "abcdefghijklmnopqrstu",
  11.        "bcdefghijklmnopqrstu",
  12.      
  13.        "bcf",
  14.        "t"
  15. };
  16.  
  17. public plugin_init() {
  18.     register_plugin("RangAdminChat", "0.5", "Ex3cuTioN");
  19.     register_clcmd("say","hook_say");
  20.     register_clcmd("say_team","hook_say2");
  21. }
  22.  
  23. public hook_say(id) {
  24.     if(!is_user_admin(id) || is_user_bot(id)) {
  25.         return PLUGIN_CONTINUE;
  26.     }
  27.    
  28.     new nick[32];
  29.     get_user_name(id,nick,31);
  30.    
  31.     static chat[32];
  32.     read_args(chat, sizeof(chat) - 1);
  33.     remove_quotes(chat);
  34.    
  35.     if(equali(chat,"")) {
  36.         return PLUGIN_CONTINUE;
  37.     }
  38.    
  39.     for(new i=0; i<MAX_GROUPS; i++) {
  40.         if(get_user_flags(id) == read_flags(g_RangFlag[i])) {
  41.             ColorChat(0,GREEN,"[%s]^x03 %s^x04 : %s",g_Rang[i],nick,chat);
  42.             return PLUGIN_HANDLED;
  43.         }
  44.     }
  45.     return PLUGIN_CONTINUE;
  46. }
  47.  
  48. public hook_say2(id) {
  49.     if(!is_user_admin(id) || is_user_bot(id)) {
  50.         return PLUGIN_CONTINUE;
  51.     }
  52.    
  53.     new nick[32];
  54.     get_user_name(id,nick,31);
  55.    
  56.     static chat[32];
  57.     read_args(chat, sizeof(chat) - 1);
  58.     remove_quotes(chat);
  59.    
  60.     if(equali(chat,"")) {
  61.         return PLUGIN_CONTINUE;
  62.     }
  63.    
  64.     for(new i=0; i<MAX_GROUPS; i++) {
  65.         if(get_user_flags(id) == read_flags(g_RangFlag[i])) {
  66.             new players[32],num;
  67.             get_players(players,num,"c");
  68.            
  69.             for(new x=0; x<num; x++) {
  70.                 if(get_user_team(id) == get_user_team(players[x])) {
  71.                     switch(get_user_team(id)) {
  72.                         case 1:
  73.                         {
  74.                             ColorChat(players[x],RED,"(Terrorist)^x04[%s]^x03 %s^x04 : %s",g_Rang[i],nick,chat);
  75.                         }
  76.                         case 2:
  77.                         {
  78.                             ColorChat(players[x],BLUE,"(Counter)^x04[%s]^x03 %s^x04 : %s",g_Rang[i],nick,chat);
  79.                         }
  80.                     }
  81.                 }
  82.                 return PLUGIN_HANDLED;
  83.             }
  84.         }
  85.     }
  86.     return PLUGIN_CONTINUE;
  87. }

  1. #include <amxmodx>
  2. #include <fun>
  3. #include <engine>
  4. #include <fakemeta>
  5. #include <hamsandwich>
  6. #include <fakemeta_util>
  7. #include <colorchat>
  8. #include <fvault>
  9.  
  10. #define PLUGIN "Weapon Skin System [WSS]"
  11. #define VERSION "1.0"
  12. #define AUTHOR "6almasok"
  13.  
  14. #define IsValidPlayers(%1,%2) ((1 <= %1 <= 32) && (1 <= %2 <= 32))
  15.  
  16. new oles[33],csomag[33], kredit[33],switchbutton[33],knife[33],getfrag[3][33]
  17. new ModelData[40][64], ModelNum, MaximumBtton
  18.  
  19. new const File[] = "addons/amxmodx/configs/wss_models.ini"
  20. new const szVaultName[] = "wss_vault"
  21. new const prefix[] = "WSS"
  22.  
  23. /*Rust Kills | Silver Kills | Gold Kills | Veteran Kills | Knife Kredit*/
  24. new const need_kills[] = { 500, 1000, 2000, 4000, 500 }
  25.  
  26. /*Pack Names*/
  27. new const csomagmsg[6][] = { "Nincs","Rozsdás Csomag","Ezüst Csomag","Arany Csomag","Veterán Csomag","Speed Knife" }
  28.  
  29. new const knifedisenable[2][] = { "Kikapcsolva", "Bekapcsolva" }
  30.  
  31. new const menuszoveg[][][] = {
  32.     {"Rozsdás Csomag \r[MEGSZEREZVE]", "\dRozsdás Csomag \r[%i/%i Ă–lĂ©s]"}, //0
  33.     {"EzĂĽst Csomag \r[MEGSZEREZVE]", "\dEzĂĽst Csomag \r[%i/%i Ă–lĂ©s]"}, //1
  34.     {"Arany Csomag \r[MEGSZEREZVE]", "\dArany Csomag \r[%i/%i Ă–lĂ©s]"}, //2
  35.     {"Veterán Csomag \r[MEGSZEREZVE]", "\dVeterán Csomag \r[%i/%i Ă–lĂ©s]"}, //3
  36.     {"Speed Knife \r[MEGSZEREZVE]^n", "\dSpeed Knife \r[%i/%i Ă–lĂ©s]^n"}, //4
  37.     {"\ySkin Csomagok \r[KIKAPCSOLVA]", "\ySkin Csomagok \r[BEKAPCSOLVA]"} //5
  38. }
  39. new const chatszoveg[10][] =
  40. {
  41.     "^4[%s]^1 FEJLĂ–VÉS!^3 %s ^1megölĂ©séért kaptál ^3+%i^1 ölĂ©st!",
  42.     "^4[%s]^3 %s ^1megölĂ©séért kaptál ^3+%i^1 ölĂ©st!",
  43.     "^4[%s]^3 %s ^1kapott ^3+1 ^1ölĂ©st ember lesebzĂ©sĂ©rt!",
  44.     "^4[%s]^1 Találtál^3 +%i^1 kreditet a csomagbol!",
  45.     "^4[%s]^1 Kiválasztottad a(z)^3 %s^1-ot!",
  46.     "^4[%s]^1 Sajnos nincs elĂ©g ölĂ©sed!",
  47.     "^4[%s]^1 Kikapcsoltad a Skin Csomagokat!",
  48.     "^4[%s]^1 Bekapcsoltad a Skin Csomagokat!",
  49.     "^4[%s]^1 A Szerveren Jelenleg a(z) ^3Weapon Skin System^1 fut. Megnyitáshoz Ă­rd be ^3/menu^1.",
  50.     "^4[%s]^1 Sajnos nincs elĂ©g kredited!"
  51. }
  52. public plugin_init() {
  53.     register_plugin(PLUGIN, VERSION, AUTHOR)
  54.    
  55.     /* Client Command */
  56.     register_clcmd("say /menu" , "fomenu")
  57.    
  58.     /* Events */
  59.     register_event("CurWeapon", "changeweapon", "be", "1=1")
  60.     register_event("Damage", "sebzes_event", "be", "2!0", "3=0", "4!0")
  61.     register_event("DeathMsg","Halal","a")
  62.    
  63.     /* Cvars */
  64.     register_cvar("wss_hudenable", "1");
  65.     register_cvar("wss_advertmp", "40.0");
  66.     register_cvar("kill_recived", "1");
  67.     register_cvar("hs_recived", "2");
  68.     register_cvar("found_kredit", "1");
  69.    
  70.     /* Other */
  71.     register_forward(FM_Touch,"ForwardTouch" );
  72.     RegisterHam(Ham_Spawn, "player", "spawn_event", 1)
  73.     set_task(1.0, "infohud", 0, _, _, "b")
  74.     set_task(get_cvar_float("wss_advertmp"), "advertist", 0, "", 0, "b", 0)
  75.  
  76.     LoadModel();
  77. }
  78. public advertist(){
  79.     ColorChat(0, GREEN, chatszoveg[8],prefix);
  80.     return PLUGIN_HANDLED;
  81. }
  82. public plugin_precache() {
  83.    
  84.     new Len, btton[196], Data[64], Letoltes[40][64];
  85.     MaximumBtton = file_size(File, 1);
  86.    
  87.     for(new Num = 0; Num < MaximumBtton; Num++){
  88.         read_file(File, Num, btton, 196, Len);
  89.         parse(btton, Data, 63);
  90.         remove_quotes(btton);
  91.         if(btton[0] == ';')
  92.         {
  93.             continue;
  94.         }
  95.         remove_quotes(Data);
  96.         format(Letoltes[Num], 63, "%s", Data);
  97.         precache_model(Letoltes[Num]);
  98.     }
  99.     precache_model("models/wss/pack/kredit.mdl");
  100. }
  101. public LoadModel()
  102. {
  103.     new Len, btton[196], Data[64];
  104.     MaximumBtton = file_size(File, 1);
  105.     for(new Num; Num < MaximumBtton; Num++){
  106.         ModelNum++;
  107.         read_file(File, Num, btton, 196, Len);
  108.         parse(btton, Data, 63);
  109.         remove_quotes(btton);
  110.         if(btton[0] == ';')
  111.         {
  112.             continue;
  113.         }
  114.         remove_quotes(Data);
  115.         format(ModelData[ModelNum], 63, "%s", Data);
  116.     }
  117. }
  118. public changeweapon(id)
  119. {
  120.     if(!is_user_alive(id) || !is_user_connected(id) || id < 1 || id > 32 || switchbutton[id] == 1)
  121.     return
  122.    
  123.     new fegyver = get_user_weapon(id)
  124.    
  125.     if(csomag[id] == 1){
  126.         if(fegyver == CSW_AK47)set_pev(id, pev_viewmodel2, ModelData[1]) //Rozsdas ak
  127.         if(fegyver == CSW_AWP)set_pev(id, pev_viewmodel2, ModelData[2]) //Rozsdas awp
  128.         if(fegyver == CSW_DEAGLE)set_pev(id, pev_viewmodel2, ModelData[3]) //Rozsdas desi
  129.         if(fegyver == CSW_M4A1)set_pev(id, pev_viewmodel2, ModelData[4]) //Rozsdas m4
  130.     }
  131.     else if(csomag[id] == 2){
  132.         if(fegyver == CSW_AK47)set_pev(id, pev_viewmodel2, ModelData[5]) //ezust ak
  133.         if(fegyver == CSW_AWP)set_pev(id, pev_viewmodel2, ModelData[6]) //ezust awp
  134.         if(fegyver == CSW_DEAGLE)set_pev(id, pev_viewmodel2, ModelData[7]) //ezust desi
  135.         if(fegyver == CSW_M4A1)set_pev(id, pev_viewmodel2, ModelData[8]) //ezust m4
  136.     }
  137.     else if(csomag[id] == 3){
  138.         if(fegyver == CSW_AK47)set_pev(id, pev_viewmodel2, ModelData[9]) //arany ak
  139.         if(fegyver == CSW_AWP)set_pev(id, pev_viewmodel2, ModelData[10]) //arany awp
  140.         if(fegyver == CSW_DEAGLE)set_pev(id, pev_viewmodel2, ModelData[11]) //arany desi
  141.         if(fegyver == CSW_M4A1)set_pev(id, pev_viewmodel2, ModelData[12]) //arany m4
  142.     }
  143.     else if(csomag[id] == 4){
  144.         if(fegyver == CSW_AK47)set_pev(id, pev_viewmodel2, ModelData[13]) //veteran ak
  145.         if(fegyver == CSW_AWP)set_pev(id, pev_viewmodel2, ModelData[14]) //veteran awp
  146.         if(fegyver == CSW_DEAGLE)set_pev(id, pev_viewmodel2, ModelData[15]) //veteran desi
  147.         if(fegyver == CSW_M4A1)set_pev(id, pev_viewmodel2, ModelData[16]) //veteran m4
  148.     }
  149.     if(knife[id] == 1 && fegyver == CSW_KNIFE){
  150.        
  151.         set_user_maxspeed(id, Float:320.0)
  152.         set_pev(id, pev_viewmodel2, ModelData[17]) //knife
  153.     }
  154.  
  155. }
  156. public spawn_event(id){
  157.     getfrag[0][id] = 0;
  158.     getfrag[1][id] = 0;
  159.     getfrag[2][id] = 0;
  160. }
  161. public sebzes_event(id)
  162. {
  163.     new tamado = get_user_attacker(id);
  164.     if(id == tamado  || !IsValidPlayers(id, tamado )) return;
  165.     getfrag[1][tamado] += read_data(2);
  166.  
  167.     if(!getfrag[2][id] && getfrag[1][tamado] >= 50)
  168.     {
  169.         getfrag[0][tamado] = id;
  170.         getfrag[2][id] = tamado;
  171.     }
  172. }
  173. public Halal() {
  174.    
  175.     new attacker = read_data(1)
  176.     new victim = read_data(2)
  177.    
  178.     new nev[32]
  179.     get_user_name(victim, nev, charsmax(nev))
  180.    
  181.     if(attacker == victim || attacker == 0)
  182.         return PLUGIN_HANDLED
  183.    
  184.     if(read_data( 3 )){
  185.         oles[attacker] += get_cvar_num("hs_recived");
  186.         ColorChat(attacker, GREEN, chatszoveg[0] ,prefix ,nev, get_cvar_num("hs_recived"))
  187.     }
  188.     else{
  189.         oles[attacker] += get_cvar_num("kill_recived");
  190.         ColorChat(attacker, GREEN, chatszoveg[1],prefix, nev, get_cvar_num("kill_recived"))
  191.     }
  192.     if(getfrag[2][victim] && getfrag[2][victim] != attacker){
  193.         new fragetkap = getfrag[2][victim];
  194.         new fragetkapneve[32];
  195.         getfrag[0][fragetkap] = 0;
  196.         getfrag[1][fragetkap] = 0;
  197.         getfrag[2][victim] = 0;
  198.         get_user_name(fragetkap, fragetkapneve, charsmax(fragetkapneve));
  199.         oles[fragetkap]++
  200.         ColorChat(0, GREEN, chatszoveg[2],prefix ,fragetkapneve);
  201.     }
  202.     switch(random_num(1,3)){
  203.         case 1: dropdobas()
  204.     }
  205.     return PLUGIN_HANDLED;
  206. }
  207. public dropdobas()
  208. {  
  209.     new victim = read_data( 2 );
  210.  
  211.     static Float:origin[ 3 ];
  212.     pev( victim, pev_origin, origin );
  213.  
  214.     new ent = engfunc( EngFunc_CreateNamedEntity, engfunc( EngFunc_AllocString, "info_target" ) );
  215.     origin[ 2 ] -= 36;
  216.     engfunc( EngFunc_SetOrigin, ent, origin );
  217.  
  218.     if( !pev_valid( ent ) )
  219.     {
  220.         return PLUGIN_HANDLED;
  221.     }
  222.    
  223.     set_pev( ent, pev_classname, "kredit" );
  224.     engfunc( EngFunc_SetModel, ent, "models/wss/pack/kredit.mdl" );
  225.     dllfunc( DLLFunc_Spawn, ent );
  226.     set_pev( ent, pev_solid, SOLID_BBOX );
  227.     set_pev( ent, pev_movetype, MOVETYPE_NONE );
  228.     engfunc( EngFunc_SetSize, ent, Float:{ -23.160000, -13.660000, -0.050000 }, Float:{ 11.470000, 12.780000, 6.720000 } );
  229.     engfunc( EngFunc_DropToFloor, ent );
  230.  
  231.     return PLUGIN_HANDLED;
  232. }
  233. public ForwardTouch( ent, id )
  234. {
  235.     if(pev_valid(ent))
  236.     {
  237.     new classname[ 32 ];
  238.     pev( ent, pev_classname, classname, charsmax( classname ) );
  239.  
  240.     if( !equal( classname, "kredit") )
  241.     {
  242.         return FMRES_IGNORED;
  243.     }
  244.  
  245.     kredit[id] += get_cvar_num("found_kredit");
  246.     ColorChat(id, GREEN, chatszoveg[3],prefix, get_cvar_num("found_kredit"));
  247.    
  248.     engfunc( EngFunc_RemoveEntity, ent );
  249.     }
  250.     return FMRES_IGNORED
  251. }
  252. public logevent_round_start()
  253. {
  254.     new hkt = FM_NULLENT;
  255.     while ( ( hkt = fm_find_ent_by_class( hkt, "kredit") ) )
  256.     {
  257.         engfunc( EngFunc_RemoveEntity, hkt );
  258.     }  
  259. }
  260. public fomenu(id)
  261. {
  262.     new String[96]
  263.     format(String, charsmax(String), "\r[Weapon Skin System] \wFĹ‘menĂĽ^n\yĂ–lĂ©sek: \d%i \w|\y Kreditek: \d%i", oles[id],kredit[id])
  264.     new menu = menu_create(String, "fomenu_MyMenu");
  265.  
  266.     menu_additem(menu, "Fegyver Skin Csomagok", "0");
  267.     menu_additem(menu, "JátĂ©kos InfĂłk", "1");
  268.     menu_additem(menu, "Pack InformáciĂłk", "2");
  269.  
  270.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  271.     menu_setprop(menu, MPROP_EXITNAME, "\rKilĂ©pĂ©s");
  272.  
  273.     menu_display(id, menu, 0);
  274.  
  275.     return PLUGIN_HANDLED;
  276. }
  277. public fomenu_MyMenu(id, menu, item)
  278. {
  279.     if(item == MENU_EXIT)
  280.     {
  281.         menu_destroy(menu);
  282.         return PLUGIN_HANDLED;
  283.     }
  284.  
  285.     new command[6], name[64], access, callback;
  286.     menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
  287.  
  288.     switch(item)
  289.     {
  290.         case 0: fegymenu(id)
  291.         case 1: playerinfo(id)
  292.         case 2: show_motd(id, "addons/amxmodx/configs/wssinfo.txt", "[WSS] Infok")
  293.     }
  294.  
  295.     menu_destroy(menu);
  296.  
  297.     return PLUGIN_HANDLED;
  298. }
  299. public playerinfo(id)
  300. {  
  301.     new some[256], menu
  302.     static players[32],szTemp[10],pnum
  303.     get_players(players,pnum,"ch");
  304.  
  305.     formatex(some,255,"\r[Weapon Skin System] \wJátĂ©kos \d|\w Ă–lĂ©s \d|\w Kredit");
  306.     menu = menu_create(some,"pinfo_Handler");
  307.  
  308.     for (new i; i < pnum; i++)
  309.     {
  310.         formatex(some,256,"%s \r(\yĂ–lĂ©se: \w%i \d| \yKreditje: \w%i\r)",get_player_name(players[i]), oles[players[i]],kredit[players[i]]);
  311.         num_to_str(players[i],szTemp,charsmax(szTemp));
  312.         menu_additem(menu, some, szTemp);
  313.     }
  314.  
  315.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL );
  316.     menu_setprop(menu, MPROP_EXITNAME, "KilĂ©pĂ©s");
  317.     menu_display(id, menu);
  318.     return PLUGIN_HANDLED;
  319. }
  320. public pinfo_Handler(id,menu, item)
  321. {
  322.     if(item == MENU_EXIT)
  323.     {
  324.         menu_destroy(menu);
  325.         return;
  326.     }
  327.  
  328.     playerinfo(id)
  329. }
  330. public fegymenu(id)
  331. {
  332.     new String[96]
  333.     format(String, charsmax(String), "\r[Weapon Skin System] \wSkin csomagok^n\yKiválasztott Csomag: \d[%s]", csomagmsg[csomag[id]])
  334.     new menu = menu_create(String, "fegymenu_handler" )
  335.  
  336.     format(String, charsmax(String), oles[id] >= need_kills[0] ? (menuszoveg[0][0]):(menuszoveg[0][1]), oles[id], need_kills[0]);
  337.     menu_additem(menu, String, "0" );
  338.     formatex(String, charsmax(String), oles[id] >= need_kills[1] ? (menuszoveg[1][0]):(menuszoveg[1][1]), oles[id], need_kills[1]);
  339.     menu_additem(menu, String, "1");
  340.     formatex(String, charsmax(String), oles[id] >= need_kills[2] ? (menuszoveg[2][0]):(menuszoveg[2][1]), oles[id], need_kills[2]);
  341.     menu_additem(menu, String, "2");
  342.     format(String, charsmax(String), oles[id] >= need_kills[3] ? (menuszoveg[3][0]):(menuszoveg[3][1]), oles[id], need_kills[3]);
  343.     menu_additem(menu, String, "3");
  344.     formatex(String, charsmax(String), kredit[id] >= need_kills[4] ? (menuszoveg[4][0]):(menuszoveg[4][1]), kredit[id], need_kills[4]);
  345.     menu_additem(menu, String, "4");
  346.     menu_additem(menu, switchbutton[id] == 1 ? (menuszoveg[5][0]):(menuszoveg[5][1]), "5");
  347.  
  348.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  349.     menu_setprop(menu, MPROP_BACKNAME, "Vissza");
  350.     menu_setprop(menu, MPROP_NEXTNAME, "ElĹ‘re");
  351.     menu_setprop(menu, MPROP_EXITNAME, "KilĂ©pĂ©s");
  352.  
  353.     menu_display(id, menu, 0);
  354.     return PLUGIN_HANDLED;
  355. }
  356. public fegymenu_handler(id, menu, item)
  357. {
  358.     if(item == MENU_EXIT)
  359.     {
  360.         menu_destroy(menu)
  361.         return PLUGIN_HANDLED;
  362.     }
  363.  
  364.     new command[6], name[64], access, callback;
  365.     menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
  366.  
  367.     switch(item)
  368.     {
  369.         case 0: {
  370.             if(oles[id] >= need_kills[0]) {
  371.             csomag[id] = 1
  372.             ColorChat(id, GREEN, chatszoveg[4],prefix, csomagmsg[csomag[id]]);
  373.             }
  374.             else  {
  375.             ColorChat(id, GREEN, chatszoveg[5],prefix);
  376.             }
  377.         }
  378.         case 1: {
  379.             if(oles[id] >= need_kills[1]) {
  380.             csomag[id] = 2
  381.             ColorChat(id, GREEN, chatszoveg[4],prefix, csomagmsg[csomag[id]]);
  382.             }
  383.             else  {
  384.             ColorChat(id, GREEN, chatszoveg[5],prefix);
  385.             }
  386.         }
  387.         case 2: {
  388.             if(oles[id] >= need_kills[2]) {
  389.             csomag[id] = 3
  390.             ColorChat(id, GREEN, chatszoveg[4],prefix, csomagmsg[csomag[id]]);
  391.             }
  392.             else  {
  393.             ColorChat(id, GREEN, chatszoveg[5],prefix);
  394.             }
  395.         }
  396.         case 3: {
  397.             if(oles[id] >= need_kills[3]) {
  398.             csomag[id] = 4
  399.             ColorChat(id, GREEN, chatszoveg[4],prefix, csomagmsg[csomag[id]]);
  400.             }
  401.             else  {
  402.             ColorChat(id, GREEN, chatszoveg[5],prefix);
  403.             }
  404.         }
  405.         case 4: {
  406.             if(kredit[id] >= need_kills[4]) {
  407.             knife[id] = 1
  408.             ColorChat(id, GREEN, chatszoveg[4],prefix, csomagmsg[5]);
  409.             }
  410.             else  {
  411.             ColorChat(id, GREEN, chatszoveg[9],prefix);
  412.             }
  413.         }
  414.         case 5: {
  415.             if(switchbutton[id] == 0){
  416.             switchbutton[id] = 1
  417.             csomag[id] = 0
  418.             knife[id] = 0
  419.             ColorChat(id, GREEN, chatszoveg[6],prefix);
  420.             }
  421.             else {
  422.             switchbutton[id] = 0
  423.             ColorChat(id, GREEN, chatszoveg[7],prefix);
  424.             }
  425.         }
  426.         case 6: {
  427.             ColorChat(id, GREEN, chatszoveg[5],prefix);
  428.         }
  429.     }
  430.  
  431.     fegymenu(id)
  432.     return PLUGIN_HANDLED;
  433. }
  434. public infohud() {
  435.    
  436.     if(!get_cvar_num("wss_hudenable")) return PLUGIN_HANDLED
  437.    
  438.     static id
  439.     for(id = 1; id <= get_maxplayers(); id++)
  440.     {
  441.         if(is_user_alive(id)){
  442.             set_hudmessage(0, 127, 255, 0.01, 0.20, 0, 6.0, 1.0)
  443.             show_hudmessage(id, "[Ă–lĂ©s: %i]^n[Kredit: %i]^n[Kiválasztott Csomag: %s]^n[Speed Knife: %s]", oles[id],kredit[id],csomagmsg[csomag[id]], knifedisenable[knife[id]])
  444.         }
  445.         else{
  446.             new target = entity_get_int(id, EV_INT_iuser2);
  447.            
  448.             if(!target)
  449.             return PLUGIN_CONTINUE;
  450.                
  451.             set_hudmessage(255, 255, 255, 0.01, 0.20, 0, 6.0, 1.0)
  452.             show_hudmessage(id, "[Ă–lĂ©s: %i]^n[Kredit: %i]^n[Kiválasztott Csomag: %s]^n[Speed Knife: %s]", oles[target],kredit[target],csomagmsg[csomag[target]], knifedisenable[knife[target]])
  453.         }
  454.     }
  455.     return PLUGIN_CONTINUE;
  456. }
  457. stock get_player_name(id){
  458.     static szName[32];
  459.     get_user_name(id,szName,31);
  460.     return szName;
  461. }
  462. public client_disconnect(id){
  463.     if(is_user_bot(id)) return;
  464.    
  465.     save(id);
  466. }
  467. public client_putinserver( id ) {
  468.     if(is_user_bot(id)) return;
  469.    
  470.     oles[id] = 0;
  471.     kredit[id] = 0;
  472.     csomag[id] = 0;
  473.     switchbutton[id] = 0;
  474.     load(id);
  475. }
  476. load(id) {
  477.     new szAuthid[32], szData[32];
  478.     get_user_name( id, szAuthid, charsmax(szAuthid));
  479.     new s1[16],s2[16],s3[16],s4[16]
  480.     fvault_get_data( szVaultName, szAuthid, szData, 31 );
  481.     parse( szData, s1, 15, s2, 15 , s3 , 15, s4 ,15);
  482.     oles[id] = str_to_num(s1);
  483.     kredit[id] = str_to_num(s2);
  484.     csomag[id] = str_to_num(s3);
  485.     switchbutton[id] = str_to_num(s4);
  486. }
  487. save(id) {
  488.     new szAuthid[ 32 ], szData[ 32 ];
  489.     get_user_name( id, szAuthid, charsmax(szAuthid));
  490.    
  491.     formatex( szData, 31, "%i %i %i %i", oles[id], kredit[id], csomag[id], switchbutton[id]);
  492.     fvault_set_data( szVaultName, szAuthid, szData );
  493. }


Tessék.
  1. #include <amxmodx>
  2. #include <fun>
  3. #include <engine>
  4. #include <fakemeta>
  5. #include <hamsandwich>
  6. #include <fakemeta_util>
  7. #include <colorchat>
  8. #include <fvault>
  9.  
  10. #define PLUGIN "Weapon Skin System [WSS]"
  11. #define VERSION "1.0"
  12. #define AUTHOR "6almasok"
  13.  
  14. #define IsValidPlayers(%1,%2) ((1 <= %1 <= 32) && (1 <= %2 <= 32))
  15.  
  16. new g_Rang[MAX_GROUPS][] = {
  17.        "Tulaj",
  18.        "Helyettes",
  19.        "Foadmin",
  20.        "Admin",
  21.    
  22. };
  23.  
  24. new g_RangFlag[MAX_GROUPS][] = {
  25.        "abcdefghijklmnopqrstu",
  26.        "bcdefghijklmnopqrstu",
  27.      
  28.        "bcf",
  29.        "t"
  30. };
  31.  
  32.  
  33. new oles[33],csomag[33], kredit[33],switchbutton[33],knife[33],getfrag[3][33]
  34. new ModelData[40][64], ModelNum, MaximumBtton
  35.  
  36. new const File[] = "addons/amxmodx/configs/wss_models.ini"
  37. new const szVaultName[] = "wss_vault"
  38. new const prefix[] = "WSS"
  39.  
  40. /*Rust Kills | Silver Kills | Gold Kills | Veteran Kills | Knife Kredit*/
  41. new const need_kills[] = { 500, 1000, 2000, 4000, 500 }
  42.  
  43. /*Pack Names*/
  44. new const csomagmsg[6][] = { "Nincs","Rozsdás Csomag","Ezüst Csomag","Arany Csomag","Veterán Csomag","Speed Knife" }
  45.  
  46. new const knifedisenable[2][] = { "Kikapcsolva", "Bekapcsolva" }
  47.  
  48. new const menuszoveg[][][] = {
  49.     {"Rozsdás Csomag \r[MEGSZEREZVE]", "\dRozsdás Csomag \r[%i/%i Ă–lĂ©s]"}, //0
  50.     {"EzĂĽst Csomag \r[MEGSZEREZVE]", "\dEzĂĽst Csomag \r[%i/%i Ă–lĂ©s]"}, //1
  51.     {"Arany Csomag \r[MEGSZEREZVE]", "\dArany Csomag \r[%i/%i Ă–lĂ©s]"}, //2
  52.     {"Veterán Csomag \r[MEGSZEREZVE]", "\dVeterán Csomag \r[%i/%i Ă–lĂ©s]"}, //3
  53.     {"Speed Knife \r[MEGSZEREZVE]^n", "\dSpeed Knife \r[%i/%i Ă–lĂ©s]^n"}, //4
  54.     {"\ySkin Csomagok \r[KIKAPCSOLVA]", "\ySkin Csomagok \r[BEKAPCSOLVA]"} //5
  55. }
  56. new const chatszoveg[10][] =
  57. {
  58.     "^4[%s]^1 FEJLĂ–VÉS!^3 %s ^1megölĂ©séért kaptál ^3+%i^1 ölĂ©st!",
  59.     "^4[%s]^3 %s ^1megölĂ©séért kaptál ^3+%i^1 ölĂ©st!",
  60.     "^4[%s]^3 %s ^1kapott ^3+1 ^1ölĂ©st ember lesebzĂ©sĂ©rt!",
  61.     "^4[%s]^1 Találtál^3 +%i^1 kreditet a csomagbol!",
  62.     "^4[%s]^1 Kiválasztottad a(z)^3 %s^1-ot!",
  63.     "^4[%s]^1 Sajnos nincs elĂ©g ölĂ©sed!",
  64.     "^4[%s]^1 Kikapcsoltad a Skin Csomagokat!",
  65.     "^4[%s]^1 Bekapcsoltad a Skin Csomagokat!",
  66.     "^4[%s]^1 A Szerveren Jelenleg a(z) ^3Weapon Skin System^1 fut. Megnyitáshoz Ă­rd be ^3/menu^1.",
  67.     "^4[%s]^1 Sajnos nincs elĂ©g kredited!"
  68. }
  69. public plugin_init() {
  70.     register_plugin(PLUGIN, VERSION, AUTHOR)
  71.    
  72.     /* Client Command */
  73.     register_clcmd("say /menu" , "fomenu")
  74.     register_clcmd("say","hook_say");
  75.     register_clcmd("say_team","hook_say2");
  76.    
  77.     /* Events */
  78.     register_event("CurWeapon", "changeweapon", "be", "1=1")
  79.     register_event("Damage", "sebzes_event", "be", "2!0", "3=0", "4!0")
  80.     register_event("DeathMsg","Halal","a")
  81.    
  82.     /* Cvars */
  83.     register_cvar("wss_hudenable", "1");
  84.     register_cvar("wss_advertmp", "40.0");
  85.     register_cvar("kill_recived", "1");
  86.     register_cvar("hs_recived", "2");
  87.     register_cvar("found_kredit", "1");
  88.    
  89.     /* Other */
  90.     register_forward(FM_Touch,"ForwardTouch" );
  91.     RegisterHam(Ham_Spawn, "player", "spawn_event", 1)
  92.     set_task(1.0, "infohud", 0, _, _, "b")
  93.     set_task(get_cvar_float("wss_advertmp"), "advertist", 0, "", 0, "b", 0)
  94.  
  95.     LoadModel();
  96. }
  97. public advertist(){
  98.     ColorChat(0, GREEN, chatszoveg[8],prefix);
  99.     return PLUGIN_HANDLED;
  100. }
  101. public plugin_precache() {
  102.    
  103.     new Len, btton[196], Data[64], Letoltes[40][64];
  104.     MaximumBtton = file_size(File, 1);
  105.    
  106.     for(new Num = 0; Num < MaximumBtton; Num++){
  107.         read_file(File, Num, btton, 196, Len);
  108.         parse(btton, Data, 63);
  109.         remove_quotes(btton);
  110.         if(btton[0] == ';')
  111.         {
  112.             continue;
  113.         }
  114.         remove_quotes(Data);
  115.         format(Letoltes[Num], 63, "%s", Data);
  116.         precache_model(Letoltes[Num]);
  117.     }
  118.     precache_model("models/wss/pack/kredit.mdl");
  119. }
  120. public LoadModel()
  121. {
  122.     new Len, btton[196], Data[64];
  123.     MaximumBtton = file_size(File, 1);
  124.     for(new Num; Num < MaximumBtton; Num++){
  125.         ModelNum++;
  126.         read_file(File, Num, btton, 196, Len);
  127.         parse(btton, Data, 63);
  128.         remove_quotes(btton);
  129.         if(btton[0] == ';')
  130.         {
  131.             continue;
  132.         }
  133.         remove_quotes(Data);
  134.         format(ModelData[ModelNum], 63, "%s", Data);
  135.     }
  136. }
  137. public changeweapon(id)
  138. {
  139.     if(!is_user_alive(id) || !is_user_connected(id) || id < 1 || id > 32 || switchbutton[id] == 1)
  140.     return
  141.    
  142.     new fegyver = get_user_weapon(id)
  143.    
  144.     if(csomag[id] == 1){
  145.         if(fegyver == CSW_AK47)set_pev(id, pev_viewmodel2, ModelData[1]) //Rozsdas ak
  146.         if(fegyver == CSW_AWP)set_pev(id, pev_viewmodel2, ModelData[2]) //Rozsdas awp
  147.         if(fegyver == CSW_DEAGLE)set_pev(id, pev_viewmodel2, ModelData[3]) //Rozsdas desi
  148.         if(fegyver == CSW_M4A1)set_pev(id, pev_viewmodel2, ModelData[4]) //Rozsdas m4
  149.     }
  150.     else if(csomag[id] == 2){
  151.         if(fegyver == CSW_AK47)set_pev(id, pev_viewmodel2, ModelData[5]) //ezust ak
  152.         if(fegyver == CSW_AWP)set_pev(id, pev_viewmodel2, ModelData[6]) //ezust awp
  153.         if(fegyver == CSW_DEAGLE)set_pev(id, pev_viewmodel2, ModelData[7]) //ezust desi
  154.         if(fegyver == CSW_M4A1)set_pev(id, pev_viewmodel2, ModelData[8]) //ezust m4
  155.     }
  156.     else if(csomag[id] == 3){
  157.         if(fegyver == CSW_AK47)set_pev(id, pev_viewmodel2, ModelData[9]) //arany ak
  158.         if(fegyver == CSW_AWP)set_pev(id, pev_viewmodel2, ModelData[10]) //arany awp
  159.         if(fegyver == CSW_DEAGLE)set_pev(id, pev_viewmodel2, ModelData[11]) //arany desi
  160.         if(fegyver == CSW_M4A1)set_pev(id, pev_viewmodel2, ModelData[12]) //arany m4
  161.     }
  162.     else if(csomag[id] == 4){
  163.         if(fegyver == CSW_AK47)set_pev(id, pev_viewmodel2, ModelData[13]) //veteran ak
  164.         if(fegyver == CSW_AWP)set_pev(id, pev_viewmodel2, ModelData[14]) //veteran awp
  165.         if(fegyver == CSW_DEAGLE)set_pev(id, pev_viewmodel2, ModelData[15]) //veteran desi
  166.         if(fegyver == CSW_M4A1)set_pev(id, pev_viewmodel2, ModelData[16]) //veteran m4
  167.     }
  168.     if(knife[id] == 1 && fegyver == CSW_KNIFE){
  169.        
  170.         set_user_maxspeed(id, Float:320.0)
  171.         set_pev(id, pev_viewmodel2, ModelData[17]) //knife
  172.     }
  173.  
  174. }
  175. public spawn_event(id){
  176.     getfrag[0][id] = 0;
  177.     getfrag[1][id] = 0;
  178.     getfrag[2][id] = 0;
  179. }
  180. public sebzes_event(id)
  181. {
  182.     new tamado = get_user_attacker(id);
  183.     if(id == tamado  || !IsValidPlayers(id, tamado )) return;
  184.     getfrag[1][tamado] += read_data(2);
  185.  
  186.     if(!getfrag[2][id] && getfrag[1][tamado] >= 50)
  187.     {
  188.         getfrag[0][tamado] = id;
  189.         getfrag[2][id] = tamado;
  190.     }
  191. }
  192. public Halal() {
  193.    
  194.     new attacker = read_data(1)
  195.     new victim = read_data(2)
  196.    
  197.     new nev[32]
  198.     get_user_name(victim, nev, charsmax(nev))
  199.    
  200.     if(attacker == victim || attacker == 0)
  201.         return PLUGIN_HANDLED
  202.    
  203.     if(read_data( 3 )){
  204.         oles[attacker] += get_cvar_num("hs_recived");
  205.         ColorChat(attacker, GREEN, chatszoveg[0] ,prefix ,nev, get_cvar_num("hs_recived"))
  206.     }
  207.     else{
  208.         oles[attacker] += get_cvar_num("kill_recived");
  209.         ColorChat(attacker, GREEN, chatszoveg[1],prefix, nev, get_cvar_num("kill_recived"))
  210.     }
  211.     if(getfrag[2][victim] && getfrag[2][victim] != attacker){
  212.         new fragetkap = getfrag[2][victim];
  213.         new fragetkapneve[32];
  214.         getfrag[0][fragetkap] = 0;
  215.         getfrag[1][fragetkap] = 0;
  216.         getfrag[2][victim] = 0;
  217.         get_user_name(fragetkap, fragetkapneve, charsmax(fragetkapneve));
  218.         oles[fragetkap]++
  219.         ColorChat(0, GREEN, chatszoveg[2],prefix ,fragetkapneve);
  220.     }
  221.     switch(random_num(1,3)){
  222.         case 1: dropdobas()
  223.     }
  224.     return PLUGIN_HANDLED;
  225. }
  226. public dropdobas()
  227. {  
  228.     new victim = read_data( 2 );
  229.  
  230.     static Float:origin[ 3 ];
  231.     pev( victim, pev_origin, origin );
  232.  
  233.     new ent = engfunc( EngFunc_CreateNamedEntity, engfunc( EngFunc_AllocString, "info_target" ) );
  234.     origin[ 2 ] -= 36;
  235.     engfunc( EngFunc_SetOrigin, ent, origin );
  236.  
  237.     if( !pev_valid( ent ) )
  238.     {
  239.         return PLUGIN_HANDLED;
  240.     }
  241.    
  242.     set_pev( ent, pev_classname, "kredit" );
  243.     engfunc( EngFunc_SetModel, ent, "models/wss/pack/kredit.mdl" );
  244.     dllfunc( DLLFunc_Spawn, ent );
  245.     set_pev( ent, pev_solid, SOLID_BBOX );
  246.     set_pev( ent, pev_movetype, MOVETYPE_NONE );
  247.     engfunc( EngFunc_SetSize, ent, Float:{ -23.160000, -13.660000, -0.050000 }, Float:{ 11.470000, 12.780000, 6.720000 } );
  248.     engfunc( EngFunc_DropToFloor, ent );
  249.  
  250.     return PLUGIN_HANDLED;
  251. }
  252. public ForwardTouch( ent, id )
  253. {
  254.     if(pev_valid(ent))
  255.     {
  256.     new classname[ 32 ];
  257.     pev( ent, pev_classname, classname, charsmax( classname ) );
  258.  
  259.     if( !equal( classname, "kredit") )
  260.     {
  261.         return FMRES_IGNORED;
  262.     }
  263.  
  264.     kredit[id] += get_cvar_num("found_kredit");
  265.     ColorChat(id, GREEN, chatszoveg[3],prefix, get_cvar_num("found_kredit"));
  266.    
  267.     engfunc( EngFunc_RemoveEntity, ent );
  268.     }
  269.     return FMRES_IGNORED
  270. }
  271. public logevent_round_start()
  272. {
  273.     new hkt = FM_NULLENT;
  274.     while ( ( hkt = fm_find_ent_by_class( hkt, "kredit") ) )
  275.     {
  276.         engfunc( EngFunc_RemoveEntity, hkt );
  277.     }  
  278. }
  279. public fomenu(id)
  280. {
  281.     new String[96]
  282.     format(String, charsmax(String), "\r[Weapon Skin System] \wFĹ‘menĂĽ^n\yĂ–lĂ©sek: \d%i \w|\y Kreditek: \d%i", oles[id],kredit[id])
  283.     new menu = menu_create(String, "fomenu_MyMenu");
  284.  
  285.     menu_additem(menu, "Fegyver Skin Csomagok", "0");
  286.     menu_additem(menu, "JátĂ©kos InfĂłk", "1");
  287.     menu_additem(menu, "Pack InformáciĂłk", "2");
  288.  
  289.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  290.     menu_setprop(menu, MPROP_EXITNAME, "\rKilĂ©pĂ©s");
  291.  
  292.     menu_display(id, menu, 0);
  293.  
  294.     return PLUGIN_HANDLED;
  295. }
  296. public fomenu_MyMenu(id, menu, item)
  297. {
  298.     if(item == MENU_EXIT)
  299.     {
  300.         menu_destroy(menu);
  301.         return PLUGIN_HANDLED;
  302.     }
  303.  
  304.     new command[6], name[64], access, callback;
  305.     menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
  306.  
  307.     switch(item)
  308.     {
  309.         case 0: fegymenu(id)
  310.         case 1: playerinfo(id)
  311.         case 2: show_motd(id, "addons/amxmodx/configs/wssinfo.txt", "[WSS] Infok")
  312.     }
  313.  
  314.     menu_destroy(menu);
  315.  
  316.     return PLUGIN_HANDLED;
  317. }
  318. public playerinfo(id)
  319. {  
  320.     new some[256], menu
  321.     static players[32],szTemp[10],pnum
  322.     get_players(players,pnum,"ch");
  323.  
  324.     formatex(some,255,"\r[Weapon Skin System] \wJátĂ©kos \d|\w Ă–lĂ©s \d|\w Kredit");
  325.     menu = menu_create(some,"pinfo_Handler");
  326.  
  327.     for (new i; i < pnum; i++)
  328.     {
  329.         formatex(some,256,"%s \r(\yĂ–lĂ©se: \w%i \d| \yKreditje: \w%i\r)",get_player_name(players[i]), oles[players[i]],kredit[players[i]]);
  330.         num_to_str(players[i],szTemp,charsmax(szTemp));
  331.         menu_additem(menu, some, szTemp);
  332.     }
  333.  
  334.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL );
  335.     menu_setprop(menu, MPROP_EXITNAME, "KilĂ©pĂ©s");
  336.     menu_display(id, menu);
  337.     return PLUGIN_HANDLED;
  338. }
  339. public pinfo_Handler(id,menu, item)
  340. {
  341.     if(item == MENU_EXIT)
  342.     {
  343.         menu_destroy(menu);
  344.         return;
  345.     }
  346.  
  347.     playerinfo(id)
  348. }
  349. public fegymenu(id)
  350. {
  351.     new String[96]
  352.     format(String, charsmax(String), "\r[Weapon Skin System] \wSkin csomagok^n\yKiválasztott Csomag: \d[%s]", csomagmsg[csomag[id]])
  353.     new menu = menu_create(String, "fegymenu_handler" )
  354.  
  355.     format(String, charsmax(String), oles[id] >= need_kills[0] ? (menuszoveg[0][0]):(menuszoveg[0][1]), oles[id], need_kills[0]);
  356.     menu_additem(menu, String, "0" );
  357.     formatex(String, charsmax(String), oles[id] >= need_kills[1] ? (menuszoveg[1][0]):(menuszoveg[1][1]), oles[id], need_kills[1]);
  358.     menu_additem(menu, String, "1");
  359.     formatex(String, charsmax(String), oles[id] >= need_kills[2] ? (menuszoveg[2][0]):(menuszoveg[2][1]), oles[id], need_kills[2]);
  360.     menu_additem(menu, String, "2");
  361.     format(String, charsmax(String), oles[id] >= need_kills[3] ? (menuszoveg[3][0]):(menuszoveg[3][1]), oles[id], need_kills[3]);
  362.     menu_additem(menu, String, "3");
  363.     formatex(String, charsmax(String), kredit[id] >= need_kills[4] ? (menuszoveg[4][0]):(menuszoveg[4][1]), kredit[id], need_kills[4]);
  364.     menu_additem(menu, String, "4");
  365.     menu_additem(menu, switchbutton[id] == 1 ? (menuszoveg[5][0]):(menuszoveg[5][1]), "5");
  366.  
  367.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  368.     menu_setprop(menu, MPROP_BACKNAME, "Vissza");
  369.     menu_setprop(menu, MPROP_NEXTNAME, "ElĹ‘re");
  370.     menu_setprop(menu, MPROP_EXITNAME, "KilĂ©pĂ©s");
  371.  
  372.     menu_display(id, menu, 0);
  373.     return PLUGIN_HANDLED;
  374. }
  375. public fegymenu_handler(id, menu, item)
  376. {
  377.     if(item == MENU_EXIT)
  378.     {
  379.         menu_destroy(menu)
  380.         return PLUGIN_HANDLED;
  381.     }
  382.  
  383.     new command[6], name[64], access, callback;
  384.     menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
  385.  
  386.     switch(item)
  387.     {
  388.         case 0: {
  389.             if(oles[id] >= need_kills[0]) {
  390.             csomag[id] = 1
  391.             ColorChat(id, GREEN, chatszoveg[4],prefix, csomagmsg[csomag[id]]);
  392.             }
  393.             else  {
  394.             ColorChat(id, GREEN, chatszoveg[5],prefix);
  395.             }
  396.         }
  397.         case 1: {
  398.             if(oles[id] >= need_kills[1]) {
  399.             csomag[id] = 2
  400.             ColorChat(id, GREEN, chatszoveg[4],prefix, csomagmsg[csomag[id]]);
  401.             }
  402.             else  {
  403.             ColorChat(id, GREEN, chatszoveg[5],prefix);
  404.             }
  405.         }
  406.         case 2: {
  407.             if(oles[id] >= need_kills[2]) {
  408.             csomag[id] = 3
  409.             ColorChat(id, GREEN, chatszoveg[4],prefix, csomagmsg[csomag[id]]);
  410.             }
  411.             else  {
  412.             ColorChat(id, GREEN, chatszoveg[5],prefix);
  413.             }
  414.         }
  415.         case 3: {
  416.             if(oles[id] >= need_kills[3]) {
  417.             csomag[id] = 4
  418.             ColorChat(id, GREEN, chatszoveg[4],prefix, csomagmsg[csomag[id]]);
  419.             }
  420.             else  {
  421.             ColorChat(id, GREEN, chatszoveg[5],prefix);
  422.             }
  423.         }
  424.         case 4: {
  425.             if(kredit[id] >= need_kills[4]) {
  426.             knife[id] = 1
  427.             ColorChat(id, GREEN, chatszoveg[4],prefix, csomagmsg[5]);
  428.             }
  429.             else  {
  430.             ColorChat(id, GREEN, chatszoveg[9],prefix);
  431.             }
  432.         }
  433.         case 5: {
  434.             if(switchbutton[id] == 0){
  435.             switchbutton[id] = 1
  436.             csomag[id] = 0
  437.             knife[id] = 0
  438.             ColorChat(id, GREEN, chatszoveg[6],prefix);
  439.             }
  440.             else {
  441.             switchbutton[id] = 0
  442.             ColorChat(id, GREEN, chatszoveg[7],prefix);
  443.             }
  444.         }
  445.         case 6: {
  446.             ColorChat(id, GREEN, chatszoveg[5],prefix);
  447.         }
  448.     }
  449.  
  450.     fegymenu(id)
  451.     return PLUGIN_HANDLED;
  452. }
  453. public infohud() {
  454.    
  455.     if(!get_cvar_num("wss_hudenable")) return PLUGIN_HANDLED
  456.    
  457.     static id
  458.     for(id = 1; id <= get_maxplayers(); id++)
  459.     {
  460.         if(is_user_alive(id)){
  461.             set_hudmessage(0, 127, 255, 0.01, 0.20, 0, 6.0, 1.0)
  462.             show_hudmessage(id, "[Ă–lĂ©s: %i]^n[Kredit: %i]^n[Kiválasztott Csomag: %s]^n[Speed Knife: %s]", oles[id],kredit[id],csomagmsg[csomag[id]], knifedisenable[knife[id]])
  463.         }
  464.         else{
  465.             new target = entity_get_int(id, EV_INT_iuser2);
  466.            
  467.             if(!target)
  468.             return PLUGIN_CONTINUE;
  469.                
  470.             set_hudmessage(255, 255, 255, 0.01, 0.20, 0, 6.0, 1.0)
  471.             show_hudmessage(id, "[Ă–lĂ©s: %i]^n[Kredit: %i]^n[Kiválasztott Csomag: %s]^n[Speed Knife: %s]", oles[target],kredit[target],csomagmsg[csomag[target]], knifedisenable[knife[target]])
  472.         }
  473.     }
  474.     return PLUGIN_CONTINUE;
  475. }
  476. stock get_player_name(id){
  477.     static szName[32];
  478.     get_user_name(id,szName,31);
  479.     return szName;
  480. }
  481. public client_disconnect(id){
  482.     if(is_user_bot(id)) return;
  483.    
  484.     save(id);
  485. }
  486. public client_putinserver( id ) {
  487.     if(is_user_bot(id)) return;
  488.    
  489.     oles[id] = 0;
  490.     kredit[id] = 0;
  491.     csomag[id] = 0;
  492.     switchbutton[id] = 0;
  493.     load(id);
  494. }
  495. load(id) {
  496.     new szAuthid[32], szData[32];
  497.     get_user_name( id, szAuthid, charsmax(szAuthid));
  498.     new s1[16],s2[16],s3[16],s4[16]
  499.     fvault_get_data( szVaultName, szAuthid, szData, 31 );
  500.     parse( szData, s1, 15, s2, 15 , s3 , 15, s4 ,15);
  501.     oles[id] = str_to_num(s1);
  502.     kredit[id] = str_to_num(s2);
  503.     csomag[id] = str_to_num(s3);
  504.     switchbutton[id] = str_to_num(s4);
  505. }
  506. save(id) {
  507.     new szAuthid[ 32 ], szData[ 32 ];
  508.     get_user_name( id, szAuthid, charsmax(szAuthid));
  509.    
  510.     formatex( szData, 31, "%i %i %i %i", oles[id], kredit[id], csomag[id], switchbutton[id]);
  511.     fvault_set_data( szVaultName, szAuthid, szData );
  512. }
  513. public hook_say(id) {
  514.     if(!is_user_admin(id) || is_user_bot(id)) {
  515.         return PLUGIN_CONTINUE;
  516.     }
  517.    
  518.     new nick[32];
  519.     get_user_name(id,nick,31);
  520.    
  521.     static chat[32];
  522.     read_args(chat, sizeof(chat) - 1);
  523.     remove_quotes(chat);
  524.    
  525.     if(equali(chat,"")) {
  526.         return PLUGIN_CONTINUE;
  527.     }
  528.    
  529.     for(new i=0; i<MAX_GROUPS; i++) {
  530.         if(get_user_flags(id) == read_flags(g_RangFlag[i])) {
  531.             ColorChat(0,GREEN,"[%s]^x03 %s^x04 : %s",g_Rang[i],nick,chat);
  532.             return PLUGIN_HANDLED;
  533.         }
  534.     }
  535.     return PLUGIN_CONTINUE;
  536. }
  537.  
  538. public hook_say2(id) {
  539.     if(!is_user_admin(id) || is_user_bot(id)) {
  540.         return PLUGIN_CONTINUE;
  541.     }
  542.    
  543.     new nick[32];
  544.     get_user_name(id,nick,31);
  545.    
  546.     static chat[32];
  547.     read_args(chat, sizeof(chat) - 1);
  548.     remove_quotes(chat);
  549.    
  550.     if(equali(chat,"")) {
  551.         return PLUGIN_CONTINUE;
  552.     }
  553.    
  554.     for(new i=0; i<MAX_GROUPS; i++) {
  555.         if(get_user_flags(id) == read_flags(g_RangFlag[i])) {
  556.             new players[32],num;
  557.             get_players(players,num,"c");
  558.            
  559.             for(new x=0; x<num; x++) {
  560.                 if(get_user_team(id) == get_user_team(players[x])) {
  561.                     switch(get_user_team(id)) {
  562.                         case 1:
  563.                         {
  564.                             ColorChat(players[x],RED,"(Terrorist)^x04[%s]^x03 %s^x04 : %s",g_Rang[i],nick,chat);
  565.                         }
  566.                         case 2:
  567.                         {
  568.                             ColorChat(players[x],BLUE,"(Counter)^x04[%s]^x03 %s^x04 : %s",g_Rang[i],nick,chat);
  569.                         }
  570.                     }
  571.                 }
  572.                 return PLUGIN_HANDLED;
  573.             }
  574.         }
  575.     }
  576.     return PLUGIN_CONTINUE;
  577. }

Szerző:  kris128 [2017.08.24. 21:30 ]
Hozzászólás témája:  Re: wss+ admin chat valaki ezt egybe tudná írni?

odified for www.Freakz.ro / amx.freakz.ro

valams.sma(16) : error 017: undefined symbol "MAX_GROUPS"
valams.sma(22) : error 029: invalid expression, assumed zero
valams.sma(22) : error 008: must be a constant expression; assumed zero
valams.sma(24) : error 017: undefined symbol "MAX_GROUPS"
valams.sma(514) : error 017: undefined symbol "is_user_admin"
valams.sma(529) : error 017: undefined symbol "MAX_GROUPS"
valams.sma(539) : error 017: undefined symbol "is_user_admin"
valams.sma(554) : error 017: undefined symbol "MAX_GROUPS"

annek ez a hibája! addig oké hogy még megadon a define maxgroubot de a többi?

Szerző:  Pika [2017.08.24. 22:01 ]
Hozzászólás témája:  Re: wss+ admin chat valaki ezt egybe tudná írni?

kris128 írta:
odified for www.Freakz.ro / amx.freakz.ro

valams.sma(16) : error 017: undefined symbol "MAX_GROUPS"
valams.sma(22) : error 029: invalid expression, assumed zero
valams.sma(22) : error 008: must be a constant expression; assumed zero
valams.sma(24) : error 017: undefined symbol "MAX_GROUPS"
valams.sma(514) : error 017: undefined symbol "is_user_admin"
valams.sma(529) : error 017: undefined symbol "MAX_GROUPS"
valams.sma(539) : error 017: undefined symbol "is_user_admin"
valams.sma(554) : error 017: undefined symbol "MAX_GROUPS"

annek ez a hibája! addig oké hogy még megadon a define maxgroubot de a többi?


Lehetséges elfelejtettem átírni pár includeot.

Edit: Belenéztem, is_user_admin -ra ír hibát. Lehet, hogy én tudom rosszul, de ezt a kódot életemben nem láttam. Szerintem nem létezik, és az a probléma, ergó a prefix plugin hibás.

Szerző:  regener [2017.08.24. 23:39 ]
Hozzászólás témája:  Re: wss+ admin chat valaki ezt egybe tudná írni?

  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <fun>
  4. #include <fakemeta>
  5. #include <hamsandwich>
  6. #include <fakemeta_util>
  7. #include <colorchat>
  8. #include <fvault>
  9.  
  10.  
  11. #define MAX_GROUPS 4
  12.  
  13. #define PLUGIN "Weapon Skin System [WSS]"
  14. #define VERSION "1.0"
  15. #define AUTHOR "6almasok"
  16.  
  17. #define IsValidPlayers(%1,%2) ((1 <= %1 <= 32) && (1 <= %2 <= 32))
  18.  
  19. new g_Rang[MAX_GROUPS][] = {
  20.              "Tulaj",
  21.              "Helyettes",
  22.              "Foadmin",
  23.              "Admin"
  24. };
  25.  
  26. new g_RangFlag[MAX_GROUPS][] = {
  27.              "abcdefghijklmnopqrstu",
  28.              "bcdefghijklmnopqrstu",
  29.              "bcf",
  30.              "t"
  31. };
  32.  
  33.  
  34. new oles[33],csomag[33], kredit[33],switchbutton[33],knife[33],getfrag[3][33]
  35. new ModelData[40][64], ModelNum, MaximumBtton
  36.  
  37. new const File[] = "addons/amxmodx/configs/wss_models.ini"
  38. new const szVaultName[] = "wss_vault"
  39. new const prefix[] = "WSS"
  40.  
  41. /*Rust Kills | Silver Kills | Gold Kills | Veteran Kills | Knife Kredit*/
  42. new const need_kills[] = { 500, 1000, 2000, 4000, 500 }
  43.  
  44. /*Pack Names*/
  45. new const csomagmsg[6][] = { "Nincs","Rozsdás Csomag","Ezüst Csomag","Arany Csomag","Veterán Csomag","Speed Knife" }
  46.  
  47. new const knifedisenable[2][] = { "Kikapcsolva", "Bekapcsolva" }
  48.  
  49. new const menuszoveg[][][] = {
  50.         {"Rozsás Csomag \r[MEGSZEREZVE]", "\dRozsdás Csomag \r[%i/%i ölés]"}, //0
  51.         {"Ezüst Csomag \r[MEGSZEREZVE]", "\dEzüst Csomag \r[%i/%i ölés]"}, //1
  52.         {"Arany Csomag \r[MEGSZEREZVE]", "\dArany Csomag \r[%i/%i ölés]"}, //2
  53.         {"Veterán Csomag \r[MEGSZEREZVE]", "\dVeterán Csomag \r[%i/%i ölés]"}, //3
  54.         {"Speed Knife \r[MEGSZEREZVE]^n", "\dSpeed Knife \r[%i/%i ölés]^n"}, //4
  55.         {"\ySkin Csomagok \r[KIKAPCSOLVA]", "\ySkin Csomagok \r[BEKAPCSOLVA]"} //5
  56. }
  57. new const chatszoveg[10][] =
  58. {
  59.         "^4[%s]^1 FEJLöVÉS!^3 %s ^1megöléséért kaptál ^3+%i^1 ölést!",
  60.         "^4[%s]^3 %s ^1megöléséért kaptál ^3+%i^1 ölést!",
  61.         "^4[%s]^3 %s ^1kapott ^3+1 ^1ölést ember lesebzésért!",
  62.         "^4[%s]^1 Találtál^3 +%i^1 kreditet a csomagbol!",
  63.         "^4[%s]^1 Kiválasztottad a(z)^3 %s^1-ot!",
  64.         "^4[%s]^1 Sajnos nincs elég ölésed!",
  65.         "^4[%s]^1 Kikapcsoltad a Skin Csomagokat!",
  66.         "^4[%s]^1 Bekapcsoltad a Skin Csomagokat!",
  67.         "^4[%s]^1 A Szerveren Jelenleg a(z) ^3Weapon Skin System^1 fut. Megnyitáshoz Írd be ^3/menu^1.",
  68.         "^4[%s]^1 Sajnos nincs elég kredited!"
  69. }
  70. public plugin_init() {
  71.         register_plugin(PLUGIN, VERSION, AUTHOR)
  72.  
  73.         /* Client Command */
  74.         register_clcmd("say /menu" , "fomenu")
  75.         register_clcmd("say","hook_say");
  76.         register_clcmd("say_team","hook_say2");
  77.  
  78.         /* Events */
  79.         register_event("CurWeapon", "changeweapon", "be", "1=1")
  80.         register_event("Damage", "sebzes_event", "be", "2!0", "3=0", "4!0")
  81.         register_event("DeathMsg","Halal","a")
  82.  
  83.         /* Cvars */
  84.         register_cvar("wss_hudenable", "1");
  85.         register_cvar("wss_advertmp", "40.0");
  86.         register_cvar("kill_recived", "1");
  87.         register_cvar("hs_recived", "2");
  88.         register_cvar("found_kredit", "1");
  89.  
  90.         /* Other */
  91.         register_forward(FM_Touch,"ForwardTouch" );
  92.         RegisterHam(Ham_Spawn, "player", "spawn_event", 1)
  93.         set_task(1.0, "infohud", 0, _, _, "b")
  94.         set_task(get_cvar_float("wss_advertmp"), "advertist", 0, "", 0, "b", 0)
  95.  
  96.         LoadModel();
  97. }
  98. public advertist(){
  99.         ColorChat(0, GREEN, chatszoveg[8],prefix);
  100.         return PLUGIN_HANDLED;
  101. }
  102. public plugin_precache() {
  103.  
  104.         new Len, btton[196], Data[64], Letoltes[40][64];
  105.         MaximumBtton = file_size(File, 1);
  106.  
  107.         for(new Num = 0; Num < MaximumBtton; Num++){
  108.                 read_file(File, Num, btton, 196, Len);
  109.                 parse(btton, Data, 63);
  110.                 remove_quotes(btton);
  111.                 if(btton[0] == ';')
  112.                 {
  113.                         continue;
  114.                 }
  115.                 remove_quotes(Data);
  116.                 format(Letoltes[Num], 63, "%s", Data);
  117.                 precache_model(Letoltes[Num]);
  118.         }
  119.         precache_model("models/wss/pack/kredit.mdl");
  120. }
  121. public LoadModel()
  122. {
  123.         new Len, btton[196], Data[64];
  124.         MaximumBtton = file_size(File, 1);
  125.         for(new Num; Num < MaximumBtton; Num++){
  126.                 ModelNum++;
  127.                 read_file(File, Num, btton, 196, Len);
  128.                 parse(btton, Data, 63);
  129.                 remove_quotes(btton);
  130.                 if(btton[0] == ';')
  131.                 {
  132.                         continue;
  133.                 }
  134.                 remove_quotes(Data);
  135.                 format(ModelData[ModelNum], 63, "%s", Data);
  136.         }
  137. }
  138. public changeweapon(id)
  139. {
  140.         if(!is_user_alive(id) || !is_user_connected(id) || id < 1 || id > 32 || switchbutton[id] == 1)
  141.         return
  142.  
  143.         new fegyver = get_user_weapon(id)
  144.  
  145.         switch(csomag[id])
  146.         {
  147.             case 1: {
  148.                 if(fegyver == CSW_AK47)set_pev(id, pev_viewmodel2, ModelData[1]) //Rozsdas ak
  149.                 if(fegyver == CSW_AWP)set_pev(id, pev_viewmodel2, ModelData[2]) //Rozsdas awp
  150.                 if(fegyver == CSW_DEAGLE)set_pev(id, pev_viewmodel2, ModelData[3]) //Rozsdas desi
  151.                 if(fegyver == CSW_M4A1)set_pev(id, pev_viewmodel2, ModelData[4]) //Rozsdas m4
  152.             }
  153.             case 2:{
  154.                     if(fegyver == CSW_AK47)set_pev(id, pev_viewmodel2, ModelData[5]) //ezust ak
  155.                     if(fegyver == CSW_AWP)set_pev(id, pev_viewmodel2, ModelData[6]) //ezust awp
  156.                     if(fegyver == CSW_DEAGLE)set_pev(id, pev_viewmodel2, ModelData[7]) //ezust desi
  157.                     if(fegyver == CSW_M4A1)set_pev(id, pev_viewmodel2, ModelData[8]) //ezust m4
  158.             }
  159.             case 3:{
  160.                     if(fegyver == CSW_AK47)set_pev(id, pev_viewmodel2, ModelData[9]) //arany ak
  161.                     if(fegyver == CSW_AWP)set_pev(id, pev_viewmodel2, ModelData[10]) //arany awp
  162.                     if(fegyver == CSW_DEAGLE)set_pev(id, pev_viewmodel2, ModelData[11]) //arany desi
  163.                     if(fegyver == CSW_M4A1)set_pev(id, pev_viewmodel2, ModelData[12]) //arany m4
  164.             }
  165.             case 4:{
  166.                     if(fegyver == CSW_AK47)set_pev(id, pev_viewmodel2, ModelData[13]) //veteran ak
  167.                     if(fegyver == CSW_AWP)set_pev(id, pev_viewmodel2, ModelData[14]) //veteran awp
  168.                     if(fegyver == CSW_DEAGLE)set_pev(id, pev_viewmodel2, ModelData[15]) //veteran desi
  169.                     if(fegyver == CSW_M4A1)set_pev(id, pev_viewmodel2, ModelData[16]) //veteran m4
  170.             }
  171.         }
  172.         if(knife[id] == 1 && fegyver == CSW_KNIFE){
  173.  
  174.                 set_user_maxspeed(id, Float:320.0)
  175.                 set_pev(id, pev_viewmodel2, ModelData[17]) //knife
  176.         }
  177.        
  178.  
  179. }
  180. public spawn_event(id){
  181.         getfrag[0][id] = 0;
  182.         getfrag[1][id] = 0;
  183.         getfrag[2][id] = 0;
  184. }
  185. public sebzes_event(id)
  186. {
  187.         new tamado = get_user_attacker(id);
  188.         if(id == tamado  || !IsValidPlayers(id, tamado )) return;
  189.         getfrag[1][tamado] += read_data(2);
  190.  
  191.         if(!getfrag[2][id] && getfrag[1][tamado] >= 50)
  192.         {
  193.                 getfrag[0][tamado] = id;
  194.                 getfrag[2][id] = tamado;
  195.         }
  196. }
  197. public Halal() {
  198.  
  199.         new attacker = read_data(1)
  200.         new victim = read_data(2)
  201.  
  202.         new nev[32]
  203.         get_user_name(victim, nev, charsmax(nev))
  204.  
  205.         if(attacker == victim || attacker == 0)
  206.                 return PLUGIN_HANDLED
  207.  
  208.         if(read_data( 3 )){
  209.                 oles[attacker] += get_cvar_num("hs_recived");
  210.                 ColorChat(attacker, GREEN, chatszoveg[0] ,prefix ,nev, get_cvar_num("hs_recived"))
  211.         }
  212.         else{
  213.                 oles[attacker] += get_cvar_num("kill_recived");
  214.                 ColorChat(attacker, GREEN, chatszoveg[1],prefix, nev, get_cvar_num("kill_recived"))
  215.         }
  216.         if(getfrag[2][victim] && getfrag[2][victim] != attacker){
  217.                 new fragetkap = getfrag[2][victim];
  218.                 new fragetkapneve[32];
  219.                 getfrag[0][fragetkap] = 0;
  220.                 getfrag[1][fragetkap] = 0;
  221.                 getfrag[2][victim] = 0;
  222.                 get_user_name(fragetkap, fragetkapneve, charsmax(fragetkapneve));
  223.                 oles[fragetkap]++
  224.                 ColorChat(0, GREEN, chatszoveg[2],prefix ,fragetkapneve);
  225.         }
  226.         switch(random_num(1,3)){
  227.                 case 1: dropdobas()
  228.         }
  229.         return PLUGIN_HANDLED;
  230. }
  231. public dropdobas()
  232. {
  233.         new victim = read_data( 2 );
  234.  
  235.         static Float:origin[ 3 ];
  236.         pev( victim, pev_origin, origin );
  237.  
  238.         new ent = engfunc( EngFunc_CreateNamedEntity, engfunc( EngFunc_AllocString, "info_target" ) );
  239.         origin[ 2 ] -= 36;
  240.         engfunc( EngFunc_SetOrigin, ent, origin );
  241.  
  242.         if( !pev_valid( ent ) )
  243.         {
  244.                 return PLUGIN_HANDLED;
  245.         }
  246.  
  247.         set_pev( ent, pev_classname, "kredit" );
  248.         engfunc( EngFunc_SetModel, ent, "models/wss/pack/kredit.mdl" );
  249.         dllfunc( DLLFunc_Spawn, ent );
  250.         set_pev( ent, pev_solid, SOLID_BBOX );
  251.         set_pev( ent, pev_movetype, MOVETYPE_NONE );
  252.         engfunc( EngFunc_SetSize, ent, Float:{ -23.160000, -13.660000, -0.050000 }, Float:{ 11.470000, 12.780000, 6.720000 } );
  253.         engfunc( EngFunc_DropToFloor, ent );
  254.  
  255.         return PLUGIN_HANDLED;
  256. }
  257. public ForwardTouch( ent, id )
  258. {
  259.         if(pev_valid(ent))
  260.         {
  261.         new classname[ 32 ];
  262.         pev( ent, pev_classname, classname, charsmax( classname ) );
  263.  
  264.         if( !equal( classname, "kredit") )
  265.         {
  266.                 return FMRES_IGNORED;
  267.         }
  268.  
  269.         kredit[id] += get_cvar_num("found_kredit");
  270.         ColorChat(id, GREEN, chatszoveg[3],prefix, get_cvar_num("found_kredit"));
  271.  
  272.         engfunc( EngFunc_RemoveEntity, ent );
  273.         }
  274.         return FMRES_IGNORED
  275. }
  276. public logevent_round_start()
  277. {
  278.         new hkt = FM_NULLENT;
  279.         while ( ( hkt = fm_find_ent_by_class( hkt, "kredit") ) )
  280.         {
  281.                 engfunc( EngFunc_RemoveEntity, hkt );
  282.         }
  283. }
  284. public fomenu(id)
  285. {
  286.         new String[96]
  287.         format(String, charsmax(String), "\r[Weapon Skin System] \wFőmenü^n\yölések: \d%i \w|\y Kreditek: \d%i", oles[id],kredit[id])
  288.         new menu = menu_create(String, "fomenu_MyMenu");
  289.  
  290.         menu_additem(menu, "Fegyver Skin Csomagok", "0");
  291.         menu_additem(menu, "Játékos Infók", "1");
  292.         menu_additem(menu, "Pack Információk", "2");
  293.  
  294.         menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  295.         menu_setprop(menu, MPROP_EXITNAME, "\rKilépés");
  296.  
  297.         menu_display(id, menu, 0);
  298.  
  299.         return PLUGIN_HANDLED;
  300. }
  301. public fomenu_MyMenu(id, menu, item)
  302. {
  303.         if(item == MENU_EXIT)
  304.         {
  305.                 menu_destroy(menu);
  306.                 return PLUGIN_HANDLED;
  307.         }
  308.  
  309.         new command[6], name[64], access, callback;
  310.         menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
  311.  
  312.         switch(item)
  313.         {
  314.                 case 0: fegymenu(id)
  315.                 case 1: playerinfo(id)
  316.                 case 2: show_motd(id, "addons/amxmodx/configs/wssinfo.txt", "[WSS] Infok")
  317.         }
  318.  
  319.         menu_destroy(menu);
  320.  
  321.         return PLUGIN_HANDLED;
  322. }
  323. public playerinfo(id)
  324. {
  325.         new some[256], menu
  326.         static players[32],szTemp[10],pnum
  327.         get_players(players,pnum,"ch");
  328.  
  329.         formatex(some,255,"\r[Weapon Skin System] \wJátékos \d|\w ölés \d|\w Kredit");
  330.         menu = menu_create(some,"pinfo_Handler");
  331.  
  332.         for (new i; i < pnum; i++)
  333.         {
  334.                 formatex(some,256,"%s \r(\yÖlése: \w%i \d| \yKreditje: \w%i\r)",get_player_name(players[i]), oles[players[i]],kredit[players[i]]);
  335.                 num_to_str(players[i],szTemp,charsmax(szTemp));
  336.                 menu_additem(menu, some, szTemp);
  337.         }
  338.  
  339.         menu_setprop(menu, MPROP_EXIT, MEXIT_ALL );
  340.         menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
  341.         menu_display(id, menu);
  342.         return PLUGIN_HANDLED;
  343. }
  344. public pinfo_Handler(id,menu, item)
  345. {
  346.         if(item == MENU_EXIT)
  347.         {
  348.                 menu_destroy(menu);
  349.                 return;
  350.         }
  351.  
  352.         playerinfo(id)
  353. }
  354. public fegymenu(id)
  355. {
  356.         new String[96], text[4]
  357.         format(String, charsmax(String), "\r[Weapon Skin System] \wSkin csomagok^n\yKiválasztott Csomag: \d[%s]", csomagmsg[csomag[id]])
  358.         new menu = menu_create(String, "fegymenu_handler" )
  359.  
  360.         for(new ig=0;ig<(sizeof menuszoveg)-2;ig++)
  361.         {
  362.             format(String, charsmax(String), menuszoveg[ig][0])
  363.             num_to_str(ig,text,3)
  364.             menu_additem(menu, String,text)
  365.         }
  366.         menu_additem(menu, String, "4");
  367.         menu_additem(menu, switchbutton[id] == 1 ? (menuszoveg[5][0]):(menuszoveg[5][1]), "5");
  368.  
  369.         menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  370.         menu_setprop(menu, MPROP_BACKNAME, "Vissza");
  371.         menu_setprop(menu, MPROP_NEXTNAME, "Előre");
  372.         menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
  373.  
  374.         menu_display(id, menu, 0);
  375.         return PLUGIN_HANDLED;
  376. }
  377. public fegymenu_handler(id, menu, item)
  378. {
  379.         if(item == MENU_EXIT)
  380.         {
  381.                 menu_destroy(menu)
  382.                 return PLUGIN_HANDLED;
  383.         }
  384.  
  385.         new command[6], name[64], access, callback;
  386.         menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
  387.  
  388.         switch(item)
  389.         {
  390.                 case 0: {
  391.                         if(oles[id] >= need_kills[0]) {
  392.                         csomag[id] = 1
  393.                         ColorChat(id, GREEN, chatszoveg[4],prefix, csomagmsg[csomag[id]]);
  394.                         }
  395.                         else  {
  396.                         ColorChat(id, GREEN, chatszoveg[5],prefix);
  397.                         }
  398.                 }
  399.                 case 1: {
  400.                         if(oles[id] >= need_kills[1]) {
  401.                         csomag[id] = 2
  402.                         ColorChat(id, GREEN, chatszoveg[4],prefix, csomagmsg[csomag[id]]);
  403.                         }
  404.                         else  {
  405.                         ColorChat(id, GREEN, chatszoveg[5],prefix);
  406.                         }
  407.                 }
  408.                 case 2: {
  409.                         if(oles[id] >= need_kills[2]) {
  410.                         csomag[id] = 3
  411.                         ColorChat(id, GREEN, chatszoveg[4],prefix, csomagmsg[csomag[id]]);
  412.                         }
  413.                         else  {
  414.                         ColorChat(id, GREEN, chatszoveg[5],prefix);
  415.                         }
  416.                 }
  417.                 case 3: {
  418.                         if(oles[id] >= need_kills[3]) {
  419.                         csomag[id] = 4
  420.                         ColorChat(id, GREEN, chatszoveg[4],prefix, csomagmsg[csomag[id]]);
  421.                         }
  422.                         else  {
  423.                         ColorChat(id, GREEN, chatszoveg[5],prefix);
  424.                         }
  425.                 }
  426.                 case 4: {
  427.                         if(kredit[id] >= need_kills[4]) {
  428.                         knife[id] = 1
  429.                         ColorChat(id, GREEN, chatszoveg[4],prefix, csomagmsg[5]);
  430.                         }
  431.                         else  {
  432.                         ColorChat(id, GREEN, chatszoveg[9],prefix);
  433.                         }
  434.                 }
  435.                 case 5: {
  436.                         if(switchbutton[id] == 0){
  437.                         switchbutton[id] = 1
  438.                         csomag[id] = 0
  439.                         knife[id] = 0
  440.                         ColorChat(id, GREEN, chatszoveg[6],prefix);
  441.                         }
  442.                         else {
  443.                         switchbutton[id] = 0
  444.                         ColorChat(id, GREEN, chatszoveg[7],prefix);
  445.                         }
  446.                 }
  447.                 case 6: {
  448.                         ColorChat(id, GREEN, chatszoveg[5],prefix);
  449.                 }
  450.         }
  451.  
  452.         fegymenu(id)
  453.         return PLUGIN_HANDLED;
  454. }
  455. public infohud() {
  456.  
  457.         if(!get_cvar_num("wss_hudenable")) return PLUGIN_HANDLED
  458.  
  459.         static id
  460.         for(id = 1; id <= get_maxplayers(); id++)
  461.         {
  462.                 if(is_user_alive(id)){
  463.                         set_hudmessage(0, 127, 255, 0.01, 0.20, 0, 6.0, 1.0)
  464.                         show_hudmessage(id, "[Ölés: %i]^n[Kredit: %i]^n[Kiválasztott Csomag: %s]^n[Speed Knife: %s]", oles[id],kredit[id],csomagmsg[csomag[id]], knifedisenable[knife[id]])
  465.                 }
  466.                 else{
  467.                         new target = pev(id, pev_iuser2);
  468.  
  469.                         if(!target)
  470.                         return PLUGIN_CONTINUE;
  471.  
  472.                         set_hudmessage(255, 255, 255, 0.01, 0.20, 0, 6.0, 1.0)
  473.                         show_hudmessage(id, "[Ölés: %i]^n[Kredit: %i]^n[Kiválasztott Csomag: %s]^n[Speed Knife: %s]", oles[target],kredit[target],csomagmsg[csomag[target]], knifedisenable[knife[target]])
  474.                 }
  475.         }
  476.         return PLUGIN_CONTINUE;
  477. }
  478. stock get_player_name(id){
  479.         static szName[32];
  480.         get_user_name(id,szName,31);
  481.         return szName;
  482. }
  483. public client_disconnect(id){
  484.         if(is_user_bot(id)) return;
  485.  
  486.         save(id);
  487. }
  488. public client_putinserver( id ) {
  489.         if(is_user_bot(id)) return;
  490.  
  491.         oles[id] = 0;
  492.         kredit[id] = 0;
  493.         csomag[id] = 0;
  494.         switchbutton[id] = 0;
  495.         load(id);
  496. }
  497. load(id) {
  498.         new szAuthid[32], szData[32];
  499.         get_user_name( id, szAuthid, charsmax(szAuthid));
  500.         new s1[16],s2[16],s3[16],s4[16]
  501.         fvault_get_data( szVaultName, szAuthid, szData, 31 );
  502.         parse( szData, s1, 15, s2, 15 , s3 , 15, s4 ,15);
  503.         oles[id] = str_to_num(s1);
  504.         kredit[id] = str_to_num(s2);
  505.         csomag[id] = str_to_num(s3);
  506.         switchbutton[id] = str_to_num(s4);
  507. }
  508. save(id) {
  509.         new szAuthid[ 32 ], szData[ 32 ];
  510.         get_user_name( id, szAuthid, charsmax(szAuthid));
  511.  
  512.         formatex( szData, 31, "%i %i %i %i", oles[id], kredit[id], csomag[id], switchbutton[id]);
  513.         fvault_set_data( szVaultName, szAuthid, szData );
  514. }
  515. public hook_say(id) {
  516.         if(!is_user_admin(id) || is_user_bot(id)) {
  517.                 return PLUGIN_CONTINUE;
  518.         }
  519.  
  520.         new nick[32];
  521.         get_user_name(id,nick,31);
  522.  
  523.         static chat[32];
  524.         read_args(chat, sizeof(chat) - 1);
  525.         remove_quotes(chat);
  526.  
  527.         if(equali(chat,"")) {
  528.                 return PLUGIN_CONTINUE;
  529.         }
  530.  
  531.         for(new i=0; i<MAX_GROUPS; i++) {
  532.                 if(get_user_flags(id) == read_flags(g_RangFlag[i])) {
  533.                         ColorChat(0,GREEN,"[%s]^x03 %s^x04 : %s",g_Rang[i],nick,chat);
  534.                         return PLUGIN_HANDLED;
  535.                 }
  536.         }
  537.         return PLUGIN_CONTINUE;
  538. }
  539.  
  540. public hook_say2(id) {
  541.         if(!is_user_admin(id) || is_user_bot(id)) {
  542.                 return PLUGIN_CONTINUE;
  543.         }
  544.  
  545.         new nick[32];
  546.         get_user_name(id,nick,31);
  547.  
  548.         static chat[32];
  549.         read_args(chat, sizeof(chat) - 1);
  550.         remove_quotes(chat);
  551.  
  552.         if(equali(chat,"")) {
  553.                 return PLUGIN_CONTINUE;
  554.         }
  555.  
  556.         for(new i=0; i<MAX_GROUPS; i++) {
  557.                 if(get_user_flags(id) == read_flags(g_RangFlag[i])) {
  558.                         new players[32],num;
  559.                         get_players(players,num,"c");
  560.  
  561.                         for(new x=0; x<num; x++) {
  562.                                 if(get_user_team(id) == get_user_team(players[x])) {
  563.                                         switch(get_user_team(id)) {
  564.                                                 case 1:
  565.                                                 {
  566.                                                         ColorChat(players[x],RED,"(Terrorist)^x04[%s]^x03 %s^x04 : %s",g_Rang[i],nick,chat);
  567.                                                 }
  568.                                                 case 2:
  569.                                                 {
  570.                                                         ColorChat(players[x],BLUE,"(Counter)^x04[%s]^x03 %s^x04 : %s",g_Rang[i],nick,chat);
  571.                                                 }
  572.                                         }
  573.                                 }
  574.                                 return PLUGIN_HANDLED;
  575.                         }
  576.                 }
  577.         }
  578.         return PLUGIN_CONTINUE;
  579. }

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