Kod:
#include <amxmodx>
#include <amxmisc>
#include <reapi>
#define PLUGIN "Custom N Menu"
#define VERSION "1.4"
#define AUTHOR "Just In Case"
#define Ceviri "Specified"
#define MAX_ITEMS 30
#define cm(%1) ( charsmax(%1) - 1 )
enum _: eInformation {
ITEM[128],
CMD[128],
COMMAND_TYPE[10],
FLAG,
iCLOSE
}
new const VIPONLY[] = " \r[\wSADECE YETKILILER GIREBILIR\r]"
new const szIniFileName[] = "Komutlar.ini"
new bool:engel[MAX_CLIENTS+1],bool:engel2[MAX_CLIENTS+1];
new g_Data[MAX_ITEMS][eInformation]
new g_ItemsNum,iG_sure[MAX_CLIENTS+1],iG_sure2[MAX_CLIENTS+1];
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_cvar("CustomNMenu", VERSION, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED)
register_clcmd("nightvision", "Command_N_Menu")
register_clcmd("say /temizle", "Temizle")
register_clcmd("say /reklam", "reklamat")
}
public client_connect(id){
engel[id]=false;
}
public plugin_cfg()
ReadFile()
public Command_N_Menu(id)
{
if (is_user_connected(id))
KeyN_Menu(id, 0)
}
public KeyN_Menu(id, iPage)
{
if (g_ItemsNum == 0)
return PLUGIN_HANDLED
new iMenu = menu_create("\r[SFV-KISAYOL] \wSecenekler", "KeyN_Menu_Handler")
static szItem[64], iFlags
iFlags = get_user_flags(id)
for (new i; i < g_ItemsNum; i ++)
{
formatex(szItem, charsmax(szItem), "%s%s", g_Data[i][ITEM], (g_Data[i][FLAG] == ADMIN_ALL || iFlags & g_Data[i][FLAG]) ? "" : VIPONLY)
menu_additem(iMenu, szItem, _, (g_Data[i][FLAG] == ADMIN_ALL || iFlags & g_Data[i][FLAG]) ? 0 : g_Data[i][FLAG])
}
menu_display(id, iMenu, iPage)
return PLUGIN_HANDLED
}
public KeyN_Menu_Handler(id, iMenu, Item)
{
if (Item == MENU_EXIT)
{
menu_destroy(iMenu)
return PLUGIN_HANDLED
}
if(command_type(g_Data[Item][COMMAND_TYPE]))
client_cmd(id, "say %s", g_Data[Item][CMD])
else
client_cmd(id, "%s", g_Data[Item][CMD])
menu_destroy(iMenu)
if (g_Data[Item][iCLOSE])
KeyN_Menu(id, Item/7)
return PLUGIN_HANDLED
}
public Temizle(id)
{
if(engel[id]){
colorchat(id,"!g[SELECTED]!t Zaten Kullandin || Tekrar kullanmak icin %s bekle!",sGetDifrenceTime(iG_sure[id]));
}
else{
new szName[33]
get_user_name(id, szName, cm(szName))
if(!is_user_admin(id))
{
return 1
}
else
{
client_print(0, print_chat," ")
client_print(0, print_chat," ")
client_print(0, print_chat," ")
client_print(0, print_chat," ")
client_print(0, print_chat," ")
client_print(0, print_chat," ")
client_print(0, print_chat," ")
client_print(0, print_chat," ")
client_print(0, print_chat," ")
client_print(0, print_chat," ")
client_print(0, print_chat," ")
colorchat(0,"!g[SELECTED] !tChat temizlendi. !gIyi Oyunlar!")
iG_sure[id] = 120;
set_task(1.0,"engelac",id)
engel[id]=true;
return 1
}
}
return PLUGIN_HANDLED;
}
public engelac(id){
if(is_user_connected(id)){
if(!iG_sure[id]){
engel[id]=false;
remove_task(id);
}
else {
iG_sure[id] --;
set_task(1.0,"engelac",id)
}
}
else {
remove_task(id);
engel[id]=false;
}
}
public reklamat(id)
{
if(engel2[id]){
colorchat(id,"!g[SELECTED]!t Zaten Kullandin || Tekrar kullanmak icin %s bekle!",sGetDifrenceTime(iG_sure2[id]));
}
else{
new szName[34]
get_user_name(id, szName, cm(szName))
if(!is_user_connected(id))
{
return 1
}
else
{
colorchat( 0, "!t[SELECTED] !g+18 !yClanimiza katilmak icin !gTeamspeak adresimize bekleriz."),
colorchat( 0, "!t[SELECTED] !gTeamspeak adresimiz !tSFV & ts3.selectedailesi.com"),
colorchat( 0, "!t[SELECTED] !gServer IP adresimiz !tpro.selectedailesi.com"),
colorchat( 0, "!t[SELECTED] !gServerimizi !tFavorilerinize !geklemeyi unutmayin!"),
colorchat( 0, "!t[SELECTED] !gServerimizde !tKufur,argo,asagilayici kelimeler ve siyaset !gYASAKTIR!");
rg_add_account(id,1000,AS_ADD);
iG_sure2[id] = 120;
set_task(1.0,"engelac2",id)
colorchat(id,"!t[SELECTED] !gReklam yaptigin icin !t$1000 !tkazandin!"),
engel2[id]=true;
return 1
}
}
return PLUGIN_HANDLED;
}
public engelac2(id){
if(is_user_connected(id)){
if(!iG_sure2[id]){
engel2[id]=false;
remove_task(id);
}
else {
iG_sure2[id] --;
set_task(1.0,"engelac2",id)
}
}
else {
remove_task(id);
engel2[id]=false;
}
}
stock sGetDifrenceTime(iL_Difference){
new sL_ReturnedData[12];
if(iL_Difference < 60){
formatex(sL_ReturnedData,11,"Cok Az");
}
else if(iL_Difference < 3600){
iL_Difference /= 60;
formatex(sL_ReturnedData,11,"%i Dakika",iL_Difference);
}
else if(iL_Difference < 86400){
iL_Difference /= 3600;
formatex(sL_ReturnedData,11,"%i Saat",iL_Difference);
}
else{
iL_Difference /= 86400;
formatex(sL_ReturnedData,11,"%i Gun",iL_Difference);
}
return sL_ReturnedData;
}
stock colorchat( const id, const input[], any:... )
{
new count = 1, players[ 32 ];
static msg[ 191 ];
vformat( msg, 190, input, 3 );
replace_all( msg, 190, "!g", "^4" );
replace_all( msg, 190, "!y", "^1" );
replace_all( msg, 190, "!t", "^3" );
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( );
}
}
}
ReadFile() {
new szConfigsName[256], szFilename[256]
get_configsdir(szConfigsName, charsmax(szConfigsName))
formatex(szFilename, charsmax(szFilename), "%s/%s", szConfigsName, szIniFileName)
new iFilePointer = fopen(szFilename, "rt")
if(iFilePointer)
{
new szData[300], szFlag[2], szClose[2]
while(!feof(iFilePointer))
{
fgets(iFilePointer, szData, charsmax(szData))
trim(szData)
if (szData[0] == EOS || szData[0] == ';' || szData[0] == '/' && szData[1] == '/')
continue
parse(szData, g_Data[g_ItemsNum][ITEM], charsmax(g_Data[][ITEM]), g_Data[g_ItemsNum][CMD], charsmax(g_Data[][CMD]), szFlag, charsmax(szFlag), szClose, charsmax(szClose), g_Data[g_ItemsNum][COMMAND_TYPE], charsmax(g_Data[][COMMAND_TYPE]))
if(is_blank(g_Data[g_ItemsNum][COMMAND_TYPE]))
g_Data[g_ItemsNum][COMMAND_TYPE] = 's'
g_Data[g_ItemsNum][FLAG] = is_blank(szFlag) ? ADMIN_ALL : read_flags(szFlag)
g_Data[g_ItemsNum][iCLOSE] = str_to_num(szClose)
szFlag[0] = EOS
g_ItemsNum++
}
fclose(iFilePointer)
}
}
//OciXCrom
bool:is_blank(szString[])
return szString[0] == EOS ? true : false
//End OciXCrom
bool:command_type(szString[])
return szString[0] == 's' ? true : false