hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.06.16. 19:57



Jelenlévő felhasználók

Jelenleg 441 felhasználó van jelen :: 0 regisztrált, 0 rejtett és 441 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  [ 7 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: knife menü ár + sebzés
HozzászólásElküldve: 2012.03.06. 18:17 
Offline
Őskövület
Avatar

Csatlakozott: 2011.09.26. 20:33
Hozzászólások: 2105
Megköszönt másnak: 28 alkalommal
Megköszönték neki: 33 alkalommal
hali, tudom hogy ez már volt téma de nem kaptam rá értelmes választ
át kéne szerkeszteni úgy hogy sebzést és árat is lehessen állítani az ini-ben

SMA:
[spoiler]
Kód:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

new const KNIFE_VERSION[] = "2.2"
new const KNIFE_FILE[] = "addons/amxmodx/configs/knifes.ini"

#define   KNIFE_NAME    0
#define   KNIFE_P_MODEL    1
#define   KNIFE_V_MODEL    2
#define KNIFE_ACCESS   12

new const g_TypeList[][] = { "NAME", "P_MODEL", "V_MODEL", "DEPLOY", "HIT1", "HIT2", "HIT3", "HIT4",\
   "HITWALL", "SLASH1", "SLASH2", "STAB", "ACCESS" }

new const g_Default_Knife[][] = { "Default", "models/p_knife.mdl", "models/v_knife.mdl", "weapons/knife_deploy1.wav",\
   "weapons/knife_hit1.wav", "weapons/knife_hit2.wav", "weapons/knife_hit3.wav", "weapons/knife_hit4.wav",\
   "weapons/knife_hitwall1.wav", "weapons/knife_slash1.wav", "weapons/knife_slash2.wav",\
   "weapons/knife_stab.wav", "" }

new Array:gx_InfoData[13]
new Array:gx_InfoCommands
new g_PlrModelNum[33]

new bool:g_bIsAlive[33]

#define   m_pPlayer   41
#define IsValidPlr(%1) ( 1 <= %1 <= g_iMaxPlayers )

new g_cvar_menu_drop, g_cvar_enable, g_cvar_menuname[64], g_cvar_no4you[32], g_cvar_current[32]
new g_iMaxPlayers

public plugin_precache()
{
   register_plugin("Knife Selector", KNIFE_VERSION, "ReymonARG")
   register_cvar("knife_selector", KNIFE_VERSION, FCVAR_SPONLY | FCVAR_SERVER)
   g_iMaxPlayers = get_maxplayers()
   
   static i
   for( i = 0; i < 13; i++)
   {
      gx_InfoData[i] = ArrayCreate(128, 1)
   }
   gx_InfoCommands = ArrayCreate(32, 1)
   
   load_knifes_list()
   
   register_clcmd("say", "Hook_Say")
   register_clcmd("say_team", "Hook_Say")
   
   RegisterHam(Ham_Item_Deploy, "weapon_knife", "weapon_change", 1)
   RegisterHam(Ham_CS_Item_CanDrop, "weapon_knife", "weapon_drop", 1)
   RegisterHam(Ham_Spawn, "player", "fw_Spawn_post", 1)
   RegisterHam(Ham_Killed, "player", "fw_Killed_post", 1)
   register_forward(FM_EmitSound, "fw_EmitSound")
   register_forward(FM_ClientPutInServer, "fw_ClientPutInServer")
   register_forward(FM_ClientDisconnect, "fw_Killed_post")
}

/*==================================================================================================
 [Stock`s & Some Func`s :D]
==================================================================================================*/
stock load_knifes_list()
{
   static StrData[150], StrLeft[32], StrRight[128], i, InfoNum, len, len2
   static f, bool:IsInSettings; IsInSettings = true
   
   if( !(f = fopen(KNIFE_FILE, "rt") ) )
      return set_fail_state("Plugin can´t Found Knife File")
   
   for( i = 0; i < 13; i++)
      ArrayPushString(gx_InfoData[i], g_Default_Knife[i])
   
   while( !feof(f) )
   {
      fgets(f, StrData, 149)
      if( StrData[0] == '/' && StrData[1] == '/' || StrData[0] == ';' || StrData[0] == ' ' || StrData[0] == '^n') continue
      replace(StrData, 149, "^n", "")
      
      if( StrData[0] != '[' && IsInSettings )
      {
         strtok(StrData, StrLeft, 31, StrRight, 127, '=')
         trim(StrLeft); trim(StrRight)
         
         if( equali(StrLeft, "ENABLE") )
         {
            g_cvar_enable = str_to_num(StrRight)
         }
         else if( equali(StrLeft, "MENU_IN_DROP") )
         {
            g_cvar_menu_drop = str_to_num(StrRight)
         }
         else if( equali(StrLeft, "MENU_NAME") )
         {
            copy(g_cvar_menuname, 63, StrRight)
            remove_quotes(g_cvar_no4you)
            replace_menu_colors(g_cvar_menuname, 63)
         }
         else if( equali(StrLeft, "NO_FOR_YOU") )
         {
            copy(g_cvar_no4you, 31, StrRight)
            remove_quotes(g_cvar_no4you)
            replace_menu_colors(g_cvar_no4you, 31)
         }
         else if( equali(StrLeft, "CURRENT") )
         {
            copy(g_cvar_current, 31, StrRight)
            remove_quotes(g_cvar_current)
            replace_menu_colors(g_cvar_current, 31)
         }
         else if( equali(StrLeft, "COMMANDS") )
         {
            while( StrRight[0] != 0 && strtok(StrRight, StrLeft, 31, StrRight, 127, ',') )
            {
               trim(StrLeft); trim(StrRight); remove_quotes(StrLeft)
               ArrayPushString(gx_InfoCommands, StrLeft)
            }
         }
         
         continue
      }
      else if( StrData[0] == '[' && StrData[1] == '/' && IsInSettings )
      {
         IsInSettings = false
      }
      else if( !IsInSettings )
      {
         if( StrData[0] == '[' )
         {
            len = ArraySize(gx_InfoData[KNIFE_NAME])
            for( i = 1; i < 13; i++)
            {
               len2 = ArraySize(gx_InfoData[i] )
               while( len > len2 )
               {
                  ArrayPushCell(gx_InfoData[i], 0)
                  len2++
               }
               while( len < len2 )
               {
                  ArrayDeleteItem(gx_InfoData[i], --len2)
               }
            }
            
            replace(StrData, 149, "]", "")
            ArrayPushString(gx_InfoData[0], StrData[1])
            
            continue
         }
         else
         {
            strtok(StrData, StrLeft, 31, StrRight, 127, '=')
            trim(StrLeft); trim(StrRight); remove_quotes(StrRight)
            
            InfoNum = search_array_num(StrLeft)
            if( InfoNum != -1 )
            {
               ArrayPushString(gx_InfoData[InfoNum], StrRight)
            }
            
            continue
         }
      }
   }
   
   len = ArraySize(gx_InfoData[KNIFE_NAME])
   for( i = 1; i < 13; i++)
   {
      len2 = ArraySize(gx_InfoData[i] )
      while( len > len2 )
      {
         ArrayPushCell(gx_InfoData[i], 0)
         len2++
      }
      while( len < len2 )
      {
         ArrayDeleteItem(gx_InfoData[i], --len2)
      }
   }
   
   precache_knifes()
   return len
}

stock search_array_num( const StrData[] )
{
   static i
   for( i = 1; i < sizeof(g_TypeList); i++)
   {
      if( equali(g_TypeList[i], StrData) )
         return i
   }
   
   return -1
}

stock precache_knifes()
{
   static i, j, R, StrData[128], len; len = ArraySize(gx_InfoData[KNIFE_NAME])
   
   for( i = 0; i < len; i++)
   {
      for( j = 1; j < 12; j++)
      {
         ArrayGetString(gx_InfoData[j], i, StrData, 127)
         if( StrData[0] )
         {
            R = knifes_file_exists(j, StrData)
            if( R != -1 )
            {
               engfunc(R, StrData)
            }
            else
            {
               ArraySetCell(gx_InfoData[j], i, 0)
            }
         }
      }
      
      ArrayGetString(gx_InfoData[KNIFE_ACCESS], i, StrData, 127)
      ArraySetCell(gx_InfoData[KNIFE_ACCESS], i, read_flags(StrData))
   }
   
   return 1
}

stock knifes_file_exists(const num, const DIR[])
{
   static R, Buffer[135]
   if( num != KNIFE_V_MODEL && num != KNIFE_P_MODEL )
   {
      formatex(Buffer, 134, "sound/")
      R = EngFunc_PrecacheSound
   }
   else
   {
      Buffer[0] = '^0' // Reset Because is a static
      R = EngFunc_PrecacheModel
   }
   add(Buffer, 134, DIR)
   
   if( file_exists(Buffer) )
      return R
      
   return -1
}

stock knifes_set_models(id)
{
   static StrData[128]

   ArrayGetString(gx_InfoData[KNIFE_P_MODEL], g_PlrModelNum[id], StrData, 127)
   set_pev(id, pev_weaponmodel2, StrData[0] ? StrData : g_Default_Knife[KNIFE_P_MODEL])
   
   ArrayGetString(gx_InfoData[KNIFE_V_MODEL], g_PlrModelNum[id], StrData, 127)
   set_pev(id, pev_viewmodel2, StrData[0] ? StrData : g_Default_Knife[KNIFE_V_MODEL])
   
   return 1
}

stock replace_menu_colors(string[], len)
{
   replace_all(string, len, "!r", "\r")
   replace_all(string, len, "!y", "\y")
   replace_all(string, len, "!w", "\w")
   replace_all(string, len, "!d", "\d")
   
   return 1
}

/*==================================================================================================
 [ForWard`s CallBack`s :D]
==================================================================================================*/
public weapon_change( iEnt )
{
   if( !pev_valid(iEnt) )
      return HAM_IGNORED
      
   static id; id = get_pdata_cbase(iEnt, m_pPlayer, 4)
   knifes_set_models(id)
   
   return HAM_IGNORED
}

public weapon_drop( iEnt )
{
   if( !pev_valid(iEnt) || !g_cvar_menu_drop || !g_cvar_enable )
      return HAM_IGNORED
   
   static id; id = get_pdata_cbase(iEnt, m_pPlayer, 4)
   
   main_menu(id)
   
   return HAM_IGNORED
}

public fw_Spawn_post( id )
{
   g_bIsAlive[id] = true
}

public fw_Killed_post( id )
{
   g_bIsAlive[id] = false
}

public fw_ClientPutInServer( id )
{
   g_PlrModelNum[id] = 0
}

public fw_EmitSound(iEnt, iChannel, const Sound[] )
{
   if( !IsValidPlr(iEnt) || !g_bIsAlive[iEnt] || ( iChannel != 1 && iChannel != 3 ) )
      return FMRES_IGNORED
      
   static i, StrData[128]
   for( i = 3; i < 13; i++ )
   {
      if( equali(g_Default_Knife[i], Sound) )
      {
         ArrayGetString(gx_InfoData[i], g_PlrModelNum[iEnt], StrData, 127)
         if( StrData[0] )
         {
            engfunc(EngFunc_EmitSound, iEnt, CHAN_WEAPON, StrData, 1.0, ATTN_NORM, 0, PITCH_NORM)
            return FMRES_SUPERCEDE
         }
         else
         {
            return FMRES_IGNORED
         }
      }
   }
   
   return FMRES_IGNORED
}

public Hook_Say( id )
{
   static i, StrData[32], StrSay[32], len
   read_args(StrSay, 31); len = ArraySize(gx_InfoCommands)
   remove_quotes(StrSay)
   
   for( i = 0; i < len; i++)
   {
      ArrayGetString(gx_InfoCommands, i, StrData, 31)
      
      if( equali(StrData, StrSay) )
      {
         main_menu(id)
         return PLUGIN_HANDLED
      }
   }
   
   return PLUGIN_CONTINUE
}   

/*==================================================================================================
 [Menu Settings Part :D]
==================================================================================================*/
stock main_menu(id, page=0)
{
   if( !g_cvar_enable )
      return PLUGIN_HANDLED
   
   static menu; menu = menu_create(g_cvar_menuname, "main_menu_func")
   
   static i, StrData[64], len, PlrFlags, Flags
   len = ArraySize(gx_InfoData[KNIFE_NAME]); PlrFlags = get_user_frags(id)
   for( i = 0; i < len; i++)
   {
      ArrayGetString(gx_InfoData[KNIFE_NAME], i, StrData, 63)
      Flags = ArrayGetCell(gx_InfoData[KNIFE_ACCESS], i)
      if( !(PlrFlags & Flags) && Flags )
      {
         format(StrData, 63, "\d%s \R%s", StrData, g_cvar_no4you)
      }
      else if( i == g_PlrModelNum[id] )
      {
         format(StrData, 63, "\d%s \R%s", StrData, g_cvar_current)
      }
      
      menu_additem(menu, StrData)
   }
   
   menu_display(id, menu, page)
   
   return PLUGIN_HANDLED
}

/*==================================================================================================
 [Menu Exec Settings Part :D]
==================================================================================================*/
public main_menu_func(id, menu, item)
{
   if( item == MENU_EXIT )
   {
      return PLUGIN_HANDLED
   }
   
   static Flags
   Flags = ArrayGetCell(gx_InfoData[KNIFE_ACCESS], item)
   
   if( (get_user_frags(id) & Flags || !Flags) && item != g_PlrModelNum[id] )
   {
      g_PlrModelNum[id] = item
   }
   else
   {
      main_menu(id, item/7)
   }
   
   if( get_user_weapon(id) == CSW_KNIFE )
   {
      knifes_set_models(id)
   }
   
   return PLUGIN_HANDLED
}
[/spoiler]

INI:
[spoiler]
Kód:
[SETTINGS]
ENABLE = 1
MENU_NAME = Kes Menu
MENU_IN_DROP = 1
NO_FOR_YOU = "!r(Adminoknak)"
CURRENT = "!y(Current)"
COMMANDS = /kesek, /kes
[/]

[\rBard]
P_MODEL = models/Kesek/bard/p_bard.mdl
V_MODEL = models/Kesek/bard/v_bard.mdl
DEPLOY = weapons/knife_deploy1.wav
HIT1 = knife_hit1.wav
HIT2 = knife_hit2.wav
HIT3 = knife_hit3.wav
HIT4 = knife_hit5.wav
HITWALL = knife_hitwall1.wav
SLASH1 = knife_slash1.wav
SLASH2 = knife_slash2.wav
STAB = knife_stab.wav
ACCESS =

[Baseballuto]
P_MODEL = models/Kesek/baseballuto/p_baseballuto.mdl
V_MODEL = models/Kesek/baseballuto/v_baseballuto.mdl
DEPLOY = weapons/knife_deploy1.wav
HIT1 = knife_hit1.wav
HIT2 = knife_hit2.wav
HIT3 = knife_hit3.wav
HIT4 = knife_hit5.wav
HITWALL = knife_hitwall1.wav
SLASH1 = knife_slash1.wav
SLASH2 = knife_slash2.wav
STAB = knife_stab.wav
ACCESS =

[Fekete]
P_MODEL = models/Kesek/fekete/p_fekete.mdl
V_MODEL = models/Kesek/fekete/v_fekete.mdl
DEPLOY = weapons/knife_deploy1.wav
HIT1 = knife_hit1.wav
HIT2 = knife_hit2.wav
HIT3 = knife_hit3.wav
HIT4 = knife_hit5.wav
HITWALL = knife_hitwall1.wav
SLASH1 = knife_slash1.wav
SLASH2 = knife_slash2.wav
STAB = knife_stab.wav
ACCESS =

[Hero]
P_MODEL = models/Kesek/hero/p_hero.mdl
V_MODEL = models/Kesek/hero/v_hero.mdl
DEPLOY = weapons/knife_deploy1.wav
HIT1 = knife_hit1.wav
HIT2 = knife_hit2.wav
HIT3 = knife_hit3.wav
HIT4 = knife_hit5.wav
HITWALL = knife_hitwall1.wav
SLASH1 = knife_slash1.wav
SLASH2 = knife_slash2.wav
STAB = knife_stab.wav
ACCESS =

[Bogre]
P_MODEL = models/Kesek/bogre/p_bogre.mdl
V_MODEL = models/Kesek/bogre/v_bogre.mdl
DEPLOY = weapons/knife_deploy1.wav
HIT1 = knife_hit1.wav
HIT2 = knife_hit2.wav
HIT3 = knife_hit3.wav
HIT4 = knife_hit5.wav
HITWALL = knife_hitwall1.wav
SLASH1 = knife_slash1.wav
SLASH2 = knife_slash2.wav
STAB = knife_stab.wav
ACCESS =

[Kard]
P_MODEL = models/Kesek/kard/p_kard.mdl
V_MODEL = models/Kesek/kard/v_kard.mdl
DEPLOY = weapons/knife_deploy1.wav
HIT1 = knife_hit1.wav
HIT2 = knife_hit2.wav
HIT3 = knife_hit3.wav
HIT4 = knife_hit5.wav
HITWALL = knife_hitwall1.wav
SLASH1 = knife_slash1.wav
SLASH2 = knife_slash2.wav
STAB = knife_stab.wav
ACCESS =

[Kard1]
P_MODEL = models/Kesek/kard1/p_kard1.mdl
V_MODEL = models/Kesek/kard1/v_kard1.mdl
DEPLOY = weapons/knife_deploy1.wav
HIT1 = knife_hit1.wav
HIT2 = knife_hit2.wav
HIT3 = knife_hit3.wav
HIT4 = knife_hit5.wav
HITWALL = knife_hitwall1.wav
SLASH1 = knife_slash1.wav
SLASH2 = knife_slash2.wav
STAB = knife_stab.wav
ACCESS =

[Palca]
P_MODEL = models/Kesek/palca/p_palca.mdl
V_MODEL = models/Kesek/palca/v_palca.mdl
DEPLOY = weapons/knife_deploy1.wav
HIT1 = knife_hit1.wav
HIT2 = knife_hit2.wav
HIT3 = knife_hit3.wav
HIT4 = knife_hit5.wav
HITWALL = knife_hitwall1.wav
SLASH1 = knife_slash1.wav
SLASH2 = knife_slash2.wav
STAB = knife_stab.wav
ACCESS =

[Bard2]
P_MODEL = models/Kesek/bard2/p_bard2.mdl
V_MODEL = models/Kesek/bard2/v_bard2.mdl
DEPLOY = weapons/knife_deploy1.wav
HIT1 = knife_hit1.wav
HIT2 = knife_hit2.wav
HIT3 = knife_hit3.wav
HIT4 = knife_hit5.wav
HITWALL = knife_hitwall1.wav
SLASH1 = knife_slash1.wav
SLASH2 = knife_slash2.wav
STAB = knife_stab.wav
ACCESS =
[/spoiler]


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: knife menü ár + sebzés
HozzászólásElküldve: 2012.03.06. 18:21 
Offline
Developer
Avatar

Csatlakozott: 2011.06.01. 21:11
Hozzászólások: 7965
Megköszönt másnak: 295 alkalommal
Megköszönték neki: 537 alkalommal
Szerintem ne várd el hogy más megcsinálja helyetted! Amióta ittvagy fórumon már eltudtál vólna sajátítani pár dolgot, amiből kiindulva meg tudnád csinálni!

_________________
http://www.easyrankup.eu


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: knife menü ár + sebzés
HozzászólásElküldve: 2012.03.06. 18:29 
Offline
Őskövület
Avatar

Csatlakozott: 2011.09.26. 20:33
Hozzászólások: 2105
Megköszönt másnak: 28 alkalommal
Megköszönték neki: 33 alkalommal
én még mindig nem tudok plugint írni :D
valaki könnyebben, valaki nehezebben tanul :D


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: knife menü ár + sebzés
HozzászólásElküldve: 2012.03.06. 18:49 
Offline
Tiszteletbeli
Avatar

Csatlakozott: 2011.09.18. 13:01
Hozzászólások: 4271
Megköszönt másnak: 55 alkalommal
Megköszönték neki: 514 alkalommal
rericsi8 írta:
én még mindig nem tudok plugint írni :D
valaki könnyebben, valaki nehezebben tanul :D


Azert van tutorial :Dha itt nemkapod meg akkor aliedmodders :Dott sok van :)

_________________
Idk. Csak ugy funbooo.
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: knife menü ár + sebzés
HozzászólásElküldve: 2012.03.06. 19:02 
Offline
Őskövület
Avatar

Csatlakozott: 2011.09.26. 20:33
Hozzászólások: 2105
Megköszönt másnak: 28 alkalommal
Megköszönték neki: 33 alkalommal
hozzá teszem allied modders az angol és én nem tudok angolul mert nem azt tanultam :)


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: knife menü ár + sebzés
HozzászólásElküldve: 2012.03.07. 06:57 
Offline
Signore Senior
Avatar

Csatlakozott: 2011.09.09. 17:39
Hozzászólások: 4020
Megköszönt másnak: 12 alkalommal
Megköszönték neki: 139 alkalommal
rericsi8 írta:
hozzá teszem allied modders az angol és én nem tudok angolul mert nem azt tanultam :)

Elõször angolul kell megtanulni és csak utána bármilyen informatikai nyelvet..


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: knife menü ár + sebzés
HozzászólásElküldve: 2012.03.07. 12:58 
Offline
Őskövület
Avatar

Csatlakozott: 2011.09.26. 20:33
Hozzászólások: 2105
Megköszönt másnak: 28 alkalommal
Megköszönték neki: 33 alkalommal
nekem nincs rá pár éve, nekem ez az apró változtatás most kéne ezen a pluginon :D
úgy hogy lécci valaki :D


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


Ki van itt

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