Şimdiden Teşekkürler

Kod:
#pragma semicolon 1
#include <amxmodx>
#include <reapi>
#include <nvault>
native csd_stats_user_time(iPlayer);
new const tag[] = "Leaders Community";
new const kisatag[] = "L-S";
new const sModelNames[][][] = {
//{Oyun Suresi Saniye Cinsinden,"Model Adi","Modelin Menudeki Adi",Modelin Takimi},
{0, "","",0},
{36000, "blackwolf","Kasa Hırsızı [10 Saat]",1},
{28800, "dragomir","Black Wolf [8 Saat]",1},
{21600, "rezan","Skull Head [6 Saat]",1},
{7200, "romanov","Phoenix [2 Saat]",1},
{36000, "blueberries","Fbi-Ava [10 Saat]",2},
{28800, "mccoy","Fbi-Syfers [8 Saat]",2},
{21600, "ricksaw","McCoy [6 Saat]",2},
{7200, "soldier","Swat-Biohaz [2 Saat]",2}
};
new bool:szModels[MAX_CLIENTS+1][sizeof(sModelNames)+1],iL_PlayerModel[MAX_CLIENTS+1],iG_ModelFix[MAX_CLIENTS+1],szsizeof,iG_Vault;
public plugin_init(){
register_plugin("Karakter Menusu", "1.0", "suriyelikene");
register_clcmd("say /karaktermenu", "@karaktermenu");
register_clcmd("say /karakter", "@karaktermenu");
RegisterHookChain(RG_CBasePlayer_Spawn, "@IsSpawn", .post = false);
}
public plugin_precache(){
szsizeof = sizeof(sModelNames);
for(new i=1; i < szsizeof; i++) {
precache_model(fmt("models/player/%s/%s.mdl", sModelNames[i][1],sModelNames[i][1]));
}
}
public plugin_cfg() iG_Vault = nvault_open("karaktermenuvault");
public plugin_end() nvault_close(iG_Vault);
public client_disconnected(iPlayer)sSaveVault(iPlayer);
public client_connect(iPlayer) sLoadVault(iPlayer);
@IsSpawn(const iPlayer) {
if(!is_user_alive(iPlayer)) return;
new team = get_member(iPlayer, m_iTeam),oldteam = iG_ModelFix[iPlayer];
if(oldteam != team && oldteam){
rg_reset_user_model(iPlayer);
}
iG_ModelFix[iPlayer] = team;
//iL_PlayerModel[iPlayer] > 0 ? rg_set_user_model(iPlayer,sModelNames[iL_PlayerModel[iPlayer]][1][0]):rg_reset_user_model(iPlayer);
}
@karaktermenu(const iPlayer){
if(!is_user_alive(iPlayer)){
client_print_color(iPlayer, iPlayer, "^1[^3%s^1] ^4Bu menuyu kullanabilmeniz icin ^3yasiyor ^4olmaniz gerekmekte",tag);
return;
}
new Menu = menu_create(fmt("\d[\r%s\d] \y| \wKarakter Menu", tag),"@karaktermenu_");
for(new i=1; i < szsizeof; i++) {
if(get_member(iPlayer, m_iTeam) == sModelNames[i][3][0]){
if(!szModels[iPlayer][i])
menu_additem(Menu,fmt("\d[\r%s\d] \w| \y%s \w%d Saat \yOyun Süresi",kisatag, sModelNames[i][2][0], sModelNames[i][0][0]/3600),fmt("%i",i));
else
menu_additem(Menu,fmt("\d[\r%s\d] \w| \y%s %s",kisatag, sModelNames[i][2][0], iL_PlayerModel[iPlayer] == i ? "\wAktif":"\wPasif"),fmt("%i",i));
}
}
menu_setprop(Menu,MPROP_EXITNAME,"\wCikis");menu_display(iPlayer, Menu);
}
@karaktermenu_(const iPlayer,const iMenu, const iItem) {
if(iItem == MENU_EXIT) { menu_destroy(iMenu);return PLUGIN_HANDLED; }
if(!is_user_alive(iPlayer)){
client_print_color(iPlayer, iPlayer, "^1[^3%s^1] ^4Bu menuyu kullanabilmeniz icin ^3yasiyor ^4olmaniz gerekmekte",tag);
return PLUGIN_HANDLED;
}
new iData[6], iL_Key;
menu_item_getinfo(iMenu, iItem, _, iData, charsmax(iData));
iL_Key = str_to_num(iData);
if(get_member(iPlayer, m_iTeam) != sModelNames[iL_Key][3][0]){
client_print_color(iPlayer, iPlayer, "^1[^3%s^1] ^4Bu modeli kullanabilmeniz icin ^1%s ^3takiminda olmaniz gerekmekte",tag,sModelNames[iL_Key][3][0]==1?"Terorist":"Counter Terorist");
return PLUGIN_HANDLED;
}
if(szModels[iPlayer][iL_Key]){
iL_PlayerModel[iPlayer] = iL_PlayerModel[iPlayer] != iL_Key ? iL_Key:0;
rg_set_user_model(iPlayer,sModelNames[iL_Key][1][0]);
iL_PlayerModel[iPlayer] != iL_Key ? client_print_color(iPlayer, iPlayer, "^1[^3%s^1] ^4basarili bir sekilde ^1%s ^3deaktif edildi",tag,sModelNames[iL_Key][2][0]):
client_print_color(iPlayer, iPlayer, "^1[^3%s^1] ^4basarili bir sekilde ^1%s ^3aktif edildi",tag,sModelNames[iL_Key][2][0]);
@karaktermenu(iPlayer);sSaveVault(iPlayer);
return PLUGIN_HANDLED;
}
if(csd_stats_user_time(iPlayer) >= sModelNames[iL_Key][0][0]){
iL_PlayerModel[iPlayer] = iL_Key;szModels[iPlayer][iL_Key]=true;sSaveVault(iPlayer);
rg_set_user_model(iPlayer,sModelNames[iL_Key][1][0]);
client_print_color(iPlayer, iPlayer, "^1[^3%s^1] ^4basarili bir sekilde ^1%s ^3satin aldiniz",tag,sModelNames[iL_Key][2][0]);
@karaktermenu(iPlayer);
}
else {
client_print_color(iPlayer, iPlayer, "^1[^3%s^1] ^4Yeterli miktarda ^1oyun sureniz ^3bulunmuyor. ^4%i dakikan eksik",tag,(sModelNames[iL_Key][0][0]-csd_stats_user_time(iPlayer)/60));
@karaktermenu(iPlayer);
}
menu_destroy(iMenu);return PLUGIN_HANDLED;
}
stock sSaveVault(const iPlayer) {
new sL_Authid[33];
get_user_authid(iPlayer,sL_Authid,charsmax(sL_Authid));
for(new i=1; i < szsizeof; i++) {
sSetIntData("%i>Player>%i>",szModels[iPlayer][i] ? 1:0,sL_Authid,i);
}
sSetIntData("%i>AktifModel",iL_PlayerModel[iPlayer],sL_Authid);
}
stock sLoadVault(const iPlayer) {
new sL_Authid[33];
get_user_authid(iPlayer,sL_Authid,charsmax(sL_Authid));
iL_PlayerModel[iPlayer] = sGetIntData("%i>AktifModel",sL_Authid);
for(new i=1; i < szsizeof; i++){
szModels[iPlayer][i] = (sGetIntData("%i>Player>%i>",sL_Authid,i) == 1) ? true : false;
}
}
stock sGetIntData(const sS_Key[],any:...){
new sL_FixedData[128];
vformat(sL_FixedData,127,sS_Key,2);
return nvault_get(iG_Vault,sL_FixedData);
}
stock sSetIntData(const sS_Key[],const iS_Data,any:...){
new sL_FixedData[128],sL_NumToStr[48];
vformat(sL_FixedData,127,sS_Key,3);
num_to_str(iS_Data,sL_NumToStr,47);
nvault_set(iG_Vault,sL_FixedData,sL_NumToStr);
}