Заменённые, удалённые и не добавленные опкоды

Список опкодов, которые не были добавлены, удалены или заменены по тем или иным причинам. В списке содержатся пояснения причин отсутствия/удаления ко всем группам опкодов. Пояснения, начинающиеся со слова "Lua" обозначают соответствующий аналог в Lua.

Опкод Lua Причина
v.019-alpha
0ADE string text = getTextLabelString(string GXT) при первом релизе была пропущена по ошибке. Роль этой функции выполняет getGxtText
0ADF addTextLabel(string GXT, string text) при первом релизе была пропущена по ошибке. Роль этой функции выполняет setGxtEntry
0AE0 removeTextLabel(string GXT) при первом релизе была пропущена по ошибке. Роль этой функции выполняет clearGxtEntry
0C66 int state = getDownloadState(int handle) контроль статуса загрузки осуществляется с помощью функции-калбэка (см. downloadUrlToFile)
0C7D releaseDownload(int handle) функция утратила своё назначение после обновления downloadUrlToFile
0AA7 int ret = callFunctionReturn(int function, int params, int pop, …) аналогичная функция callFunction обрела ровно ту же функциональность
0AA8 int ret = callMethodReturn(int function, int struct, int params, int pop, …) аналогичная функция callMethod обрела ровно ту же функциональность
Опкод SASCM
- Lua wait:
0001 0001=1,wait %1d% ms
- Lua math.abs:
0094 0094=1,make %1d% absolute_integer
0095 0095=1,make %1d% absolute_integer
0096 0096=1,make %1d% absolute_float
0097 0097=1,make %1d% absolute_float
- Lua math.random:
0098 0098=1,%1d% = random_float_in_ranges_0.0_to_1.0
0099 0099=1,%1d% = random_int_in_ranges_0_to_32767
0208 0208=3,%3d% = random_float_in_ranges %1d% %2d%
0209 0209=3,%3d% = random_int_in_ranges %1d% %2d%
- Lua math.sqrt:
01FB 01FB=2,%2d% = square_root %1d%
- Lua math.sin:
02F6 02F6=2,%2d% = sine %1d%
- Lua math.cos:
02F7 02F7=2,%2d% = cosine %1d%
- Lua io.open, io.close:
0A9A 0A9A=3,%3d% = openfile %1s% mode %2d%
0A9B 0A9B=1,closefile %1d%
- Lua file:read, file:write:
0A9D 0A9D=3,readfile %1d% size %2d% to %3d%
0A9E 0A9E=3,writefile %1d% size %2d% from %3d%
0AD7 0AD7=3,read_string_from_file %1d% to %2d% size %3d% // IF and SET
0AD8 0AD8=2,write_string_to_file %1d% from %2d% //IF and SET
- Lua string.format:
0AD3 0AD3=-1,%1d% = format %2s%
- Lua string.match:
0AD4 0AD4=-1,%3d% = scan_string %1d% format %2s%
- Lua file:seek:
0AD5 0AD5=3,file %1d% seek %2d% from_origin %3d% //IF and SET
- Lua math.exp, math.log:
0AEE 0AEE=3,%3d% = exp %1d% base %2d% //all floats
0AEF 0AEF=3,%3d% = log %1d% base %2d% //all floats
- Lua os.remove:
0B00 0B00=1,delete_file %1d%
- Lua os.remove (может удалять только пустые директории):
0B01 0B01=2,delete_directory %1d% with_all_files_and_subdirectories %2d%
- Lua bit.band, bit.bor, bit.bxor, bit.bnot, math.fmod, bit.rshift, bit.lshift:
0B10 0B10=3,%3d% = %1d% AND %2d%
0B11 0B11=3,%3d% = %1d% OR %2d%
0B12 0B12=3,%3d% = %1d% XOR %2d%
0B13 0B13=2,%2d% = NOT %1d%
0B14 0B14=3,%3d% = %1d% MOD %2d%
0B15 0B15=3,%3d% = %1d% SHR %2d%
0B16 0B16=3,%3d% = %1d% SHL %2d%
- Lua os.clock или localClock:
0BFE 0BFE=1,%1d% = get_tick_count
- Lua os.getenv:
0C67 0C67=3,get_windows_environment_variable %1d% to %2d% size %3d%
- Lua math.abs, math.deg, math.rad, math.sin, math.asin, math.cos, math.acos, math.tan, math.atan, math.pow, math.ceil, math.floor:
0C00 0C00=2,math %2d% = abs %1d% // (float)
0C01 0C01=2,math %2d% = radian_to_angle %1d% // (float)
0C02 0C02=2,math %2d% = angle_to_radian %1d% // (float)
0C03 0C03=2,math %2d% = sine %1d% // (float)
0C04 0C04=2,math %2d% = arcsine %1d% // (float)
0C05 0C05=2,math %2d% = cosine %1d% // (float)
0C06 0C06=2,math %2d% = arccosine %1d% // (float)
0C07 0C07=2,math %2d% = tangent %1d% // (float)
0C08 0C08=2,math %2d% = arctangent %1d% // (float)
0C09 0C09=3,math %3d% = power %1d% %2d% // (float)
0C0A 0C0A=2,math %2d% = ceil %1d% // (float)
0C0B 0C0B=2,math %2d% = floor %1d% // (float)
- Lua string.upper, string.lower, string.find, string.reverse, string.gmatch:
0C26 0C26=2,strupr in %1d% out %2d%
0C28 0C28=2,strlwr in %1d% out %2d%
0C2A 0C2A=3,%3d% = strchr %1d% char %2d%
0C2D 0C2D=2,strrev in %1d% out %2d%
0C16 0C16=3,%3d% = strtok string1 %1d% string2 %2d%
- Lua string.find:
0C18 0C18=3,%3d% = strstr string1 %1d% string2 %2d%
0C19 0C19=3,%3d% = strcspn string1 %1d% string2 %2d%
- Lua tonumber:
0C1A 0C1A=2,%2d% = atoi %1d%
0C1B 0C1B=2,%2d% = atof %1d%
- Lua tostring или string.format:
0C1C 0C1C=3,%3d% = itoa %1d% radix %2d%
0C2F 0C2F=4,%4d% = strtol %1d% radix %2d% store_end_to %3d%
- Считаются устаревшими:
0B2D 0B2D=3,write_samp_memory offset %1d% value %2d% size %3d%
0B2E 0B2E=3,%3d% = read_samp_memory offset %1d% size %2d%
- Легко реализуется встроенными средствами Lua:
0A9C 0A9C=2,%2d% = file %1d% size
0AD6 0AD6=1, end_of_file %1d% reached
0ADA 0ADA=-1,%3d% = scan_file %1d% format %2d% //IF and SET
0C21 0C21=2,stricmp string1 %1d% string2 %2d%
0C24 0C24=3,strncpy destination %1d% source %2d% size %3d%
0C25 0C25=3,strncmp string1 %1d% string2 %2d% size %3d%
0C27 0C27=3,strncat destination %1d% source %2d% size %3d%
0C29 0C29=3,%3d% = stristr string1 %1d% string2 %2d%
0C2B 0C2B=3,%3d% = strpbrk string %1d% control %2d%
0C2C 0C2C=3,%3d% = strrchr %1d% char %2d%
0C2E 0C2E=3,%3d% = strspn string1 %1d% string2 %2d%
- Заменён встроенной функцией isKeyDown:
0AB0 0AB0=1, key_pressed %1d%
- Для форматирования текста используется string.format:
0ACE 0ACE=-1,show_formatted_text_box %1s%
0ACF 0ACF=-1,show_formatted_styled_text %1s% time %2d% style %3d%
0AD0 0AD0=-1,show_formatted_text_lowpriority %1s% time %2s%
0AD1 0AD1=-1,show_formatted_text_highpriority %1s% time %2s%
0AD9 0AD9=-1,write_formatted_text %2d% in_file %1d%
0AED 0AED=3,%3d% = float %1d% to_string_format %2d%
- Реализовано путём автоматического вызова и передачи в качестве аргумента(ов) в обработчик:
0B35 0B35=1,samp %1d% = get_last_command_params
0BE5 0BE5=2,raknet %2d% = get_hook_param %1d%
- Легко реализуется встроенными средствами Lua, возможно будет добавлено в обновлениях:
0B66 0B66=5,render argb %1d% to_a %2d% r %3d% g %4d% b %5d%
0B67 0B67=5,render a %1d% r %2d% g %3d% b %4d% to_argb %5d%
- Реализовано встроенными средствами Lua:
0C13 0C13=2,strcpy destination %1d% source %2d%
0C14 0C14=2,strcmp string1 %1d% string2 %2d%
0C15 0C15=2,strcat destination %1d% source %2d%
0C17 0C17=2,%2d% = strlen %1d%
- Встроены в систему событий RakNet:
0BE1 0BE1=1,raknet setup_outcoming_rpc_hook %1d%
0BE2 0BE2=1,raknet setup_outcoming_packet_hook %1d%
0BE3 0BE3=1,raknet setup_incoming_rpc_hook %1d%
0BE4 0BE4=1,raknet setup_incoming_packet_hook %1d%
0BE6 0BE6=2,raknet set_hook_param %1d% = %2d%
0BE0 0BE0=1,raknet hook_ret %1d%
- Заменены встроенным модулем inicfg (v.018-alpha):
0AF0 0AF0=4,%4d% = get_int_from_ini_file %1s% section %2s% key %3s%
0AF1 0AF1=4,write_int %1d% to_ini_file %2s% section %3s% key %4s%
0AF2 0AF2=4,%4d% = get_float_from_ini_file %1s% section %2s% key %3s%
0AF3 0AF3=4,write_float %1d% to_ini_file %2s% section %3s% key %4s%
0AF4 0AF4=4,%4d% = read_string_from_ini_file %1s% section %2s% key %3s%
0AF5 0AF5=4,write_string %1s% to_ini_file %2s% section %3s% key %4s%
- Запланированы в будущих обновлениях (есть существующая реализация в виде модуля lfs):
0B02 0B02=2,move_file %1d% to %2d%
0B03 0B03=2,move_directory %1d% to %2d%
0B04 0B04=2,copy_file %1d% to %2d%
0B05 0B05=2,copy_directory %1d% to %2d%
- Заменены встроенным модулем memory (v.018-alpha):
0C10 0C10=3,memcpy destination %1d% source %2d% size %3d%
0C11 0C11=3,memset destination %1d% value %2d% size %3d%
0C12 0C12=3,memcmp buffer1 %1d% buffer2 %2d% size %3d%
0C22 0C22=3,bin %1d% to_hex %2d% size %3d%
0C23 0C23=3,hex %1d% to_bin %2d% buf_size %3d%
- Запланированы в ближайших обновлениях (реализуются средствами FFI):
0C0E 0C0E=3,%3d% = array %1d% element %2d%
0C0F 0C0F=3,array %1d% element %2d% = %3d%
0C1D 0C1D=4,%4d% = array %1d% element %2d% el_size %3d%
0C1E 0C1E=4,array %1d% element %2d% el_size %3d% = %4d%
0C1F 0C1F=4,%4d% = string_array %1d% element %2d% size %3d%
0C20 0C20=4,string_array %1d% element %2d% size %3d% = %4d%
- Внешние функции реализуются посредством модулей, а общие функции можно реализовать с помощью системы экспорта:
0C34 0C34=2,register_global_func %1d% to_label %2d%
0C35 0C35=-1,call_global_func %1d% params %2d%
0C36 0C36=-1,func_ret %1d%
0C37 0C37=1, is_global_func %1d% defined
0C38 0C38=2,get_global_func %1d% thread %2d% label %3d%
0C39 0C39=1,unregister_global_func %1d%
- Оставлены только аналоги (0C32 и 0C33):
0C30 0C30=2,math matrix %1d% to_quat %2d%
0C31 0C31=2,math quat %1d% to_matrix %2d%
- Заменены библиотекой encoding:
0C68 0C68=3,unicode_string %1d% to_ansi %2d% size %3d%
0C69 0C69=3,ansi_string %1d% to_unicode %2d% size %3d%
- Заменено функцией useRenderCommands:
03F0 03F0=1,enable_text_draw %1d%
- Были заменены скриптовыми потоками:
0C74 0C74=3,%3d% = create_timer_interval %1d% on_label %2d%
0C75 0C75=1,kill_timer %1d%
0C76 0C76=1,reset_timer %1d%
0C77 0C77=2,set_timer %1d% interval %2d%
0C78 0C78=2,set_timer %1d% active %2d%
0C79 0C79=1,is_timer %1d% active
0C7A 0C7A=2,%2d% = get_timer %1d% interval
0C7B 0C7B=2,%2d% = get_timer %1d% time_elapsed
0C7C 0C7C=2,%2d% = get_timer %1d% time_left