PHP Kod:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <nvault>
#include <cstrike>
#include <hamsandwich>
/*----------------------------------------------------------------------------------------------*/
#define PLUGIN "Hesapli Level Sistemi"
#define VERSION "v.1"
#define AUTHOR "Anilcan , -SwindLer."
/*----------------------------------------------------------------------------------------------*/
#define TAG "World War I"
/*----------------------------------------------------------------------------------------------*/
#define ENUM 3
#define MAX_RANKS 70
/*----------------------------------------------------------------------------------------------*/
new const model1[] = "tsw_naziasker"
new const model2[] = "tsw_usa"
new const model3[] = "tsw_nazisub"
new const model4[] = "tsw_naziofficer"
new const model5[] = "tsw_nazigeneral"
new const model6[] = "tsw_bkomando"
new const model7[] = "tsw_birlik"
new const model8[] = "tsw_harekat"
new const Si[] = { "tsw/rank_akbil.wav" }
new const yasakli_semboller[][] ={
"@",
"*",
"/",
"%",
",",
".",
"ü",
"?",
"+"
}
enum _: szData {
szRankName[ 32 ],
szRankXp
}
new const szRanklar[ ][ szData ] = {
{ "[ LEVEL 1 ]", 0 },
{ "[ LEVEL 2 ]", 100 },
{ "[ LEVEL 3 ]", 200 },
{ "[ LEVEL 4 ]", 300 },
{ "[ LEVEL 5 ]", 400 },
{ "[ LEVEL 6 ]", 500 },
{ "[ LEVEL 7 ]", 600 },
{ "[ LEVEL 8 ]", 700 },
{ "[ LEVEL 9 ]", 800 },
{ "[ LEVEL 10 ]", 1500 },
{ "[ LEVEL 11 ]", 3000 },
{ "[ LEVEL 12 ]", 4500 },
{ "[ LEVEL 13 ]", 7000 },
{ "[ LEVEL 14 ]", 8500 },
{ "[ LEVEL 15 ]", 10000 },
{ "[ LEVEL 16 ]", 10500 },
{ "[ LEVEL 17 ]", 12000 },
{ "[ LEVEL 18 ]", 13500 },
{ "[ LEVEL 19 ]", 15000 },
{ "[ LEVEL 20 ]", 18000 },
{ "[ LEVEL 21 ]", 21000 },
{ "[ LEVEL 22 ]", 24000 },
{ "[ LEVEL 23 ]", 27000 },
{ "[ LEVEL 24 ]", 30000 },
{ "[ LEVEL 25 ]", 33000 },
{ "[ LEVEL 26 ]", 36000 },
{ "[ LEVEL 27 ]", 39000 },
{ "[ LEVEL 28 ]", 42000 },
{ "[ LEVEL 29 ]", 45000 },
{ "[ LEVEL 30 ]", 48000 },
{ "[ LEVEL 31 ]", 52000 },
{ "[ LEVEL 32 ]", 56000 },
{ "[ LEVEL 33 ]", 60000 },
{ "[ LEVEL 34 ]", 64000 },
{ "[ LEVEL 35 ]", 68000 },
{ "[ LEVEL 36 ]", 72000 },
{ "[ LEVEL 37 ]", 76000 },
{ "[ LEVEL 38 ]", 80000 },
{ "[ LEVEL 39 ]", 84000 },
{ "[ LEVEL 40 ]", 88000 },
{ "[ LEVEL 41 ]", 92000 },
{ "[ LEVEL 42 ]", 96000 },
{ "[ LEVEL 43 ]", 100000 },
{ "[ LEVEL 44 ]", 104000 },
{ "[ LEVEL 45 ]", 108000 },
{ "[ LEVEL 46 ]", 112000 },
{ "[ LEVEL 47 ]", 116000 },
{ "[ LEVEL 48 ]", 120000 },
{ "[ LEVEL 49 ]", 124000 },
{ "[ LEVEL 50 ]", 128000 },
{ "[ LEVEL 51 ]", 132000 },
{ "[ LEVEL 52 ]", 136000 },
{ "[ LEVEL 53 ]", 140000 },
{ "[ LEVEL 54 ]", 144000 },
{ "[ LEVEL 55 ]", 148000 },
{ "[ LEVEL 56 ]", 152000 },
{ "[ LEVEL 57 ]", 156000 },
{ "[ LEVEL 58 ]", 160000 },
{ "[ LEVEL 59 ]", 164000 },
{ "[ LEVEL 60 ]", 168000 },
{ "[ LEVEL 61 ]", 172000 },
{ "[ LEVEL 62 ]", 174000 },
{ "[ LEVEL 63 ]", 178000 },
{ "[ LEVEL 64 ]", 182000 },
{ "[ LEVEL 65 ]", 186000 },
{ "[ LEVEL 66 ]", 190000 },
{ "[ LEVEL 67 ]", 194000 },
{ "[ LEVEL 68 ]", 198000 },
{ "[ LEVEL 69 ]", 222000 },
{ "[ LEVEL 70 ]", 226000 }
}
enum _: Level {
g_LEVEL,
g_EXP,
g_TOPLAMKILL
}
new bmModelSecim[33];
new const bmBicakModeller[][][] = {
{"v_knife.mdl","p_knife.mdl"},
{"v_knife.mdl","p_knife.mdl"},
{"v_knife.mdl","p_knife.mdl"},
{"v_knife.mdl","p_knife.mdl"},
{"v_knife.mdl","p_knife.mdl"},
{"v_knife.mdl","p_knife.mdl"},
{"v_knife.mdl","p_knife.mdl"},
{"v_knife.mdl","p_knife.mdl"}
}
/*-----------------------------------------------------------------------------------------------*/
/*-----------------------------------------{/-Newler\-}------------------------------------------*/
/*-----------------------------------------------------------------------------------------------*/
new g_Level[ 33 ][ Level ]
new g_username[ 33 ][ 50 ], k_username[ 33 ][ 50 ], sifre[ 33 ][ 50 ], g_sifre[ 33 ][ 50 ],username[ 33 ][ 50], k_sifre[ 33 ][ 50 ];
new g_login, g_register , g_vault,g_szName[33][32],g_hud,g_killxp,g_deathxp
#define ACCESS_LEVEL ADMIN_RESERVATION
#define ADMIN_LISTEN ADMIN_ALL
new message[192]
new sayText
new teamInfo
new maxPlayers
new g_MessageColor
new g_NameColor
new g_AdminListen
new strName[191]
new strText[191]
new alive[11]
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
register_clcmd("say /hesap", "menu_ac" );
register_clcmd("say /kostummenu", "beBM5" );
register_clcmd("say /kostumbilgi","modelbilgi")
register_clcmd( "KullaniciAdi_Sec", "user_name2" );
register_clcmd( "Sifre_Yaz", "sifre_sec" );
register_clcmd( "Kullanici_Adi", "user_name" );
register_clcmd( "Sifreni_Gir", "sifrexd" );
register_event( "DeathMsg" , "olunce" , "a" );
RegisterHam(Ham_TakeDamage, "player", "beTD");
RegisterHam(Ham_Spawn, "player", "bePS", 1);
register_event("CurWeapon", "beWM", "be", "1=1");
g_hud = CreateHudSyncObj( );
g_killxp = register_cvar( "csa_killxp", "55" );
g_deathxp = register_cvar( "csa_deathxp", "15" )
g_MessageColor = register_cvar ("amx_color", "2") // Message colors: [1] Default Yellow, [2] Green, [3] White, [4] Blue, [5] Red
g_NameColor = register_cvar ("amx_namecolor", "6") // Name colors: [1] Default Yellow, [2] Green, [3] White, [4] Blue, [5] Red, [6] Team-color
g_AdminListen = register_cvar ("amx_listen", "1") // Set whether admins see or not all messages (Alive, dead and team-only)
sayText = get_user_msgid ("SayText")
teamInfo = get_user_msgid ("TeamInfo")
maxPlayers = get_maxplayers()
register_message (sayText, "avoid_duplicated")
register_clcmd ("amx_color", "set_color", ACCESS_LEVEL, "<color>")
register_clcmd ("amx_namecolor", "set_name_color", ACCESS_LEVEL, "<color>")
register_clcmd ("amx_listen", "set_listen", ACCESS_LEVEL, "<1 | 0>")
register_clcmd ("say", "hook_say");
}
public beTD(bmVictim,bmInfc,bmAttacker, Float:bmHasar,bmHasarTipi){
if(bmVictim != bmAttacker){
if(bmModelSecim[bmAttacker] != 0){
if(get_pdata_int(bmVictim, 75) == HIT_HEAD){
SetHamParamFloat(4,bmHasar+(float(bmModelSecim[bmAttacker]*5)*2.0));
}
else{
SetHamParamFloat(4,bmHasar+float(bmModelSecim[bmAttacker]*5));
}
}
}
}
public bePS(bmID){
if(bmModelSecim[bmID] != 0 && is_user_alive(bmID)){
set_pev(bmID,pev_health,pev(bmID,pev_health)+float(bmModelSecim[bmID]*5));
}
}
public beWM(bmID) {
new bmSilahID= get_user_weapon(bmID);
if(bmModelSecim[bmID] != 0 && bmSilahID == CSW_KNIFE){
new bmModel[96]
formatex(bmModel,charsmax(bmModel),"models/%s",bmBicakModeller[bmModelSecim[bmID]-1][0][0]);
if(file_exists(bmModel)){
set_pev(bmID,pev_viewmodel2,bmModel);
}
formatex(bmModel,charsmax(bmModel),"models/%s",bmBicakModeller[bmModelSecim[bmID]-1][1][0]);
if(file_exists(bmModel)){
set_pev(bmID,pev_weaponmodel2,bmModel);
}
}
}
public plugin_precache(){
new bmModel[96]
for(new i; i < sizeof(bmBicakModeller); i++){
formatex(bmModel,charsmax(bmModel),"models/%s",bmBicakModeller[i][0][0]);
if(file_exists(bmModel)){
precache_model(bmModel);
}
formatex(bmModel,charsmax(bmModel),"models/%s",bmBicakModeller[i][1][0]);
if(file_exists(bmModel)){
precache_model(bmModel);
}
}
precache_model("models/player/tsw_naziasker/tsw_naziasker.mdl"),precache_model("models/player/tsw_usa/tsw_usa.mdl"),precache_model("models/player/tsw_nazisub/tsw_nazisub.mdl"),
precache_model("models/player/tsw_naziofficer/tsw_naziofficer.mdl"),precache_model("models/player/tsw_nazigeneral/tsw_nazigeneral.mdl"),precache_model("models/player/tsw_bkomando/tsw_bkomando.mdl"),
precache_model("models/player/tsw_birlik/tsw_birlik.mdl"),precache_model("models/player/tsw_harekat/tsw_harekat.mdl"),precache_sound(Si)
}
public avoid_duplicated (msgId, msgDest, receiver)
{
return PLUGIN_HANDLED
}
public modelbilgi(id){
new szLine[248]
new const filename[] = "addons/amxmodx/configs/kostummenu.txt"
new maxlines,txtlen;
maxlines = file_size(filename,1);
static motd[99991]
new len
for(new line;line<maxlines;line++)
{
read_file(filename,line,szLine,247,txtlen)
len += formatex(motd[len],sizeof motd - 1 - len,"%s",szLine)
}
show_motd(id,motd,"WB[D]iyo")
return PLUGIN_CONTINUE
}
public beBM5(id) {
new menuz;
static amenu[512];
formatex(amenu,charsmax(amenu),"\r[ \wImparatorCS \r] \d~ \wKostum Menusu^n\d- /Kostumbilgi Yazarak Kostumlere Bakabilirsin.");
menuz = menu_create(amenu,"beBM5_devam");
formatex(amenu,charsmax(amenu),"\yDefault \rNazi \wKostumu \r[ \d0-Level\r ] %s",bmModelSecim[id] == 1 ? "\d[AKTIF]":"");
menu_additem(menuz,amenu,"1");
formatex(amenu,charsmax(amenu),"\yDefault \rAsker \wKostumu \r[ \d0-Level\r ] %s",bmModelSecim[id] == 2 ? "\d[AKTIF]":"");
menu_additem(menuz,amenu,"2");
formatex(amenu,charsmax(amenu),"\yNazi SubOfficer \wKostum u\r[ \d19-Level\r ] %s",bmModelSecim[id] == 3 ? "\d[AKTIF]":"");
menu_additem(menuz,amenu,"3");
formatex(amenu,charsmax(amenu),"\yNazi Officer \wKostumu \r[ \d40-Level\r ] %s",bmModelSecim[id] == 4 ? "\d[AKTIF]":"");
menu_additem(menuz,amenu,"4");
formatex(amenu,charsmax(amenu),"\yNazi General \wKostumu \r[ \d70-Level\r ] %s",bmModelSecim[id] == 5 ? "\d[AKTIF]":"");
menu_additem(menuz,amenu,"5");
formatex(amenu,charsmax(amenu),"\yU.S.A NMA Komandosu \wKostumu \r[ \d19-Level\r ] %s",bmModelSecim[id] == 6 ? "\d[AKTIF]":"");
menu_additem(menuz,amenu,"6");
formatex(amenu,charsmax(amenu),"\yOzel Birlik Harekati \wKostumu \r[ \d40-Level\r ] %s",bmModelSecim[id] == 7 ? "\d[AKTIF]":"");
menu_additem(menuz,amenu,"7");
formatex(amenu,charsmax(amenu),"\yPakistan Ozel Harekat \wKostumu \r[ \d70-Level\r ] %s",bmModelSecim[id] == 8 ? "\d[AKTIF]":"");
menu_additem(menuz,amenu,"8");
menu_setprop(menuz,MPROP_EXITNAME,"\rCikis");
menu_setprop(menuz,MPROP_EXIT,MEXIT_ALL);
menu_display(id,menuz,0);
}
public beBM5_devam(id,menu,item){
if(item == MENU_EXIT){
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new access,callback,data[6],iname[64];
menu_item_getinfo(menu,item,access,data,5,iname,63,callback);
new key = str_to_num(data);
switch(key){
case 1 : {
if(g_Level[ id ][ g_EXP ] >= 0 && bmModelSecim[id] != 1 && get_user_team(id) == 1){
cs_set_user_model(id,model1)
renkli_yazi(id,"!n[ !tImparatorCS !n] !gBasariyla !n[!tNazi Asker!n] !gKostumunu Kusandin.!")
renkli_yazi(id,"!n[ !tImparatorCS !n] !gBicak modelin degisti ve ek hasarin !n[!t%i!n] !gartti.!",bmModelSecim[id]*5);
bmModelSecim[id] = 1;
}
else
{
renkli_yazi(id,"!n[ !tImparatorCS !n] !gZaten Bu Kostume Sahipsin.!")
beBM5(id);
}
}
case 2 : {
if(g_Level[ id ][ g_EXP ] >= 0 && bmModelSecim[id] != 2 && get_user_team(id) == 2){
cs_set_user_model(id,model2)
renkli_yazi(id,"!n[ !ImparatorCS !n] !gBasariyla !n[!tU.S.A Asker!n] !gKostumunu Kusandin.!")
renkli_yazi(id,"!n[ !tImparatorCS !n] !gBicak modelin degisti ve ek hasarin !n[!t%i!n] !gartti.!",bmModelSecim[id]*5);
bmModelSecim[id] = 2;
}
else
{
renkli_yazi(id,"!n[ !tImparatorCS !n] !n[!tU.S.A Asker!n] !gKostumunu Giymek Icin Seviyen Yeterli Degil.!")
emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
beBM5(id)
}
}
case 3 : {
if(g_Level[ id ][ g_EXP ] >= 15000 && bmModelSecim[id] != 3 && get_user_team(id) == 1){
cs_set_user_model(id,model3)
renkli_yazi(id,"!n[ !tImparatorCS !n] !gBasariyla !n[!tNazi SubOfficer!n] !gKostumunu Kusandin.!")
renkli_yazi(id,"!n[ !tImparatorCS !n] !gBicak modelin degisti ve ek hasarin !n[!t%i!n] !gartti.!",bmModelSecim[id]*5);
bmModelSecim[id] = 3;
}
else
{
renkli_yazi(id,"!n[ !tImparatorCS !n] !n[!tNazi SubOfficer!n] !gKostumunu Giymek Icin Seviyen Yeterli Degil.!")
emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
beBM5(id);
}
}
case 4 : {
if(g_Level[ id ][ g_EXP ] >= 88000 && bmModelSecim[id] != 4 && get_user_team(id) == 1){
cs_set_user_model(id,model4)
renkli_yazi(id,"!n[ !tImparatorCS !n] !gBasariyla !n[!tNazi Officer!n] !gKostumunu Kusandin.!")
renkli_yazi(id,"!n[ !tImparatorCS !n] !gBicak modelin degisti ve ek hasarin !n[!t%i!n] !gartti.!",bmModelSecim[id]*5);
bmModelSecim[id] = 4;
}
else
{
renkli_yazi(id,"!n[ !tImparatorCS !n] !n[!tNazi Officer!n] !gKostumunu Giymek Icin Seviyen Yeterli Degil.!")
emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
beBM5(id);
}
}
case 5 : {
if(g_Level[ id ][ g_EXP ] >= 226000 && bmModelSecim[id] != 5 && get_user_team(id) == 1){
cs_set_user_model(id,model5)
renkli_yazi(id,"!n[ !tImparatorCS !n] !gBasariyla !n[!tNazi General!n] !gKostumunu Kusandin.!")
renkli_yazi(id,"!n[ !tImparatorCS !n] !gBicak modelin degisti ve ek hasarin !n[!t%i!n] !gartti.!",bmModelSecim[id]*5);
bmModelSecim[id] = 5;
}
else
{
renkli_yazi(id,"!n[ !tImparatorCS !n] !n[!tNazi General!n] !gKostumunu Giymek Icin Seviyen Yeterli Degil.!")
emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
beBM5(id);
}
}
case 6 : {
if(g_Level[ id ][ g_EXP ] >= 15000 && bmModelSecim[id] != 6 && get_user_team(id) == 2){
cs_set_user_model(id,model6)
renkli_yazi(id,"!n[ !tImparatorCS !n] !gBasariyla !n[!tU.S.A NMA Komandosu!n] !gKostumunu Kusandin.!")
renkli_yazi(id,"!n[ !tImparatorCS !n] !gBicak modelin degisti ve ek hasarin !n[!t%i!n] !gartti.!",bmModelSecim[id]*5);
bmModelSecim[id] = 6;
}
else
{
renkli_yazi(id,"!n[ !tImparatorCS !n] !n[!tU.S.A NMA Komandosu!n] !gKostumunu Giymek Icin Seviyen Yeterli Degil.!")
emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
beBM5(id);
}
}
case 7 : {
if(g_Level[ id ][ g_EXP ] >= 88000 && bmModelSecim[id] != 7 && get_user_team(id) == 2){
cs_set_user_model(id,model7)
renkli_yazi(id,"!n[ !tImparatorCS !n] !gBasariyla !n[!tOzel Birlik Harekati!n] !gKostumunu Kusandin.!")
renkli_yazi(id,"!n[ !tImparatorCS !n] !gBicak modelin degisti ve ek hasarin !n[!t%i!n] !gartti.!",bmModelSecim[id]*5);
bmModelSecim[id] = 7;
}
else
{
renkli_yazi(id,"!n[ !tImparatorCS !n] !n[!tOzel Birlik Harekati!n] !gKostumunu Giymek Icin Seviyen Yeterli Degil.!")
emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
beBM5(id);
}
}
case 8 : {
if(g_Level[ id ][ g_EXP ] >= 226000 && bmModelSecim[id] != 8 && get_user_team(id) == 2){
cs_set_user_model(id,model8)
renkli_yazi(id,"!n[ !tImparatorCS !n] !gBasariyla !n[!tPakistan Ozel Harekat!n] !gKostumunu Kusandin.!")
renkli_yazi(id,"!n[ !tImparatorCS !n] !gBicak modelin degisti ve ek hasarin !n[!t%i!n] !gartti.!",bmModelSecim[id]*5);
bmModelSecim[id] = 8;
}
else
{
renkli_yazi(id,"!n[ !tImparatorCS !n] !n[!tPakistan Ozel Harekat!n] !gKostumunu Giymek Icin Seviyen Yeterli Degil.!")
emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
beBM5(id);
}
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public hook_say(id)
{
read_args (message, 191)
remove_quotes (message)
if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, "")) // Ignores Admin Hud Messages, Admin Slash commands,
// Gungame commands and empty messages
return PLUGIN_CONTINUE
new name[32]
get_user_name (id, name, 31)
new bool:admin = false
if (get_user_flags(id) & ACCESS_LEVEL)
admin = true
new isAlive
if (is_user_alive (id))
{
isAlive = 1
alive = "^x01"
}
else
{
isAlive = 0
alive = "^x01*OLU* "
}
static color[10]
if (admin)
{
// Name
switch (get_pcvar_num (g_NameColor))
{
case 1:
format (strName, 191, "^x04%s %s%s", szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ], alive, name)
case 2:
format (strName, 191, "^x04%s %s^x04%s", szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ], alive, name)
case 3:
{
color = "SPECTATOR"
format (strName, 191, "^x04%s %s^x03%s", szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ], alive, name)
}
case 4:
{
color = "CT"
format (strName, 191, "^x04%s %s^x03%s", szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ], alive, name)
}
case 5:
{
color = "TERRORIST"
format (strName, 191, "^x04%s %s^x03%s", szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ], alive, name)
}
case 6:
{
get_user_team (id, color, 9)
format (strName, 191, "^x04%s %s^x03%s", szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ], alive, name)
}
}
// Message
switch (get_pcvar_num (g_MessageColor))
{
case 1: // Yellow
format (strText, 191, "%s", message)
case 2: // Green
format (strText, 191, "^x04%s", message)
case 3: // White
{
copy (color, 9, "SPECTATOR")
format (strText, 191, "^x03%s", message)
}
case 4: // Blue
{
copy (color, 9, "CT")
format (strText, 191, "^x03%s", message)
}
case 5: // Red
{
copy (color, 9, "TERRORIST")
format (strText, 191, "^x03%s", message)
}
}
}
else // Player is not admin. Team-color name : Yellow message
{
get_user_team (id, color, 9)
format (strName, 191, "^x04%s %s^x03%s", szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ], alive, name)
format (strText, 191, "%s", message)
}
format (message, 191, "%s^x01 : %s", strName, strText)
sendMessage (color, isAlive, admin) // Sends the colored message
return PLUGIN_CONTINUE
}
public set_color (id, level, cid){
if (!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED
new arg[1], newColor
read_argv (1, arg, 1)
newColor = str_to_num (arg)
if (newColor >= 1 && newColor <= 5)
{
set_cvar_num ("amx_color", newColor)
set_pcvar_num (g_MessageColor, newColor)
if (get_pcvar_num (g_NameColor) != 1 &&
((newColor == 3 && get_pcvar_num (g_NameColor) != 3)
|| (newColor == 4 && get_pcvar_num (g_NameColor) != 4)
|| (newColor == 5 && get_pcvar_num (g_NameColor) != 5))){
set_cvar_num ("amx_namecolor", 2)
set_pcvar_num (g_NameColor, 2)
}
}
return PLUGIN_HANDLED
}
public set_name_color (id, level, cid){
if (!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED
new arg[1], newColor
read_argv (1, arg, 1)
newColor = str_to_num (arg)
if (newColor >= 1 && newColor <= 6)
{
set_cvar_num ("amx_namecolor", newColor)
set_pcvar_num (g_NameColor, newColor)
if ((get_pcvar_num (g_MessageColor) != 1
&& ((newColor == 3 && get_pcvar_num (g_MessageColor) != 3)
|| (newColor == 4 && get_pcvar_num (g_MessageColor) != 4)
|| (newColor == 5 && get_pcvar_num (g_MessageColor) != 5)))
|| get_pcvar_num (g_NameColor) == 6){
set_cvar_num ("amx_color", 2)
set_pcvar_num (g_MessageColor, 2)
}
}
return PLUGIN_HANDLED
}
public set_listen (id, level, cid){
if (!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED
new arg[1], newListen
read_argv(1, arg, 1)
newListen = str_to_num (arg)
set_cvar_num ("amx_listen", newListen)
set_pcvar_num (g_AdminListen, newListen)
return PLUGIN_HANDLED
}
public sendMessage (color[], alive, admin)
{
new teamName[10]
for (new player = 1; player < maxPlayers; player++)
{
if(is_user_alive(player) != alive)
{
if(!access(player,ADMIN_RESERVATION))
continue
}
if(!is_user_connected(player))
continue
if(is_user_alive(player))
{
get_user_team (player, teamName, 9) // Stores user's team name to change back after sending the message
changeTeamInfo (player, color) // Changes user's team according to color choosen
writeMessage (player, message) // Writes the message on player's chat
changeTeamInfo (player, teamName) // Changes user's team back to original
}
else
{
get_user_team (player, teamName, 9) // Stores user's team name to change back after sending the message
changeTeamInfo (player, color) // Changes user's team according to color choosen
writeMessage (player, message) // Writes the message on player's chat
changeTeamInfo (player, teamName) // Changes user's team back to original
}
}
}
public sendTeamMessage (color[], alive, playerTeam)
{
new teamName[10]
for (new player = 1; player < maxPlayers; player++)
{
if (!is_user_connected(player))
continue
if (get_user_team(player) == playerTeam)
{
if (is_user_alive(player))
{
get_user_team (player, teamName, 9) // Stores user's team name to change back after sending the message
changeTeamInfo (player, color) // Changes user's team according to color choosen
writeMessage (player, message) // Writes the message on player's chat
changeTeamInfo (player, teamName) // Changes user's team back to original
}
else
{
get_user_team (player, teamName, 9) // Stores user's team name to change back after sending the message
changeTeamInfo (player, color) // Changes user's team according to color choosen
writeMessage (player, message) // Writes the message on player's chat
changeTeamInfo (player, teamName) // Changes user's team back to original
}
}
}
}
public changeTeamInfo (player, team[])
{
message_begin (MSG_ONE, teamInfo, _, player) // Tells to to modify teamInfo (Which is responsable for which time player is)
write_byte (player) // Write byte needed
write_string (team) // Changes player's team
message_end() // Also Needed
}
public writeMessage (player, message[])
{
message_begin (MSG_ONE, sayText, {0, 0, 0}, player) // Tells to modify sayText (Which is responsable for writing colored messages)
write_byte (player) // Write byte needed
write_string (message) // Effectively write the message, finally, afterall
message_end () // Needed as always
}
public client_putinserver( id )
{
set_task(1.0, "goster", id, _, _, "b")
set_task(10.0,"menu_ac",id)
}
public client_disconnected(id)
{
kayit( id )
sifirla( id )
}
/*-----------------------------------------------------------------------------------------------*/
/*---------------------------------------{/-Hud Mesaji\-}----------------------------------------*/
/*-----------------------------------------------------------------------------------------------*/
public goster( id )
{
set_hudmessage(127, 255, 212,0.75, 0.09, 0, 6.0, 12.0);
if( g_Level[ id ][ g_LEVEL ] < MAX_RANKS )
{
ShowSyncHudMsg( id,g_hud, "Exp : [ %i / %i ] ^nRankin [ %s ] ^nBir Ust Rank [ %s ]^nToplam Fragin [ %i ]^n[ /Kostummenu ] Sistemi Aktif !",
g_Level[ id ][ g_EXP ],
szRanklar[ g_Level[ id ][ g_LEVEL ] + 1 ][ szRankXp ],
szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ],
szRanklar[ g_Level[ id ][ g_LEVEL ] + 1 ][ szRankName ],
g_Level[ id ][ g_TOPLAMKILL ]);
}
}
/*-----------------------------------------------------------------------------------------------*/
/*---------------------------------------{/-Level Sistemi\-}----------------------------------------*/
/*-----------------------------------------------------------------------------------------------*/
public olunce( )
{
new victim = read_data( 2 );
new killer = read_data( 1 );
new name[ 32 ]
get_user_name( killer, name, 31 );
if( killer != victim )
{
g_Level[ killer ][ g_EXP ] += get_pcvar_num( g_killxp );
g_Level[ killer][ g_TOPLAMKILL ] += 1;
kaydet( killer );
rutbe_kontrol( killer );
g_Level[ victim ][ g_EXP ] -= get_pcvar_num( g_deathxp );
if( g_Level[ victim ][ g_EXP ] < 0 )
{
g_Level[ victim ][ g_EXP ] = 0;
}
if( g_Level[ victim ][ g_LEVEL ] != 0 )
{
if( g_Level[ victim ][ g_EXP ] < szRanklar[ g_Level[ victim ][ g_LEVEL ] ][ szRankXp ] )
{
g_Level[ victim ][ g_LEVEL ] -= 1
renkli_yazi( victim, "!n[ !t%s !n] !gRank Dustun. Yeni rankin !n[ !t%s !n].", TAG, szRanklar[ g_Level[ victim ][ g_LEVEL ] ][ szRankName ] );
kaydet( victim );
}
}
}
}
public rutbe_kontrol( id )
{
if( g_Level[ id ][ g_LEVEL ] < MAX_RANKS )
{
if( g_Level[ id ][ g_EXP ] >= szRanklar[ g_Level[ id ][ g_LEVEL ] + 1 ][ szRankXp ] )
{
g_Level[ id ][ g_LEVEL ] += 1;
renkli_yazi( id, "!n[ !t%s !n] !gRank Atladin. Yeni rankin !n[ !t%s !n].", TAG, szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ] );
kaydet( id );
}
}
}
/*----------------------------------------------------------------------------------------------*/
/*-------------------------------------{/-Hesap Sistemi\-}--------------------------------------*/
/*----------------------------------------------------------------------------------------------*/
public plugin_cfg()
{
g_vault = nvault_open( "LeveLLKayitt" );
if( g_vault == INVALID_HANDLE )
{
set_fail_state( "Vault dosyasi acilamadi" );
}
}
public plugin_end( )
{
nvault_close( g_vault );
}
public kaydet( id )
{
if( g_login & ( 1 << id ) )
{
new key1[ 64 ], data1[ 256 ], iPos1;
formatex( key1, 63, "%s-LeveL", g_username[ id ] )
for( new i = 0; i < ENUM; i++ )
{
iPos1 += formatex( data1[ iPos1 ], 255 - iPos1, "%i ", g_Level[ id ][ i ] )
}
nvault_set( g_vault, key1, data1 );
}
if( g_register & ( 1 << id ) )
{
new key1[ 64 ], data1[ 256 ], iPos1;
formatex( key1, 63, "%s-LeveL", k_username[ id ] )
for( new i = 0; i < ENUM; i++ )
{
iPos1 += formatex( data1[ iPos1 ], 255 - iPos1, "%i ", g_Level[ id ][ i ] )
}
nvault_set( g_vault, key1, data1 );
}
}
public user_name2( id )
{
new say[ 192 ]
read_args( say, 191 );
remove_quotes( say )
new len = strlen( say )
if( len < 5 || len > 32 )
{
renkli_yazi( id, "!n[ !t%s !n] !gKullanici Adi !n[ !t5 !n] !gkarakterden buyuk ve !n[ !t32 !n] !gkarakterden kucuk olmalidir.", TAG );
client_cmd( id, "messagemode KullaniciAdi_Sec" );
return PLUGIN_HANDLED;
}
for( new i; i < sizeof yasakli_semboller; i++ )
{
if( containi( say, yasakli_semboller[ i ] ) != -1 )
{
renkli_yazi( id, "!n[ !t%s !n] !gKullanici Adi Sembol Iceremez.", TAG );
client_cmd( id, "messagemode KullaniciAdi_Sec" );
return PLUGIN_HANDLED;
}
}
if( !equali( username[ id ], "" ) )
{
copy( g_username[ id ], 49, "" );
copy( g_sifre[ id ], 49, "" );
copy( k_username[ id ], 49, "" );
copy( k_sifre[ id ], 49, "" );
return PLUGIN_HANDLED;
}
copy( g_username[ id ], 49, "" );
copy( g_sifre[ id ], 49, "" );
copy( k_username[ id ], 49, say );
copy( k_sifre[ id ], 49, "" );
client_cmd( id, "messagemode Sifre_Yaz" );
return PLUGIN_HANDLED;
}
public sifre_sec( id )
{
new say[ 192 ]
read_args( say, 191 );
remove_quotes( say )
new len = strlen( say )
if( len < 5 || len > 32 )
{
renkli_yazi( id, "!n[ !t%s !n] !gSifre !n[ !t5 !n] !gkarakterden buyuk ve !n[ !t32 !n] !gkarakterden kucuk olmalidir.", TAG );
client_cmd( id, "messagemode Sifre_Yaz" );
return PLUGIN_HANDLED;
}
for( new i; i < sizeof yasakli_semboller; i++ )
{
if( containi( say, yasakli_semboller[ i ] ) != -1 )
{
renkli_yazi( id, "!n[ !t%s !n] !gSifre Sembol Iceremez.", TAG );
client_cmd( id, "messagemode Sifre_Yaz" );
return PLUGIN_HANDLED;
}
}
if( !equali( username[ id ], "" ) || equali( k_username[ id ], "" ) )
{
copy( g_username[ id ], 49, "" );
copy( g_sifre[ id ], 49, "" );
copy( k_username[ id ], 49, "" );
copy( k_sifre[ id ], 49, "" );
return PLUGIN_HANDLED;
}
copy( k_sifre[ id ], 49, say );
kayit_yap( id, k_username[ id ], k_sifre[ id ] );
copy( g_username[ id ], 49, "" );
copy( g_sifre[ id ], 49, "" );
copy( k_sifre[ id ], 49, "" );
return PLUGIN_HANDLED;
}
public kayit_yap( id, szName[ ], szSifre[ ] )
{
new getPw[32], IDFormat[64]
formatex( IDFormat, 63,"%s-LeveL-Kayit", szName );
nvault_get( g_vault, IDFormat, getPw,31 );
if( equali( getPw, "" ) )
{
new key[ 64 ];
copy( username[ id ], 49, szName );
copy( sifre[ id ], 49, szSifre );
formatex( key, 63, "%s-LeveL-Kayit", szName );
nvault_set( g_vault, key, szSifre )
g_register |= ( 1 << id )
new text[64];
read_args(text,63)
remove_quotes(text)
copy(g_szName[id],31,text)
renkli_yazi( id, "!n[ !t%s !n] !gBasarili bir sekilde hesabiniz acilmistir.", TAG );
renkli_yazi( id, "!n[ !t%s !n] !gKullanici Adiniz !n[ !t%s !n] !gSifreniz !n[ !t%s !n].", TAG, szName, szSifre );
}
else
{
renkli_yazi( id, "!n[ !g%s !n] !tBu Kullanici Adinda Zaten Hesap Var.", TAG );
}
return PLUGIN_HANDLED;
}
public user_name( id )
{
new say[ 192 ]
read_args( say, 191 );
remove_quotes( say )
new len = strlen( say )
if( len < 5 || len > 32 )
{
renkli_yazi( id, "!n[ !t%s !n] !gKullanici Adi !n[ !t5 !n] !tkarakterden buyuk ve !n[ !t32 !n] !gkarakterden kucuk olmalidir.", TAG );
client_cmd( id, "messagemode Kullanici_Adi" );
return PLUGIN_HANDLED;
}
for( new i; i < sizeof yasakli_semboller; i++ )
{
if( containi( say, yasakli_semboller[ i ] ) != -1 )
{
renkli_yazi( id, "!n[ !t%s !n] !gKullanici Adi Sembol Iceremez.", TAG );
client_cmd( id, "messagemode Kullanici_Adi" );
return PLUGIN_HANDLED;
}
}
if( !equali( username[ id ], "" ) )
{
copy( g_username[ id ], 49, "" );
copy( g_sifre[ id ], 49, "" );
copy( k_username[ id ], 49, "" );
copy( k_sifre[ id ], 49, "" );
return PLUGIN_HANDLED;
}
copy( g_username[ id ], 49, say );
copy( g_sifre[ id ], 49, "" );
copy( k_username[ id ], 49, "" );
copy( k_sifre[ id ], 49, "" );
client_cmd( id, "messagemode Sifreni_Gir" );
return PLUGIN_HANDLED;
}
public sifrexd( id )
{
new say[ 192 ]
read_args( say, 191 );
remove_quotes( say )
new len = strlen( say )
if( len < 5 || len > 32 )
{
renkli_yazi( id, "!n[ !t%s !n] !gSifre !n[ !t5 !n] !gkarakterden buyuk ve !n[ !t32 !n] !gkarakterden kucuk olmalidir.", TAG );
client_cmd( id, "messagemode Sifreni_Gir" );
return PLUGIN_HANDLED;
}
for( new i; i < sizeof yasakli_semboller; i++ )
{
if( containi( say, yasakli_semboller[ i ] ) != -1 )
{
renkli_yazi( id, "!n[ !t%s !n] !gSifre Sembol Iceremez.", TAG );
client_cmd( id, "messagemode Sifreni_Gir" );
return PLUGIN_HANDLED;
}
}
if( !equali( username[ id ], "" ) || equali( g_username[ id ], "" ) )
{
copy( g_username[ id ], 49, "" );
copy( g_sifre[ id ], 49, "" );
copy( k_username[ id ], 49, "" );
copy( k_sifre[ id ], 49, "" );
return PLUGIN_HANDLED;
}
copy( g_sifre[ id ], 49, say );
giris_yap( id, g_username[ id ], g_sifre[ id ] );
copy( g_sifre[ id ], 49, "" );
copy( k_username[ id ], 49, "" );
copy( k_sifre[ id ], 49, "" );
return PLUGIN_HANDLED;
}
public giris_yap( id, szName[ ], szSifre[ ] )
{
new getPw[32], IDFormat[64]
formatex( IDFormat, 63,"%s-LeveL-Kayit", szName );
nvault_get( g_vault, IDFormat, getPw,31 );
if( equali( getPw, szSifre ) )
{
new key1[ 64 ], data1[ 256 ],szVal1[ 6 ];
copy( username[ id ], 49, szName );
copy( sifre[ id ], 49, szSifre );
formatex( key1, 63, "%s-LeveL", szName );
nvault_get( g_vault, key1, data1, 255 );
for( new i; i < ENUM; i++ )
{
argbreak( data1, szVal1, 5, data1, 255 );
g_Level[ id ][ i ] = str_to_num( szVal1 );
}
g_login |= ( 1 << id );
renkli_yazi( id, "!n[ !t%s !n] !gBasarili bir sekilde hesabiniza giris yaptiniz.", TAG );
}
else
{
renkli_yazi( id, "!n[ !t%s !n] !gYanlis !n[ !tKullanici Adi !n] !gya da !n[ !tSifre !n] !ggirdin.", TAG );
}
return PLUGIN_HANDLED;
}
public menu_ac( id )
{
if( !is_user_connected( id ) ) return PLUGIN_HANDLED;
new menu = menu_create( "\rLevel Sistemi \d|| \yHesap Kayit Sistemi","menu_devam");
if( equali( username[ id ], "" ) )
{
menu_additem( menu, "\yGiris Yap", "1" );
menu_additem( menu, "\yKayit Ol^n", "2" );
}
else
{
menu_additem( menu, "\yCikis Yap", "3" );
}
menu_setprop( menu, MPROP_EXIT, MEXIT_ALL )
menu_display( id, menu, 0 );
return PLUGIN_HANDLED;
}
public menu_devam( id, menu, item )
{
if ( item == MENU_EXIT)
{
menu_destroy( menu )
return PLUGIN_HANDLED;
}
new data[ 6 ], name[ 32 ], access, callback;
menu_item_getinfo(menu, item, access, data,5, name, 31, callback );
new key = str_to_num( data )
switch( key )
{
case 1:
{
client_cmd( id, "messagemode Kullanici_Adi" );
}
case 2:
{
client_cmd( id, "messagemode KullaniciAdi_Sec" );
}
case 3:
{
kaydet( id );
remove_task( id );
copy( username[ id ], 49, "" );
copy( sifre[ id ], 49, "" );
copy( g_username[ id ], 49, "" );
copy( g_sifre[ id ], 49, "" );
copy( k_username[ id ], 49, "" );
copy( k_sifre[ id ], 49, "" );
g_login &= ~( 1 << id );
g_register &= ~( 1 << id );
set_task(1.0,"sifirla",id);
renkli_yazi( id, "!n[ !t%s !n] !gButun bilgileriniz kaydedilip hesabinizdan cikis yapilmistir.", TAG );
}
}
menu_destroy( menu );
return PLUGIN_HANDLED;
}
public sifirla(id)
{
for( new i; i < Level; i++ )
{
g_Level[ id ][ i ] = 0
}
}
public client_authorized(id){
set_task(10.0,"menu_ac",id)
return PLUGIN_HANDLED
}
public kayit( id )
{
kaydet( id );
remove_task( id );
copy( username[ id ], 49, "" );
copy( sifre[ id ], 49, "" );
copy( g_username[ id ], 49, "" );
copy( g_sifre[ id ], 49, "" );
copy( k_username[ id ], 49, "" );
copy( k_sifre[ id ], 49, "" );
g_login &= ~( 1 << id );
g_register &= ~( 1 << id );
for( new i; i < Level; i++ )
{
g_Level[ id ][ i ] = 0
}
}
/*----------------------------------------------------------------------------------------------*/
/*--------------------------------------{/-Renkli Yazi\-}---------------------------------------*/
/*----------------------------------------------------------------------------------------------*/
stock renkli_yazi(const id, const input[], any:...)
{
new count = 1, players[32];
static msg[191];
vformat(msg, 190, input, 3);
replace_all(msg, 190, "!n", "^x01"); // Default Renk(Sarı)
replace_all(msg, 190, "!g", "^x04"); // Yeşil Renk
replace_all(msg, 190, "!t", "^x03"); // Takım Renk( CT mavi , T kırmızı )
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();
}
}
}
}