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

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

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

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

Mapchooser - Помогите!

Статус пользователя romoloid96
сообщение 9.2.2014, 19:44
Сообщение #1
Стаж: 12 лет

Сообщений: 15
Благодарностей: 2
Полезность: 0

Уважаемые форумчане, Доброе время суток!
Мне захотелось подправить Mapchooser: сделать так, что когда на сервере меньше 10 онлайн - список карт берется из одного файла, а если больше, то из другого (для теста брал значение 1 игрок и больше 1).
В общем, ничего сложного, но у меня какие-то странности... Список берется только с первого файла и в первом и во втором случае. Помогите пожалуйста найти ошибку!
Прилагается 2 варианта кода... уже хз.. перепробовал всё.. pardon.gif

Под спойлерами, не полный исходник, а только куски кода, отвечающие за это...

Первый вариант

public plugin_cfg( )
{
new mapcycle[64]

new numofp

numofp = get_playersnum()

if(numofp >= 2)
{
get_configsdir(mapcycle, charsmax(mapcycle) )
format(mapcycle, charsmax(mapcycle), "%s/mapsb.ini", mapcycle)
}
else
{
get_configsdir(mapcycle, charsmax(mapcycle) )
format(mapcycle, charsmax(mapcycle), "%s/mapsm.ini", mapcycle)
}

if( !file_exists( mapcycle ) )
get_cvar_string( "mapcyclefile", mapcycle, charsmax( mapcycle ) )

if( !file_exists( mapcycle ) )
copy( mapcycle, charsmax( mapcycle ), "mapcycle.txt" )


if( loadSettings(mapcycle) )
set_task( 15.0, "voteNextmap", 987456, "", 0, "b" )

formatex( g_MENU_name, charsmax( g_MENU_name ), "%L", "en", "CHOOSE_NEXTM" )
register_menucmd( register_menuid( g_MENU_name ), ( -1 ^ ( -1 << ( SELECTMAPS + 2 ) ) ), "countVote" )

}


Второй вариант

public plugin_cfg( )
{
new mapcycle[64]

new numofp

numofp = get_playersnum()

if(numofp >= 2)
{
get_configsdir(mapcycle, charsmax(mapcycle) )
format(mapcycle, charsmax(mapcycle), "%s/mapsb.ini", mapcycle)


if( !file_exists( mapcycle ) )
get_cvar_string( "mapcyclefile", mapcycle, charsmax( mapcycle ) )

if( !file_exists( mapcycle ) )
copy( mapcycle, charsmax( mapcycle ), "mapcycle.txt" )


if( loadSettings(mapcycle) )
set_task( 15.0, "voteNextmap", 987456, "", 0, "b" )

formatex( g_MENU_name, charsmax( g_MENU_name ), "%L", "en", "CHOOSE_NEXTM" )
register_menucmd( register_menuid( g_MENU_name ), ( -1 ^ ( -1 << ( SELECTMAPS + 2 ) ) ), "countVote" )
}
else
{
get_configsdir(mapcycle, charsmax(mapcycle) )
format(mapcycle, charsmax(mapcycle), "%s/mapsm.ini", mapcycle)


if( !file_exists( mapcycle ) )
get_cvar_string( "mapcyclefile", mapcycle, charsmax( mapcycle ) )

if( !file_exists( mapcycle ) )
copy( mapcycle, charsmax( mapcycle ), "mapcycle.txt" )


if( loadSettings(mapcycle) )
set_task( 15.0, "voteNextmap", 987456, "", 0, "b" )

formatex( g_MENU_name, charsmax( g_MENU_name ), "%L", "en", "CHOOSE_NEXTM" )
register_menucmd( register_menuid( g_MENU_name ), ( -1 ^ ( -1 << ( SELECTMAPS + 2 ) ) ), "countVote" )


}

}


В первом и во втором варианте одна и та же проблема (описал выше).
Заранее спасибо!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя gudaus
сообщение 9.2.2014, 19:47
Сообщение #2


Стаж: 14 лет

Сообщений: 1571
Благодарностей: 1211
Полезность: 741

Mapchooser4 не нравится? Там есть такя функция.

Ошибка вот.
Код
if(numofp >= 2)
{
get_configsdir(mapcycle, charsmax(mapcycle) )
format(mapcycle, charsmax(mapcycle), "%s/mapsb.ini", mapcycle)
}
else
{
get_configsdir(mapcycle, charsmax(mapcycle) )
format(mapcycle, charsmax(mapcycle), "%s/mapsm.ini", mapcycle)
}


Если число игроков больше 2, то первый файл, в противном случае второй.
Всегда первый будет, так как число игроков всегда больше 2.
Попробуй заменить 2 на 10.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя romoloid96
сообщение 9.2.2014, 20:12
Сообщение #3
Стаж: 12 лет

Сообщений: 15
Благодарностей: 2
Полезность: 0

gudaus,
Я это спецом написал 2... на тестовом сервере у себя на компе проверял... 1 игрок был а потом 2, но всёравно берется только 1 файл...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя romoloid96
сообщение 9.2.2014, 21:11
Сообщение #4
Стаж: 12 лет

Сообщений: 15
Благодарностей: 2
Полезность: 0

Извините, неправильно написал... При вот этом коде
Скрытый текст

if(numofp >= 2)
{
get_configsdir(mapcycle, charsmax(mapcycle) )
format(mapcycle, charsmax(mapcycle), "%s/mapsb.ini", mapcycle)
}
else
{
get_configsdir(mapcycle, charsmax(mapcycle) )
format(mapcycle, charsmax(mapcycle), "%s/mapsm.ini", mapcycle)
}


Оно ставит карты из второго списка, когда онлайн 2 чела... почему-то условие ложное... помогите плиз
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 9.2.2014, 21:59
Сообщение #5


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Код
[pawn][/pawn]

учимся пользоваться
лично я криво оформленный код даже не смотрю
ни одного отступа нет
учимся соблюдать правила оформления кода
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя romoloid96
сообщение 9.2.2014, 22:08
Сообщение #6
Стаж: 12 лет

Сообщений: 15
Благодарностей: 2
Полезность: 0

Legenda, Посмотри плиз
Скрытый текст

Код:

if(numofp >= 2)
{
get_configsdir(mapcycle, charsmax(mapcycle) )
format(mapcycle, charsmax(mapcycle), "%s/mapsb.ini", mapcycle)
}
else
{
get_configsdir(mapcycle, charsmax(mapcycle) )
format(mapcycle, charsmax(mapcycle), "%s/mapsm.ini", mapcycle)
}



Отредактировал: romoloid96, - 9.2.2014, 22:09
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 9.2.2014, 22:12
Сообщение #7


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Цитата(romoloid96 @ 10.2.2014, 0:08) *
Legenda, Посмотри плиз
Скрытый текст

Код:

if(numofp >= 2)
{
get_configsdir(mapcycle, charsmax(mapcycle) )
format(mapcycle, charsmax(mapcycle), "%s/mapsb.ini", mapcycle)
}
else
{
get_configsdir(mapcycle, charsmax(mapcycle) )
format(mapcycle, charsmax(mapcycle), "%s/mapsm.ini", mapcycle)
}


условие криво написано
но работать должно

осталось только узнать, когда именно проверяется данное условие
видимо один раз только при старте плагина,
а не каждый раз при вызове голосования
очевидно в этом и проблема
и правильно кстати использовать конструкцию вида
(условие) ? x : y
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя romoloid96
сообщение 10.2.2014, 10:35
Сообщение #8
Стаж: 12 лет

Сообщений: 15
Благодарностей: 2
Полезность: 0

Цитата(Legenda @ 9.2.2014, 23:12) *
условие криво написано
но работать должно

осталось только узнать, когда именно проверяется данное условие
видимо один раз только при старте плагина,
а не каждый раз при вызове голосования
очевидно в этом и проблема
и правильно кстати использовать конструкцию вида
(условие) x : y


хм.. ок спс, походу и правда вызов функции только в начале старта плагина, потому что нету нигде вызова этой функции..
я синтаксис этот языка не оч знаю, так пользуюсь знаниями С/С++...
а х и у это я так понял, елси правда то Х, а если ложь то Y ?

Отредактировал: romoloid96, - 10.2.2014, 10:36
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 10.2.2014, 10:39
Сообщение #9


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

http://amxxmodx.ru/lessons-on-pawn/242-ter...g-if-else-.html
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя romoloid96
сообщение 10.2.2014, 10:44
Сообщение #10
Стаж: 12 лет

Сообщений: 15
Благодарностей: 2
Полезность: 0

Цитата(Legenda @ 10.2.2014, 11:39) *


а почему обычная запись условия кривая?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 10.2.2014, 10:48
Сообщение #11


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Цитата(romoloid96 @ 10.2.2014, 12:44) *
а почему обычная запись условия кривая?

потом что правильно использовать
(условие) ? x : y
в данном случаи
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя romoloid96
сообщение 10.2.2014, 21:27
Сообщение #12
Стаж: 12 лет

Сообщений: 15
Благодарностей: 2
Полезность: 0

Эту проблему я решил! (Сделал вызов функции в соответствующем месте)

Помогите пожалуйста со следующей!

Как сделать чтобы когда большинство игроков игнорировали или нажимали на "None" то бралась карта не из mapcycle.txt а продливалась текущая.
Заранее спасибо!

Отредактировал: romoloid96, - 10.2.2014, 21:27
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: