[ Новые сообщения · Участники · Правила форума · Поиск · RSS ] |
Фан Форум для LF'айтеров Игрострой Модострой LF2 Стейты,эффекты,кинды и прочее (для использования в .dll) |
Стейты,эффекты,кинды и прочее |
Захотелось уметь делать всякие там стейты каинды, и прочее...
Я взял пример от подкачки: CMP EAX,5000 ;Минимальное значение стейта, я это понял jl xzxz ;Я это тоже понял кажется, если стейт меньше 5000 то перемещается стейту который здесь написан jl xzxz, если нет то к ретрун. CMP EAX,5999 ;Максимальное значение стейта. jge xzxz ;Тоже как это "jl" но немножко другое. sub eaX,5000 ;Я это не понял, скажи пожалуйста что это MOV EDX,DWORD PTR DS:[EBX+EDI*4+194h] ; Ну это немножко понятно add dword ptr ds:[edx+308h] ;Это понятно, но откуда ты взял число "308"? cmp dword ptr ds:[edx+308h],500 ;Это понятно, но откуда ты взял число "500" jle return ;Не понял, объясни плз mov dword ptr ds:[edx+308h],500 ;Не очень то понятно Ответьте на мои вопросы плз Добавлено (23/03/2012, 11:13) |
CMP EAX,5000 ;+
jl xzxz ;правильно понял, jl - jump less (прыжок если значение меньше) CMP EAX,5999 ;+ jge xzxz ;jump great or equal т.е. если больше или равно sub eaX,5000 ;вычитаем из eax'а значение, для последующего использования MOV EDX,DWORD PTR DS:[EBX+EDI*4+194h] ; точка обращения к обьекту Прокомментирую вторую часть тогда,когда школололо из тебя выйдет И начнёшь относится к людям как к равным |
Code defholdxxx: CMP EAX,25000 jl return CMP EAX,25800 ;Почему 25800 а не 25999? jge return MOV EDX,DWORD PTR DS:[EBX+EDI*4+194h] cmp byte ptr ds:[edx+0CCh],0 ;Это назначение кнопки если я не ошибаюсь, [edx+0CCh] ноль и h не трогаем, "CC" это код клавиши "удерживания блока". je defhold1 ;Кажется перемешается к "defhold1", но из-за чего перемешается туда я не понял. jmp return Для чего они используются? Code State8xxx proc CMP EAX,21 je holdforward CMP EAX,22 je holdbackward CMP EAX,23 je holdatk CMP EAX,24 je holdjmp CMP EAX,25 je holddef CMP EAX,1F40h jl state4xxx CMP EAX,2328h jge state4xxx jmp Transform1 [ Маленький Фриз говорит: это сообщение было отредактировано!] |
Если нажать "назад" то персонаж перейдет в определенный кадр
Code Bakward: CMP EAX,92000 jl return CMP EAX,92800 jge return MOV EDX,DWORD PTR DS:[EBX+EDI*4+194h] cmp byte ptr ds:[edx+080h],0 je press1left jmp press1right BakwardYes: sub eax,92000 mov dword ptr ds:[edx+70h],eax add dword ptr ds:[edx+70h],0 jmp return press1left: cmp byte ptr ds:[edx+0CFh],1 je BakwardYes jmp return press1right: cmp byte ptr ds:[edx+0D0h],1 je BakwardYes jmp return return: jmp Transform2 |
SURIK, Сделал эдит сдесь
Code cmp byte ptr ds:[edx+080h],0 ; 0 Беквард, 1 Фовард Добавлено (26/08/2012, 21:15) --------------------------------------------- Code Bakward: CMP EAX,92000 jl return ;Дальше по порядку, если не то реутрн CMP EAX,92800 jge return ;Дальше по порядку, если не то реутрн MOV EDX,DWORD PTR DS:[EBX+EDI*4+194h] ;Обозначаем что это обьект cmp byte ptr ds:[edx+080h],0 ;Фейсинги Ну там по этим присвлево1 и присвправо1 ;Можно сделать 0 Беквард, 1 Фовард je press1left ;равно или равно кажись jmp press1right ;хер его знает BakwardYes: sub eax,92000 mov dword ptr ds:[edx+70h],eax ;Без действие, ну там фрей нету add dword ptr ds:[edx+70h],0 ;И это туда же jmp return ;Прости прощай, и до свидания press1left: cmp byte ptr ds:[edx+0CFh],1 je BakwardYes jmp return press1right: cmp byte ptr ds:[edx+0D0h],1 je BakwardYes jmp return return: jmp Transform2 ;Transform2 dd 0041F675h Адрес можно найти через ольку [ Маленький Фриз говорит: это сообщение было отредактировано!] |
| |||