Merhaba, Bu Xp, Rütbe Eklentisine Chat Tagı'da eklermisiniz, Askeriye Şeklinde Uzman, Çavuş renkli olucak şekilde yaparsanız sevinirm.
Konu
Kod:
#include <amxmodx>
#include <nvault>
#include <fakemeta>
#include <hamsandwich>
#include <fun>
#include <engine>
#include <cstrike>
#define g_exp(%1) get_pcvar_num(xpm_start) + (seviye[%1] * get_pcvar_num(xpm_inc))
#define DLIGHT_LIFE 8
#define DLIGHT_DECAY 60
#define message_begin_f(%1,%2,%3) (engfunc (EngFunc_MessageBegin, %1, %2, %3))
#define write_coord_f(%1) (engfunc (EngFunc_WriteCoord, %1))
#define FLAG ADMIN_RCON
new SeviyeliMenu[33]
new xpkayit, seviye[33] = 1, exp[33], xpm_kill, xpm_knife, xpm_headshot, xpm_maxlevel, hud_info, xpm_inc, xpm_start, xpm_heal_up, xpm_damage_up, aim_goster, g_iMsgSayText, hud_show, rutbe[33]
new const level[] = "explevel/seviye_atlama.wav"
new const tag[] = "!y[ !gCSDuragi !y] !t"
new const is[] = "%"
enum Coord_e {Float:x, Float:y, Float:z};
enum
{
ER,
ONBASI,
CAVUS,
TEGMEN,
YUZBASI,
BINBASI,
YARBAY,
ALBAY,
GENERAL
}
public plugin_init() {
register_plugin("Xp-Mod v2.0 | nefret007 | ", "1.4", "nefret007")
xpm_start = register_cvar("xpm_start", "200");
xpm_inc = register_cvar("xpm_inc", "50");
xpm_kill = register_cvar("xpm_kill","15")
xpm_knife = register_cvar("xpm_knife","25")
xpm_headshot = register_cvar("xpm_headshot","35")
xpm_maxlevel = register_cvar("xpm_maxlevel","25")
xpm_heal_up = register_cvar("xpm_heal_up","1")
xpm_damage_up = register_cvar("xpm_damage_up","1")
xpkayit = nvault_open("xpmod_kayit")
register_clcmd("__xpm_maxlevel","__xpm_maxlevel_devam")
register_clcmd("__xpm_kill","__xpm_kill_devam")
register_clcmd("__xpm_inc","__xpm_inc_devam")
register_clcmd("__xpm_headshot","__xpm_headshot_devam")
register_clcmd("__xpm_knife","__xpm_knife_devam")
register_clcmd("__xpm_damage_up","__xpm_damage_devam")
register_clcmd("__xpm_heal_up","__xpm_heal_devam")
register_clcmd("say /xpreset","xpmod_reset")
register_clcmd("say /xpkontrol","xpmod_kontrol")
register_event("HLTV", "elbasi", "a", "1=0", "2=0")
register_event("DeathMsg", "event_death", "a");
register_event("StatusValue", "showStatus", "be", "1=2", "2!0")
register_event("StatusValue", "hideStatus", "be", "1=1", "2=0")
RegisterHam(Ham_Spawn, "player", "Fwd_PlayerSpawn_Post", 1)
RegisterHam(Ham_TakeDamage, "player", "FwdTakeDamage", 0)
hud_show = CreateHudSyncObj();
hud_info = CreateHudSyncObj();
aim_goster = CreateHudSyncObj()
g_iMsgSayText = get_user_msgid("SayText")
register_event("DeathMsg", "show_rank_on_scoreboard", "a")
}
public xpmod_reset(id){
seviye[id] = 1
exp[id] = 0
ChatColor(id,"%s !tleveliniz!y ve !texp !g(!ttecrube!g)!y puaniniz basariyla sifirlanmistir.",tag)
}
public plugin_precache() {
precache_sound("fvox/beep.wav")
precache_sound(level)
}
public kaydet(id){
new name[64],key[72], stats[34];
get_user_name(id, name, 63);
formatex(key, 71, "%s-stats", name);
formatex(stats, 33, "%i#%i#", seviye[id], exp[id]);
nvault_set(xpkayit, key, stats);
}
public kontrol(id){
new name[32]
get_user_name(id,name,31)
if(exp[id] >= g_exp(id)){
seviye[id]++
exp[id] = 0
ChatColor(0,"%s !t'%s'!y adli oyuncu !y[!g%d!y]!g levele ulasti .",tag,name,seviye[id])
level_atlama(id)
}
else if(exp[id] < g_exp(id))
{
console_cmd(id,"spk fvox/beep")
}
}
public yukle(id){
new name[64],key[72], stats[34], stat[3][12];
get_user_name(id, name, 63);
formatex(key, 71, "%s-stats", name);
nvault_get(xpkayit, key, stats, 33);
replace_all(stats , 33, "#", " ")
parse(stats, stat[0], 11, stat[1], 11);
seviye[id] = str_to_num(stat[0]);
exp[id] = str_to_num(stat[1]);
if(seviye[id] == 0){
seviye[id] = 1
}
}
public client_authorized(id){
seviye[id]=1
exp[id] = 0
set_task(1.0, "show_explevel", id, _, _, "b")
yukle(id)
create_rank_entity(id)
}
public client_connect(id)
{
SeviyeliMenu[id] = false
}
public client_disconnect(id){
kaydet(id)
SeviyeliMenu[id] = false
}
public create_rank_entity(index)
{
// Bu fonksiyonu doldurmanız gerekebilir
}
public event_death(){
new victim = read_data(2);
new attacker = get_user_attacker(victim)
new miktar[32] = 0
if (is_valid_player(attacker))
{
check_rank(attacker)
}
if(attacker == victim)
{
return PLUGIN_HANDLED;
}
if(seviye[attacker] >= get_pcvar_num(xpm_maxlevel)){
ChatColor(attacker,"%s !tmaximum!y Rutbeye ulastiniz.",tag)
return PLUGIN_HANDLED;
}
exp[attacker] += get_pcvar_num(xpm_kill)
miktar[attacker] += get_pcvar_num(xpm_kill)
if(get_pdata_int(victim, 75) == HIT_HEAD){
exp[attacker] += get_pcvar_num(xpm_headshot)
miktar[attacker] += get_pcvar_num(xpm_headshot)
}
if(get_user_weapon(attacker) == CSW_KNIFE){
exp[attacker] += get_pcvar_num(xpm_knife)
miktar[attacker] += get_pcvar_num(xpm_knife)
}
ChatColor(attacker,"%s !t%d!t exp !y[!gtecrube!y] !tpuani kazandiniz.",tag,miktar[attacker])
kontrol(attacker)
return PLUGIN_HANDLED
}
public elbasi()
{
new players[32],inum,id
get_players(players,inum)
for(new i;i<inum;i++)
{
SeviyeliMenu[id] = true
}
}
public show_explevel(id){
if(!is_user_alive(id))
return PLUGIN_HANDLED;
new show[33]
// Rütbe belirleme
if(seviye[id] < 6){
show = "RUTBESIZ"
}
else if(seviye[id] < 16 ){
show = "COPCU"
}
else if(seviye[id] < 31 ){
show = "COPCU KRALI"
}
else if(seviye[id] < 46 ){
show = "BAKKAL"
}
else if(seviye[id] < 61 ){
show = "MARKET"
}
else if(seviye[id] < 71 ){
show = "MOBILYACI"
}
else if(seviye[id] < 81 ){
show = "MIMAR"
}
else if(seviye[id] < 91 ){
show = "MUHENDIS"
}
else if(seviye[id] <= 100){
show = "KRAL RUTBE"
}
// Sadece rütbeyi gösteren HUD mesajı
set_hudmessage(255, 255, 255, 0.02, 0.23, 0, 6.0, 3.0, 0.1, 1.5);
ShowSyncHudMsg(id, hud_info, "%s", show);
return PLUGIN_HANDLED
}
public showStatus(id){
new name[32], pid = read_data(2)
get_user_name(pid,name,31)
if(!is_user_bot(id) && is_user_connected(id)) {
if(get_user_team(pid) == 1){
set_hudmessage(255,25,25, -1.0, 0.55, 0, 0.01, 3.0, 0.01, 0.01, -1)
ShowSyncHudMsg(id, aim_goster, "%s | Hp: %d | Level: %d",name,get_user_health(pid),seviye[pid])
}
else if(get_user_team(pid) == 2){
set_hudmessage(25,25,255, -1.0, 0.55, 0, 0.01, 3.0, 0.01, 0.01, -1)
ShowSyncHudMsg(id, aim_goster, "%s | Hp: %d | Level: %d",name,get_user_health(pid),seviye[pid])
}
}
}
public hideStatus(id){
ClearSyncHud(id, aim_goster)
}
public Fwd_PlayerSpawn_Post(player){
new hp
hp = seviye[player] * 1 - 1
if(get_pcvar_num(xpm_heal_up) && is_user_alive(player)){
set_user_health(player, get_user_health(player) + hp )
}
}
public FwdTakeDamage(victim, inflictor, attacker, Float:damage, damage_bits){
new dmg = seviye[attacker] * 1 - 1
if(get_pcvar_num(xpm_damage_up)){
SetHamParamFloat(4, damage + dmg)
return PLUGIN_HANDLED
}
return PLUGIN_HANDLED
}
stock level_atlama(id){
static Float:FOrigin3[3] // PARLAMA EFEKTI
pev(id, pev_origin, FOrigin3)
engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, FOrigin3, 0)
write_byte(TE_IMPLOSION)
engfunc(EngFunc_WriteCoord, FOrigin3[0])
engfunc(EngFunc_WriteCoord, FOrigin3[1])
engfunc(EngFunc_WriteCoord, FOrigin3[2])
write_byte(200)
write_byte(100)
write_byte(5)
message_end()
emit_sound(id, CHAN_VOICE, level, 1.0, ATTN_NORM, 0, PITCH_NORM)
level_atlama__(id)
}
public level_atlama__(id){
static Coord_e:vecOrigin[Coord_e];
pev(id,pev_origin, vecOrigin);
message_begin_f(MSG_PVS, SVC_TEMPENTITY, vecOrigin, 0);
write_byte(TE_DLIGHT);
write_coord_f(vecOrigin[x]);
write_coord_f(vecOrigin[y]);
write_coord_f(vecOrigin[z]);
write_byte(35);
write_byte(250);
write_byte(150);
write_byte(15);
write_byte(DLIGHT_LIFE);
write_byte(DLIGHT_DECAY);
message_end();
return FMRES_HANDLED;
}
public xpmod_kontrol(id)
{
if(get_user_flags(id) & ADMIN_RCON)
{
static Item[64]
formatex(Item, charsmax(Item),"\yXpmod | Kontrol Paneli")
new Menu = menu_create(Item, "takim_menu")
formatex(Item, charsmax(Item),"\wxpm_maxlevel \d'%d'",get_pcvar_num(xpm_maxlevel))
menu_additem(Menu, Item, "1")
formatex(Item, charsmax(Item),"\wxpm_kill \d'%d'",get_pcvar_num(xpm_kill))
menu_additem(Menu, Item, "2")
formatex(Item, charsmax(Item),"\wxpm_inc \d'%d'",get_pcvar_num(xpm_inc))
menu_additem(Menu, Item, "3")
formatex(Item, charsmax(Item),"\wxpm_headshot \d'%d'",get_pcvar_num(xpm_headshot))
menu_additem(Menu, Item, "5")
formatex(Item, charsmax(Item),"\wxpm_knife \d'%d'",get_pcvar_num(xpm_knife))
menu_additem(Menu, Item, "6")
formatex(Item, charsmax(Item),"\wxpm_damage_up \d'%s'",get_pcvar_num(xpm_damage_up) > 0 ? "Acik" : "Kapali")
menu_additem(Menu, Item, "6")
formatex(Item, charsmax(Item),"\wxpm_heal_up \d'%s'",get_pcvar_num(xpm_heal_up) > 0 ? "Acik" : "Kapali")
menu_additem(Menu, Item, "7")
menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, Menu)
}
else
{
ChatColor(id,"[%s]!gYetkiniz !yBulunmamaktadir...",tag)
}
return PLUGIN_HANDLED
}
public takim_menu(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new Data[6], Name[64]
new Access, Callback
new say[300]
read_args(say, charsmax(say))
menu_item_getinfo(menu, item, Access, Data,5, Name, 63, Callback)
new Key = str_to_num(Data)
switch (Key)
{
case 1:
{
client_cmd(id, "messagemode __xpm_maxlevel")
}
case 2:
{
client_cmd(id, "messagemode __xpm_kill")
}
case 3:
{
client_cmd(id, "messagemode __xpm_inc")
}
case 4:
{
client_cmd(id, "messagemode __xpm_headshot")
}
case 5:
{
client_cmd(id, "messagemode __xpm_knife")
}
case 6:
{
client_cmd(id, "messagemode __xpm_damage_up")
}
case 7:
{
client_cmd(id, "messagemode __xpm_heal_up")
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public __xpm_maxlevel_devam(id){
new say[300]
read_args(say, charsmax(say))
remove_quotes(say)
client_cmd(id,"amx_cvar xpm_maxlevel %s",say)
console_cmd(id,"/xpkontrol")
}
public __xpm_kill_devam(id){
new say[300]
read_args(say, charsmax(say))
remove_quotes(say)
client_cmd(id,"amx_cvar xpm_kill %s",say)
console_cmd(id,"/xpkontrol")
}
public __xpm_inc_devam(id){
new say[300]
read_args(say, charsmax(say))
remove_quotes(say)
client_cmd(id,"amx_cvar xpm_inc %s",say)
console_cmd(id,"/xpkontrol")
}
public __xpm_headshot_devam(id){
new say[300]
read_args(say, charsmax(say))
remove_quotes(say)
client_cmd(id,"amx_cvar xpm_headshot %s",say)
console_cmd(id,"/xpkontrol")
}
public __xpm_knife_devam(id){
new say[300]
read_args(say, charsmax(say))
remove_quotes(say)
client_cmd(id,"amx_cvar xpm_knife %s",say)
console_cmd(id,"/xpkontrol")
}
public __xpm_heal_devam(id){
new say[300]
read_args(say, charsmax(say))
remove_quotes(say)
client_cmd(id,"amx_cvar xpm_damage_up %s",say)
console_cmd(id,"/xpkontrol")
}
public __xpm_damage_devam(id){
new say[300]
read_args(say, charsmax(say))
remove_quotes(say)
client_cmd(id,"amx_cvar xpm_heal_up %s",say)
console_cmd(id,"/xpkontrol")
}
public check_rank(index)
{
// Bu fonksiyonu doldurmanız gerekebilir
}
stock get_player_rank(index)
{
new PlayerFrags = rutbe[index]
switch (PlayerFrags)
{
case ER:
return 1
case ONBASI:
return 2
case CAVUS:
return 3
case TEGMEN:
return 4
case YUZBASI:
return 5
case BINBASI:
return 6
case YARBAY:
return 7
case ALBAY:
return 8
case GENERAL:
return 9
default:
return 10
}
}
stock is_valid_player(index)
{
if (is_user_connected(index) && 1 <= index <= 32)
{
return true
}
return false
}
stock ChatColor(const id, const input[], any:...){
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, "!g", "^4") // Green Color
replace_all(msg, 190, "!y", "^1") // Default Color
replace_all(msg, 190, "!t", "^3") // Team Color
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, g_iMsgSayText, _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}
public show_rank_on_scoreboard() {
new players[32], num, id
get_players(players, num)
for (new i = 0; i < num; i++) {
id = players[i]
new name[32], show[33]
get_user_name(id, name, 31)
// Rütbe belirleme
if(seviye[id] < 6){
show = "RUTBESIZ"
}
else if(seviye[id] < 16 ){
show = "COPCU"
}
else if(seviye[id] < 31 ){
show = "COPCU KRALI"
}
else if(seviye[id] < 46 ){
show = "BAKKAL"
}
else if(seviye[id] < 61 ){
show = "MARKET"
}
else if(seviye[id] < 71 ){
show = "MOBILYACI"
}
else if(seviye[id] < 81 ){
show = "MIMAR"
}
else if(seviye[id] < 91 ){
show = "MUHENDIS"
}
else if(seviye[id] <= 100){
show = "KRAL RUTBE"
}
// Scoreboard'da gösterme
message_begin(MSG_ALL, get_user_msgid("ScoreAttrib"))
write_byte(id)
write_byte(4) // 4 = change text color to red
message_end()
client_cmd(0, "name_change ^"%s^" ^"%s %s^"", name, show, name)
}
}
(15-09-2024, 00:59)Darkness55 Adlı Kullanıcıdan Alıntı: Merhaba, Bu Xp, Rütbe Eklentisine Chat Tagı'da eklermisiniz, Askeriye Şeklinde Uzman, Çavuş renkli olucak şekilde yaparsanız sevinirm.
Selamlar,
düzenlenmiş halini denedim ancak rütbe chat tag olarak eklenmemiş. Ek problemlerde oluşmuş;
1. adam vurduğumuzda .. XP verildi mesajı çift say olarak vermeye başlamış
2. Sol üstte sadece rütbemiz gözükmeye başlamış, kaç xp'ye sahibiz görünmüyor.
düzenlenmiş halini denedim ancak rütbe chat tag olarak eklenmemiş. Ek problemlerde oluşmuş;
1. adam vurduğumuzda .. XP verildi mesajı çift say olarak vermeye başlamış
2. Sol üstte sadece rütbemiz gözükmeye başlamış, kaç xp'ye sahibiz görünmüyor.
@Darkness55 Konunuz çözüldüyse bildiriniz.
Son Düzenleme: 17-09-2024, 22:18, Düzenleyen: Cassis.
Benzer Konular
Yorum
471
Okunma
Yorum
415
Okunma
Yorum
1.449
Okunma
Yorum
1.340
Okunma
23-01-2025, 12:37