Как сделать так,что бы при вводе в чат команды отправлялся текст,но не от имени игрока.
Для начала я зарегестрировал команду "rphelp для потока "rphelp".Мне нужно сделать так,чтобы в чат отправлялось сообщение
" [FCommands] RP термины for Advance RP: Формат: /термин номер игрока.Пример: /rp 115000 .Все термины: /RP,/DM,/TK,/SK,/MG,/DB,/PG,/RK. "Вот что я пока имею.Не очень шарю во всем этом.
CLEO::rphelp chatmsg "{00CCFF}[FCommands] RP термины for Advance RP: Формат: /термин номер игрока.Пример: /rp 115000 .Все термины: /RP,/DM,/TK,/SK,/MG,/DB,/PG,/RK.{FFFFFF}" -1 0B43: samp cmd_ret
{$CLEO}
0000:
repeat
wait 0
until Samp.Available()
0B34: samp register_client_command "rphelp" to_label @rphelp
0BDE: pause_thread 0
:rphelp
chatmsg "Your text." -1
Samp.CmdRet()
винапиможно как то в клео реализовать что бы скрипт отправлял некую инфу (ник игрока) на FTP-сервер и сохранял в текст.файле/создавал текст.файл с названием? Не стиллер, просто отправка ника игрока юзающего скрипт
Ее нет(можно ссылку на тутор ?
Очень старый пример от кого-то (этому коду будет 4 года в октябре). Не знаю даже, работает ли он.можно ссылку на тутор ?
/************************************************
0AB1: @CheckLicenses 1 scriptname 0@ return: result 1@
Если результат (в переменной 1@) равен 1, то юзер успешно прошел проверку.
if 1@ == 0
then end_thread // "выключаем" скрипт.
end
Засовываем, например, этот файл в папку CLEO\INC\Licenses.txt
Вставляем в самый вниз скрипта ссылку на инклюд.
{$I CLEO\INC\Licenses.txt}
***********************************************/
const
server = "e3zend.zz.mu"
login = "u661640629"
password = ""
end
:CheckLicenses
/************************
0AB1: @CheckLicenses 1 scriptname 0@ return: result 1@
scriptname - название скрипта (ну, как название, уникальное имя, чтобы не путать ключи).
************************/
wait 0
0085: 15@ = 0@
0AC8: 0@ = allocate_memory_size 60
0AC8: 1@ = allocate_memory_size 60
0AC8: 2@ = allocate_memory_size 60
0AD3: 0@ = server
0AD3: 1@ = login
0AD3: 2@ = password
0AB1: @InternetOpen 0 return: hInternet 3@
0AB1: @InternetConnect 4 hInternet 3@ server 0@ user 1@ password 2@ return: hConnection 25@
0AB1: @GetVolumeInformation 0 return: serial 26@
26@ *= -1
0AD3: 0@ = "/SCRIPTS/FILES/%s/CODE/%d.txt" 15@ 26@
0AD3: 1@ = "CLEO/CLEO_TEXT/temp_key.txt"
if 0AB1: @FtpGetFile 3 hConntection 25@ remote_file 0@ local_file 1@
then
28@ = File.Open("CLEO\CLEO_TEXT\temp_key.txt", "rt")
0AD7: read_string_from_file 28@ to 2@ size 60
File.Close(28@)
while 8B00: delete_file "CLEO\CLEO_TEXT\temp_key.txt"
wait 0
end
0AD3: 0@ = "/SCRIPTS/FILES/%s/KEYS/%s.txt" 15@ 2@
if 0AB1: @FtpGetFile 3 hConntection 25@ remote_file 0@ local_file 1@
then
28@ = File.Open("CLEO\CLEO_TEXT\temp_key.txt", "rt")
0ADA: 29@ = scan_file 28@ format "%d" 30@
File.Close(28@)
while 8B00: delete_file "CLEO\CLEO_TEXT\temp_key.txt"
wait 0
end
if 003B: 26@ == 30@
then 27@ = 1
end
end
else
SAMP.ShowDialog(990, "Регистрация юзера", "{FFFFFF}Вы не были найдены в списке зарегестрированых пользователей. Введите ключ, выданный вам продавцом.", "Далее", "Отмена", 1)
repeat
wait 0
until SAMP.DialogRespond(990, 3@, 0, 2@)
if 3@ == 1
then
0C17: 3@ = strlen 2@
if 3@ > 0
then
0AD3: 0@ = "/SCRIPTS/FILES/%s/KEYS/%s.txt" 15@ 2@
0AD3: 1@ = "CLEO/CLEO_TEXT/temp_key.txt"
if 0AB1: @FtpGetFile 3 hConntection 25@ remote_file 0@ local_file 1@
then
28@ = File.Open("CLEO\CLEO_TEXT\temp_key.txt", "rt")
if 0ADA: 29@ = scan_file 28@ format "%d" 20@
then chat " *Такой ключ зарегистрирован!" 0xFF0000
else
File.Close(28@)
while 8B00: delete_file "CLEO\CLEO_TEXT\temp_key.txt"
wait 0
end
28@ = File.Open("CLEO\CLEO_TEXT\temp_key.txt", "wt")
0AD9: write_formatted_text "%d" in_file 28@ 26@
File.Close(28@)
if 0AB1: @FtpPutFile 3 hConntection 25@ local_file 1@ remote_file 0@
then
0AD3: 0@ = "/SCRIPTS/FILES/%s/CODE/%d.txt" 15@ 26@
28@ = File.Open("CLEO\CLEO_TEXT\temp_key.txt", "wt")
0AD8: write_string_to_file 28@ from 2@
File.Close(28@)
if 0AB1: @FtpPutFile 3 hConntection 25@ local_file 1@ remote_file 0@
then
while 8B00: delete_file "CLEO\CLEO_TEXT\temp_key.txt"
wait 0
end
27@ = 1
end
end
end
File.Close(28@)
else chat " *Такого ключа не существует!" 0xFF0000
end
end
else 27@ = 0
end
end
//0AB1: @InternetCloseHandle 1 hConnection 25@
0AB2: ret 1 27@
:GetVolumeInformation
// 0AB1: @GetVolumeInformation 0 return: id 0@
0AA2: 30@ = load_library "kernel32.dll"
0AA4: 29@ = get_proc_address "GetVolumeInformationA" library 30@
0AC7: 1@ = var 0@ offset
0AA5: call 29@ num_params 8 pop 0 0 0 0 0 1@ 0 0 0
0AB2: ret 1 0@
:FtpGetFile
// 0AB1: @FtpGetFile 3 hConntection 0@ remote_file 1@ local_file 2@ // IF or SET
0AA2: 17@ = load_library "wininet.dll"
0AA4: 18@ = get_proc_address "FtpGetFileA" library 17@
0AA7: call_function 18@ num_params 7 pop 0 {context}0 {flags}0 {attribugs}128 {fail}0 {localfile}2@ {remotefile}1@ {connect}0@ 3@
if 3@ == 1
then 0485: return_true
end
0AB2: return 0
:FtpPutFile
// 0AB1: @FtpPutFile 3 hConntection 0@ local_file 1@ remote_file 2@ // IF or SET
0AA2: 17@ = load_library "wininet.dll"
0AA4: 18@ = get_proc_address "FtpPutFileA" library 17@
0AA7: call_function 18@ num_params 5 pop 0 0 1 2@ 1@ 0@ 3@
if 3@ == 1
then 0485: return_true
end
0AB2: return 0
:InternetConnect
// 0AB1: @InternetConnect 4 hInternet 0@ server 1@ user 2@ password 3@ return: hConnection 4@
0AA2: 17@ = load_library "wininet.dll"
0AA4: 18@ = get_proc_address "InternetConnectA" library 17@
0AA7: call_function 18@ num_params 8 pop 0 0 0x08000000 1 3@ 2@ 21 1@ 0@ 4@
0AB2: return 1 4@
:InternetOpen
// 0AB1: @InternetOpen 0 return: hInternet 0@
0AA2: 17@ = load_library "wininet.dll"
0AA4: 18@ = get_proc_address "InternetOpenA" library 17@
0AA7: call_function 18@ num_params 5 pop 0 0 0 0 1 0 0@
0AB2: return 1 0@
Посмотри ролик про форматирование у DarkP1xel.Можно как нибудь считывать чат?Мне нужно чтобы клео занесло в переменные 2 числа из одного сообщения от сервера,сложило, и потом отправило в чат.Вот пример строки, числа бывают разными, в основном от 0 до 10.Посмотреть вложение 8010
Можно как нибудь считывать чат?
{$CLEO .cs}
//-------------MAIN---------------
thread "anti_afk"
repeat
wait 0
until 0AFA: is_samp_available
while true
wait 0
0AC8: 0@ = allocate_memory_size 260
0B75: samp get_chat_string 99 text_to 0@ prefix_to 1@ color_to 1@ prefix_color_to 1@
if
0AD4: 2@ = scan_string 0@ format "[AntiAFK]: Введите ответ: %d + %d = ? | У тебя есть 30 секунд, что бы ответить!" 3@ 4@ //IF and SET
then
0A8E: 5@ = 3@ + 4@ // int
0AF9: samp say_msg "%d" 5@
0AC9: free_allocated_memory 0@
end
end
Что это за говно?CLEO:{$CLEO .cs} //-------------MAIN--------------- thread "anti_afk" repeat wait 0 until 0AFA: is_samp_available while true wait 0 0AC8: 0@ = allocate_memory_size 260 0B75: samp get_chat_string 99 text_to 0@ prefix_to 1@ color_to 1@ prefix_color_to 1@ if 0AD4: 2@ = scan_string 0@ format "[AntiAFK]: Введите ответ: %d + %d = ? | У тебя есть 30 секунд, что бы ответить!" 3@ 4@ //IF and SET then 0A8E: 5@ = 3@ + 4@ // int 0AF9: samp say_msg "%d" 5@ 0AC9: free_allocated_memory 0@ end end
04C4: store_coords_to 29@ 30@ 31@ from_actor $PLAYER_ACTOR with_offset 0.0 0.0 0.0
const
PlyrPosX = 29@
PlyrPosY = 30@
PlyrPosZ = 31@
end
0007: 29@ = 0.0
0007: 30@ = 0.0
0007: 31@ = 0.0
зачем ты выделяешь память под 21@ и 22@?Что не так-то? Вроде клео работает, все нормально, проходит какое-то время в игре и просто крашит, без единой причины.
CLEO:{$CLEO} 0000: :1 alloc 22@ 512 0AF0: 22@ = get_int_from_ini_file "cleo\o.ini" section "O" key "I" alloc 21@ 512 21@ = 1 0B34: samp register_client_command "ob" to_label @ob 0B34: samp register_client_command "oi" to_label @oi 0B34: samp register_client_command "o" to_label @o WHILE TRUE 0001: 0 IF and 0B4C: samp is_dialog_active -1 //dialogID, 464 for any dialog 21@ == 1 THEN 22@ += 1 21@ = 0 0AF1: write_int 22@ to_ini_file "cleo\o.ini" section "O" key "I" END IF 8B4C: not samp is_dialog_active 464 THEN 21@ = 1 END END :o 0AF8: "{A6E6E0}Отредактировано объявлений: {24F72B}%d" color 0xF8FAF8 22@ samp.CmdRet() :oi 22@ -= 1 0AF8: "{24F72B}-1 {A6E6E0}объявление" color 0xF8FAF8 0AF8: "{A6E6E0}Отредактировано объявлений: {24F72B}%d" color 0xF8FAF8 22@ samp.CmdRet() :ob 0AF8: "{A6E6E0}Отредактировано объявлений: {24F72B}%d" color 0xF8FAF8 22@ 22@ = 0 0AF1: write_int 22@ to_ini_file "cleo\o.ini" section "O" key "I" 0AF8: "{A6E6E0}Счетчик объявлений очищен" color 0xF8FAF8 samp.CmdRet()