Вопросы по CLEO-скриптингу

MogAika

Известный
Автор темы
Друг
237
441
Задаем вопросы как можно понятнее. Не стесняемся... (С) Mogaika

ну так ты как-раз их и не задаешь, ты говоришь: "запилите за меня вот эту хрень"
Твой вопросы не раз обсуждались, а ответы на них лежат на поверхности, достаточно подумать
 

Dark_Knight

Me, me and me.
Друг
4,067
2,080
Возьми чей-то скрипт с диалогами, декомпилируй его и посмотри.
 

Nextes

Новичок
34
0
Подскажите, каким опкодом можно сделать текст который будет писаться через несколько действий?
 

Dark_Knight

Me, me and me.
Друг
4,067
2,080
И выдели память для него. Если будет много текста то напиши сюда.
 

Dark_Knight

Me, me and me.
Друг
4,067
2,080
0ac8, 0ac9, 0ad3
Как не будешь использовать строку очищай память через 0ас9
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,460
0AD3: string_format 0@v формат "%d + %d = %d" 2 2 4
0AC9: free_memory 0@
0AC8: allocate_memory 260 store_to 0@
объясните че к чему

Писать белым шрифтом было обязательно?

0AD3 форматирование строки.
0AC8 выделение памяти под переменную. Правильное использование: 0AC8: 0@ = allocate_memory 260
0AC9 очищаем память переменной, после выделения(0AC8).
 

Dark_Knight

Me, me and me.
Друг
4,067
2,080
Еще раз выделишь текст белым текстом пошлю куда подальше.
Для 0@v не нужно выделять память, но она поддерживает только 15(или 16) символов
Если тебе в строку нужно 40 символов вставить то пишешь так
Код:
0AC8:0@ = 40
0ad3: "Ебанная врот залупа полная блять"
0af9: "%s" 0xFF00FF 0@
0ac9: 0@
0ac9 используешь, когда тебе данная переменная не нужна уже.
 

hnnssy

Известный
Друг
2,684
2,750
При использовании 0AC9: free_allocated_memory 7@ в чат идёт варнинг.
0AC8: 7@ = allocate_memory_size 128 // Выделяю память
0B36: samp 7@ = get_player_nickname 6@ // Получаю ник игрока
// тут провожу нужные мне действия //
0AC9: free_allocated_memory 7@ // Освобождаю память, тут-то и идёт варнинг
Но код работает. В чём может быть причина?
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,460
При использовании 0AC9: free_allocated_memory 7@ в чат идёт варнинг.
0AC8: 7@ = allocate_memory_size 128 // Выделяю память
0B36: samp 7@ = get_player_nickname 6@ // Получаю ник игрока
// тут провожу нужные мне действия //
0AC9: free_allocated_memory 7@ // Освобождаю память, тут-то и идёт варнинг
Но код работает. В чём может быть причина?

Под опкод 0B36 можно и не выделять память... проводя разные тесты, при очищении, ник может измениться на "A" и, в некоторых случаях, может привести к крашу.
 
  • Нравится
Реакции: hnnssy

hnnssy

Известный
Друг
2,684
2,750
Под опкод 0B36 можно и не выделять память... проводя разные тесты, при очищении, ник может измениться на "A" и, в некоторых случаях, может привести к крашу.

Просто дальше идёт 0C14: strcmp string1 string2, и думал, что для стрингов более 15-16 символов требуется выделение памяти.