hlmod.hu
https://hlmod.hu/

Fegyverváltás
https://hlmod.hu/viewtopic.php?f=10&t=31667
Oldal: 1 / 1

Szerző:  saxxo [2025.12.09. 10:02 ]
Hozzászólás témája:  Fegyverváltás

Sziasztok....
Esetleg valaki tudna beleírni nekem ebbe egy Be/Ki kapcsolható Skint....

  1. public WeaponChange_p(iEnt)
  2. {
  3.     new id = get_pdata_cbase(iEnt, 41, 4);
  4.    
  5.     if(!is_user_alive(id) || !is_user_connected(id))
  6.         return HAM_IGNORED;
  7.    
  8.     new Weapon = cs_get_weapon_id(iEnt);
  9.    
  10.     switch(Weapon)
  11.     {
  12.         case CSW_M4A1:
  13.         {
  14.             if(Skin[0][id] == -1)
  15.                 return HAM_IGNORED;
  16.             else
  17.             entity_set_string(id, EV_SZ_viewmodel, Fegyverek[Skin[0][id]][gWeaponFile]);
  18.         }
  19.         case CSW_AK47:
  20.         {
  21.             if(Skin[1][id] == -1)
  22.                 return HAM_IGNORED;
  23.             else
  24.             entity_set_string(id, EV_SZ_viewmodel, Fegyverek[Skin[1][id]][gWeaponFile]);
  25.         }
  26.         case CSW_AWP:
  27.         {
  28.             if(Skin[2][id] == -1)
  29.                 return HAM_IGNORED;
  30.             else
  31.             entity_set_string(id, EV_SZ_viewmodel, Fegyverek[Skin[2][id]][gWeaponFile]);
  32.         }
  33.         case CSW_SCOUT:
  34.         {
  35.             if(Skin[3][id] == -1)
  36.                 return HAM_IGNORED;
  37.             else
  38.             entity_set_string(id, EV_SZ_viewmodel, Fegyverek[Skin[3][id]][gWeaponFile]);
  39.         }
  40.         case CSW_FAMAS:
  41.         {
  42.             if(Skin[4][id] == -1)
  43.                 return HAM_IGNORED;
  44.             else
  45.             entity_set_string(id, EV_SZ_viewmodel, Fegyverek[Skin[4][id]][gWeaponFile]);
  46.         }
  47.         case CSW_DEAGLE:
  48.         {
  49.             if(Skin[5][id] == -1)
  50.                 return HAM_IGNORED;
  51.             else
  52.             entity_set_string(id, EV_SZ_viewmodel, Fegyverek[Skin[5][id]][gWeaponFile]);  
  53.         }
  54.         case CSW_KNIFE:
  55.         {
  56.             if(Skin[6][id] == -1)
  57.                 return HAM_IGNORED;
  58.             else
  59.             entity_set_string(id, EV_SZ_viewmodel, Fegyverek[Skin[6][id]][gWeaponFile]);
  60.         }
  61.         case CSW_USP:
  62.         {
  63.             if(Skin[7][id] == -1)
  64.                 return HAM_IGNORED;
  65.             else
  66.             entity_set_string(id, EV_SZ_viewmodel, Fegyverek[Skin[7][id]][gWeaponFile]);
  67.         }
  68.         case CSW_GLOCK18:
  69.         {
  70.             if(Skin[8][id] == -1)
  71.                 return HAM_IGNORED;
  72.             else
  73.             entity_set_string(id, EV_SZ_viewmodel, Fegyverek[Skin[8][id]][gWeaponFile]);
  74.         }
  75.     }
  76.     return HAM_IGNORED;

Szerző:  Pika [2025.12.09. 11:29 ]
Hozzászólás témája: 

  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <hamsandwich>
  4. #include <cstrike>
  5.  
  6. new bool:SkinOff[9][33];
  7.  
  8. new const WeaponIndex[CSW_COUNT] =
  9. {
  10.     -1, -1, -1, -1, -1, -1, -1,
  11.     7,
  12.     8,
  13.     5,
  14.     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  15.     4,
  16.     0,
  17.     1,
  18.     3,
  19.     2,
  20.     6
  21. };
  22.  
  23. public plugin_init()
  24. {
  25.     register_plugin("", "1.0", "Your Name")
  26.    
  27.     register_clcmd("say /skin", "Cmd_ToggleSkin")
  28.     register_clcmd("say /skinek", "Cmd_ToggleSkin")
  29.    
  30.     return PLUGIN_CONTINUE;
  31. }
  32.  
  33. public WeaponChange_p(iEnt)
  34. {
  35.     new id = get_pdata_cbase(iEnt, 41, 4);
  36.    
  37.     if(!is_user_alive(id) || !is_user_connected(id))
  38.         return HAM_IGNORED;
  39.    
  40.     new Weapon = cs_get_weapon_id(iEnt);
  41.     new weapon_idx = -1;
  42.  
  43.     if (Weapon >= 0 && Weapon < CSW_COUNT)
  44.     {
  45.         weapon_idx = WeaponIndex[Weapon];
  46.     }
  47.    
  48.     if (weapon_idx == -1)
  49.     {
  50.         return HAM_IGNORED;
  51.     }
  52.  
  53.     if(SkinOff[weapon_idx][id])
  54.     {
  55.         return HAM_IGNORED;
  56.     }
  57.  
  58.     if(Skin[weapon_idx][id] == -1)
  59.     {
  60.         return HAM_IGNORED;
  61.     }
  62.     else
  63.     {
  64.         entity_set_string(id, EV_SZ_viewmodel, Fegyverek[Skin[weapon_idx][id]][gWeaponFile]);
  65.     }
  66.  
  67.     return HAM_IGNORED;
  68. }
  69.  
  70. public Cmd_ToggleSkin(id)
  71. {
  72.     for(new i = 0; i <= 8; i++)
  73.     {
  74.         SkinOff[i][id] = !SkinOff[i][id];
  75.     }
  76.    
  77.     if(SkinOff[0][id])
  78.     {
  79.         client_print(id, print_chat, " [SKIN] Minden skin kikapcsolva. A gyari modellek latszanak.");
  80.     }
  81.     else
  82.     {
  83.         client_print(id, print_chat, " [SKIN] Minden skin bekapcsolva. Az egyedi modellek latszanak.");
  84.     }
  85.    
  86.     ExecuteHamB(Ham_Weapon_Switch, id);
  87.  
  88.     return PLUGIN_HANDLED;
  89. }

Szerző:  The Peace [2025.12.09. 12:02 ]
Hozzászólás témája: 

Pika írta:
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <hamsandwich>
  4. #include <cstrike>
  5.  
  6. new bool:SkinOff[9][33];
  7.  
  8. new const WeaponIndex[CSW_COUNT] =
  9. {
  10.     -1, -1, -1, -1, -1, -1, -1,
  11.     7,
  12.     8,
  13.     5,
  14.     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  15.     4,
  16.     0,
  17.     1,
  18.     3,
  19.     2,
  20.     6
  21. };
  22.  
  23. public plugin_init()
  24. {
  25.     register_plugin("", "1.0", "Your Name")
  26.    
  27.     register_clcmd("say /skin", "Cmd_ToggleSkin")
  28.     register_clcmd("say /skinek", "Cmd_ToggleSkin")
  29.    
  30.     return PLUGIN_CONTINUE;
  31. }
  32.  
  33. public WeaponChange_p(iEnt)
  34. {
  35.     new id = get_pdata_cbase(iEnt, 41, 4);
  36.    
  37.     if(!is_user_alive(id) || !is_user_connected(id))
  38.         return HAM_IGNORED;
  39.    
  40.     new Weapon = cs_get_weapon_id(iEnt);
  41.     new weapon_idx = -1;
  42.  
  43.     if (Weapon >= 0 && Weapon < CSW_COUNT)
  44.     {
  45.         weapon_idx = WeaponIndex[Weapon];
  46.     }
  47.    
  48.     if (weapon_idx == -1)
  49.     {
  50.         return HAM_IGNORED;
  51.     }
  52.  
  53.     if(SkinOff[weapon_idx][id])
  54.     {
  55.         return HAM_IGNORED;
  56.     }
  57.  
  58.     if(Skin[weapon_idx][id] == -1)
  59.     {
  60.         return HAM_IGNORED;
  61.     }
  62.     else
  63.     {
  64.         entity_set_string(id, EV_SZ_viewmodel, Fegyverek[Skin[weapon_idx][id]][gWeaponFile]);
  65.     }
  66.  
  67.     return HAM_IGNORED;
  68. }
  69.  
  70. public Cmd_ToggleSkin(id)
  71. {
  72.     for(new i = 0; i <= 8; i++)
  73.     {
  74.         SkinOff[i][id] = !SkinOff[i][id];
  75.     }
  76.    
  77.     if(SkinOff[0][id])
  78.     {
  79.         client_print(id, print_chat, " [SKIN] Minden skin kikapcsolva. A gyari modellek latszanak.");
  80.     }
  81.     else
  82.     {
  83.         client_print(id, print_chat, " [SKIN] Minden skin bekapcsolva. Az egyedi modellek latszanak.");
  84.     }
  85.    
  86.     ExecuteHamB(Ham_Weapon_Switch, id);
  87.  
  88.     return PLUGIN_HANDLED;
  89. }


A hiba : A ExecuteHamB(Ham_Weapon_Switch, id); sor hibás. A Ham_Weapon_Switch nem játékos ID-t vár, hanem fegyver entitást.

Ezt a sort töröld ki, különben kifagyhat a szerver vagy hibaüzeneteket kapsz. A skin a következő fegyverváltáskor magától frissül.

Felesleges bonyolítás: A SkinOff[9][33] azt jelenti, hogy minden fegyvertípushoz külön tárolja, hogy ki van-e kapcsolva.
De a parancs (Cmd_ToggleSkin) egyszerre kapcsolja mindet.

Felesleges ennyi adatot tárolni, elég egyetlen "Mindent KI/BE" változó.

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