Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

3 страниц V   1 2 3

amx_help

, подсказка по плагину
Статус пользователя Vad64
сообщение 22.7.2010, 14:28
Сообщение #21
Стаж: 15 лет

Сообщений: 27
Благодарностей: 5
Полезность: 142

Цитата(STR@TEG @ 22.7.2010, 14:18) *
Не надо там ничего менять. Цвет будет соответствовать команде игрока.

чет я тя ваше не пойму ты очем я тя спрашиваю


^x04Голосование завершено. Карта продлена на ^x03%.0f^x04 минут.
^x04Голосование завершено. Следующая карта ^x03%s
^x03%s^x04 выбрал продление карты
^x03%s^x04 выбрал ^x03%s
^x03Выбор следующей карты
^x04Продление карты на ^x03%s
^x03Пора выбирать следующую карту...
где мне это в плагине написать чтоб было это зеленым ^x04Голосование завершено. Карта продлена на

а это ^x03%.0f^x04 красным
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 22.7.2010, 14:45
Сообщение #22
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

Цитата(Vad64 @ 22.7.2010, 16:28) *
где мне это в плагине написать чтоб было это зеленым ^x04Голосование завершено. Карта продлена на

а это ^x03%.0f^x04 красным
Так можно сделать, только если эту строку внести в исходник, а из lang-файла удалить.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Vad64
сообщение 22.7.2010, 14:51
Сообщение #23
Стаж: 15 лет

Сообщений: 27
Благодарностей: 5
Полезность: 142

Цитата(STR@TEG @ 22.7.2010, 15:45) *
Так можно сделать, только если эту строку внести в исходник, а из lang-файла удалить.

вот это я хотел от тя добиться ,я здесь видел тему про языковые файлы , все спс

Отредактировал: Vad64, - 22.7.2010, 14:55
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 22.7.2010, 14:58
Сообщение #24
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

Попробуй так:
Код
ColorChat(0, TEAM_COLOR, "Choosing finished. Current map will be extended to next ^x03%.f ^x04minutes", steptime)
На работоспособность не проверял.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Vad64
сообщение 22.7.2010, 20:14
Сообщение #25
Стаж: 15 лет

Сообщений: 27
Благодарностей: 5
Полезность: 142

что тут не так
/* 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>
#include <colorchat>

#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")

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[b] < g_voteCount[a])
b = a


if (g_voteCount[SELECTMAPS] > g_voteCount[b]
&& 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)
СolorСhat(0, BLUE, "^x04Голосование завершено. Карта продлена на ^x03%.0f ^x04минут.", 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[b] && g_voteCount[SELECTMAPS + 1] <= g_voteCount[b])
{
ArrayGetString(g_mapName, g_nextName[b], smap, charsof(smap));
set_cvar_string("amx_nextmap", smap);
}


get_cvar_string("amx_nextmap", smap, 31)
СolorСhat(0, BLUE, "^x04Голосование завершено. Следующая карта ^x03%s", 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)
СolorСhat(0, BLUE, "%s ^x04выбрал продление карты", name)
else if (key < SELECTMAPS)
{
new map[32];
ArrayGetString(g_mapName, g_nextName[key], map, charsof(map));
СolorСhat(0, BLUE, "%s ^x04выбрал^x03 %s", 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 ? "\r%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, "\r%d.\w %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, "\r%d.\w %L^n", SELECTMAPS + 1, LANG_SERVER, "EXTED_MAP", mapname)
mkeys |= (1<<SELECTMAPS)
}

format(menu[pos], 511, "\r%d.\w %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")
СolorСhat(0, RED, "Пора выбирать следующую карту.")
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)
}

что тут не так
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 22.7.2010, 20:38
Сообщение #26
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

Vad64,
Ты лучше бы выложил ошибки, которые у тебя возникают при компилировании, если они вообще возникают. И еще, не обязательно было вносить в исходник все сообщения, некоторые могли работать с lang-файла.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Vad64
сообщение 22.7.2010, 20:56
Сообщение #27
Стаж: 15 лет

Сообщений: 27
Благодарностей: 5
Полезность: 142

Цитата(STR@TEG @ 22.7.2010, 20:38) *
Vad64,
Ты лучше бы выложил ошибки, которые у тебя возникают при компилировании, если они вообще возникают. И еще, не обязательно было вносить в исходник все сообщения, некоторые могли работать с lang-файла.

прочитать тежяло что за ошибки а вот хоть вноси хоть не вноси ошибки.


например что за эти строки

format(MenuName, 63, "%L", "en", "CHOOSE_NEXTM")

new pos = format(menu, 511, g_coloredMenus ? "\r%L:\w^n^n" : "%L:^n^n", LANG_SERVER, "CHOOSE_NEXTM")

pos += format(menu[pos], 511, "\r%d.\w %L^n", SELECTMAPS + 1, LANG_SERVER, "EXTED_MAP", mapname)

format(menu[pos], 511, "\r%d.\w %L", SELECTMAPS+2, LANG_SERVER, "NONE")

format(MenuName, 63, "%L", "en", "CHOOSE_NEXTM")



мне кажется из заних ошибки выдает
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 22.7.2010, 21:31
Сообщение #28
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

Vad64,
Включи мозг. Мне легче посмотреть ошибки при компилировании, чтобы узнать в чем проблема, чем сидеть и просматривать весь исходник. И я еще раз повторяю, не обязательно вносить в исходник все сообщения, некоторые могут работать с lang-файла, а иногда даже необходимо.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Vad64
сообщение 23.7.2010, 6:46
Сообщение #29
Стаж: 15 лет

Сообщений: 27
Благодарностей: 5
Полезность: 142

вот изменяю одну строку и вот ошибки поевляются

error 029 invalid expression assumed zero
error 017 undefined symbol "olor"
error 017 undefined symbol "hat"
fatal error 107 too many error messages on one line

4 error
could not locate output file
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 23.7.2010, 8:08
Сообщение #30
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

Цитата(Vad64 @ 23.7.2010, 8:46) *
вот изменяю одну строку и вот ошибки поевляются

error 029 invalid expression assumed zero
error 017 undefined symbol "olor"
error 017 undefined symbol "hat"
fatal error 107 too many error messages on one line

4 error
could not locate output file
Выкладывай полный текст ошибок. Еще должны быть номера строк, на которых произошли ошибки.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Vad64
сообщение 23.7.2010, 8:15
Сообщение #31
Стаж: 15 лет

Сообщений: 27
Благодарностей: 5
Полезность: 142

Цитата(STR@TEG @ 23.7.2010, 9:08) *
Выкладывай полный текст ошибок. Еще должны быть номера строк, на которых произошли ошибки.

я тебе и выложил полный сколько было написано столько и выложил
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 23.7.2010, 8:18
Сообщение #32
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

Цитата(Vad64 @ 23.7.2010, 10:15) *
я тебе и выложил полный сколько было написано столько и выложил
Мне наверно лучше знать. Копируй всю консоль сюда. crazy.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Vad64
сообщение 23.7.2010, 10:15
Сообщение #33
Стаж: 15 лет

Сообщений: 27
Благодарностей: 5
Полезность: 142

Цитата(STR@TEG @ 23.7.2010, 8:18) *
Мне наверно лучше знать. Копируй всю консоль сюда. crazy.gif

mapchooser.sma
Код
#include <amxmodx>
#include <amxmisc>
#include <colorchat>

#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[b] < g_voteCount[a])
            b = a

    
    if (g_voteCount[SELECTMAPS] > g_voteCount[b]
        && 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)
        СolorСhat(0, BLUE, "^x04Голосование завершено. Карта продлена на ^x03%.0f ^x04минут.", 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[b] && g_voteCount[SELECTMAPS + 1] <= g_voteCount[b])
    {
        ArrayGetString(g_mapName, g_nextName[b], 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)
}

Прикрепленный файл  mapchooser.rar ( 2,98 килобайт ) Кол-во скачиваний: 8


i
Уведомление:
От: STR@TEG
Код плагина нужно заключать в тег code.
Длинные участки текста нужно заключать в тег spoiler.
Как спрятать текст под спойлер можно посмотреть у меня в подписи.


Отредактировал: STR@TEG, - 23.7.2010, 10:41
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 23.7.2010, 10:46
Сообщение #34
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

106 строку замени на эту:
Код
ColorChat(0, BLUE, "^x04Голосование завершено. Карта продлена на ^x03%.0f ^x04минут.", steptime)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Vad64
сообщение 23.7.2010, 11:33
Сообщение #35
Стаж: 15 лет

Сообщений: 27
Благодарностей: 5
Полезность: 142

Цитата(STR@TEG @ 23.7.2010, 10:46) *
106 строку замени на эту:
Код
ColorChat(0, BLUE, "^x04Голосование завершено. Карта продлена на ^x03%.0f ^x04минут.", steptime)

Да все получилось кроме вот этих строк в них помоги и все

CHOOSE_NEXTM = Выбор следующей карты
EXTED_MAP = Продление карты на %s
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Vad64
сообщение 23.7.2010, 17:58
Сообщение #36
Стаж: 15 лет

Сообщений: 27
Благодарностей: 5
Полезность: 142

Цитата(Vad64 @ 23.7.2010, 11:33) *
Да все получилось кроме вот этих строк в них помоги и все

CHOOSE_NEXTM = Выбор следующей карты
EXTED_MAP = Продление карты на %s



вот сделал
Код
/* 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>
#include <colorchat>

#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[b] < g_voteCount[a])
            b = a

    
    if (g_voteCount[SELECTMAPS] > g_voteCount[b]
        && 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)
        ColorChat(0, BLUE, "^x04Голосование завершено. Карта продлена на ^x03%.0f ^x04минут.", 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[b] && g_voteCount[SELECTMAPS + 1] <= g_voteCount[b])
    {
        ArrayGetString(g_mapName, g_nextName[b], smap, charsof(smap));
        set_cvar_string("amx_nextmap", smap);
    }

    
    get_cvar_string("amx_nextmap", smap, 31)
    ColorChat(0, BLUE, "^x04Голосование завершено. Следующая карта ^x03%s", 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)
            ColorChat(0, BLUE, "%s ^x04выбрал продление карты", name)
        else if (key < SELECTMAPS)
        {
            new map[32];
            ArrayGetString(g_mapName, g_nextName[key], map, charsof(map));
            ColorChat(0, BLUE, "%s ^x04выбрал ^x03%s", 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 ? "\r%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, "\r%d.\w %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, "\r%d.\w %L^n", SELECTMAPS + 1, LANG_SERVER, "EXTED_MAP", mapname)
        mkeys |= (1<<SELECTMAPS)
    }

    format(menu[pos], 511, "\r%d.\w %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")
    ColorChat(0, RED, "Пора выбирать следующую карту.")
    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)
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Vad64
сообщение 27.7.2010, 7:43
Сообщение #37
Стаж: 15 лет

Сообщений: 27
Благодарностей: 5
Полезность: 142

Цитата(Vad64 @ 23.7.2010, 17:58) *
вот сделал
Код
/* 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>
#include <colorchat>

#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[b] < g_voteCount[a])
            b = a

    
    if (g_voteCount[SELECTMAPS] > g_voteCount[b]
        && 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)
        ColorChat(0, BLUE, "^x04Голосование завершено. Карта продлена на ^x03%.0f ^x04минут.", 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[b] && g_voteCount[SELECTMAPS + 1] <= g_voteCount[b])
    {
        ArrayGetString(g_mapName, g_nextName[b], smap, charsof(smap));
        set_cvar_string("amx_nextmap", smap);
    }

    
    get_cvar_string("amx_nextmap", smap, 31)
    ColorChat(0, BLUE, "^x04Голосование завершено. Следующая карта ^x03%s", 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)
            ColorChat(0, BLUE, "%s ^x04выбрал продление карты", name)
        else if (key < SELECTMAPS)
        {
            new map[32];
            ArrayGetString(g_mapName, g_nextName[key], map, charsof(map));
            ColorChat(0, BLUE, "%s ^x04выбрал ^x03%s", 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 ? "\r%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, "\r%d.\w %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, "\r%d.\w %L^n", SELECTMAPS + 1, LANG_SERVER, "EXTED_MAP", mapname)
        mkeys |= (1<<SELECTMAPS)
    }

    format(menu[pos], 511, "\r%d.\w %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")
    ColorChat(0, RED, "Пора выбирать следующую карту.")
    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)
}



вот так переделпл

client_print(0, print_chat, "%L: %L", LANG_PLAYER, "FRIEND_FIRE", LANG_PLAYER, get_cvar_num("mp_friendlyfire") ? "ON" : "OFF")


ColorChat(0, BLUE, "Огонь в своих: %L", LANG_PLAYER, get_cvar_num("mp_friendlyfire") ? "ON" : "OFF")
}

так или вот так

ColorChat(0, BLUE, "Огонь в своих: %L", get_cvar_num("mp_friendlyfire") ? "ON" : "OFF")

как правильно

Отредактировал: Vad64, - 27.7.2010, 7:44
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 27.7.2010, 12:10
Сообщение #38
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

Код
ColorChat(0, BLUE, "%L: %L", LANG_PLAYER, "FRIEND_FIRE", LANG_PLAYER, get_cvar_num("mp_friendlyfire") ? "ON" : "OFF")
Или
Код
ColorChat(0, BLUE, "Огонь в своих: %L", LANG_PLAYER, get_cvar_num("mp_friendlyfire") ? "ON" : "OFF")
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Vad64
сообщение 27.7.2010, 14:02
Сообщение #39
Стаж: 15 лет

Сообщений: 27
Благодарностей: 5
Полезность: 142

Цитата(STR@TEG @ 27.7.2010, 12:10) *
Код
ColorChat(0, BLUE, "%L: %L", LANG_PLAYER, "FRIEND_FIRE", LANG_PLAYER, get_cvar_num("mp_friendlyfire") ? "ON" : "OFF")
Или
Код
ColorChat(0, BLUE, "Огонь в своих: %L", LANG_PLAYER, get_cvar_num("mp_friendlyfire") ? "ON" : "OFF")

а вот еще строка не пойму

client_print(0, print_chat, "%L", LANG_PLAYER, key ? "VOTED_AGAINST" : "VOTED_FOR", name)

VOTED_FOR = %s проголосовал "За"
VOTED_AGAINST = %s проголосовал "Против"
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 27.7.2010, 14:42
Сообщение #40
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

Что непонятного, все довольно просто:
Код
ColorChat(0, BLUE, "%L", LANG_PLAYER, key ? "VOTED_AGAINST" : "VOTED_FOR", name)

ps.gif Неблагодарный ты человек sad.gif

Отредактировал: STR@TEG, - 27.7.2010, 14:43
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
3 страниц V   1 2 3
 
Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: