搜索
查看: 7941|回复: 18

请问哪位高手能发个这样的投票换图插件。

[复制链接]
发表于 2008-4-22 22:06:49 | 显示全部楼层 |阅读模式 来自 中国–浙江–衢州–开化县
在游戏里快要换图的时候会提示:(同意。不同意。弃权)并且有语音提示:是的。不 然后到了要选择换的时候,他又有语音提示:是改选择了。希望有的朋友发个上共享下!:super: :sure: :embarrass
 楼主| 发表于 2008-4-23 12:20:50 | 显示全部楼层 来自 中国–浙江–衢州–开化县

回复: 请问哪位高手能发个这样的投票换图插件。

我晕,居然没有人顶。好东西大家来顶啊。支持下点通的发展和人气
回复

使用道具 举报

发表于 2008-4-23 13:37:13 | 显示全部楼层 来自 中国–福建–泉州–石狮市

回复: 请问哪位高手能发个这样的投票换图插件。

都不知道你在说什么....
回复

使用道具 举报

发表于 2008-4-23 13:39:33 | 显示全部楼层 来自 中国–辽宁–沈阳

回复: 请问哪位高手能发个这样的投票换图插件。

这个插件是AMXX自带的啊  nextmap.amxx 你听到的声音如果是中文的  那说明该插件被人修改了的  他只是把语音文件换了一下而已。
回复

使用道具 举报

发表于 2008-4-23 15:27:10 | 显示全部楼层 来自 中国–香港

回复: 请问哪位高手能发个这样的投票换图插件。

[PHP]
/* AMX Mod X
*   Nextmap Chooser Plugin
*
* by the AMX Mod X Development Team
*  originally developed by OLO
*
* This file is part of AMX Mod X.
*
*
*  This program is free software; you can redistribute it and/or modify it
*  under the terms of the GNU General Public License as published by the
*  Free Software Foundation; either version 2 of the License, or (at
*  your option) any later version.
*
*  This program is distributed in the hope that it will be useful, but
*  WITHOUT ANY WARRANTY; without even the implied warranty of
*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
*  General Public License for more details.
*
*  You should have received a copy of the GNU General Public License
*  along with this program; if not, write to the Free Software Foundation,
*  Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*  In addition, as a special exception, the author gives permission to
*  link the code of this program with the Half-Life Game Engine ("HL
*  Engine") and Modified Game Libraries ("MODs") developed by Valve,
*  L.L.C ("Valve"). You must obey the GNU General Public License in all
*  respects for all of the code used other than the HL Engine and MODs
*  from Valve. If you modify this file, you may extend this exception
*  to your version of the file, but you are not obligated to do so. If
*  you do not wish to do so, delete this exception statement from your
*  version.
*/
#include <amxmodx>
#include <amxmisc>
#define SELECTMAPS  5
#define charsof(%1) (sizeof(%1)-1)
new Array:g_mapName;
new g_mapNums;
new g_nextName[SELECTMAPS]
new g_voteCount[SELECTMAPS + 2]
new g_mapVoteNum
new g_teamScore[2]
new g_lastMap[32]
new g_coloredMenus
new bool:g_selected = false
public plugin_init()
{
register_plugin("Nextmap Chooser", AMXX_VERSION_STR, "AMXX Dev Team")
register_dictionary("mapchooser.txt")
register_dictionary("common.txt")

g_mapName=ArrayCreate(32);

new MenuName[64]

format(MenuName, 63, "%L", "en", "CHOOSE_NEXTM")
register_menucmd(register_menuid(MenuName), (-1^(-1<<(SELECTMAPS+2))), "countVote")
register_cvar("amx_extendmap_max", "90")
register_cvar("amx_extendmap_step", "15")
if (cstrike_running())
  register_event("TeamScore", "team_score", "a")
get_localinfo("lastMap", g_lastMap, 31)
set_localinfo("lastMap", "")
new maps_ini_file[64]
get_configsdir(maps_ini_file, 63);
format(maps_ini_file, 63, "%s/maps.ini", maps_ini_file);

if (!file_exists(maps_ini_file))
  get_cvar_string("mapcyclefile", maps_ini_file, 63)
if (loadSettings(maps_ini_file))
  set_task(15.0, "voteNextmap", 987456, "", 0, "b")
g_coloredMenus = colored_menus()

}
public checkVotes()
{
new b = 0

for (new a = 0; a < g_mapVoteNum; ++a)
  if (g_voteCount < g_voteCount[a])
   b = a

if (g_voteCount[SELECTMAPS] > g_voteCount
     && g_voteCount[SELECTMAPS] > g_voteCount[SELECTMAPS+1])
{
  new mapname[32]
  
  get_mapname(mapname, 31)
  new Float:steptime = get_cvar_float("amx_extendmap_step")
  set_cvar_float("mp_timelimit", get_cvar_float("mp_timelimit") + steptime)
  client_print(0, print_chat, "%L", LANG_PLAYER, "CHO_FIN_EXT", steptime)
  log_amx("Vote: Voting for the nextmap finished. Map %s will be extended to next %.0f minutes", mapname, steptime)
  
  return
}

new smap[32]
if (g_voteCount && g_voteCount[SELECTMAPS + 1] <= g_voteCount)
{
  ArrayGetString(g_mapName, g_nextName, smap, charsof(smap));
  set_cvar_string("amx_nextmap", smap);
}

get_cvar_string("amx_nextmap", smap, 31)
client_print(0, print_chat, "%L", LANG_PLAYER, "CHO_FIN_NEXT", smap)
log_amx("Vote: Voting for the nextmap finished. The nextmap will be %s", smap)
}
public countVote(id, key)
{
if (get_cvar_float("amx_vote_answers"))
{
  new name[32]
  get_user_name(id, name, 31)
  
  if (key == SELECTMAPS)
   client_print(0, print_chat, "%L", LANG_PLAYER, "CHOSE_EXT", name)
  else if (key < SELECTMAPS)
  {
   new map[32];
   ArrayGetString(g_mapName, g_nextName[key], map, charsof(map));
   client_print(0, print_chat, "%L", LANG_PLAYER, "X_CHOSE_X", name, map);
  }
}
++g_voteCount[key]

return PLUGIN_HANDLED
}
bool:isInMenu(id)
{
for (new a = 0; a < g_mapVoteNum; ++a)
  if (id == g_nextName[a])
   return true
return false
}
public voteNextmap()
{
new winlimit = get_cvar_num("mp_winlimit")
new maxrounds = get_cvar_num("mp_maxrounds")

if (winlimit)
{
  new c = winlimit - 2
  
  if ((c > g_teamScore[0]) && (c > g_teamScore[1]))
  {
   g_selected = false
   return
  }
}
else if (maxrounds)
{
  if ((maxrounds - 2) > (g_teamScore[0] + g_teamScore[1]))
  {
   g_selected = false
   return
  }
} else {
  new timeleft = get_timeleft()
  
  if (timeleft < 1 || timeleft > 129)
  {
   g_selected = false
   return
  }
}
if (g_selected)
  return
g_selected = true

new menu[512], a, mkeys = (1<<SELECTMAPS + 1)
new pos = format(menu, 511, g_coloredMenus ? "\y%L:\w^n^n" : "%L:^n^n", LANG_SERVER, "CHOOSE_NEXTM")
new dmax = (g_mapNums > SELECTMAPS) ? SELECTMAPS : g_mapNums

for (g_mapVoteNum = 0; g_mapVoteNum < dmax; ++g_mapVoteNum)
{
  a = random_num(0, g_mapNums - 1)
  
  while (isInMenu(a))
   if (++a >= g_mapNums) a = 0
  
  g_nextName[g_mapVoteNum] = a
  pos += format(menu[pos], 511, "%d. %a^n", g_mapVoteNum + 1, ArrayGetStringHandle(g_mapName, a));
  mkeys |= (1<<g_mapVoteNum)
  g_voteCount[g_mapVoteNum] = 0
}

menu[pos++] = '^n'
g_voteCount[SELECTMAPS] = 0
g_voteCount[SELECTMAPS + 1] = 0

new mapname[32]
get_mapname(mapname, 31)
if ((winlimit + maxrounds) == 0 && (get_cvar_float("mp_timelimit") < get_cvar_float("amx_extendmap_max")))
{
  pos += format(menu[pos], 511, "%d. %L^n", SELECTMAPS + 1, LANG_SERVER, "EXTED_MAP", mapname)
  mkeys |= (1<<SELECTMAPS)
}
format(menu[pos], 511, "%d. %L", SELECTMAPS+2, LANG_SERVER, "NONE")
new MenuName[64]

format(MenuName, 63, "%L", "en", "CHOOSE_NEXTM")
show_menu(0, mkeys, menu, 15, MenuName)
set_task(15.0, "checkVotes")
client_print(0, print_chat, "%L", LANG_SERVER, "TIME_CHOOSE")
client_cmd(0, "spk Gman/Gman_Choose2")
log_amx("Vote: Voting for the nextmap started")
}
stock bool:ValidMap(mapname[])
{
if ( is_map_valid(mapname) )
{
  return true;
}
// If the is_map_valid check failed, check the end of the string
new len = strlen(mapname) - 4;

// The mapname was too short to possibly house the .bsp extension
if (len < 0)
{
  return false;
}
if ( equali(mapname[len], ".bsp") )
{
  // If the ending was .bsp, then cut it off.
  // the string is byref'ed, so this copies back to the loaded text.
  mapname[len] = '^0';
  
  // recheck
  if ( is_map_valid(mapname) )
  {
   return true;
  }
}

return false;
}
loadSettings(filename[])
{
if (!file_exists(filename))
  return 0
new szText[32]
new currentMap[32]

new buff[256];

get_mapname(currentMap, 31)
new fp=fopen(filename,"r");

while (!feof(fp))
{
  buff[0]='^0';
  
  fgets(fp, buff, charsof(buff));
  
  parse(buff, szText, charsof(szText));
  
  
  if (szText[0] != ';' &&
   ValidMap(szText) &&
   !equali(szText, g_lastMap) &&
   !equali(szText, currentMap))
  {
   ArrayPushString(g_mapName, szText);
   ++g_mapNums;
  }
  
}

fclose(fp);
return g_mapNums
}
public team_score()
{
new team[2]

read_data(1, team, 1)
g_teamScore[(team[0]=='C') ? 0 : 1] = read_data(2)
}
public plugin_end()
{
new current_map[32]
get_mapname(current_map, 31)
set_localinfo("lastMap", current_map)
}

[/PHP]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注个册吧

×
回复

使用道具 举报

发表于 2008-4-23 15:31:33 | 显示全部楼层 来自 中国–云南–西双版纳傣族自治州–景洪市

回复: 请问哪位高手能发个这样的投票换图插件。

估计你们都没听懂他的意思.人家是说按键选择声音.比如说按1就是(是的)按2就是(不)的声音.目前老友记服务器上有这个功能.需要加入按键1和按键2的声音判断.
回复

使用道具 举报

 楼主| 发表于 2008-4-23 19:24:24 | 显示全部楼层 来自 中国–浙江–衢州–开化县

回复: 请问哪位高手能发个这样的投票换图插件。

我晕,张大哥已经说的很明白。有的兄弟。上来顶,和大家共享下吧!
回复

使用道具 举报

 楼主| 发表于 2008-4-23 19:31:43 | 显示全部楼层 来自 中国–浙江–衢州–开化县

回复: 请问哪位高手能发个这样的投票换图插件。

可能上次没有说的很清楚。我现在在说下。就是当快要换图的时候,会提示要不要换图。会显示((1。要换图 2。不换   3。放弃 )这个好像点通有了,可是在选择的时候还会发出语音!(1。是的 2。不 )也就是要带语音,这里选择后, 别忘了还有一句语音:是该选择了!
回复

使用道具 举报

发表于 2008-4-23 19:39:51 | 显示全部楼层 来自 中国–广东–深圳

回复: 请问哪位高手能发个这样的投票换图插件。

论坛好像有的。传2个声音,自己添加。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注个册吧

×
回复

使用道具 举报

 楼主| 发表于 2008-4-23 21:31:46 | 显示全部楼层 来自 中国–浙江–衢州–开化县

回复: 请问哪位高手能发个这样的投票换图插件。

恩声音对了。可是论坛我找遍了,就只有等回见这样的插件,有等待投票插件,不知道他那个能不能使用语音的
回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 注个册吧

快速回复 返回顶部 返回列表