Plugin lvl clasic

Discutii despre problemele aparute in jocul Counter-Strike.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
revolutia
Membru, skill 0
Membru, skill 0
Posts: 76
Joined: 23 Nov 2016, 08:35
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

07 Apr 2017, 23:35

Salut as dori sa-mi modificati si mie pluginul de mai jos
As vrea sa aiba mai multe lvl ( 20 poate ) .
Si la fiecare lvl sa-ti dea ceva in plus dar doar de la lvl 8 in colo . Gen :

Lvl 1 - Lvl 8 = speed 250 / gravity 0.5 / hp 100 ( Normal )
Pentru a trece de la lvl 1 la 8 sa ceara pe lvl cate 200 xp . Dupa care :
Lvl 9 = speed 260 / gravity 0.5 / hp 100 - 270 xp
Lvl 10 = speed 265 / gravity 0.5 / hp 110 - 340 xp
Lvl 11 = speed 270 / gravity 0.5 / hp 115 - 425 xp
Lvl 12 = speed 270 / gravity 0.6 / hp 120 - 510 xp
Lvl 13 = speed 275 / gravity 0.6 / hp 125 - 630 xp
Lvl 14 = speed 275 / gravity 0.7 / hp 130 - 745 xp
Lvl 15 = speed 275 / gravity 0.7 / hp 135 - 895 xp
Lvl 16 = speed 275 / gravity 0.7 / hp 145 - 1090 xp
Lvl 17 = speed 275 / gravity 0.7 / hp 160 - 1325 xp
Lvl 18 = speed 275 / gravity 0.8 / hp 165 - 1675 xp
Lvl 19 = speed 280 / gravity 0.8 / hp 170 - 2025 xp
Lvl 20 = speed 300 / gravity 0.8 / hp 195 - 2490 xp

Dar sa raman meniu ala care sa pot alege ce clasa vreau, va rog .

| Afiseaza codul
/* Plugin generated by AMXX-Studio */
 
#include <amxmodx>
#include <amxmisc>
#include < cstrike >
#include < fun >
#include < hamsandwich >
#include <fun>
#include <nvault>  
#include < csx > 
 
 
//Define:
 
#define PLUGIN "LevelMode"
#define VERSION "1.0"
#define AUTHOR "Paradox."
 
#define MAXCLASSES 4 //aici schimbati numarul claselor
#define MAXLEVELS 9 //aici schimbati numarul levelelor
 
 
//Colorchat:
 
#if defined _colorchat_included
  #endinput
#endif
#define _colorchat_included
 
enum Color
{
NORMAL = 1, // clients scr_concolor cvar color
GREEN, // Green Color
TEAM_COLOR, // Red, grey, blue
GREY, // grey
RED, // Red
BLUE, // Blue
}
 
new TeamName[][] = 
{
"",
"TERRORIST",
"CT",
"SPECTATOR"
}
 
ColorChat(id, Color:type, const msg[], {Float,Sql,Result,_}:...)
{
new message[256];
 
switch(type)
{
case NORMAL: // clients scr_concolor cvar color
{
message[0] = 0x01;
}
case GREEN: // Green
{
message[0] = 0x04;
}
default: // White, Red, Blue
{
message[0] = 0x03;
}
}
 
vformat(message[1], 251, msg, 4);
 
// Make sure message is not longer than 192 character. Will crash the server.
message[192] = '^0';
 
new team, ColorChange, index, MSG_Type;
 
if(id)
{
MSG_Type = MSG_ONE;
index = id;
} else {
index = FindPlayer();
MSG_Type = MSG_ALL;
}
 
team = get_user_team(index);
ColorChange = ColorSelection(index, MSG_Type, type);
 
ShowColorMessage(index, MSG_Type, message);
 
if(ColorChange)
{
Team_Info(index, MSG_Type, TeamName[team]);
}
}
 
ShowColorMessage(id, type, message[])
{
static bool:saytext_used;
static get_user_msgid_saytext;
if(!saytext_used)
{
get_user_msgid_saytext = get_user_msgid("SayText");
saytext_used = true;
}
message_begin(type, get_user_msgid_saytext, _, id);
write_byte(id)
write_string(message);
message_end();
}
 
Team_Info(id, type, team[])
{
static bool:teaminfo_used;
static get_user_msgid_teaminfo;
if(!teaminfo_used)
{
get_user_msgid_teaminfo = get_user_msgid("TeamInfo");
teaminfo_used = true;
}
message_begin(type, get_user_msgid_teaminfo, _, id);
write_byte(id);
write_string(team);
message_end();
 
return 1;
}
 
ColorSelection(index, type, Color:Type)
{
switch(Type)
{
case RED:
{
return Team_Info(index, type, TeamName[1]);
}
case BLUE:
{
return Team_Info(index, type, TeamName[2]);
}
case GREY:
{
return Team_Info(index, type, TeamName[0]);
}
}
 
return 0;
}
 
FindPlayer()
{
new i = -1;
 
while(i <= get_maxplayers())
{
if(is_user_connected(++i))
return i;
}
 
return -1;
}
 
 
 
 
 
 
 
 
//Cvaruri:
 
new PlayerXP[33],PlayerLevel[33],PlayerClass[33] //xp,level si clasa playerului
new XP_Kill,XP_Knife,XP_Hs,XP_AWP //valoare xp-ului primit
new XP_save //porneste/opreste salvarea xp-ului
new XP_plant,XP_defuse,XP_he //  plan,defuse,he
new g_vault //salvarea xp-ului
new advertise ,reminder// arata mesaje la conectare
 
//Clase :
 
 
new const CLASSES[MAXCLASSES][] = {
  
   "Incepator",
   "Mediu",
   "Avansat",
   "Expert"
 
   
}  
 
//Levele
 
new const LEVELS[MAXLEVELS] = {
 
 
100,
500,
1000,
5000,
10000,
50000,
60000,
90000,
100000
}  
 
//Plugin_init
 
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
 
//Comenzi publice
 
register_clcmd("say /xp" ,"PrintXp")  //arata xp-lu in chat
register_clcmd("say /info" ,"InfoXp") //arata un motd cu informatii despre pluginul de xp
register_clcmd("sayw /class","ClassCmd") //arata un meniu de unde iti poti alege clasa
 
//Comenzi admini
 
register_concmd("amx_givexp" ,"CmdGiveXp",ADMIN_RCON,"Adauga xp unui user")
register_concmd("amx_takexp", "CmdTakeXp",ADMIN_RCON,"Ia din xp-ul unui user")
register_concmd("amx_xp" ,"CmdFindXp" ,ADMIN_RCON,"Arata xp-ul unui player")
 
//Ham
 
RegisterHam( Ham_Spawn, "player", "Playerspawn", 1 )
 
//Deathmsg
 
register_event( "DeathMsg", "DeathMsg", "a" )
 
 
//Inregistrare cvaruri xp
 
XP_Kill=register_cvar("xp_kill","20") //cat xp sa primeasca pe kill
XP_Hs=register_cvar("xp_hs","40") //cat xp sa primeasca pe hs
XP_AWP=register_cvar("xp_awp","15") //cat xp sa primeasca cand foloseste awp
XP_Knife=register_cvar("xp_knife","50") //cat xp sa primeasca cand foloseste knife
XP_plant=register_cvar("xp_plant","5")// cat xp sa primeasca pe plant
XP_defuse=register_cvar("xp_defuse","5") //cat xp sa primeasca pe defuse
XP_save=register_cvar("xp_save" ,"1")   //porneste/opreste salvarea xp-ului
XP_he=register_cvar("xp_he","10") // xp primit pe he
advertise=register_cvar("xp_advertise" ,"1") 
reminder=register_cvar("xp_reminder","1")
 
//Inregistrare cvar nvault(new system)
 
g_vault=nvault_open("XpClasicMod") //facem un fisier nvault care sa pastreze datele
 
 
}
 
          public client_putinserver(id) {
 
if(get_cvar_num("XP_save")==1) { //verifica daca trebuie sa salveze xp
LoadXp(id) 
 
}
 
set_task(10.0,"ClientMsg",id) //mesaj la conectare
set_task(300.0, "ReminderMsg", id ) //reminder
 
 
}
 
 
public client_disconnect(id) {
 
if(get_pcvar_num(XP_save)==1)  { //verifica daca trebuie sa salveze xp
                   SaveXp(id)
   PlayerXP[id]=0      //stergem xp-ul temporar pentru a nu putea fi folosit de alti playeri
   PlayerLevel[id]=0 //stergem level-ul temporar pentru a nu putea fi folosit de alti playeri
   PlayerClass[id]=0 //stergem clasa temporar
                            
}
}
 
 
//Se salveaza doar levelul si xp-ul. Clasa nu se salveaza,e doar pentru design. 
 
 
public SaveXp(id)  //salvam xp-ul
{ 
     
    new name[32]
    get_user_name(id,name,31) //salvam pe nume 
    new vaultkey[64],vaultdata[256] 
 
    format(vaultkey,63,"%s-XpClasic",name)  
    format(vaultdata,255,"%i#%i#",PlayerXP[id],PlayerLevel[id]) 
    
    nvault_set(g_vault,vaultkey,vaultdata)  //salvam datele
    return PLUGIN_CONTINUE 
}  
 
public LoadXp(id) //incarcam xp-ul 
{ 
    new name[32]
    get_user_name(id,name,31) 
    new vaultkey[64],vaultdata[256] 
    
    format(vaultkey,63,"%s-XpClasic",name) 
    format(vaultdata,255,"%i#%i#",PlayerXP[id],PlayerLevel[id]) 
    //incarcam xp-ul 
    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 
}  
 
 
public ClientMsg(id) { //mesaj la conectare
 
if(get_pcvar_num(advertise) == 1) {
 
ColorChat(id,GREEN,"[Plugin Puncte]Bine ai venit!") 
ColorChat(id,GREEN,"[Plugin Puncte]Fa fraguri pentru a acumula puncte de experienta.")
ColorChat(id,GREEN,"[Plugin Puncte]Pe acest server ruleaza modul Clasic creat de Paracitamol.")
ColorChat(id,GREEN,"[Plugin Puncte]Pentru mai multe detalii scrie /info.")
             }
}
 
 
public ReminderMsg(id) { //iti arata xp-ul,clasa si levelul in hud
 
if(get_pcvar_num(reminder) ==1) {
 
set_hudmessage(255, 0, 0, 0.75, 0.01, 0, 6.0, 15.0) 
show_hudmessage(id, "Level: %i XP: %i Class: %s",PlayerLevel[id],PlayerXP[id],CLASSES[PlayerClass[id]]) 
 
}
 
}
 
 
 
public PrintXp(id) {
 
 ColorChat(id,RED,"Ai %i XP cu levelul %i si clasa %s.",PlayerXP[id],PlayerLevel[id],CLASSES[PlayerClass[id]])
 
 
}
 
public CmdGiveXp(id) { //da xp unui player
 
if( get_user_flags( id ) & ADMIN_RCON )
{
new PlayerToGive[ 32 ], XP[ 32 ]
read_argv( 1,PlayerToGive, 31 )
read_argv( 2, XP, 31 )
new Player = cmd_target( id, PlayerToGive, 9 )
if( !Player ) {
return 1
}
 
 
new XPtoGive = str_to_num( XP )
new name[ 32 ], owner[ 32 ]
get_user_name( id, owner, 31 )
get_user_name( Player, name, 31 )
ColorChat(0,GREEN,"Adminul %s i-a dat lui %s %s XP.", owner,name,XP)
PlayerXP[ Player ] += XPtoGive
SaveXp( id )
}
else 
{
client_print( id, print_console, "Nu ai acces la aceasta comanda." )
}
return 0
 
 
 
}
 
public CmdTakeXp(id) { //ia xp-ul unui player
 
if( get_user_flags( id ) & ADMIN_RCON )
{
new PlayerToTake[ 32 ], XP[ 32 ]
read_argv( 1, PlayerToTake, 31 )
read_argv( 2, XP, 31 )
new Player = cmd_target( id, PlayerToTake, 9 )
if( !Player ) {
 
return 1
}
    
new XPtoTake = str_to_num( XP )
new name[ 32 ], owner[ 32 ]
get_user_name( id, owner, 31 )
get_user_name( Player, name, 31 )
ColorChat(0,GREEN,"Adminul %s i-a luat lui %s %s XP.",owner,name,XP)
PlayerXP[ Player ] -= XPtoTake
SaveXp( id )
}
 
else 
{
client_print( id, print_console, "Nu ai acces la aceasta comanda." );
}
return 0
 
 
}
 
public CmdFindXp(id) { //aflam xp-ul unui player
 
if( get_user_flags( id ) & ADMIN_RCON)
{
new  Arg1[ 32 ]
read_argv( 1, Arg1, 31 )
new PlayertoFind= cmd_target( id, Arg1, 9 )
if( !PlayertoFind ) {
 
return 1
}
 
 
 
new  Name[ 32 ]
get_user_name( id, Name, 31 )
console_print( id, "Player %s are levelul %i si %i XP.", Name, PlayerLevel[ PlayertoFind], PlayerXP[ PlayertoFind ] )
}
else 
{
client_print( id, print_console, "Nu ai acces la aceasta comanda." )
}
return 0
 
 
 
}
 
 
public DeathMsg(iWpnIndex) {
new headshot=read_data(3) //determina daca playerul a fost omorat prin hs
new Victim=read_data(2) // variabila care retine victima
new victim_name[32] //variabila care retine numele vctimei
get_user_name( Victim, victim_name, 31 ) //aflam numele victimei 
new weapon, HitPoint, attacker = get_user_attacker( Victim, weapon, HitPoint) //determinam ce arma a fost folosita
 
 
if(headshot)  {
PlayerXP[attacker] += get_pcvar_num(XP_Hs)  //adauga xp pentru 1 hs
client_print(attacker,print_chat,"Ai primit  %i XP pentru ca l-ai omorat prin hs pe %s.",get_pcvar_num(XP_Hs),victim_name)
 
}
 
else {
 
 
PlayerXP[attacker ] += get_pcvar_num( XP_Kill ) //adauga xp pentru 1 kill
client_print(attacker,print_chat,"Ai primit  %i XP pentru ca l-ai omorat pe %s. ",get_pcvar_num(XP_Kill),victim_name)
}
 
if(weapon== CSW_KNIFE) {
                       PlayerXP[attacker] += get_pcvar_num(XP_Knife)  //adauga xp pentru 1 kill cu knife
                       client_print(attacker,print_chat,"Ai primit  %i XP pentru ca l-ai omorat cu knife pe %s.",get_pcvar_num(XP_Knife),victim_name)
 
}
 
if(weapon== CSW_AWP) {
 PlayerXP[attacker] += get_pcvar_num(XP_AWP)  //adauga xp pentru 1 kill cu awp
 client_print(attacker,print_chat,"Ai primit  %i XP pentru ca l-ai omorat cu awp pe %s.",get_pcvar_num(XP_AWP),victim_name)
 
}
 
if( iWpnIndex == CSW_HEGRENADE )
    {
                   PlayerXP[attacker] += get_pcvar_num(XP_he)  //adauga xp pentru 1 kill cu he
  client_print(attacker,print_chat,"Ai primit  %i XP pentru ca l-ai omorat cu he pe %s.",get_pcvar_num(XP_he),victim_name)
 
    }
 
 
 
 
}
 
public  Playerspawn( id )
{
 
 
if( ( PlayerLevel[ id] < 10 && ( PlayerXP[ id ] > LEVELS[ PlayerLevel[ id ] ] ) ) )
 
{
while( PlayerXP[ id ] > LEVELS[ PlayerLevel[ id] ] )
{
PlayerLevel[ id] += 1
 
 
ColorChat(id,GREEN,"Felicitari,acum ai %i XP cu levelul %i si clasa %s,",PlayerXP[id],PlayerLevel[id],CLASSES[PlayerClass[id]])
}
}
}
 
 
 
 
 
 
public bomb_planted( planter ) 
{ 
 
PlayerXP[planter] += get_pcvar_num(XP_plant)  //adauga xp pentru plant
client_print(planter,print_chat,"Ai primit  %i XP pentru plant.",get_pcvar_num(XP_plant))
 
} 
 
public bomb_defused( defuser ) 
{ 
 
PlayerXP[defuser] += get_pcvar_num(XP_defuse)  //adauga xp pentru defuse
client_print(defuser,print_chat,"Ai primit  %i XP pentru defuse.",get_pcvar_num(XP_defuse))
 
}  
 
 
 
public InfoXp(id) {
 
show_motd(id,"/addons/amxmodx/configs/inf.txt")
 
}
public ClassCmd(id) {                 
 
 
    new menu = menu_create("Class Menu" , "Class_Handler");
    menu_additem(menu ,"Incepator", "1" , 0);
    menu_additem(menu ,"Mediu", "2" , 0);
    menu_additem(menu ,"Avansat", "3" , 0);
    menu_additem(menu ,"Expert", "4" , 0);
    menu_setprop(menu , MPROP_EXIT , MEXIT_ALL);
    menu_display(id , menu , 0); 
 
 
 
}
 
 
 
  public Class_Handler(id , menu , item)  //handlerul meniului
{ 
    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) 
    { 
        PlayerClass[id] = i 
client_print(id,print_chat,"Acum esti %s",CLASSES) 
    }
    else 
    { 
        client_print(id,print_chat,"Esti deja %s",CLASSES) 
    } 
    menu_destroy(menu); 
    return PLUGIN_CONTINUE 
}
RoyalServer
revolutia
Membru, skill 0
Membru, skill 0
Posts: 76
Joined: 23 Nov 2016, 08:35
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

08 Apr 2017, 14:56

Cineva?
Post Reply

Return to “Probleme in jocul Counter-Strike”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 52 guests