回复: 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")
回复: 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的循环的地图。
回复: jim_yang麻烦你帮忙看看这个插件问题
顺便在问下,能不能把投票里的原来的地图,后面再加中文的地图名称,我是好奇,我看见过这样的服务器回复: 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,真的很感谢楼上的朋友的帮助!
回复: 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
来储存,便可以取得地图描述。
剩下你便可在你想要的地方读取此数组变量。
回复: 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里面指定。
回复: jim_yang麻烦你帮忙看看这个插件问题
Cr@zyTreE 哈哈你是不是不懂装懂啊
回复: 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]
来储存,便可以取得地图描述。
剩下你便可在你想要的地方读取此数组变量。
我试过好像代码错的。希望你再次指点
回复: jim_yang麻烦你帮忙看看这个插件问题
Post by wangyang5008Cr@zyTreE 哈哈
你是不是不懂装懂啊
用的着在你面前表现吗?说实话,看到你这种。。。。唉,不说了。以后也不会回复你的帖了。
回复: jim_yang麻烦你帮忙看看这个插件问题
开玩笑的啊。我觉得我这个人说话是有点直接,你也别放心上,呵呵!
页:
1
[2]