| 
	
		
		
			| Проблема с Ini Файлами и улучшением обьекта |  |  |  | 
| overbolt | Дата: Воскресенье, 11 Января 2015, 21:59 | Сообщение # 1 |  |   Overbolt's Project Сейчас нет на сайте | Всем привет.Делаю для игры выбор языка.С Ini работаю впервые,вроде все сделал как в туториале,но не работает.В чем проблема?Сначала я задаю переменные в создании 
 Код global.Health="" global.XP=""
 global.Hunger=""
 global.Thrust=""
В Step открываю Ini файл
 
 Код if global.english=1 {
 ini_open("english.ini")
 
 global.Health=ini_read_string("Interface","Health","None")
 global.XP=ini_read_string("Interface","XP","None")
 global.Hunger=ini_read_string("Interface","Hunger","None")
 global.Thrust=ini_read_string("Interface","Thrust","None")
 ini_close()
И в рисовании уже записываю
 
 Код draw_text(view_xview + 34,view_yview + 5,""+string(global.Health) +string(global.hp)+"/"+string(global.maxhp)) draw_text(view_xview + 34,view_yview + 25,""+string(global.XP) +string(global.xp) + "/" + string(global.maxxp))
 draw_text(view_xview + 34,view_yview + 45,""+string(global.Hunger) +string(global.hunger)+ "/" + string(global.maxhunger))
 draw_text(view_xview + 34,view_yview + 65,""+string(global.Thrust) +string(global.thrust)+ "/" + string(global.maxthrust))
 
Но то,что я читаю с Ini всеравно не отображается в игре.
 
 И еще нашел в игре такой казус,когда сделал апгрейд зданий:
 Допустим по нажатию кнопки E происходит событие:
 если герой находится рядом с зданием и есть определенное количество ресурсов для улучшения,то я удаляю обьект и на этом-же месте создаю обьект этого же здания,только 2 уровня,и чтобы улучшить со 2 до третьего тоже используется тот-же код,только ресурсов нужно больше.Но не об этом.Чтобы улучшить от 1 до 2 уровня нужно допустим 20 ресурсов,а от 2 до 3 еще 40 ресурсов,от 3 до 4 еще 60 и тд.И вообщем если у героя есть 20+40+60 ресурсов и около здания первого уровня он нажимает E,то улучшается сразу до того уровня до которого максимум хватает ресурсов,а нужно чтобы улучшалось только до следующего уровня.Что делать?
 
 
 Сообщение отредактировал overbolt - Воскресенье, 11 Января 2015, 22:06 |  |  |  |  |  | 
| LunarPixel | Дата: Воскресенье, 11 Января 2015, 22:28 | Сообщение # 2 |  |   старожил Сейчас нет на сайте | Цитата overbolt (  ) Что делать?Много вариантов можно придумать, как, пожалуй, самый простой, попробуй использовать keyboard_clear(ord('E')). Поставь его в событие создания здания, или даже лучше в событие удаления.
 
 В ini у тебя предварительно что-нибудь записано заранее, вручную? ini лежит в папке с игрой?
 Если GMS, то ini, по умолчанию, создается в рабочей директории. Попробуй для теста в Create прописать:
 
 
 Код ini_open("english.ini") ini_write_string("Interface","Health","100");
 ini_close()
 
 ini_open("english.ini")
 global.XP=ini_read_string("Interface","XP","None");
 ini_close()
 
 show_message(global.XP);
И посмотри, выдаст тебе 100 в сообщении или нет.
 
 Так же, если у тебя после считывания global.english не изменяется, то нужно вытащить считывания из Step, а то получится, что он у тебя постоянно будет этот ini файл открывать/читать/закрывать.
 И если переменные у тебя числовые, то используй не ini_read_string/ini_write_string, а ini_read_real/ini_write_real.
 
 
   |  |  |  |  |  | 
| overbolt | Дата: Воскресенье, 11 Января 2015, 22:37 | Сообщение # 3 |  |   Overbolt's Project Сейчас нет на сайте | LunarPixel, Как раз таки в ini вручную добавил еще одну переменную,тоисть записывать нужно только через game maker? |  |  |  |  |  | 
| LunarPixel | Дата: Воскресенье, 11 Января 2015, 22:44 | Сообщение # 4 |  |   старожил Сейчас нет на сайте | overbolt, можно перейти в рабочую директорию и там изменять ini файл, но точно не помню, какой путь по умолчанию. Кажется: C:\Users\Пользователь\AppData\Local\Название проекта
 Но лучше всего задавать все через Game Maker, меньше хлопот, да и, как по мне, проще в управлении.
 
 
   |  |  |  |  |  | 
| overbolt | Дата: Вторник, 13 Января 2015, 14:32 | Сообщение # 5 |  |   Overbolt's Project Сейчас нет на сайте | LunarPixel, спасибо Добавлено (13 января 2015, 14:32)---------------------------------------------
 Еще появился вопрос,можно ли записать текст в ini в одну переменную,но чтобы отображалось как то так
 
 Код global.text=строчка1 строчка2
 строчка3
И если в draw_text введешь global.text в игре писалось в 3 строки.
 |  |  |  |  |  | 
| LunarPixel | Дата: Вторник, 13 Января 2015, 15:07 | Сообщение # 6 |  |   старожил Сейчас нет на сайте | overbolt, можно переносить используя символ "#" для переноса, попробуй строку с ним записать в ini, потом вывести. 
 Код global.text="строчка1#строчка2#строчка3"
 
   |  |  |  |  |  | 
| overbolt | Дата: Вторник, 13 Января 2015, 15:08 | Сообщение # 7 |  |   Overbolt's Project Сейчас нет на сайте | LunarPixel, Спасибо |  |  |  |  |  
 |