Исходник Как сделать скрипт «Быстрый звонок Arizona-RP(G)»

Vintik

Мечтатель
Автор темы
Проверенный
1,449
900
Как можно назвать гайдом эту тему? Ты сам еще зелень, а лезешь в гайды
Причем тут я? В этой теме рассказано, как надо делать (ну там для динамических id я переделаю позже). А что это, если не гайд? Это исходник, считаешь?
Исходник, в котором каждая строка имеет комментарий, и код раз 10 в тему скинул, постоянно что-то добавляя и улучшая
 

AnWu

Guardian of Order
Всефорумный модератор
4,687
5,163
Причем тут я? В этой теме рассказано, как надо делать (ну там для динамических id я переделаю позже). А что это, если не гайд? Это исходник, считаешь?
Исходник, в котором каждая строка имеет комментарий, и код раз 10 в тему скинул, постоянно что-то добавляя и улучшая
Нет не гайд. Имхо.
 

imring

Ride the Lightning
Всефорумный модератор
2,355
2,516
как же удобно читать, когда текст выровнен по-центру...

require 'sampfuncs' -- для работы с SAMP функциями
вранье

if not isSampLoaded() and not isSampfuncsLoaded() then return end -- если самп не загружен – выгружаем скрипт
а про isSampfuncsLoaded?

samp.lua.................
когда откроется диалог
когда откроется диалог от сервера*

глобальная переменная
ладно

Так же прикрепляю тот скрипт, который упоминал в теме – "перезагружатор скриптов на Ctrl + R", автором которого является @FYP
зачем? https://www.blast.hk/threads/15481/
 

Vintik

Мечтатель
Автор темы
Проверенный
1,449
900
Давай ещё гайд с массивами, и как туда добавлять символы на примере.
Lua:
array = { 'a', 'b', 'c' } -- создаём начальный массив
table.insert(array, 'd') -- в конец добавляем символ 'd'
print(array) -- выводим массив. выведет: { 'a', 'b', 'c', 'd' }
Тут гайда-то и не надо.
 

Vintik

Мечтатель
Автор темы
Проверенный
1,449
900
А где найти все функции table?
1622215147502.png

Вот они. Что делает каждая по отдельности – гугли.
 

Akat

Активный
380
90
Сделай гайд по memory, на примере хоть погоду сменить или что то легче,пожалуйста.
 

Vintik

Мечтатель
Автор темы
Проверенный
1,449
900
Сделай гайд по memory, на примере хоть погоду сменить или что то легче,пожалуйста.
Адреса памяти чего-либо надо искать через специальную программу (например, Cheat Engine), это долгая история, но для GTA SA уже есть готовые адреса, найденные другими энтузиастами.
Заходим на сайт, ссылку на который оставил выше, и видим строку:
0xC81320 - [word] Текущая погода.
Это означает, что по адресу памяти хранится значение типа word (как я узнал, это 2 байта) – и это число означает текущую погоду. Теперь мы должны прочитать значение по адресу и узнать погоду.
Для работы с памятью можно использовать встроенный модуль memory. Ищем функцию, которая читает 2 байта:
1623260876417.png

И, используя её, выводим в чат текущую погоду для примера:
Lua:
memory = require 'memory'

function main()
    addEventHandler('onWindowMessage', function(msg, wparam, lparam)
        if msg == wm.WM_KEYDOWN or msg == wm.WM_SYSKEYDOWN then
            if wparam == vkeys.VK_X then -- если нажата клавиша X
                weather = memory.getint16(0xC81320) -- узнаем текущую погоду в памяти игры
                sampAddChatMessage('Текущая погода: ' .. tostring(weather), -1) -- выводим в чат
            end
        end
    end)
    wait(-1)
end
А можем и изменить:
Lua:
memory = require 'memory'

function main()
    sampRegisterChatCommand('setweather', setweather)
    wait(-1)
end

function setweather(arg) -- вызывается при написании команды /setweather
    weather = tonumber(arg) -- преобразуем строку (аргумнет команды) в число
    memory.setint16(0xC81320, weather) -- меняем текущую погоду в памяти игры
    sampAddChatMessage('Текущая погода изменена на ' .. arg, -1) -- выводим в чат
end
Теперь погоду сможем изменить с помощью команды /setweather [номер погоды].

P. S. Если я не отвечаю – значит занят, не надо писать много раз.
 
Последнее редактирование: