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

SR_team

like pancake
BH Team
4,798
6,469
Такая проблема. Пользуюсь сайтом ip-api.com для получения информации об ip адресе. Передаю опкоду 0C65 ссылку "http://ip-api.com/line/5.10.15.20?lang=ru", он закачивает ответ в текстовый файл, все хорошо. Однако, при попытке прочитать и вывести информацию с файла, вместо русских символов отображаются крякозябры. Как можно это исправить?
конвертируй юникод в cp1251
 
  • Нравится
Реакции: Garrus

SR_team

like pancake
BH Team
4,798
6,469
Не подскажешь, как это можно сделать?
На, портируй в CLEO. функцию WideCharToMultiByte вызывать из kernel32.dll (https://msdn.microsoft.com/ru-ru/library/windows/desktop/dd374130(v=vs.85).aspx)
Код:
std::string Alphabet::utf8_encode(const std::wstring &wstr)
{
    int size_needed = WideCharToMultiByte(CP_UTF8, 0, &wstr[0], (int)wstr.size(), NULL, 0, NULL, NULL);
    std::string strTo(size_needed, 0);
    WideCharToMultiByte(CP_UTF8, 0, &wstr[0], (int)wstr.size(), &strTo[0], size_needed, NULL, NULL);
    return strTo;
}
 
  • Нравится
Реакции: Garrus

Сэнд

Известный
Проверенный
436
213
Как проверить игрока на наличие ника над головой?0B64: samp is_player 1@ npc не помогает.
 

Garrus

Известный
159
20
На, портируй в CLEO. функцию WideCharToMultiByte вызывать из kernel32.dll (https://msdn.microsoft.com/ru-ru/library/windows/desktop/dd374130(v=vs.85).aspx)
Код:
std::string Alphabet::utf8_encode(const std::wstring &wstr)
{
    int size_needed = WideCharToMultiByte(CP_UTF8, 0, &wstr[0], (int)wstr.size(), NULL, 0, NULL, NULL);
    std::string strTo(size_needed, 0);
    WideCharToMultiByte(CP_UTF8, 0, &wstr[0], (int)wstr.size(), &strTo[0], size_needed, NULL, NULL);
    return strTo;
}
В чем ошибка?
Код:
0AC8: 12@ = allocate_memory_size 75
0C11: memset destination 12@ value 0x0 size 75
0AC8: 21@ = allocate_memory_size 75
0C11: memset destination 21@ value 0x0 size 75
0AD3: 12@ = "http:%c%cip-api.com/line/5.10.15.20?lang=ru" 47 47
0C65: 11@ = download_url 12@ to_file "cleo\reg.txt"
0A9A: 0@ = openfile "cleo\reg.txt" mode "r"

for 13@ = 0 to 13
if 0AD7: read_string_from_file 0@ to 12@ size 75
then
0AA2: 10@ = load_library "kernel32.dll"
0AA4: 9@ = get_proc_address "WideCharToMultiByte" 10@
0AD3: 21@ = "CP_UTF8"
0AA7: address 9@ params 8 pop 0 21@ 0 12@ 75 0 0 NULL NULL 21@
0AF8: samp add_message_to_chat 21@ color -1
0AA3: free_library 10@
end
end
0AC9: free_allocated_memory 12@
0AC9: free_allocated_memory 21@
 
Последнее редактирование:

Garrus

Известный
159
20
это не строка

параметры передаются задом на перед
Все равно не хочет работать. :(
Код:
0AC8: 12@ = allocate_memory_size 75
0C11: memset destination 12@ value 0x0 size 75
0AC8: 21@ = allocate_memory_size 75
0C11: memset destination 21@ value 0x0 size 75
0AD3: 12@ = "http:%c%cip-api.com/line/5.10.15.20?lang=ru" 47 47
0C65: 10@ = download_url 12@ to_file "cleo\reg.txt"
0A9A: 1@ = openfile "cleo\reg.txt" mode "r"

for 13@ = 0 to 13
if 0AD7: read_string_from_file 1@ to 12@ size 75
then
0AA2: 10@ = load_library "Kernel32.DLL"
0AA4: 9@ = get_proc_address "WideCharToMultiByte" 10@
0AA7: address 9@ params 8 pop 0 0 0 75 21@ -1 12@ 0 CP_UTF8 2@
0AF8: samp add_message_to_chat 21@ color -1
0AA3: free_library 10@
end
end
0AC9: free_allocated_memory 12@
0AC9: free_allocated_memory 21@
 

SR_team

like pancake
BH Team
4,798
6,469
Все равно не хочет работать. :(
Код:
0AC8: 12@ = allocate_memory_size 75
0C11: memset destination 12@ value 0x0 size 75
0AC8: 21@ = allocate_memory_size 75
0C11: memset destination 21@ value 0x0 size 75
0AD3: 12@ = "http:%c%cip-api.com/line/5.10.15.20?lang=ru" 47 47
0C65: 10@ = download_url 12@ to_file "cleo\reg.txt"
0A9A: 1@ = openfile "cleo\reg.txt" mode "r"

for 13@ = 0 to 13
if 0AD7: read_string_from_file 1@ to 12@ size 75
then
0AA2: 10@ = load_library "Kernel32.DLL"
0AA4: 9@ = get_proc_address "WideCharToMultiByte" 10@
0AA7: address 9@ params 8 pop 0 0 0 75 21@ -1 12@ 0 CP_UTF8 2@
0AF8: samp add_message_to_chat 21@ color -1
0AA3: free_library 10@
end
end
0AC9: free_allocated_memory 12@
0AC9: free_allocated_memory 21@
а где объявление CP_UTF8? это же какое-то число
 

Rebrad

Новичок
4
0
Здравствуйте!
Хочу создать скрипт отправки сообщения в чат,но хоть убейте не могу найти нигде даже намека на подобный код.
Сам новичок,быстро учусь по примерам,но тут с такой проблемой столкнулся,жуть.
В общем хочу создать скрипт,чтобы в чат обычный отправлялась команда /usedrugs 8,а затем происходил сбив данной анимации.
Код сбива есть,как к нему мне правильно присобачить отправку сообщения в чат?
С меня лайк и свечка в церкви :-[
Спешу уточнить,скрипт для сампа версии 0.3e

Код:
//-------------MAIN---------------
0000: NOP
thread 'TAWER'
wait 0

:TAWER_17
wait 0
if
0AB0: key_pressed 81
else_jump @TAWER_17
0615: define_AS_pack_begin 18@
0605: actor -1 perform_animation "POINTUP_IN" IFP "PED" framedelta 4.0 loop 0 lockX 0 lockY 0 lockF 0 time 5
0618: assign_actor $PLAYER_ACTOR to_AS_pack 18@
061B: remove_references_to_AS_pack 18@
jump @TAWER_17
 

hnnssy

Известный
Друг
2,684
2,762
Здравствуйте!
Хочу создать скрипт отправки сообщения в чат,но хоть убейте не могу найти нигде даже намека на подобный код.
Сам новичок,быстро учусь по примерам,но тут с такой проблемой столкнулся,жуть.
В общем хочу создать скрипт,чтобы в чат обычный отправлялась команда /usedrugs 8,а затем происходил сбив данной анимации.
Код сбива есть,как к нему мне правильно присобачить отправку сообщения в чат?
С меня лайк и свечка в церкви :-[

Код:
//-------------MAIN---------------
0000: NOP
thread 'TAWER'
wait 0

:TAWER_17
wait 0
if
0AB0: key_pressed 81
else_jump @TAWER_17
0615: define_AS_pack_begin 18@
0605: actor -1 perform_animation "POINTUP_IN" IFP "PED" framedelta 4.0 loop 0 lockX 0 lockY 0 lockF 0 time 5
0618: assign_actor $PLAYER_ACTOR to_AS_pack 18@
061B: remove_references_to_AS_pack 18@
jump @TAWER_17
ух, тяжело же как найти 1 опкод, да?
0af9: "/usedrugs 8"
 
  • Нравится
Реакции: Rebrad

mac

HEY DARLING
1,317
911
Здравствуйте!
Хочу создать скрипт отправки сообщения в чат,но хоть убейте не могу найти нигде даже намека на подобный код.
Сам новичок,быстро учусь по примерам,но тут с такой проблемой столкнулся,жуть.
В общем хочу создать скрипт,чтобы в чат обычный отправлялась команда /usedrugs 8,а затем происходил сбив данной анимации.
Код сбива есть,как к нему мне правильно присобачить отправку сообщения в чат?
С меня лайк и свечка в церкви :-[
Спешу уточнить,скрипт для сампа версии 0.3e

Код:
//-------------MAIN---------------
0000: NOP
thread 'TAWER'
wait 0

:TAWER_17
wait 0
if
0AB0: key_pressed 81
else_jump @TAWER_17
0615: define_AS_pack_begin 18@
0605: actor -1 perform_animation "POINTUP_IN" IFP "PED" framedelta 4.0 loop 0 lockX 0 lockY 0 lockF 0 time 5
0618: assign_actor $PLAYER_ACTOR to_AS_pack 18@
061B: remove_references_to_AS_pack 18@
jump @TAWER_17
0af9: "text"
 
  • Нравится
Реакции: Rebrad

Rebrad

Новичок
4
0
ух, тяжело же как найти 1 опкод, да?
0af9: "/usedrugs 8"
сразу же крашит.
Что-то видимо делаю не так....
Уж простите,совсем недавно начал.
//-------------MAIN---------------
0000: NOP
thread 'TAWER'
wait 0

:TAWER_17
wait 0
if
0AB0: key_pressed 113
else_jump @TAWER_17
0AF9: samp say_msg "/usedrugs 8"
0615: define_AS_pack_begin 18@
0605: actor -1 perform_animation "POINTUP_IN" IFP "PED" framedelta 4.0 loop 0 lockX 0 lockY 0 lockF 0 time 5
0618: assign_actor $PLAYER_ACTOR to_AS_pack 18@
061B: remove_references_to_AS_pack 18@
jump @TAWER_17
Пробовал и 0AF9: "text", и как в коде выше.
Один раз нормально прогрузился,но при нажатии F2 - Error Opcode в чат.
Затем все равно краш.

P.S. Спасибо Вам за cleo time,использую с начала игры в самп.
 

BlackKnigga

Известный
BH Team
922
446
сразу же крашит.
Что-то видимо делаю не так....
Уж простите,совсем недавно начал.
//-------------MAIN---------------
0000: NOP
thread 'TAWER'
wait 0

:TAWER_17
wait 0
if
0AB0: key_pressed 113
else_jump @TAWER_17
0AF9: samp say_msg "/usedrugs 8"
0615: define_AS_pack_begin 18@
0605: actor -1 perform_animation "POINTUP_IN" IFP "PED" framedelta 4.0 loop 0 lockX 0 lockY 0 lockF 0 time 5
0618: assign_actor $PLAYER_ACTOR to_AS_pack 18@
061B: remove_references_to_AS_pack 18@
jump @TAWER_17
Пробовал и 0AF9: "text", и как в коде выше.
Один раз нормально прогрузился,но при нажатии F2 - Error Opcode в чат.
Затем все равно краш.

P.S. Спасибо Вам за cleo time,использую с начала игры в самп.
SF хоть установлен?