aes_status_info

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
165
Реакции
-8
Ошибка
предупреждение
Компилятор
Локальный
Amx Mod X
1.9.0
Исходный код
/*
	AES: Status Info		     v. 0.1
	by serfreeman1337	http://gf.hldm.org/
*/

#include <amxmodx>
#include <aes_main>

#define PLUGIN "AES: Status Info"
#define AUTHOR "serfreeman1337"
#define VERSION "0.1"

new statusText

enum _:cvars {
	CVAR_FRIEND,
	CVAR_ENEMY
}

new cvar[cvars]

new statusFriend[128],statusEnemy[128]

enum _:isTpl {
	TPL_EXP,
	TPL_EXPNEED,
	TPL_LEVEL,
	TPL_MAXLEVEL,
	TPL_RANK
}

new isTplFormat[isTpl]

new tplForm[][] = {
	"<exp>",
	"<nxp>",
	"<lvl>",
	"<mvl>",
	"<rnk>"
}

public plugin_init(){
	register_plugin(PLUGIN,VERSION,AUTHOR)
	
	statusText = get_user_msgid("StatusText")
	register_event("StatusValue", "Show_Status", "bef", "1=2", "2!0")
	
	cvar[CVAR_FRIEND] = register_cvar("aes_status_friend","1 %c1: %p2\n2 %h: %i3%%")
	cvar[CVAR_ENEMY] = register_cvar("aes_status_enemy","1 %c1: %p2")
	
}

public plugin_cfg(){
	get_pcvar_string(cvar[CVAR_FRIEND],statusFriend,127)
	get_pcvar_string(cvar[CVAR_ENEMY],statusEnemy,127)
	
	for(new i ; i < isTpl ; ++i){
		if(contain(statusFriend,tplForm[i]))
			isTplFormat[i] |= (1<<0)
			
		if(contain(statusEnemy,tplForm[i]))
			isTplFormat[i] |= (1<<1)
	}
}

public Show_Status(id){
	new targetId = read_data(2)
	new isEnemy = get_user_team(id) != get_user_team(targetId)
	
	new statusTxt[128]
	copy(statusTxt,127,isEnemy ? statusEnemy : statusFriend)
	
	if(!tplFormat(id,targetId,statusTxt,127,isEnemy))
		return
	
	message_begin(MSG_ONE,statusText,.player=id)
	write_byte(0)
	write_string(statusTxt)
	message_end()
	
}

public tplFormat(id,targetId,statusTxt[],statusLen,isEnemy){
	new aStats[AES_ST_END],tmp[32]
	
	if(!aes_get_player_stats(targetId,aStats))
		return 0
		
	for(new i ; i < isTpl ; ++i){
		if(isTplFormat[i] & (1<<isEnemy)){
			switch(i){
				case TPL_EXP:{
					formatex(tmp,31,"%d",aStats[AES_ST_EXP])
					replace_all(statusTxt,statusLen,tplForm[i],tmp)
				}
				case TPL_EXPNEED:{
					formatex(tmp,31,"%d",aes_get_exp_to_next_level(aStats[AES_ST_LEVEL]))
					replace_all(statusTxt,statusLen,tplForm[i],tmp)
				}
				case TPL_LEVEL:{
					formatex(tmp,31,"%d",aStats[AES_ST_LEVEL])
					replace_all(statusTxt,statusLen,tplForm[i],tmp)
				}
				case TPL_MAXLEVEL:{
					formatex(tmp,31,"%d",aes_get_max_level())
					replace_all(statusTxt,statusLen,tplForm[i],tmp)
				}
				case TPL_RANK:{
					aes_get_level_name(aStats[AES_ST_LEVEL],tmp,31,id)
					replace_all(statusTxt,statusLen,tplForm[i],tmp)
				}
			}
		}
	}

	replace_all(statusTxt,statusLen,"\n","^n")
	
	return 1
}
C++
1621952251363.png


плагин не работает
 
В этой теме было размещено решение! Перейти к решению.
Сообщения
1
Реакции
1
Помог
1 раз(а)
Вот рабочая версия.
Сам переделал для себя изначально.
(Замена инклуда обязательна, на работу других плагинов не влияет).
 

Download all Attachments

Последнее редактирование модератором:
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу