Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

rhm - zdjęcie

rhm

Rejestracja: 21.12.2008
Aktualnie: Nieaktywny
Poza forum Ostatnio: 19.08.2017 08:49
-----

#330938 Medale + Ranking

Napisane przez byCZUS w 06.12.2011 17:31

Dodam, że plugin przechowuje jeszcze zabicia gracza więc istnieje możliwość dodania rang :D czy coś takiego ++ za wstawkę
  • +
  • -
  • 3


#172572 Problem z xp modem

Napisane przez Harsay w 19.09.2010 13:51

Dam tobie cały poprawiony kod tego exp moda (z alliedmodders masz?) :
PAMIĘTAJ EXP I LVL JEST ZAPISYWANY NA STEAM ID!
#include <amxmodx>
#include <amxmisc>
#include <nvault>

new const LEVELS[6] = {
	100, 
	200, 
	400, 
	800,
	1600,
	3200
}
new PlayerXP[33],PlayerLevel[33],PlayerClass[33]
new XP_Kill,XP_Knife,XP_Hs,SaveXP,g_vault
new gmsgStatusText;
public plugin_init()
{
	register_plugin("XpMod", "1.0", "Fxfighter")
	
	register_event("DeathMsg", "eDeath", "a") 
	
	SaveXP = register_cvar("SaveXP","1")
	XP_Kill=register_cvar("XP_per_kill", "20")
	XP_Hs=register_cvar("XP_hs_bonus","20")
	XP_Knife=register_cvar("XP_knife_bonus","20")
	g_vault = nvault_open("animod")
	
	register_clcmd("say /exp", "lvl_info")
	register_clcmd("say_team /exp", "lvl_info")
}
public eDeath( id )
{       
	new attacker = read_data( 1 )
	new headshot = read_data( 3 )
	new weapon[ 64 ]
	if(!is_user_connected(id) || !is_user_connected(attacker)) return;
	read_data(4,weapon,63) 
	
	PlayerXP[attacker] += get_pcvar_num(XP_Kill)
	
	if(headshot)
		PlayerXP[attacker] += get_pcvar_num(XP_Hs)
	
	if(equal(weapon,"knife"))
		PlayerXP[attacker] += get_pcvar_num(XP_Knife)
	
	
	while(PlayerXP[attacker] >= LEVELS[PlayerLevel[attacker]])
		{!
		client_print(attacker, print_chat, "[ExpTest] LEVEL UP!")
		PlayerLevel[attacker] += 1
	}
	SaveData(attacker)
}
public lvl_info(id)
{	
	new level_exp[512] 
	
	format(level_exp,1023,"Poziom: %i | Doswiadczenie: %i", PlayerLVL[id], PlayerXP[id])
	
	message_begin(MSG_ONE, gmsgStatusText, {0,0,0}, id) 
	write_byte(0) 
	write_string(level_exp) 
	message_end()	
}
public client_connect(id)
{
	if(get_pcvar_num(SaveXP) == 1)
	{
		
		LoadData(id)
	}
}
public client_disconnect(id)
{
	if(get_pcvar_num(SaveXP) == 1)
	{
		
		SaveData(id)
	}
	PlayerXP[id] = 0
	PlayerLevel[id] = 0
}
public SaveData(id)
{
	new AuthID[35]
	get_user_authid(id,AuthID,34)
	
	new vaultkey[64],vaultdata[256]
	format(vaultkey,63,"%s-Mod",AuthID)
	format(vaultdata,255,"%i#%i#",PlayerXP[id],PlayerLevel[id])
	nvault_set(g_vault,vaultkey,vaultdata)
	return PLUGIN_CONTINUE
}
public LoadData(id)
{
	new AuthID[35]
	get_user_authid(id,AuthID,34)
	
	new vaultkey[64],vaultdata[256]
	format(vaultkey,63,"%s-Mod",AuthID)
	format(vaultdata,255,"%i#%i#",PlayerXP[id],PlayerLevel[id])
	nvault_get(g_vault,vaultkey,vaultdata,255)
	
	replace_all(vaultdata, 255, "#", " ")
	
	new playerxp[32], playerlevel[32]
	
	parse(vaultdata, playerxp, 31, playerlevel, 31)
	
	PlayerXP[id] = str_to_num(playerxp)
	PlayerLevel[id] = str_to_num(playerlevel)
	
	return PLUGIN_CONTINUE
}

  • +
  • -
  • 1