| Работа с INI через dll |
|
DreamRunner
| Дата: Суббота, 12.12.2009, 09:55 | Сообщение # 1 |
Админ
Группа: Админы
Сообщений: 1382
Статус: Offline
|
Говорят в ГМ инишки можно только в папке игры держать, а если я буду использовать dll для работы с ними, можно будет в любой папке их читать? Я проверил в ХР, работает. А в висте как? Использую Rini.dll
|
| |
| | |
|
WertyXBOCT
| Дата: Суббота, 12.12.2009, 11:28 | Сообщение # 2 |
Каждый 5й пост мой
Группа: Страж
Сообщений: 2467
Статус: Offline
|
DreamRunner, дай потрагать, скажу :). Вообще, можно же просто в папку с игрой компировать и читать так, а потом тупо удалять. Мне ини не нравится.
Blog:www.WeslomPo.ru mailto: i@weslompo.ru
|
| |
| | |
|
sanek-x107
| Дата: Суббота, 12.12.2009, 21:23 | Сообщение # 3 |
Хоть палкой гони
Группа: Проверенные
Сообщений: 770
Статус: Offline
|
Quote (WertyXBOCT) компировать У тебя от слова компилировать мозги едут. отдохни) Ини - это, конечно, удобно, но мне не нра. больше нравится делать свои файлы для каждого. А если еще и зашифровать, да с кетчупом и майонезом... ням-ням... (это уже мозги поехали у меня )
http://gmbook.sx107.netai.net Мама, я - дебил!
|
| |
| | |
|
Ang3L
| Дата: Суббота, 12.12.2009, 21:31 | Сообщение # 4 |
Каждый 5й пост мой
Группа: Админы
Сообщений: 2667
Статус: Offline
|
sanek-x107, ини придуманы не для того чтобы их шифровать, а наоборот чтобы в текстовом редакторе подредактировать настройки. Очень удобно когда игра не запускается или не позволяет выставить какую-то настройку (меня бесило то что в некоторых играх нельзя было выставить 1280х1024, а только 1280х960. А с ини это быстро решалось).
Blogpost
|
| |
| | |
|
sanek-x107
| Дата: Суббота, 12.12.2009, 22:14 | Сообщение # 5 |
Хоть палкой гони
Группа: Проверенные
Сообщений: 770
Статус: Offline
|
ну такое можно и в ини. А вот настройки наподобие констант уже надо шифровать.
http://gmbook.sx107.netai.net Мама, я - дебил!
|
| |
| | |
|
DreamRunner
| Дата: Воскресенье, 13.12.2009, 09:06 | Сообщение # 6 |
Админ
Группа: Админы
Сообщений: 1382
Статус: Offline
|
я сейчас прикручиваю ини для хранения карт. Формат для меня удобен, а дллка позволяет ещё и файл зашифровать, так что самое то.
|
| |
| | |
|
Wertolet
| Дата: Воскресенье, 13.12.2009, 10:07 | Сообщение # 7 |
|
Хоть палкой гони
Группа: Проверенные
Сообщений: 781
Статус: Offline
|
DreamRunner, мне ини кажутся проше в обрашений, но их использую только для настроек. Я думал, если использовать для карт/сейвов и т.п. то они чем-то не подходят, и все сразу начнут: "фу, нуб!" . А оказывается их можно как хочеш крутить? Теперь только ини.
|
| |
| | |
|
DreamRunner
| Дата: Воскресенье, 13.12.2009, 10:43 | Сообщение # 8 |
Админ
Группа: Админы
Сообщений: 1382
Статус: Offline
|
Wertolet, я не принципиальный))) Ну был у меня свой формат файла уровня, где я блоками сохранял таблицу тайлов и блоков с новой строки. Всё равно удобно когда до блока идёт его идентификация, а это тоже что и ини. К тому же в ини я могу хранить целые сценарии (по секции на каждый) из нескольких уровней и легко редактировать их.
|
| |
| | |
|
WertyXBOCT
| Дата: Воскресенье, 13.12.2009, 13:35 | Сообщение # 9 |
Каждый 5й пост мой
Группа: Страж
Сообщений: 2467
Статус: Offline
|
А я просто делаю свой формат файла и не заморачиваюсь с поиском длл. Я, помницо, даже парсер для ini написал, который сохранял файл в дата структуру. Добавлено (13.12.2009, 13:35) --------------------------------------------- Code #define iniBetween /* 0 - Переменная 1 - Начальный символ 2 - Конечный символ Достает строку между символоми арг1 и арг2 из строки арг0 */ var z, n; z = string_pos(argument1, argument0)+string_length(argument1); n = string_pos(argument2, argument0); return (string_copy(argument0, z, n-z));
#define iniClose //ini_open_ext(name); //-1 file does not exists ds_map_destroy(argument0);
#define iniDeleteSpace var i,j,s; s = argument0 if !is_string(s) return '-1'; while string_char_at(s,1) = ' ' s = string_delete(s,1,1) return s; #define iniDeleteSpaceRe var i,j,s; s = argument0 if !is_string(s) return '-1'; while string_char_at(s,string_length(s)) = ' ' s = string_delete(s,string_length(s),1) return s; #define iniGetReal var r; r = ds_map_find_value(argument0,argument1+'::'+argument2) return real(r); #define iniGetString return string(ds_map_find_value(argument0,argument1+'::'+argument2)); #define iniIsSection var s; s = iniDeleteSpace(argument0);
if string_char_at(s,1) = '[' and string_char_at(s,string_length(s)) = ']' return iniBetween(s,'[',']'); else return '-1'; #define iniOpen //ini_open_ext(name); //-1 file does not exists var map,f,txt,s,sect; txt=''; if !file_exists(argument0) return -1; map = ds_map_create(); ds_map_add(map,"имя",argument0); f = file_text_open_read(argument0); while !file_text_eof(f) { s = file_text_read_string(f); t = iniIsSection(s); if t ='-1' iniReadValue(s,map,sect) else {ds_map_add(map,t,t); sect = t;} file_text_readln(f) }; return map;
#define iniReadValue var s,eq,k,v; s = iniDeleteSpace(argument0); eq = string_pos('=',s)-1; k = string_copy(s,1,eq); v = iniDeleteSpaceRe(iniDeleteSpace(string_delete(s,1,string_length(k)+1))) k = argument2 + '::' + iniDeleteSpaceRe(iniDeleteSpace(k)) //show_message('"'+k+'"#"'+v+'"'); ds_map_add(argument1,k,v); Возможно код до конца не дописан
Blog:www.WeslomPo.ru mailto: i@weslompo.ru
|
| |
| | |
|
Wertolet
| Дата: Воскресенье, 13.12.2009, 16:51 | Сообщение # 10 |
|
Хоть палкой гони
Группа: Проверенные
Сообщений: 781
Статус: Offline
|
DreamRunner, а где ты rini.dll нашёл? Я только nini.dll нашёл 0_о
Сообщение отредактировал Wertolet - Воскресенье, 13.12.2009, 16:51 |
| |
| | |
|
DreamRunner
| Дата: Воскресенье, 13.12.2009, 17:49 | Сообщение # 11 |
Админ
Группа: Админы
Сообщений: 1382
Статус: Offline
|
|
| |
| | |
|
Wertolet
| Дата: Воскресенье, 13.12.2009, 18:08 | Сообщение # 12 |
|
Хоть палкой гони
Группа: Проверенные
Сообщений: 781
Статус: Offline
|
Спасибо. А я думал гугл находит всё и быстро...
|
| |
| |
|
|