PDA

View Full Version : Cerere pulgin frag rank/level [REZOLVAT]



Cristian.
18-04-2018, 04:08 PM
Plugin:frag rank/level
Descriere: sa primesti diferite rank-uri sau nivele in functie de statusul pe care il ai (kills and deaths)
1. vreau doar sma sa put modifica eu numarul de fraguri/niveluri/rankuri etc.
2.si sa poti tasta /levels sa apara intr-un motd sau meniu rank-urile/niveluriele si fragurile necesare.
3.si sa ramana progresul salvat pe nume
Versiune: linux

~TraNda~
18-04-2018, 09:15 PM
#include <amxmodx>
#include <hamsandwich>
#include <cstrike>
#include <nvault>
#include <fun>

static const
PLUGIN[] = "Level Mod WarGods.ro",
VERSION[] = "0.1",
AUTHOR[] = "WarGods.ro";

#define MAX_LEVELS 16

new const Kills[MAX_LEVELS] =
{
0,
50,
100,
150,
250,
350,
500,
650,
750,
850,
1250,
1500,
2000,
2500,
5000
}

new const szTag[MAX_LEVELS][] =
{
"",
"Soldat",
"Fruntas",
"Caporal",
"Sergent",
"Plutonier",
"Maistru",
"Sublocotenent",
"Locotenent",
"Capitan",
"Maior",
"Colonel",
"General de Brigada",
"General-Maior",
"General-Locotenent",
"GENERAL"


}

new Level[33],Kill[33],szName[32],g_vault,g_sync
new pcvar_hs,pcvar_kill,pcvar_knife,pcvar_he,pcvar_efe ct,pcvar_r,pcvar_g,pcvar_b,pcvar_hp_lvl,pcvar_ap_l vl

public plugin_init() {
register_plugin(PLUGIN,VERSION,AUTHOR)
register_event("DeathMsg","ev_msg","a")
RegisterHam(Ham_Spawn,"player","player_spawn",1)

pcvar_hs = register_cvar("cvar_hs_bonus","1")
pcvar_kill = register_cvar("cvar_normal_bonus","1")
pcvar_knife = register_cvar("cvar_knife_bonus","1")
pcvar_he = register_cvar("cvar_he_bonus","1")
pcvar_efect = register_cvar("cvar_effect_lvl","1")
pcvar_r = register_cvar("cvar_red","255")
pcvar_g = register_cvar("cvar_green","0")
pcvar_b = register_cvar("cvar_blue","0")
pcvar_hp_lvl = register_cvar("cvar_hp_lvl","5")
pcvar_ap_lvl = register_cvar("cvar_ap_lvl","10")

g_vault = nvault_open("simple_lvl_mod")
g_sync = CreateHudSyncObj()

if(g_vault == INVALID_HANDLE)
set_fail_state("Eroare la deschiderea bazei de date din vault.")
register_clcmd("say /inforank","motd")
register_clcmd("say_team /inforank", "motd")
}

public player_spawn(id) {
if(!is_user_alive(id) || is_user_bot(id))
return HAM_HANDLED

if(Level[id] < 1)
Level[id] = 1

set_user_health(id,get_user_health(id) + get_pcvar_num(pcvar_hp_lvl) * Level[id])
set_user_armor(id,get_user_armor(id) + get_pcvar_num(pcvar_ap_lvl) * Level[id])
return HAM_HANDLED
}

public ev_msg( ) {
static kiler; kiler = read_data(1)
static hs; hs = read_data(3)

if(kiler == read_data(2) || !is_user_alive(kiler))
return

if(hs)
Kill[kiler]+= get_pcvar_num(pcvar_hs)
else
Kill[kiler]+= get_pcvar_num(pcvar_kill)

if(get_user_weapon(kiler) == CSW_KNIFE && !hs)
Kill[kiler]+= get_pcvar_num(pcvar_knife)
if(get_user_weapon(kiler) == CSW_HEGRENADE && !hs)
Kill[kiler]+= get_pcvar_num(pcvar_he)

if(Level[kiler] < MAX_LEVELS)
{
while(Kill[kiler] >= Kills[Level[kiler]])
{
Level[kiler]++
color(kiler,"!teamFelicitari,ai ajuns la level %i (!g%s!team).",Level[kiler],szTag[Level[kiler]])
screen_fade(kiler, get_pcvar_num(pcvar_efect), get_pcvar_num(pcvar_r), get_pcvar_num(pcvar_g), get_pcvar_num(pcvar_b), 115)
return
}
}
SaveData(kiler)
}

public client_putinserver(id) {
if(!is_user_bot(id))
{
LoadData(id)
set_task(1.0,"show_hud",id+0x4332,_,_,"b")
}
}

public client_disconnect(id) {
remove_task(id+0x4332)
SaveData(id)
}

public show_hud(id) {
id-=0x4332
get_user_name(id,szName,charsmax(szName))

if(is_user_alive(id))
{
set_hudmessage(0, 255, 255, -1.0, 0.87, 0, 6.0, 1.1)
ShowSyncHudMsg(id,g_sync,"[Name: %s]-[Level: %d]-[Status: %s]-[Kill: %i/%i]",szName,Level[id],szTag[Level[id]],Kill[id],Kills[Level[id]])
}
}

public SaveData(id)
{
new name[32],vaultkey[64],vaultdata[256]
get_user_name(id,name,charsmax(name))
formatex(vaultkey,63,"%s-Mod",name)
formatex(vaultdata,255,"%i#%i#",Kill[id],Level[id])
nvault_set(g_vault,vaultkey,vaultdata)
}

public LoadData(id)
{
new name[32],vaultkey[64],vaultdata[256]
get_user_name(id,name,charsmax(name))
formatex(vaultkey,63,"%s-Mod",name)
formatex(vaultdata,255,"%i#%i#",Kill[id],Level[id])
nvault_get(g_vault,vaultkey,vaultdata,255)
replace_all(vaultdata, 255, "#", " ")

new kill[32],level[32]
parse(vaultdata, kill, 31, level, 31)
Kill[id] = str_to_num(kill)
Level[id] = str_to_num(level)
}
public plugin_end() nvault_close(g_vault)
stock screen_fade(id,holdtime,r,g,b,a)
{
message_begin(MSG_ONE_UNRELIABLE,get_user_msgid("ScreenFade"),{ 0, 0, 0 },id);
write_short(seconds_to_units(holdtime));
write_short(seconds_to_units(holdtime));
write_short(0);
write_byte(r);
write_byte(g);
write_byte(b);
write_byte(a);
message_end();
}

stock seconds_to_units(time)
{
return((1 << 12) * (time))
}

public motd(id)
{
show_motd(id,"addons/amxmodx/configs/inforank.html")
}

stock color( const id, const input[ ], any:... )
{
new count = 1, players[ 32 ]

static msg[ 191 ]
vformat( msg, 190, input, 3 )

replace_all( msg, 190, "!g", "^4" ) //- verde
replace_all( msg, 190, "!y", "^1" ) //- galben
replace_all( msg, 190, "!team", "^3" ) //- echipa
replace_all( msg, 190, "!n", "^0" ) //- normal

if( id ) players[ 0 ] = id; else get_players( players, count, "ch" )
{
for( new i = 0; i < count; i++ )
{
if( is_user_connected( players[ i ] ) )
{
message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "SayText" ), _, players[ i ] )
write_byte( players[ i ] );
write_string( msg );
message_end( );
}
}
}
}



INFO: pentru a accesa motd-ul trebuie sa scrii in chat /inforank

Daca vrei sa modifici comanda de afisare a motd-ului, cauta in SMA urmatoarele linii:

register_clcmd("say /inforank","motd")
register_clcmd("say_team /inforank", "motd")


Modifici doar /inforank


INFO2: motd-ul este facut de mine, ca un tabel, in care iti afiseaza Levelul/rank-ul si XP-ul necesar.

Fisierul html in adaugi in:

addons/amxmodx/configs/


Download MOTD (html): click (<b>You have to register to ba able to see this link</b>)

Cristian.
19-04-2018, 12:53 AM
inforank.sma(57) : error 001: expected token: ";", but found "-identifier-"
inforank.sma(68) : error 017: undefined symbol "pcvar_efect"
inforank.sma(69) : error 017: undefined symbol "pcvar_r"
inforank.sma(70) : error 017: undefined symbol "pcvar_g"
inforank.sma(71) : error 017: undefined symbol "pcvar_b"
inforank.sma(72) : error 017: undefined symbol "pcvar_hp_lvl"
inforank.sma(73) : error 017: undefined symbol "pcvar_ap_lvl"
inforank.sma(91) : error 017: undefined symbol "pcvar_hp_lvl"
inforank.sma(92) : error 017: undefined symbol "pcvar_ap_lvl"
inforank.sma(119) : error 017: undefined symbol "pcvar_efect"
inforank.sma(119 -- 120) : error 088: number of arguments does not match definition
inforank.sma(226) : warning 203: symbol is never used: "pcvar_efe"

11 Errors.
Compilarea a esuat!

~TraNda~
19-04-2018, 04:20 PM
Cristian.
Poftim fisierul SMA, asa cum il ai mai sus, compilat: click (<b>You have to register to ba able to see this link</b>)
Nu stiu unde ai compilat tu sau ce modificari i-ai adus ca nu ti-a iesit deloc.

Daca vrei sa modifici ceva si nu-ti iese, spune-mi mie ce modificari doresti si ti-l fac eu.
(asta daca ma mai prinzi acasa, in jurul orei 17:00 plec din oras, iar laptopul o sa-l las acasa si o sa te pot ajuta tocmai duminica seara)

Cristian.
19-04-2018, 10:59 PM
multumesc frumos :* daca e ceva iti spun !

~Wolf~
16-05-2018, 02:53 PM
Cristian.
Poftim fisierul SMA, asa cum il ai mai sus, compilat: click (<b>You have to register to ba able to see this link</b>)
Nu stiu unde ai compilat tu sau ce modificari i-ai adus ca nu ti-a iesit deloc.

Daca vrei sa modifici ceva si nu-ti iese, spune-mi mie ce modificari doresti si ti-l fac eu.
(asta daca ma mai prinzi acasa, in jurul orei 17:00 plec din oras, iar laptopul o sa-l las acasa si o sa te pot ajuta tocmai duminica seara)

Rezolvat.Daca mai e ceva conactacteaza-ne pe unul dintre mine sau AngeL si te vom ajuta cum putem mai bine.
:locked: