wangyang5008 发表于 2008-5-18 15:31:03

回复: jim_yang麻烦你帮忙看看这个插件问题

问题是原版的nextmap代码好象不是用get_cvar_string("amx_nextmap",nextmap,31)来判断下张地图名字的吧。

nextmap插件是这样判断下个地图名字的

getNextMapName(szArg[], iMax)
{
new len = get_cvar_string("amx_nextmap", szArg, iMax)

if (is_map_valid(szArg)) return len
len = copy(szArg, iMax, g_nextMap)
set_cvar_string("amx_nextmap", g_nextMap)

return len
}
public sayNextMap()
{
new name

getNextMapName(name, 31)
client_print(0, print_chat, "%L: %s", LANG_PLAYER, "NEXT_MAP", name)
}

你的意思是叫我在判断下张地图名字client_print(0, print_chat, "%L: %s", LANG_PLAYER, "NEXT_MAP", name)
这段代码前面增加
formatex(g_nextMap,31,"%L",LANG_PLAYER,"NEXT_MAP_NAME")

shinyrose 发表于 2008-5-18 23:52:21

回复: jim_yang麻烦你帮忙看看这个插件问题

其实这个问题很简单,官方的nextmap.sma,mapchooser.sma也没什么问题。
关键是因为你的mapcycle.txt是空的,所以你的下一幅图就是当前地图。
要实现say nextamap出现"投票选择",只需要在amxx.cfg里加一句amx_nextmap "投票选择"即可,然后在nextmap.sma里

public sayNextMap(id)
{
new name
getNextMapName(name, 31)
client_print(0, print_chat, "%L %s", LANG_PLAYER, "NEXT_MAP", name)

}

改为

public sayNextMap(id)
{
new name
get_cvar_string("amx_nextmap", name, 31)
client_print(0, print_chat, "%L %s", LANG_PLAYER, "NEXT_MAP", name)

}

到mapchooser.sma自动投票选择后,其amx_nextmap的值会自动改为投票选择的那一幅图的名字。此方法还有一个好处就是,如果选择的下一副图服务器不存在,会自动转向mapcycle.txt的循环的地图。

wangyang5008 发表于 2008-5-19 00:41:09

回复: jim_yang麻烦你帮忙看看这个插件问题

顺便在问下,能不能把投票里的原来的地图,后面再加中文的地图名称,我是好奇,我看见过这样的服务器

wangyang5008 发表于 2008-5-19 00:44:44

回复: jim_yang麻烦你帮忙看看这个插件问题

其实这个问题很简单,官方的nextmap.sma,mapchooser.sma也没什么问题。
关键是因为你的mapcycle.txt是空的,所以你的下一幅图就是当前地图。
要实现say nextamap出现"投票选择",只需要在amxx.cfg里加一句amx_nextmap "投票选择"即可,然后在nextmap.sma里


PHP 代码:
public sayNextMap(id)
{
new name[32]
getNextMapName(name, 31)
client_print(0, print_chat, "%L %s", LANG_PLAYER, "NEXT_MAP", name)

}



改为

PHP 代码:
public sayNextMap(id)
{
new name[32]
get_cvar_string("amx_nextmap", name, 31)
client_print(0, print_chat, "%L %s", LANG_PLAYER, "NEXT_MAP", name)

}



到mapchooser.sma自动投票选择后,其amx_nextmap的值会自动改为投票选择的那一幅图的名字。此方法还有一个好处就是,如果选择的下一副图服务器不存在,会自动转向mapcycle.txt的循环的地图。



试过了OK,真的很感谢楼上的朋友的帮助!

shinyrose 发表于 2008-5-19 01:52:19

回复: jim_yang麻烦你帮忙看看这个插件问题

Post by wangyang5008
顺便在问下,能不能把投票里的原来的地图,后面再加中文的地图名称,我是好奇,我看见过这样的服务器
这个也不难,你留意一下这个函数的用法。
parse - Splits parameters into strings.

Syntax:

parse ( const text[], ... )
Type:

Native
Notes:

Example: to split text: "^"This is^" the best year",
parse(text,arg1,len1,arg2,len2,arg3,len3,arg4,len4)
You will get: "This is", "the", "best", "year"
Function returns number of parsed parameters.

你可以从官方的mapchooser.sma或者其他修改过的类似的mapchooser.sma中的

while ((g_mapNums < MAX_MAPS) && read_file(filename, pos++, szText, 31, a))
{
if (szText != ';'
&& parse(szText, g_mapName, 31)
&& is_map_valid(g_mapName)
&& !equali(g_mapName, g_lastMap)
&& !equali(g_mapName, currentMap))
++g_mapNums
}

如果我改成

while ( (g_mapNums < MAX_MAPS) && read_file(filename,pos++,szText,31,a) ) {
if ( szText != ';'
&& parse(szText, g_mapName ,31,map_description,256 )
&& is_map_valid( g_mapName )
&& !equali( g_mapName ,g_lastMap)
&& !equali( g_mapName ,currentMap) )
++g_mapNums
}

就可以获取地图名字以外的变量,这时只要开头自定义了

new map_description

来储存,便可以取得地图描述。
剩下你便可在你想要的地方读取此数组变量。

Cr@zyTreE 发表于 2008-5-19 08:56:01

回复: jim_yang麻烦你帮忙看看这个插件问题

Post by wangyang5008
问题是原版的nextmap代码好象不是用get_cvar_string("amx_nextmap",nextmap,31)来判断下张地图名字的吧。

nextmap插件是这样判断下个地图名字的

getNextMapName(szArg[], iMax)
{
new len = get_cvar_string("amx_nextmap", szArg, iMax)

if (is_map_valid(szArg)) return len
len = copy(szArg, iMax, g_nextMap)
set_cvar_string...

不是加这里,改初始化部分,跟rose的说的差不多,不用在amxx.cfg里面指定。

wangyang5008 发表于 2008-5-21 19:49:13

回复: jim_yang麻烦你帮忙看看这个插件问题

Cr@zyTreE 哈哈
你是不是不懂装懂啊

wangyang5008 发表于 2008-5-21 19:51:58

回复: jim_yang麻烦你帮忙看看这个插件问题

这个也不难,你留意一下这个函数的用法。
parse - Splits parameters into strings.

Syntax:

parse ( const text[], ... )
Type:

Native
Notes:

Example: to split text: "^"This is^" the best year",
parse(text,arg1,len1,arg2,len2,arg3,len3,arg4,len4)
You will get: "This is", "the", "best", "year"
Function returns number of parsed parameters.

你可以从官方的mapchooser.sma或者其他修改过的类似的mapchooser.sma中的
PHP 代码:
while ((g_mapNums < MAX_MAPS) && read_file(filename, pos++, szText, 31, a))
{
if (szText[0] != ';'
&& parse(szText, g_mapName[g_mapNums], 31)
&& is_map_valid(g_mapName[g_mapNums])
&& !equali(g_mapName[g_mapNums], g_lastMap)
&& !equali(g_mapName[g_mapNums], currentMap))
++g_mapNums
}



如果我改成
PHP 代码:
while ( (g_mapNums < MAX_MAPS) && read_file(filename,pos++,szText,31,a) ) {
if ( szText[0] != ';'
&& parse(szText, g_mapName[g_mapNums] ,31,map_description[g_mapNums],256 )
&& is_map_valid( g_mapName[g_mapNums] )
&& !equali( g_mapName[g_mapNums] ,g_lastMap)
&& !equali( g_mapName[g_mapNums] ,currentMap) )
++g_mapNums
}



就可以获取地图名字以外的变量,这时只要开头自定义了
PHP 代码:
new map_description[MAX_MAPS][256]



来储存,便可以取得地图描述。
剩下你便可在你想要的地方读取此数组变量。

               我试过好像代码错的。希望你再次指点

Cr@zyTreE 发表于 2008-5-21 20:03:23

回复: jim_yang麻烦你帮忙看看这个插件问题

Post by wangyang5008
Cr@zyTreE 哈哈
你是不是不懂装懂啊

用的着在你面前表现吗?说实话,看到你这种。。。。唉,不说了。以后也不会回复你的帖了。

wangyang5008 发表于 2008-5-21 20:17:35

回复: jim_yang麻烦你帮忙看看这个插件问题

开玩笑的啊。我觉得我这个人说话是有点直接,你也别放心上,呵呵!
页: 1 [2]
查看完整版本: jim_yang麻烦你帮忙看看这个插件问题