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
 

Zdjęcie

Problem z xp modem


  • Zamknięty Temat jest zamknięty
2 odpowiedzi w tym temacie

#1 rhm

    Życzliwy

  • Oczekujący

Reputacja: 0
Nowy

  • Postów:22
  • Imię:Maciej
  • Lokalizacja:bc
Offline

Napisano 19.09.2010 13:47

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <nvault>

#define PLUGIN "XP MOD"
#define VERSION "1.0"
#define AUTHOR "Dakashi d(-.-)b"

#define MAXCLASSES 5

new PlayerXP[33], PlayerLevel[33], PlayerClass[33]
new XP_Kill, XP_Knife, XP_Hs, SaveXP
new g_vault
new const CLASSES[MAXCLASSES] [] =
{
"Jumper",
"Runner",
"Ghost"
}

new const LEVELS[11] =
{
0,
5,
15,
30,
60,
120,
190,
270,
360,
460,
500
}

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("DeathMsg", "eDeath", "a")
SaveXP = register_cvar("xpmod_savexp", "1")
XP_Kill = register_cvar("xpmod_normal_kill", "1")
XP_Knife = register_cvar("xpmod_knife_kill", "1")
XP_Hs = register_cvar("xpmod_hs_kill", "2")

g_vault = nvault_open("drmod")

register_clcmd("say /klasa", "ChangeClass")
register_clcmd("say_team /klasa", "ChangeClass")
register_clcmd("say_team /klasy", "ChangeClass")
register_clcmd("say /klasy", "ChangeClass")

register_clcmd("say /xp", "ShowXP")
register_clcmd("say_team /xp", "ShowXP")

}

public eDeath()
{
new attacker = read_data(1)
if(PlayerClass[attacker] == 0) return PLUGIN_CONTINUE

new headshot = read_data( 3 )
new clip, ammo, weapon = get_user_weapon(clip, ammo)
PlayerXP[attacker] += get_pcvar_num(XP_Kill)

if(headshot) PlayerXP[attacker] += get_pcvar_num(XP_Hs)
if(weapon == CSW_KNIFE) PlayerXP[attacker] += get_pcvar_num(XP_Knife)
while(PlayerXP[attacker] >= LEVELS[PlayerLevel[attacker]])
{
client_print(attacker, print_center, "[XPMOD]Gratulacje! Masz %i level $s!", PlayerLevel[attacker], CLASSES[PlayerClass[attacker]]) //Wiadomosc gratulacyjna
PlayerLevel[attacker] += 1
}
ShowXP(attacker)
SaveData(attacker)
return PLUGIN_CONTINUE
}

public ShowXP(id)
{
set_hudmessage(0, 120, 100, 0.75, 0.1, 0, 6.0, 15.0)
show_hudmessage(id, "Twoja klasa
: %s^nLevel: %i, Exp: %i", CLASSES[PlayerClass[id]], PlayerLevel[id], PlayerXP[id])
}

public ChangeClass(id)
{
new ClassMenu = menu_create("Menu klas:","ClassHandler")
menu_additem(ClassMenu, "Jumper", "1", 0);
menu_additem(ClassMenu, "Runner", "2", 0);
menu_additem(ClassMenu, "Ghost", "3", 0);
menu_setprop(ClassMenu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, ClassMenu, 0);
return PLUGIN_CONTINUE
}

public ClassHandler(id, ClassMenu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(ClassMenu)
}

new szCommand[6], szName[64]; new acces, callback;
menu_item_getinfo(ClassMenu, item, acces, szCommand, 5, szName, 63, callback);

new i = str_to_num(szCommand)

if(PlayerClass[id] != i)
{
client_print(id, print_chat, "[XpMod]Juz jestes %s", CLASSES[PlayerClass[id]])
}
else
{
client_print(id, print_chat, "[XpMod]Jestes teraz %s", CLASSES[i])
}
menu_destroy(ClassMenu)
return PLUGIN_CONTINUE
}

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
PlayerClass[id] = 0

}

public SaveData(id)
{
new name[32]
get_user_name(id, name, 31)
new vaultkey[64], vaultdata[256]

format(vaultkey, 63, "%s-Mod", name)
format(vaultdata, 255, "#%i#%i#", PlayerLevel[id], PlayerXP[id])

nvault_set(g_vault, vaultkey, vaultdata)
return PLUGIN_CONTINUE
}

public LoadData(id)
{
new name[32]
get_user_name(id, name, 31)
new vaultkey[64], vaultdata[256]

format(vaultkey, 63, "%s-Mod", name)
format(vaultdata, 255, "#%i#%i#", PlayerLevel[id], PlayerXP[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
}


Otóż mam taki problem... Gdy wpiszę /klasa działa wszystko ładnie i pięknie , klasę mi wybiera i gdy wpisuję /xp widać jaka klasa i expa lecz przy zabiciu wroga nie daje mi expa i cały czas widać gdy się wpisze /xp Klasa: Nazwa Exp: 0 Level : 0

krócej mówiąc - nie daje expa za zabicie ; (

Wie ktoś co jest tego powodem.

Aha i jeszcze jedno , jak dodać do danej klasy jakiś skill typu
, niewidzialność czy szybsze bieganie. ?

Za pomoc rep ++
  • +
  • -
  • 0

#2 Harsay

    Harsayus pospolitus

  • Użytkownik

Reputacja: 88
Zaawansowany

  • Postów:274
  • Imię:Michał
  • Lokalizacja:Bydgoszcz
Offline

Napisano 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

#3 rhm

    Życzliwy

  • Autor tematu
  • Oczekujący

Reputacja: 0
Nowy

  • Postów:22
  • Imię:Maciej
  • Lokalizacja:bc
Offline

Napisano 19.09.2010 14:05

No właśnie :( na SID

a dałoby rade na nick ?

I tak ogólnie to nie ma w tym kodzie klas i skilli to o co pytałem. Tzn. jak mógł by ktoś wytłumaczyć jak zrobić skille to zrobię sam.

Kolega dostaje reputa ale proszę dalej o pomoc z pierwszego posta.


@Edit

pomoże ktoś ? Proszę.

Dodano 26 wrzesień 2010 - 09:44:
Edytuje ktoś go na nick bo jak ja to robie to nie dodaje expa w ogóle...

Użytkownik .Rahim~ edytował ten post 20.09.2010 15:10

  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych