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

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

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

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

Получить число в строке

, Нужно получить число в строке
Статус пользователя lalochka1337
сообщение 16.5.2016, 20:25
Сообщение #1
Стаж: 12 лет

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

Собсна уже создавалась тема на amx-x(точка)ru - клик
Не получается получить число из строчки (.ini файла)
Собсна код:
Код:
Array:killn, Array:kills;

Код:
public plugin_precache() {
killn = ArrayCreate(1, 1);
kills = ArrayCreate(1, 1);
}

Код:
public fw_PlayerKilled_Post(victim, attacker, shouldgib) {
new players[32], pnum; get_players(players, pnum, "ch");
new g_Plname[32]; get_user_name(attacker, g_Plname, charsmax(g_Plname))

if(g_zombie[victim]) {
if(g_nemesis[victim]) {
zp_set_user_money(attacker, zp_get_user_money(attacker) + 1000, 1);

for(new i, player; i < pnum ; i++) {
player = players[i];

client_print(player, print_chat, "%s убил босса, за это он получает 1000$", g_Plname)
client_print(player, print_center, "%s убил босса, за это он получает 1000$", g_Plname)
}
}
} else if(g_survivor[victim]) {
zp_set_user_money(attacker, zp_get_user_money(attacker) + 1000, 1);

for(new i, player; i < pnum ; i++) {
player = players[i];

client_print(player, print_chat, "%s убил выжившего, за это он получает 1000$", g_Plname)
client_print(player, print_center, "%s убил выжившего, за это он получает 1000$", g_Plname)
}
}
}

Так работает, но мне нужно вместо "тысячи (1000)" получить число из строки. Как я (точнее подсказал Pafos с amx-x(точка)ru) пытался:
Код:
if(g_zombie[victim]) {
if(g_nemesis[victim]) {
new iSize = ArraySize(killn), iNum;
for(new i = 0; i < iSize; i++) {
iNum = ArrayGetCell(killn, i);
zp_set_user_money(attacker, zp_get_user_money(attacker) + iNum, 1);
client_print(attacker , print_chat , "ты убил немезиду, за это получаешь %d $", iNum);
}
}
} else if(g_survivor[victim]) {
new iSize = ArraySize(kills), iNum;
for(new i = 0; i < iSize; i++) {
iNum = ArrayGetCell(kills, i);
zp_set_user_money(attacker, zp_get_user_money(attacker) + iNum, 1);
client_print(attacker , print_chat , "ты убил выжившего, за это получаешь %d $", iNum);
}
}

Кто подскажет как верно сделать?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Legenda
сообщение 16.5.2016, 20:58
Сообщение #2


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

Стаж: 16 лет

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

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

Код
new szMSG[256], len - создаем массив
read_file("test.ini", 1, szMSG, charsmax(szMSG), len) - пишем в массив нужную строку
parse(const text[], arg1,len1,arg2,len2, ... , ... , argN,lenN ) - при необходимости парсим строку
new num = str_to_num(arg1) преобразуем строку в число(при необходимости, если парсили правильно - не нужно)


в чем проблема-то?)
1 минута в гугле и все понятно...

ps в твое коде вообще ни чего нет о получении данных из файла, бесполезный код выложил
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя lalochka1337
сообщение 16.5.2016, 21:18
Сообщение #3
Стаж: 12 лет

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

Legenda, эм, как же например какое-либо другое число в ЗМ моде получается?
Там же нет read_file, там через Array как то получается.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя lalochka1337
сообщение 16.5.2016, 21:23
Сообщение #4
Стаж: 12 лет

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

Legenda, забыл добавить:
Код:
else if(equal(key, "BONUS KILL NEMESSIS")) {
// Trim spaces
trim(key);
trim(value);

// Add to bonus array
ArrayPushCell(killn, str_to_num(key));
}
else if(equal(key, "BONUS KILL SURVIVOR")) {
// Trim spaces
trim(key);
trim(value);

// Add to bonus array
ArrayPushCell(kills, str_to_num(key));
}
это в load_customization_from_files()
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Unknown
сообщение 16.5.2016, 21:40
Сообщение #5
Стаж: 10 лет

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

Лол. Тут советчики быдлокодят больше чем автор.
read_file уже прошлое


Аткажитесъ от плагенов бес исходника.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя lalochka1337
сообщение 16.5.2016, 21:43
Сообщение #6
Стаж: 12 лет

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

Цитата(Unknown @ 16.5.2016, 22:40) *
Лол. Тут советчики быдлокодят больше чем автор.
read_file уже прошлое

Как же мне сделать?
Код то рабочий должен быть (в общем то), но не совсем правильно что-то сделал.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Unknown
сообщение 16.5.2016, 21:58
Сообщение #7
Стаж: 10 лет

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

lalochka1337, у меня лишь три вопроса: Здесь зачем используется Array ? Цикл по всем игрокам ради того чтобы отправить всем сообщение ?

client_print(0, print_chat/center, "blabla" ) уже не актуально?


Аткажитесъ от плагенов бес исходника.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя lalochka1337
сообщение 16.5.2016, 22:22
Сообщение #8
Стаж: 12 лет

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

Цитата(Unknown @ 16.5.2016, 22:58) *
lalochka1337, у меня лишь три вопроса: Здесь зачем используется Array ? Цикл по всем игрокам ради того чтобы отправить всем сообщение ?

client_print(0, print_chat/center, "blabla" ) уже не актуально?

В зп все настройки получаются через аррэй
Да, именно
Мне для примера
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Unknown
сообщение 16.5.2016, 22:40
Сообщение #9
Стаж: 10 лет

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

lalochka1337,
Цитата
В зп все настройки получаются через аррэй

вашем плагине Array ненужен. Хватит всего одно значение типа new g_iMoneyBonus и всё. Лучше выложите исходник .smа файл.

Отредактировал: Unknown, - 16.5.2016, 22:43


Аткажитесъ от плагенов бес исходника.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя lalochka1337
сообщение 16.5.2016, 22:45
Сообщение #10
Стаж: 12 лет

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

Скачивай Zombie Plague 4.3 fix5a с оленей
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
BestServer
сообщение 17.5.2016, 0:19
Сообщение #11
Стаж: 10 лет

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

Цитата(Unknown @ 16.5.2016, 23:40) *
Лол. Тут советчики быдлокодят больше чем автор.
read_file уже прошлое

Быдлокодерам, да и вообще не шибко умным людям свойственна принципиальность.
Где-то прочитали, что read_file медленнее и везде стараются показать свои познания.
Для read_file тоже есть применение.

И в чём проблема?
Если выводится "тысячи (1000)" можно или regex вырезать число или циклом перебрать, не затрагивая ничего другого.
Или ещё проще, разбить строку по (, потом заменить ), а может даже функция конвертирующая в число игнорирует другие символы)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Unknown
сообщение 17.5.2016, 6:53
Сообщение #12
Стаж: 10 лет

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

BestServer, И где я написал что read_file медленнее? Похоже это ты "где-то" это читал.
Лучше молчи и не умничай.

Отредактировал: Unknown, - 17.5.2016, 7:15


Аткажитесъ от плагенов бес исходника.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Unknown
сообщение 17.5.2016, 11:06
Сообщение #13
Стаж: 10 лет

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

lalochka1337, Лови мой пример код (с комментами).
Напиши в чате check для проверки.

Upd. Исправил небольшую ошибку перекачай.


Отредактировал: Unknown, - 17.5.2016, 11:16


Аткажитесъ от плагенов бес исходника.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя lalochka1337
сообщение 17.5.2016, 11:38
Сообщение #14
Стаж: 12 лет

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

Чет жестко тупанул
Проще сделать кварами
Не знаю зачем это хотел в .ini сделать.

Сделала кварами, рад.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Unknown
сообщение 17.5.2016, 11:53
Сообщение #15
Стаж: 10 лет

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

lalochka1337, Я же дал тебе нормальный пример. Ну как хочешь.

P.s Квар не самый лучший вариант. Увеличиться еще одна лишняя проверка: get_pcvar_num.

В принципе не страшно даже и есть плюси.

Отредактировал: Unknown, - 17.5.2016, 11:54


Аткажитесъ от плагенов бес исходника.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: