AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Awesome Menu (https://forums.alliedmods.net/showthread.php?t=195604)

ironskillz 09-09-2012 10:04

Awesome Menu
 
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);
}


Liverwiz 09-09-2012 10:25

Re: Awesome Menu
 
what are the errors? attach the sma

ironskillz 09-09-2012 12:30

Re: Awesome Menu
 
Quote:

Originally Posted by Liverwiz (Post 1795172)
what are the errors? attach the sma

http://www.mediafire.com/?19dsz9p7veytkvp

Torge 09-09-2012 13:14

Re: Awesome Menu
 
Quote:

Originally Posted by ironskillz (Post 1795279)

Attach the .sma here...

Liverwiz 09-09-2012 13:22

Re: Awesome Menu
 
linking to media fire isn't attaching that's linking.
click "go advanced" then click "manage attachments"

ironskillz 09-09-2012 13:29

Re: Awesome Menu
 
1 Attachment(s)
Quote:

Originally Posted by Liverwiz (Post 1795309)
linking to media fire isn't attaching that's linking.
click "go advanced" then click "manage attachments"



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

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