Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.
Модераторы: Subb98, liFe iS GoOD
Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.
В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.
Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.
Eternal » 10 сен 2017, 21:04
артист666 писал(а):Eternal, Для каких целей нужно сохранение?
Если для детрана, типа при перезаходе игрока чтобы он появлялся на том же месте, запись в файл не очень подходит.
Есть динамические массивы, они быстрее и менее затратны.
Для корректной замены строки в файле, нужно создать копию, в ней заменить строку, удалить старый, сохранить(переименовать) новый.
Нашел:
- Код: Выделить всё
stock replace_str_to_file(filename[], what[], with[])
{
if(!file_exists(filename)) return -1
static file; file = fopen(filename, "rt")
static size; size = file_size(filename, 1)
static buffer[512], i, line; i = -1
static bool:ret; ret = false
static Array:array; array = ArrayCreate(512)
while(++i < size)
{
fgets(file, buffer, charsmax(buffer))
if(ret || !equal(buffer, what))
{
ArrayPushString(array, buffer)
continue
}
ret = true
line = i
ArrayPushString(array, with)
}
fclose(file)
if(!ret)
{
ArrayDestroy(array)
return 0
}
file = fopen(filename, "wt"); i = -1
while(++i < size)
{
ArrayGetString(array, i, buffer, charsmax(buffer))
fputs(file, buffer)
}
fclose(file)
ArrayDestroy(array)
return line
}
Не утверждаю, что самый лучший вариант, писал давно.
Тут можно сразу записывать в новый...
Да верно понял что бы сохранялось месторасположение игрока при перезаходе.
-
Eternal
-
- Сообщения: 24
- Зарегистрирован: 23 янв 2017, 08:49
- Благодарил (а): 11 раз.
- Поблагодарили: 1 раз.
- Языки программирования: Php
NEoMASTERR » 10 сен 2017, 21:08
+Лучше массив (Array/Trie)
-
NEoMASTERR
-
- Сообщения: 832
- Зарегистрирован: 05 янв 2015, 16:38
- Благодарил (а): 43 раз.
- Поблагодарили: 188 раз.
- Опыт программирования: Около года
- Языки программирования: Counter-Strike 1.6
-
Вернуться в Скриптинг
Кто сейчас на конференции
Сейчас этот форум просматривают: Bing [Bot] и гости: 9