Counter-Strike 1.6
VIP
Cs-PlovdiV.com - Aim Attack
93.123.16.4:27022
aim_map2
Играчи: 4/16
aim_map2
Counter-Strike 1.6
VIP
93.123.16.4:27022 Cs-PlovdiV.com - Aim Attack aim_map2 4/16

Преработка на Rank System(OciXCrom) ако е възможно и да не отнеме много време!

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
Stilex
Извън линия
Потребител
Потребител
Мнения: 138
Регистриран на: 27 Авг 2021, 23:58
Се отблагодари: 13 пъти
Получена благодарност: 7 пъти
Обратна връзка:

Преработка на Rank System(OciXCrom) ако е възможно и да не отнеме много време!

Мнение от Stilex » 19 Мар 2022, 15:23

Здравейте, мое ли да се направи ранк системата да работи по този начин.
При вдигане на нов левел да увиличава дамаге-а на всяко едно ?

Аватар
Huehue
Извън линия
Модератор
Модератор
Мнения: 357
Регистриран на: 16 Яну 2017, 23:42
Местоположение: София
Се отблагодари: 9 пъти
Получена благодарност: 177 пъти
Обратна връзка:

Преработка на Rank System(OciXCrom) ако е възможно и да не отнеме много време!

Мнение от Huehue » 19 Мар 2022, 15:58

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <amxmisc>
#include <crxranks>
#include <hamsandwich>

#define PLUGIN_VERSION "1.1-zp"

new Trie:g_tDamage
new g_szDamage[33][16]

public plugin_init()
{
	register_plugin("CRXRanks: Damage Per Level", PLUGIN_VERSION, "OciXCrom")
	register_cvar("CRXRanksDPL", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED)
	RegisterHam(Ham_TakeDamage, "player", "PreTakeDamage", 0)
	g_tDamage = TrieCreate()
	ReadFile()
}

public plugin_end()
	TrieDestroy(g_tDamage)
	
ReadFile()
{
	new szFilename[256]
	get_configsdir(szFilename, charsmax(szFilename))
	add(szFilename, charsmax(szFilename), "/RankSystemDamage.ini")
	
	new iFilePointer = fopen(szFilename, "rt")
	
	if(iFilePointer)
	{
		new szData[64], szValue[32], szMap[32], szKey[32], bool:bRead = true, iSize
		get_mapname(szMap, charsmax(szMap))
		
		while(!feof(iFilePointer))
		{
			fgets(iFilePointer, szData, charsmax(szData))
			trim(szData)
			
			switch(szData[0])
			{
				case EOS, '#', ';': continue
				case '-':
				{
					iSize = strlen(szData)
					
					if(szData[iSize - 1] == '-')
					{
						szData[0] = ' '
						szData[iSize - 1] = ' '
						trim(szData)
						
						if(contain(szData, "*") != -1)
						{
							strtok(szData, szKey, charsmax(szKey), szValue, charsmax(szValue), '*')
							copy(szValue, strlen(szKey), szMap)
							bRead = equal(szValue, szKey) ? true : false
						}
						else
						{
							static const szAll[] = "#all"
							bRead = equal(szData, szAll) || equali(szData, szMap)
						}
					}
					else continue
				}
				default:
				{
					if(!bRead)
						continue
						
					strtok(szData, szKey, charsmax(szKey), szValue, charsmax(szValue), '=')
					trim(szKey); trim(szValue)
							
					if(!szValue[0])
						continue
						
					TrieSetString(g_tDamage, szKey, szValue)
				}
			}
		}
		
		fclose(iFilePointer)
	}
}

public PreTakeDamage(iVictim, iInflictor, iAttacker, Float:fDamage, iDamageBits)
{
	if(!is_user_connected(iAttacker) || !g_szDamage[iAttacker][0])
		return
	
	SetHamParamFloat(4, math_add_f(fDamage, g_szDamage[iAttacker]))
}

public client_putinserver(id)
	g_szDamage[id][0] = EOS

public crxranks_user_level_updated(id, iLevel)
{
	new szLevel[10]
	num_to_str(iLevel, szLevel, charsmax(szLevel))
		
	if(TrieKeyExists(g_tDamage, szLevel))
		TrieGetString(g_tDamage, szLevel, g_szDamage[id], charsmax(g_szDamage[]))
}

Float:math_add_f(Float:fNum, const szMath[])
{
	static szNewMath[16], Float:fMath, bool:bPercent, cOperator
   
	copy(szNewMath, charsmax(szNewMath), szMath)
	bPercent = szNewMath[strlen(szNewMath) - 1] == '%'
	cOperator = szNewMath[0]
   
	if(!isdigit(szNewMath[0]))
		szNewMath[0] = ' '
   
	if(bPercent)
		replace(szNewMath, charsmax(szNewMath), "%", "")
	   
	trim(szNewMath)
	fMath = str_to_float(szNewMath)
   
	if(bPercent)
		fMath *= fNum / 100
	   
	switch(cOperator)
	{
		case '+': fNum += fMath
		case '-': fNum -= fMath
		case '/': fNum /= fMath
		case '*': fNum *= fMath
		default: fNum = fMath
	}
   
	return fNum
}
RankSystemDamage.ini

Код за потвърждение: Избери целия код

#5 - this will set the damage of each attack to be exactly 5
#+5 - this will add +5 damage to each attack
#+5% - this will increase the damage of each attack with 5%
# <level number> = <damage amount>
1 = +5
2 = +5
3 = +5
4 = +5
5 = +5
6 = +5
7 = +5
8 = +5
9 = +5
10 = +5
11 = +5
12 = +5
13 = +5
14 = +5
15 = +5
16 = +5
17 = +5
18 = +5
19 = +5
20 = +20%
21 = +21%
22 = +22%
23 = +23%
24 = +24%
25 = +25%
26 = +26%
27 = +27%
28 = +28%
29 = +29%
30 = +30%
LOYAL TO THE OATH OF OMERTА̀

Зад монитора мъжкари, това не го разбирам..
На живо сте мишкари, това го гарантирам!
Седиш на 30 метра от мен като препариран!
Ако има нещо брат, номерът ми е блокиран..

My GitHub Profile
GitHub

My AMXX Includes Collection
AMXX Include Libraries

My Steam Profile (from SteamDB)
  • Value: 4179€
  • Games owned: 1855
  • Games played: 754 (40%)
  • Hours on record: 4,994.9h

Аватар
The Pain
Извън линия
Потребител
Потребител
Мнения: 91
Регистриран на: 06 Дек 2021, 17:10
Се отблагодари: 18 пъти
Получена благодарност: 6 пъти

Преработка на Rank System(OciXCrom) ако е възможно и да не отнеме много време!

Мнение от The Pain » 19 Мар 2022, 16:31

За да не пускам нова тема пиша тук, има ли начин да се направи да дава броня на всяко ниво?

Аватар
OciXCrom
Извън линия
Owner
Owner
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1309 пъти
Обратна връзка:

Преработка на Rank System(OciXCrom) ако е възможно и да не отнеме много време!

Мнение от OciXCrom » 20 Мар 2022, 15:24

https://www.amxx-bg.info/forum/viewtopi ... =21&t=4594 - просто заместваш да дава броня вместо кръв.

Публикувай отговор
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Заявки за плъгини”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 2 госта