Pagina de start a forumului boocof.MyForum.ro boocof.MyForum.ro
BINE ATI VENIT PE BOOCOF!!
 
 FAQFAQ   CautareCautare   MembriMembri   GrupuriGrupuri   InregistrareInregistrare 
 ProfilProfil   Mesaje privateMesaje private   AutentificareAutentificare 

Un "MOD" nou

 
Creaza un subiect nou   Raspunde la subiect    Pagina de start a forumului boocof.MyForum.ro -> Tutoriale
Subiectul anterior :: Subiectul urmator  
Autor Mesaj
RoCk_DeDe
Administrator
Administrator


Data inscrierii: 02/Mai/2012
Mesaje: 99

MesajTrimis: 02/05/2012 18:44    Titlul subiectului: Un "MOD" nou Raspunde cu citat (quote)

Mai intai adaugam modulele importante :
Cod:
#include < amxmodx >
#include < amxmisc >
#include < nvault >
Acum definim maximum de clase
Aici sunt 5 dar voi puteti sa mai adaugat inca 2 sa fie 7 Clase.
Cod:
#define MAXCLASSES 5
Acum cream variabile care sa detina Clasa , XP-ul si Nivelul Tau !
Cod:
new PlayerXP[33],PlayerLevel[33],PlayerClass[33]
//Acestea sunt aparte pentru a ucide
new XP_Kill,XP_Knife,XP_Hs,SaveXP
// Aceasta este pentru nVault pentru a salva XP
new g_vault
Acum adaugam "maximum de clase"
Cod:
new const CLASSES[MAXCLASSES][] = {
"None",
"Englez",
"Roman",
"Francez",
"German"
}
Acum adaugam si Levele :
Cod:
new const LEVELS[7] = {
0, // LVL 0
100,// LVL 1
200,// LVL 2
400,// LVL 3
800,/ /LVL 4
1600,/ /LVL 5
3200 //LVL 6
}
Acum cream plugin_init() :
Cod:
public plugin_init()
{
register_plugin("Stain Mod", "1.0", "Ice age 2")

//avem nevoie de aceasta pentru a verifica nivelul tau dupa ce ai omorat pe cineva
register_event("DeathMsg", "eDeath", "a")
// salvam XP .
SaveXP = register_cvar("SaveXP","1")
//Cat XP sa primesti cand omori pe cineva
XP_Kill=register_cvar("XP_per_kill", "20")
//Cat XP Bonus sa primest cand dai headshot unui jucator
XP_Hs=register_cvar("XP_hs_bonus","20")
//Cat XP Bonux sa primesti cand dai Lama unui jucator
XP_Knife=register_cvar("XP_knife_bonus","20")
//Ne-am creat o conexiune nValut
// O vom numi fndsmod
g_vault = nvault_open("fndsmod")
// Cand scriem "/class" ne putem alege o clasa
register_clcmd("say /class", "ChangeClass")
register_clcmd("say_team /class", "ChangeClass")
//Cand scriem "/xp" ne va aparea informati despre noi
register_clcmd("say /xp", "ShowHud")
register_clcmd("say_team /xp", "ShowHud")
}
Asa. Acum vom crea functia Death.Noi am numit-o in plugin_init eDeath
Aceasta functie v-a tine minte XP-ul nostru daca ajungem la un nivel nou
Cod:
public eDeath( ) // nume functie
{

new headshot = read_data( 1 )
new attacker = read_data( 1 )
new weapon = get_user_weapon(attacker,headshot,headshot)
headshot = read_data( 3 )
new health = get_user_health(attacker)

// Daca jucatorul nare nici o clasa nu ii va pune nici un XP
if(PlayerClass[attacker] == 0)
return PLUGIN_CONTINUE
// Ce arma a folosit
new clip, ammo, weapon = get_user_weapon(id,clip,ammo);
PlayerXP[attacker] += get_pcvar_num(XP_Kill)
/ / întrebuințat pentru cvar xp_hs
/ / Se verifica daca victima a fost ucis de prin HEADSHOT
if(headshot)
PlayerXP[attacker] += get_pcvar_num(XP_Hs)

if(health == 100)
PlayerXP[attacker] += get_pcvar_num(XP_Perfect)
// Verifica daca victima a fost ucide cu cutitul
if(weapon == CSW_KNIFE)
PlayerXP[attacker] += get_pcvar_num(XP_Knife)
// Verifica daca are suficient XP pentru a ajunge la un nou nivel.
while(PlayerXP[attacker] >= LEVELS[PlayerLevel[attacker]]) {
PlayerLevel[attacker] += 1;
client_print(attacker, print_chat, "[FDNS] Felicitari! Ai ajuns la nivelul %i %s!", PlayerLevel[attacker], CLASSES[PlayerClass[attacker]]);

}
// Arata informati despre el in mesaj HUD
ShowHud(attacker)
Aceasta este functia ShowHud. Arata XP , Clasa si Nivelul tau
Cod:
public ShowHud(id)
{
set_hudmessage(255, 0, 0, 0.75, 0.01, 0, 6.0, 15.0)
show_hudmessage(id, "Level: %i^nXP: %i^nClass: %s",PlayerLevel[id],PlayerXP[id],CLASSES[PlayerClass[id]])
}
Acum facem un meniu pentru selectia clasei.
Cod:
public ChangeClass(id)
{
// \r = Scris cu colorit RED \w Scris cu culoarea WHITE \y Scris cu culoarea YELLOW
new menu = menu_create("\rElement Mode" , "Class_Handle")

menu_additem(menu ,"\wEnglez", "1" , 0);
menu_additem(menu ,"\wRoman", "2" , 0);
menu_additem(menu ,"\wFrancez", "3" , 0);
menu_additem(menu ,"\wGerman", "4" , 0);

menu_setprop(menu , MPROP_EXIT , MEXIT_ALL);

menu_display(id , menu , 0);

return PLUGIN_CONTINUE;

}
public Class_Handle(id , menu , item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
}

new szCommand[6] , szName[64];
new access , callback;

menu_item_getinfo(menu , item , access , szCommand , 5 , szName , 63 , callback);

new i = str_to_num(szCommand)

if(PlayerClass[id] != i-1)
{
PlayerClass[id] = i-1
client_print(id,print_chat,"[FDNS] Acum esti %s", CLASSES)
}
else
{
client_print(id,print_chat,"[FDNS] Esti deja %s", CLASSES)
}
menu_destroy(menu);
return PLUGIN_CONTINUE
}
Aceasta functie este client connect .
Cod:
public client_connect(id)
{
// Numai in cazul in care salveza XP
if(get_pcvar_num(SaveXP) == 1)
{
// Incarca player Data.
LoadData(id)
}
}
Aceasta functie este client disconnect
Cod:
public client_disconnect(id)
{
// Numai in cazul in care salveza XP
if(get_pcvar_num(SaveXP) == 1)
{
// Va salva datele jucatorului.
SaveData(id)
}
}
Acum cream functia Save Data
Cod:
public SaveData(id)
{
// Aceasta functie salveaza pe Steam ID - IP
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])
// Salveaza Datele
nvault_set(g_vault,vaultkey,vaultdata)
return PLUGIN_CONTINUE
}

Acum cream functia Load Data
Cod:
public LoadData(id)
{
new AuthID[35] get_user_authid(id,AuthID,34)
new vaultkey[64],vaultdata[256]
// Cauta
format(vaultkey,63,"%s-Mod",AuthID)
format(vaultdata,255,"%i#%i#",PlayerXP[id],PlayerLevel[id])
// Salveaza Datele
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
}
Sus
Vezi profilul utilizatorului Trimite mesaj privat
Afiseaza mesajele pentru a le previzualiza:   
Creaza un subiect nou   Raspunde la subiect    Pagina de start a forumului boocof.MyForum.ro -> Tutoriale Ora este GMT + 2 ore
Pagina 1 din 1

 
Mergi direct la:  
Nu puteti crea un subiect nou in acest forum
Nu puteti raspunde in subiectele acestui forum
Nu puteti modifica mesajele proprii din acest forum
Nu puteti sterge mesajele proprii din acest forum
Nu puteti vota in chestionarele din acest forum


Powered by phpBB © 2001, 2005 phpBB Group
Fa-ti si tu propriul forum GRATUIT, pe www.myforum.ro