hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.03.19. 08:35



Jelenlévő felhasználók

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

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

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

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



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

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 11 hozzászólás ]  Oldal Előző 1 2
Szerző Üzenet
 Hozzászólás témája: Re: Fegyver skin menü.
HozzászólásElküldve: 2020.08.07. 19:11 
Offline
Senior Tag
Avatar

Csatlakozott: 2015.12.27. 11:34
Hozzászólások: 295
Megköszönt másnak: 944 alkalommal
Megköszönték neki: 16 alkalommal
ultraibolya írta:
Fonok:

A case legelső szàma csak akkor lesz 0,ha megadod. Megadhatsz ‘a’-t is a helyére,vagy 1-et.
Ha nincs indexelve akkor viszont igen,mindig 0 lesz.
Nem kell túlbonyolítani a handlert,menu_item_getinfo egyáltalán nem kell.
Itemben tárolja a “lenyomott gombot”.
Ergó:

public m_handler(id,menu,item)

ak[id]=item+1 (mert nálad 0 a legelső és 1 kell hogy legyen)
Megspórolsz egy switchet és a végtelen case-t,sőt még a bővítésnél sem kell akkor foglalkozni a casekkel

Illetve még annyit,hogy nem kell 2x a MENU_EXIT.
Amúgy korrekt,csak a fele ebben az esetben felesleges.
Nem oktatásnak szántam,hanem inkább egy tippnek. (Kevesebb változó)




Köszönöm, gyorsan csináltam.

Máskor jobban oda figyelek.


Itt van egy másik, kicsivel másképp össze rakva.

De ezt sem fogja megérteni, azért csináltam az előzőt. Azzal hátha jobban megfogja érteni.



  1. #include <amxmodx>
  2. #include <colorchat>
  3. #include <fakemeta>
  4.  
  5. new const PLUGIN[] = "Admin fegyverskin";
  6. new const VERSION[] = "1.0";
  7. new const AUTHOR[] = "author"; //NE ÍRD A NEVEM, KÖSZI
  8.  
  9.  
  10. #define ACCESS_FLAG ADMIN_LEVEL_C
  11.  
  12. enum _:Adatok { Nevei[64], Model[64]};
  13.  
  14. new const ak_list[][Adatok] =
  15. {
  16. {"AK47 | Assiimov", "models/ak1/ak1.mdl"},
  17. {"AK47 | Transparent", "models/uzimac2/uzimac2.mdl"},
  18. {"AK47 | Cafrev", "models/ak3/ak3.mdl"},
  19. {"AK47 | Redline", "models/ak4/ak4.mdl"},
  20. {"AK47 | Furios", "models/ak5/ak5.mdl"},
  21. {"AK47 | Wasteland", "models/ak6/ak6.mdl"},
  22. {"AK47 | \rThe Empress", "models/ak7/ak7.mdl"},
  23. {"AK47 | Astronaut", "models/ak8/ak1..mdl"},
  24. {"AK47 | Nightmare", "models/ak9/ak9.mdl"},
  25. {"AK47 | Red Galaxy", "models/ak10/ak10.mdl"},
  26. {"AK47 | BLUE", "models/ak11/ak11.mdl"},
  27. {"AK47 | VIP", "models/ak12/ak12.mdl"},  
  28. {"AK47 | Crystal", "models/ak13/ak13.mdl"}
  29. };
  30. public plugin_init()
  31. {
  32.     register_plugin(PLUGIN, VERSION, AUTHOR)
  33.  
  34.     register_clcmd( "say /adminskin", "adminskin" );
  35.    
  36.     //Fegyverváltás
  37.     register_event("CurWeapon", "FegyverValtas", "be", "1=1");
  38. }
  39.  
  40. public adminskin(id)
  41. {
  42.  
  43. if(get_user_flags(id) & ACCESS_FLAG)
  44. {
  45. ak47_menu(id);
  46. }
  47. else ColorChat(id, GREEN, "Információ - Ezt a menüt csak az Admin használhatja!");
  48. }
  49.  
  50. public plugin_precache()
  51. {
  52.  
  53. for(new i;i < sizeof(ak_list); i++) precache_model(ak_list[i][Model]);
  54.  
  55. }
  56. enum _:WPNS
  57. {
  58.     v_AK47
  59. };
  60.  
  61. new const kivalasztott[33][WPNS];
  62.  
  63. public FegyverValtas(id)
  64. {
  65. new fgy = get_user_weapon(id);
  66.  
  67.  
  68. for(new i;i < sizeof(ak_list); i++)
  69. if( kivalasztott[id][v_AK47] == i && is_user_alive(id) &&  fgy  == CSW_AK47) set_pev(id, pev_viewmodel2, ak_list[i][Model]);
  70. }
  71. public ak47_menu(id)
  72. {
  73.  
  74.     new String[121];
  75.    
  76.     new cim[512];
  77.         format(cim, charsmax(cim), "Szerver Név~ \wAK47 Skinek");
  78.         new menu = menu_create(cim, "ak47_handler" );
  79.        
  80.     for(new i;i < sizeof(ak_list); i++)
  81.     {
  82.     new a[6]; num_to_str(i, a, 5);
  83.     formatex(String, charsmax(String), "\w%s", ak_list[i][Nevei]);
  84.     menu_additem(menu, String, a);
  85.    
  86.     }
  87.    
  88.     menu_setprop(menu, MPROP_BACKNAME, "Vissza");
  89.     menu_setprop(menu, MPROP_NEXTNAME, "Tovább");
  90.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
  91.    
  92.         menu_display(id, menu, 0);
  93. }
  94. public ak47_handler(id, menu, item)
  95. {
  96.         if( item == MENU_EXIT )
  97.         {
  98.         menu_destroy(menu);
  99.         return PLUGIN_HANDLED;
  100.         }
  101.         new data[9], szName[64];
  102.         new access, callback;
  103.         menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  104.         new key = str_to_num(data);
  105.    
  106.         kivalasztott[id][v_AK47] = key;
  107.  
  108.         menu_destroy(menu);
  109.         return PLUGIN_HANDLED;
  110. }





Illetve, ha jól emlékszem.

Ilyennel is talákoztam:


register_clcmd( "say /adminskin", "ak47_menu", ADMIN_LEVEL_C);


Akkor már még kevesebb sorral van kész.



De így még sosem probáltam. Lehet így rossz

_________________
Kép

Facebook Oldalunk
Facebook Csoportunk


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 11 hozzászólás ]  Oldal Előző 1 2


Ki van itt

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


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

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