Как можно чтобы текст из chatmsg выполнился только один раз?
repeat
wait 0
until SAMP.Available()
WHILE TRUE
WAIT 0
if
call @is_cp_active_LS 0
then
call @get_cp_pos_LS 0 0@ 1@ 2@
if and
0@ == 1554.532104
1@ == -1675.580688
2@ == 16.195313
then
018C: play_sound 1052 at 0.0 0.0 0.0
chatmsg "text1" -1
else
if and
0@ == 2287.257813
1@ == 2431.447998
2@ == 10.820302
then
018C: play_sound 1052 at 0.0 0.0 0.0
chatmsg "text2" -1
else
if and
0@ == -1605.046143
1@ == 711.501038
2@ == 13.867177
then
018C: play_sound 1052 at 0.0 0.0 0.0
chatmsg "text3" -1
end
end
end
end
end
end
:is_cp_active_LS
0AA2: 0@ = loadlib "samp.dll"
0A8E: 1@ = 0@ + 0x21A10C
0A8D: 1@ = readMem 1@ sz 4 vp 0
1@ += 0x24
0A8D: 1@ = readMem 1@ sz 4 vp 0
IF 1@ == TRUE
THEN 0485: return_true
ELSE 059A: return_false
END
0AA3: freelib 0@
0AB2: ret 0
:get_cp_pos_LS
0AA2: 0@ = loadlib "samp.dll"
0A8E: 1@ = 0@ + 0x21A10C
0A8D: 1@ = readMem 1@ sz 4 vp 0
1@ += 0xC
0A8D: 2@ = readMem 1@ sz 4 vp 0
1@ += 0x4
0A8D: 3@ = readMem 1@ sz 4 vp 0
1@ += 0x4
0A8D: 4@ = readMem 1@ sz 4 vp 0
0AA3: freelib 0@
0AB2: ret 3 2@ 3@ 4@
Добавь себе дополнительную переменную, которой будешь присваивать значение при активации, и обнулять его когда действие будет выполнятся, а в условии укажи эту переменную, после того как отправляешь сообщение, обнуляй ее, и действие не повторится, пока ты опять не присвоишь нужное значение переменной.
Или допустим, напиши себе функцию которая будет выводить сообщение, встал на координаты - вызвал функцию, вернула тру значит присвоил значение переменной, допустим 1, дальше пока переменная не 0 и не больше 1 оно ничего не делает с данным участком кода, а ищет условия дальше, допустим нашло другие координаты и присвоило 2, все теперь этот участок в ожидании, а оно проверяет все остальные координаты.
Ну как то так, если словами, думаю ты суть уловил. Если нужен пример, пиши.