Raised This Month: $ Target: $400
 0% 

Awesome Menu


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
ironskillz
New Member
Join Date: Sep 2012
Old 09-09-2012 , 10:04   Awesome Menu
Reply With Quote #1

I need Help with this Awesome menu that xalus made https://forums.alliedmods.net/showthread.php?t=183654 when i add VIP rank and compile it. It Gets errors
can someone help me /sorry for my english i am swedish

Code:
#include <amxmodx>
#include <amxmisc>
#include <string_stocks>
#include <colorchat>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#define PLUGIN "MuminDalen Menu"
#define VERSION "1.0"
#define AUTHOR "SnusMumrikeN"
#define TAG_Chat "^4[MuminDalenMenu]^1"
#define TAG_Menu "\d[\rMuminDalenMenu\d]\w"
#define EXIT_Name "\dExit\d"
/* Awesome:
 - Items
*/
enum _:enumItems {
 Kick,  // 0
 Ban,  // 1
 Slay,  // 2
 Slap,  // 3
 Mute,  // 4
 Respawn, // 5
 Transfer, // 6
 
 Changemap, // 7
 
 WriteNote, // 8
 
 VoteKick, // 9
 VoteBan, // 10
 VoteMap, // 11
 Vote  // 12
}
new const Item_Names[enumItems][] = {
 "Kick",
 "Ban",
 "Slay",
 "Slap",
 "Mute",
 "Respawn",
 "Transfer",
 
 "Changemap",
 
 "Write Note",
 
 "Vote Kick",
 "Vote Ban",
 "Vote Map",
 "Vote"
}
/* Awesome:
 - Ranks
*/
enum _:enumRank {
 Owner,
 Admin
        Vip
}
new const Rank_Names[enumRank][] = {
 "Owner",
 "Admin"
        "Vip"
}
new const Rank_Flags[enumRank] = {
 ADMIN_BAN,
 ADMIN_KICK
        ADMIN_SLAY
}
new const Rank_Items[enumRank][] = {
 " 0 1 9 2 3 4 7 8",
 " 0 1 11 9 3 4"
        " 0 1 11 9 3 4"
}
new const Rank_Tags[enumRank][] = {
 "[Owner]",
 "[Admin]"
        "[Vip]"
}
/* Awesome:
 - Others
*/
new playerKey[33], playerTarget[33], playerReason[33], playerInfo[33][2], bool:playerMuted[33]
new bool:Vote_Running, iVote[2]
new cAdvancedBans, cBanTime
new iMaxPlayers
public plugin_init() {
 register_plugin(PLUGIN, VERSION, AUTHOR)
 
 // Register: Clcmd
 register_clcmd("say /menu", "Cmd_AwesomeMenu")
 
 register_clcmd ("say", "handle_say")
 register_clcmd ("say_team", "handle_teamsay")
 
 register_clcmd("Awesome_String", "Cmd_String")
 
 // Register: Cvars
 cAdvancedBans = register_cvar("awesomemenu_advancedbans", "1");
 cBanTime = register_cvar("awesomemenu_bantime", "120");
 
 // Register: Forward
 register_forward(FM_Voice_SetClientListening, "Fwd_Voice")
 // Others
 iMaxPlayers = get_maxplayers()
}
/* Awesome:
 - Menu's
*/
public Cmd_AwesomeMenu(id) {
 new szTemp[100], key[6]
 formatex(szTemp, charsmax(szTemp), "%s Main Menu", TAG_Menu)
 
 new menu = menu_create(szTemp, "Handler_AwesomeMenu")
 
 for(new i = 0; i < enumRank; i++) {
  formatex(szTemp, charsmax(szTemp), "%s%s", (get_user_flags(id) & Rank_Flags[i]) ? "\r" : "\d", Rank_Names[i])
 
  num_to_str(i, key, charsmax(key))
  menu_additem(menu, szTemp, key)
 }
 menu_setprop(menu, MPROP_EXITNAME, EXIT_Name)
 
 menu_display(id, menu)
}
public Handler_AwesomeMenu(id, menu, item) {
 if(item == MENU_EXIT)
  menu_destroy(menu)
 else {
  new key = MenuKey(menu, item)
  menu_destroy(menu)
 
  if(~get_user_flags(id) & Rank_Flags[key]) {
   ColorChat(id, GREY, "%s You don't got access for the^3 %s^1 menu.", TAG_Chat, Rank_Names[key])
   Cmd_AwesomeMenu(id)
  }
  else
   Show_ItemsMenu(id, key)
 }
}
public Show_ItemsMenu(id, key) {
 new szTemp[100], results, num[6]
 formatex(szTemp, charsmax(szTemp), "%s Items Menu", TAG_Menu)
 
 new menu = menu_create(szTemp, "Handler_ItemsMenu")
 
 copy(szTemp, charsmax(szTemp), Rank_Items[key])
 results = str_substr_count(szTemp, " ")
 
 for(new i = 0; i < results; i++) {
  strbreak(szTemp, num, sizeof(num) - 1, szTemp, charsmax(szTemp));
 
  menu_additem(menu, Item_Names[ str_to_num(num) ], num)
 }
 menu_setprop(menu, MPROP_EXITNAME, EXIT_Name)
 
 menu_display(id, menu)
}
public Handler_ItemsMenu(id, menu, item) {
 if(item == MENU_EXIT) {
  menu_destroy(menu)
  Cmd_AwesomeMenu(id)
 }
 else {
  playerKey[id] = MenuKey(menu, item)
  menu_destroy(menu)
  if( playerKey[id] == Changemap || playerKey[id] == WriteNote || playerKey[id] == VoteMap || playerKey[id] == Vote)
   client_cmd(id, "messagemode Awesome_String")
 
  else if( playerKey[id] == Transfer )
   Show_TransferMenu(id)
 
  else
   Show_PlayerMenu(id)
 }
}
public Show_PlayerMenu(id) {
 new szTemp[100], key[6], szName[32]
 formatex(szTemp, charsmax(szTemp), "%s Playerlist Menu", TAG_Menu)
 
 new menu = menu_create(szTemp, "Handler_PlayerMenu")
 
 for(new i = 1; i <= iMaxPlayers; i++) {
  if(is_user_connected(i)) {
   get_user_name(i, szName, charsmax(szName))
 
   num_to_str(i, key, charsmax(key))
   menu_additem(menu, szName, key)
  }
 }
 menu_setprop(menu, MPROP_EXITNAME, EXIT_Name)
 
 menu_display(id, menu)
}
public Handler_PlayerMenu(id, menu, item) {
 if(item == MENU_EXIT) {
  menu_destroy(menu)
  Cmd_AwesomeMenu(id)
 }
 else {
  playerTarget[id] = MenuKey(menu, item)
  menu_destroy(menu)
 
  client_cmd(id, "messagemode Awesome_String")
 }
}
public Show_VoteMenu(id, reason[]) {
 new szTemp[200], szName[2][32]
 get_user_name(id, szName[0], 31)
 get_user_name(playerTarget[id], szName[1], 31)
 
 if(playerKey[id] == VoteKick) 
  formatex(szTemp, charsmax(szTemp), "%s Vote Menu^n\r%s\w wants to kick\r %s\w for\r %s\w.", TAG_Menu, szName[0], szName[1], reason)
 else if(playerKey[id] == VoteBan) 
  formatex(szTemp, charsmax(szTemp), "%s Vote Menu^n\r%s\w wants to ban\r %s\w for\r %s\w.", TAG_Menu, szName[0], szName[1], reason)
 else if(playerKey[id] == VoteMap) 
  formatex(szTemp, charsmax(szTemp), "%s Vote Menu^n\r%s\w wants to change map to\r %s\w.", TAG_Menu, szName[0], reason)
 else if(playerKey[id] == Vote)
  formatex(szTemp, charsmax(szTemp), "%s Vote Menu^n\dVote:\r %s\d by\y %s.", TAG_Menu, reason, szName[0])
 else
  return
 
 Vote_Running = true
 iVote[0] = 0
 iVote[1] = 0
 
 new menu = menu_create(szTemp, "Handler_VoteMenu")
 menu_additem(menu, "\wYes", "1")
 menu_setprop(menu, MPROP_EXITNAME, "\yNo!")
 
 for(new i = 1; i <= iMaxPlayers; i++)
  if(is_user_connected(i))
   menu_display(i, menu)
 
 set_task(7.0, "Task_VoteResult", id)
}
public Handler_VoteMenu(id, menu, item) {
 if(Vote_Running) {
  if(item == MENU_EXIT)
   iVote[1]++
  else
   iVote[0]++
 }
}
public Show_TransferMenu(id) {
 new szTemp[100]
 formatex(szTemp, charsmax(szTemp), "%s Transfer Menu", TAG_Menu)
 new menu = menu_create(szTemp, "TransferMenu")
 
 switch(playerInfo[id][0]) {
  case 0: menu_additem(menu, "\rTerrorist^n", "0", 0);
  case 1: menu_additem(menu, "\rCounter Terrorist^n", "0", 0);
  case 2: menu_additem(menu, "\rSpectator^n", "0", 0);
 }
 
 new szName[32], key[6]
 for(new i = 1; i <= iMaxPlayers; i++) {
  if(!is_user_connected(i))
   continue
 
  if(get_user_team(i) != playerInfo[id][0]+1)
   continue
 
  get_user_name(i, szName, charsmax(szName))
  num_to_str(i, key, charsmax(key))
  menu_additem(menu, szName, key)
 }
 menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
 menu_setprop(menu, MPROP_EXITNAME, EXIT_Name)
 
 menu_display(id, menu)
}
public TransferMenu(id, menu, item) {
 if( item == MENU_EXIT ) {
  menu_destroy(menu);
  Cmd_AwesomeMenu(id)
  return PLUGIN_HANDLED;
 }
 new player = MenuKey(menu, item)
 menu_destroy(menu)
 
 if(!player) {
  switch(playerInfo[id][0]) {
   case 2: playerInfo[id][0]=0
   default: playerInfo[id][0]++
  }
  Show_TransferMenu(id)
 }
 else {
  new name[2][32]
  get_user_name(player,name[1],31)
  get_user_name(id,name[0],31)
 
  cs_set_user_team(player, CsTeams:playerInfo[id][0] )
  user_silentkill(player)
 
  ColorChat(0, GREY, "%s^3 %s^1 transfered^3 %s^1 to the^3 %s^1.", TAG_Chat, name[0], name[1], (playerInfo[id][0] == 1) ? "Counter-Terrorists" : (playerInfo[id][0] == 0) ? "Terrorists" : "Spectators")
 }
 Show_TransferMenu(id)
 return PLUGIN_CONTINUE;
}
/* Awesome:
 - Voice
*/
public Fwd_Voice(iReceiver, iSender, iListen)  {
 if(iReceiver == iSender)
  return FMRES_IGNORED
 
 if(playerMuted[iSender]) {
  engfunc(EngFunc_SetClientListening, iReceiver, iSender, 0)
  return FMRES_SUPERCEDE
 }
 return FMRES_IGNORED
}
/* Awesome:
 - Cmd's
*/
public Cmd_String(id) {
 static arg[32];
 read_argv(1, arg, charsmax(arg));
 
 if ( !strlen(arg) ) 
  client_cmd(id, "messagemode Awesome_String")
 else
  Action(id, playerKey[id], arg)
}
/* Awesome:
 - 
*/
public client_disconnect(id)
 playerMuted[id] = false
/* Awesome:
 - Action
*/
public Action(id, key, reason[]) {
 if(is_user_connected(id)) {
  new szName[2][32]
  get_user_name(id, szName[0], 31)
  get_user_name(playerTarget[id], szName[1], 31)
 
  switch(key) {
   case Kick: { 
    ColorChat(0, GREY, "%s^3 %s^1 kicked^3 %s^1 for^3 %s^1.", TAG_Chat, szName[0], szName[1], reason)
    server_cmd("kick #%d ^"%s^"", get_user_userid(playerTarget[id]), reason)
   }
   case Ban: { 
    ColorChat(0, GREY, "%s^3 %s^1 banned^3 %s^1 for^3 %s^1.", TAG_Chat, szName[0], szName[1], reason)
 
    if( get_pcvar_num(cAdvancedBans) ) // Advanced bans 
     server_cmd ("amx_ban ^"%s^" %d ^"%s^"", szName[1], get_pcvar_num(cBanTime), reason)
    else {
     server_cmd("banid %d #%d;wait;writeid", get_pcvar_num(cBanTime), get_user_userid(playerTarget[id]))
     server_cmd("kick #%i ^"By: %s - Reason: %s - BanTime: %i^"", get_user_userid(playerTarget[id]), szName[0], reason, get_pcvar_num(cBanTime));
    }
   }
   case Slay: { 
    if(is_user_alive(playerTarget[id])) {
     ColorChat(0, GREY, "%s^3 %s^1 slayed^3 %s^1 for^3 %s^1.", TAG_Chat, szName[0], szName[1], reason)
 
     user_silentkill(playerTarget[id])
     make_deathmsg(id, playerTarget[id], 1, "deagle")
    }
    else 
     ColorChat(id, GREY, "%s You can't do this command on a dead body.", TAG_Chat)
 
    return 0;
   }
   case Slap: { 
    if(is_user_alive(playerTarget[id])) {
     ColorChat(0, GREY, "%s^3 %s^1 slapped^3 %s^1 for^3 %s^1.", TAG_Chat, szName[0], szName[1], reason)
 
     user_slap(playerTarget[id], 0)
     user_slap(playerTarget[id], 0)
    }
    else 
     ColorChat(id, GREY, "%s You can't do this command on a dead body.", TAG_Chat)
 
    return 0;
   }
   case Mute: {
    playerMuted[playerTarget[id]] = !playerMuted[playerTarget[id]]
    ColorChat(0, GREY, "%s^3 %s^1 %s^3 %s^^1.", TAG_Chat, szName[0], playerMuted[playerTarget[id]] ? "muted" : "unmuted", szName[1])
   }
   case Respawn: {
    ExecuteHamB(Ham_CS_RoundRespawn, playerTarget[id])
    ColorChat(0, GREY, "%s^3 %s^1 respawned^3 %s^1.", TAG_Chat, szName[0], szName[1])
   } 
   case Changemap: {
    if(!is_map_valid(reason)) {
     ColorChat(id, GREY, "%s Map^3 %s^1 doesn't excist on the server.", TAG_Chat, reason)
     client_cmd(id, "messagemode Awesome_String")
    }
    else {
     ColorChat(0, GREY, "%s^3 %s^1 changes map to^3 %s^1.", TAG_Chat, szName[0], reason)
 
     copy(playerReason[id], 31, reason)
     set_task(1.0, "Task_Changemap", id)
    }
   }
   case WriteNote: {
    set_hudmessage(255, 255, 255, -1.0, 0.20, 0, 6.0, 12.0)
    show_hudmessage(0, "%s: '%s'", szName[0], reason)
   }
   case VoteKick, VoteBan, VoteMap: {
    if(Vote_Running)
     ColorChat(id, GREY, "%s There is already a vote running.", TAG_Chat)
 
    else if(playerKey[id] == VoteMap && !is_map_valid(reason)) {
     ColorChat(id, GREY, "%s Map^3 %s^1 doesn't excist on the server.", TAG_Chat, reason)
     client_cmd(id, "messagemode Awesome_String")
    }
 
    else {
     copy(playerReason[id], 31, reason)
     Show_VoteMenu(id, reason)
    }
   }
  }
 }
 return 1;
}
/* Awesome:
 - Tasks
*/
public Task_Changemap(id) {
 if(is_map_valid(playerReason[id])) {
  new data[85]; formatex(data, 84, "changelevel %s", playerReason[id])
  server_cmd(data)
 }
}
public Task_VoteResult(id) {
 ColorChat(0, GREY, "^4[%s]^1 Vote:^3 %s^1, result^3 %s^1.", TAG_Chat, playerReason[id], (iVote[0] > iVote[1]) ? "Yes" : (iVote[0] == iVote[1]) ? "Tie" : "No")
 Vote_Running=false
 
 if(iVote[0] > iVote[1] && playerKey[id] != Vote)
  Action(id, playerKey[id], playerReason[id])
}
stock is_awesome_admin(id) {
 static flags
 flags = get_user_flags(id)
 for(new i = 0; i < enumRank; i++)
  if(flags & Rank_Flags[i])
   return i+1
 
 return 0
}
/* Awesome:
 - Color Say
*/
public handle_say(id) {
 new Message[192];
 read_args (Message, charsmax(Message))
 remove_quotes(Message)
 new Number = is_awesome_admin(id)
 if(equal(Message, "") || equal(Message, "[") || Message[0] == '@' || Message[0] == '/' || !Number) return PLUGIN_CONTINUE
 
 new tempTag[50], strName[154], Color:Team;
 formatex(tempTag, charsmax(tempTag), "^4%s ", Rank_Tags[Number-1])
 
 Team = (get_user_team(id) == 1) ? RED : (get_user_team(id) == 2) ? BLUE : GREY
 ColorTag(id, tempTag, strName, charsmax(strName), "^3", " ")
 for(new i = 1; i < iMaxPlayers; i++) {
  if(is_user_connected(i)) {
   ColorChat(i, Team, "%s^1 :  %s", strName, Message);
  }
 }
 remove_colors(strName, charsmax(strName))
 remove_colors(Message, charsmax(Message))
 server_print("%s : %s", strName, Message)
 
 return PLUGIN_HANDLED
}
public handle_teamsay(id) {
 new Message[192];
 read_args (Message, charsmax(Message))
 remove_quotes(Message)
 new Number = is_awesome_admin(id)
 if(equal(Message, "") || equal(Message, "[") || Message[0] == '@' || Message[0] == '/' || !Number) return PLUGIN_CONTINUE
 new tempTag[50], strName[154]
 formatex(tempTag, charsmax(tempTag), "^4%s ", Rank_Tags[Number-1])
 ColorTag(id, tempTag, strName, charsmax(strName), "^3", (get_user_team(id) == 1) ? "(Terrorists) " : (get_user_team(id) == 2) ? "(Counter-Terrorists) " : "(Spectator) ");
 
 for(new i = 1; i < iMaxPlayers; i++) {
  if(is_user_connected(i) && cs_get_user_team(i) == cs_get_user_team(id) )  {
   ColorChat(i, TEAM_COLOR, "%s^1 :  %s", strName, Message)
  }
 }
 remove_colors(strName, charsmax(strName))
 remove_colors(Message, charsmax(Message))
 server_print("%s : %s", strName, Message)
 
 return PLUGIN_HANDLED
}
stock ColorTag(id, PlayerTag[], StringName[], StringLen,  NameColor[], TeamTag[]) {
 new szName[32]; get_user_name(id, szName, charsmax(szName));
 new Status[11]; copy(Status, charsmax(Status), (get_user_team(id) == 3) ? "^x01*SPEC*" : is_user_alive(id) ? "^x01" : "^x01*DEAD* ")
 formatex(StringName, StringLen, "%s%s%s%s%s", PlayerTag, Status, TeamTag, NameColor, szName)
}
stock remove_colors(string[], len) {
 replace_all(string, len, "^x01", "")
 replace_all(string, len, "^x03", "")
 replace_all(string, len, "^x04", "")
}
/* Awesome:
 - Stocks
*/
stock MenuKey(menu, item) {
 new szData[6], szName[64];
 new access, callback;
 menu_item_getinfo(menu, item, access, szData, charsmax(szData), szName, charsmax(szName), callback);
 return str_to_num(szData);
}

Last edited by ironskillz; 09-09-2012 at 12:30.
ironskillz is offline
Liverwiz
Veteran Member
Join Date: Feb 2010
Location: Maryland
Old 09-09-2012 , 10:25   Re: Awesome Menu
Reply With Quote #2

what are the errors? attach the sma
__________________
What an elegant solution to a problem that doesn't need solving....
Liverwiz is offline
ironskillz
New Member
Join Date: Sep 2012
Old 09-09-2012 , 12:30   Re: Awesome Menu
Reply With Quote #3

Quote:
Originally Posted by Liverwiz View Post
what are the errors? attach the sma
http://www.mediafire.com/?19dsz9p7veytkvp
ironskillz is offline
Torge
Veteran Member
Join Date: Oct 2011
Old 09-09-2012 , 13:14   Re: Awesome Menu
Reply With Quote #4

Quote:
Originally Posted by ironskillz View Post
Attach the .sma here...
Torge is offline
Liverwiz
Veteran Member
Join Date: Feb 2010
Location: Maryland
Old 09-09-2012 , 13:22   Re: Awesome Menu
Reply With Quote #5

linking to media fire isn't attaching that's linking.
click "go advanced" then click "manage attachments"
__________________
What an elegant solution to a problem that doesn't need solving....
Liverwiz is offline
ironskillz
New Member
Join Date: Sep 2012
Old 09-09-2012 , 13:29   Re: Awesome Menu
Reply With Quote #6

Quote:
Originally Posted by Liverwiz View Post
linking to media fire isn't attaching that's linking.
click "go advanced" then click "manage attachments"
Attached Files
File Type: sma Get Plugin or Get Source (MuminDalenMenu.sma - 433 views - 14.3 KB)
ironskillz is offline
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 08:17.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode