Автор Тема: хотел попросить  (Прочитано 6031 раз)

Оффлайн mike43842

  • Прохожий
  • *
  • Сообщений: 110
  • Репутация: +1/-0
    • mike43842
    • Просмотр профиля
    • lol
хотел попросить
« : Ноябрь 20, 2013, 08:53:47 am »
Админ, можете добавить уроки по изменению сферы миссии, ну или хотя бы подскажите где эту функцию найти в базе алиена?

Оффлайн Sektor

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 521
  • Репутация: +34/-0
    • Просмотр профиля
Re: хотел попросить
« Ответ #1 : Ноябрь 20, 2013, 09:57:46 am »
На данный момент вот тут не много информации есть.

Также рекомендую покопаться в этой функции 0x04C3F20 :

.text:004C3F20                                   sub_4C3F20      proc near               ; CODE XREF: _DrawHud+3823p
.text:004C3F20
.text:004C3F20                                   var_38          = dword ptr -38h
.text:004C3F20                                   var_34          = dword ptr -34h
.text:004C3F20                                   var_2C          = dword ptr -2Ch
.text:004C3F20                                   var_28          = dword ptr -28h
.text:004C3F20                                   var_20          = dword ptr -20h
.text:004C3F20                                   var_1C          = dword ptr -1Ch
.text:004C3F20                                   var_14          = dword ptr -14h
.text:004C3F20
.text:004C3F20 000 53                                            push    ebx
.text:004C3F21 004 56                                            push    esi
.text:004C3F22 008 57                                            push    edi
.text:004C3F23 00C 55                                            push    ebp
.text:004C3F24 010 31 DB                                         xor     ebx, ebx
.text:004C3F26 010 83 EC 28                                      sub     esp, 28h
.text:004C3F29 038 31 ED                                         xor     ebp, ebp
.text:004C3F2B 038 C7 04 24 38 7D 7D 00                          mov     [esp+38h+var_38], offset _radarBlips
.text:004C3F32
.text:004C3F32                                   loc_4C3F32:                             ; CODE XREF: sub_4C3F20+2C0j
.text:004C3F32 038 80 BD 5F 7D 7D 00 00                          cmp     ss:_radarBlips.inUse[ebp], 0
.text:004C3F39 038 0F 84 96 02 00 00                             jz      loc_4C41D5      ; default
.text:004C3F39                                                                           ; jumptable 004C3F55 case 3
.text:004C3F3F 038 8B 85 3C 7D 7D 00                             mov     eax, ss:_radarBlips.type[ebp]
.text:004C3F45 038 8B B5 3C 7D 7D 00                             mov     esi, ss:_radarBlips.type[ebp]
.text:004C3F4B 038 48                                            dec     eax
.text:004C3F4C 038 83 F8 04                                      cmp     eax, 4          ; switch 5 cases
.text:004C3F4F 038 0F 87 80 02 00 00                             ja      loc_4C41D5      ; default
.text:004C3F4F                                                                           ; jumptable 004C3F55 case 3
.text:004C3F55 038 FF 24 85 EC 00 69 00                          jmp     off_6900EC[eax*4] ; switch jump
.text:004C3F5C
.text:004C3F5C                                   loc_4C3F5C:                             ; DATA XREF: .data:off_6900ECo
.text:004C3F5C 038 E8 CF BE F8 FF                                call    IsOnMission     ; jumptable 004C3F55 case 4
.text:004C3F61 038 84 C0                                         test    al, al
.text:004C3F63 038 0F 85 6C 02 00 00                             jnz     loc_4C41D5      ; default
.text:004C3F63                                                                           ; jumptable 004C3F55 case 3
.text:004C3F69 038 66 8B 85 6A 7D 7D 00                          mov     ax, ss:_radarBlips.field_32[ebp]
.text:004C3F70 038 66 83 F8 03                                   cmp     ax, 3
.text:004C3F74 038 74 0A                                         jz      short loc_4C3F80
.text:004C3F76 038 66 83 F8 01                                   cmp     ax, 1
.text:004C3F7A 038 0F 85 55 02 00 00                             jnz     loc_4C41D5      ; default
.text:004C3F7A                                                                           ; jumptable 004C3F55 case 3
.text:004C3F80
.text:004C3F80                                   loc_4C3F80:                             ; CODE XREF: sub_4C3F20+54j
.text:004C3F80 038 A0 5A F9 68 00                                mov     al, byte_68F95A
.text:004C3F85 038 8A 0D 59 F9 68 00                             mov     cl, byte_68F959
.text:004C3F8B 038 6A 00                                         push    0
.text:004C3F8D 03C FF 35 88 FD 68 00                             push    dword_68FD88    ; float
.text:004C3F93 040 68 00 08 00 00                                push    800h            ; int
.text:004C3F98 044 68 E4 00 00 00                                push    0E4h            ; int
.text:004C3F9D 048 50                                            push    eax             ; char
.text:004C3F9E 04C A0 58 F9 68 00                                mov     al, byte_68F958
.text:004C3FA3 04C 51                                            push    ecx             ; char
.text:004C3FA4 050 50                                            push    eax             ; char
.text:004C3FA5 054 8B 44 24 1C                                   mov     eax, [esp+54h+var_38]
.text:004C3FA9 054 83 C0 18                                      add     eax, 18h
.text:004C3FAC 054 FF 35 54 FD 68 00                             push    flt_68FD54      ; float
.text:004C3FB2 058 50                                            push    eax             ; int
.text:004C3FB3 05C 0F B7 85 5C 7D 7D 00                          movzx   eax, ss:_radarBlips.field_24[ebp]
.text:004C3FBA 05C 6A 04                                         push    4               ; int
.text:004C3FBC 060 C1 E0 10                                      shl     eax, 10h
.text:004C3FBF 060 09 D8                                         or      eax, ebx
.text:004C3FC1 060 50                                            push    eax             ; int
.text:004C3FC2 064 E8 A9 C2 0A 00                                call    sub_570270
.text:004C3FC7 064 E9 06 02 00 00                                jmp     loc_4C41D2
.text:004C3FCC                                   ; ---------------------------------------------------------------------------
.text:004C3FCC
.text:004C3FCC                                   loc_4C3FCC:                             ; CODE XREF: sub_4C3F20+35j
.text:004C3FCC                                                                           ; DATA XREF: .data:off_6900ECo
.text:004C3FCC 038 8B 85 40 7D 7D 00                             mov     eax, ss:_radarBlips.entityHandle[ebp] ; jumptable 004C3F55 case 0
.text:004C3FD2 038 8B 0D E4 FD A0 00                             mov     ecx, ds:_VehiclePool ; this
.text:004C3FD8 038 50                                            push    eax             ; handle
.text:004C3FD9 03C E8 92 DC F8 FF                                call    CPool_CVehicle__atHandle
.text:004C3FDE 038 66 8B 8D 6A 7D 7D 00                          mov     cx, ss:_radarBlips.field_32[ebp]
.text:004C3FE5 038 66 83 F9 03                                   cmp     cx, 3
.text:004C3FE9 038 D9 EE                                         fldz
.text:004C3FEB 038 74 0A                                         jz      short loc_4C3FF7
.text:004C3FED 038 66 83 F9 01                                   cmp     cx, 1
.text:004C3FF1 038 0F 85 F9 01 00 00                             jnz     loc_4C41F0
.text:004C3FF7
.text:004C3FF7                                   loc_4C3FF7:                             ; CODE XREF: sub_4C3F20+CBj
.text:004C3FF7 038 0F BF 50 5C                                   movsx   edx, word ptr [eax+5Ch]
.text:004C3FFB 038 83 C0 34                                      add     eax, 34h
.text:004C3FFE 038 6A 05                                         push    5               ; int
.text:004C4000 03C 8B 3C 95 C8 D4 92 00                          mov     edi, ds:_modelPtrs[edx*4]
.text:004C4007 03C 8B 77 1C                                      mov     esi, [edi+1Ch]
.text:004C400A 03C 8D 7C 24 08                                   lea     edi, [esp+3Ch+var_34]
.text:004C400E 03C D9 46 24                                      fld     dword ptr [esi+24h]
.text:004C4011 03C 8D 30                                         lea     esi, [eax]
.text:004C4013 03C A5                                            movsd
.text:004C4014 03C DD D9                                         fstp    st(1)
.text:004C4016 03C A5                                            movsd
.text:004C4017 03C A5                                            movsd
.text:004C4018 03C A0 5E F9 68 00                                mov     al, byte_68F95E
.text:004C401D 03C 8A 0D 5D F9 68 00                             mov     cl, byte_68F95D
.text:004C4023 03C D9 05 90 FD 68 00                             fld     flt_68FD90
.text:004C4029 03C FF 35 88 FD 68 00                             push    dword_68FD88    ; float
.text:004C402F 040 68 00 04 00 00                                push    400h            ; int
.text:004C4034 044 68 FF 00 00 00                                push    0FFh            ; char
.text:004C4039 048 50                                            push    eax             ; char
.text:004C403A 04C A0 5C F9 68 00                                mov     al, byte_68F95C
.text:004C403F 04C 51                                            push    ecx             ; char
.text:004C4040 050 50                                            push    eax             ; char
.text:004C4041 054 8D 44 24 20                                   lea     eax, [esp+54h+var_34]
.text:004C4045 054 D8 C9                                         fmul    st, st(1)
.text:004C4047 054 D8 05 8C FD 68 00                             fadd    flt_68FD8C
.text:004C404D 054 FF 35 8C FD 68 00                             push    flt_68FD8C      ; float
.text:004C4053 058 50                                            push    eax             ; int
.text:004C4054 05C 0F B7 85 5C 7D 7D 00                          movzx   eax, ss:_radarBlips.field_24[ebp]
.text:004C405B 05C D8 44 24 30                                   fadd    [esp+5Ch+var_2C]
.text:004C405F 05C 6A 01                                         push    1               ; int
.text:004C4061 060 C1 E0 10                                      shl     eax, 10h
.text:004C4064 060 09 D8                                         or      eax, ebx
.text:004C4066 060 50                                            push    eax             ; int
.text:004C4067 064 D9 5C 24 38                                   fstp    [esp+64h+var_2C]
.text:004C406B 064 DD D8                                         fstp    st
.text:004C406D 064 E8 CE C2 0A 00                                call    sub_570340
.text:004C4072 064 83 C4 2C                                      add     esp, 2Ch
.text:004C4075 038 E9 5B 01 00 00                                jmp     loc_4C41D5      ; default
.text:004C4075                                                                           ; jumptable 004C3F55 case 3
.text:004C407A                                   ; ---------------------------------------------------------------------------
.text:004C407A
.text:004C407A                                   loc_4C407A:                             ; CODE XREF: sub_4C3F20+35j
.text:004C407A                                                                           ; DATA XREF: .data:off_6900ECo
.text:004C407A 038 8B 85 40 7D 7D 00                             mov     eax, ss:_radarBlips.entityHandle[ebp] ; jumptable 004C3F55 case 1
.text:004C4080 038 8B 0D AC F2 97 00                             mov     ecx, ds:_PedPool
.text:004C4086 038 50                                            push    eax
.text:004C4087 03C E8 24 DC F8 FF                                call    CPool_CPed__AtHandle
.text:004C408C 038 85 C0                                         test    eax, eax
.text:004C408E 038 74 20                                         jz      short loc_4C40B0
.text:004C4090 038 80 B8 AC 03 00 00 00                          cmp     byte ptr [eax+3ACh], 0
.text:004C4097 038 74 19                                         jz      short loc_4C40B2
.text:004C4099 038 8B 80 A8 03 00 00                             mov     eax, [eax+3A8h]
.text:004C409F 038 85 C0                                         test    eax, eax
.text:004C40A1 038 74 0D                                         jz      short loc_4C40B0
.text:004C40A3 038 EB 0D                                         jmp     short loc_4C40B2
.text:004C40A5                                   ; ---------------------------------------------------------------------------
.text:004C40A5 038 EB 09                                         jmp     short loc_4C40B0
.text:004C40A7                                   ; ---------------------------------------------------------------------------
.text:004C40A7 038 EB 09                                         jmp     short loc_4C40B2
.text:004C40A7                                   ; ---------------------------------------------------------------------------
.text:004C40A9 038 8D 84 20 00 00 00 00                          align 10h
.text:004C40B0
.text:004C40B0                                   loc_4C40B0:                             ; CODE XREF: sub_4C3F20+16Ej
.text:004C40B0                                                                           ; sub_4C3F20+181j
.text:004C40B0                                                                           ; sub_4C3F20+185j
.text:004C40B0 038 31 C0                                         xor     eax, eax
.text:004C40B2
.text:004C40B2                                   loc_4C40B2:                             ; CODE XREF: sub_4C3F20+177j
.text:004C40B2                                                                           ; sub_4C3F20+183j
.text:004C40B2                                                                           ; sub_4C3F20+187j
.text:004C40B2 038 66 8B B5 6A 7D 7D 00                          mov     si, ss:_radarBlips.field_32[ebp]
.text:004C40B9 038 66 83 FE 03                                   cmp     si, 3
.text:004C40BD 038 74 0A                                         jz      short loc_4C40C9
.text:004C40BF 038 66 83 FE 01                                   cmp     si, 1
.text:004C40C3 038 0F 85 0C 01 00 00                             jnz     loc_4C41D5      ; default
.text:004C40C3                                                                           ; jumptable 004C3F55 case 3
.text:004C40C9
.text:004C40C9                                   loc_4C40C9:                             ; CODE XREF: sub_4C3F20+19Dj
.text:004C40C9 038 83 C0 34                                      add     eax, 34h
.text:004C40CC 038 8D 7C 24 10                                   lea     edi, [esp+38h+var_28]
.text:004C40D0 038 8D 30                                         lea     esi, [eax]
.text:004C40D2 038 A5                                            movsd
.text:004C40D3 038 6A 05                                         push    5               ; int
.text:004C40D5 03C A5                                            movsd
.text:004C40D6 03C A5                                            movsd
.text:004C40D7 03C A0 5E F9 68 00                                mov     al, byte_68F95E
.text:004C40DC 03C 8A 15 5D F9 68 00                             mov     dl, byte_68F95D
.text:004C40E2 03C FF 35 88 FD 68 00                             push    dword_68FD88    ; float
.text:004C40E8 040 68 00 04 00 00                                push    400h            ; int
.text:004C40ED 044 68 FF 00 00 00                                push    0FFh            ; char
.text:004C40F2 048 50                                            push    eax             ; char
.text:004C40F3 04C A0 5C F9 68 00                                mov     al, byte_68F95C
.text:004C40F8 04C 52                                            push    edx             ; char
.text:004C40F9 050 50                                            push    eax             ; char
.text:004C40FA 054 8D 44 24 2C                                   lea     eax, [esp+54h+var_28]
.text:004C40FE 054 FF 35 94 FD 68 00                             push    dword_68FD94    ; float
.text:004C4104 058 50                                            push    eax             ; int
.text:004C4105 05C 0F B7 85 5C 7D 7D 00                          movzx   eax, ss:_radarBlips.field_24[ebp]
.text:004C410C 05C D9 44 24 3C                                   fld     [esp+5Ch+var_20]
.text:004C4110 05C D8 05 74 FD 68 00                             fadd    flt_68FD74
.text:004C4116 05C C1 E0 10                                      shl     eax, 10h
.text:004C4119 05C 09 D8                                         or      eax, ebx
.text:004C411B 05C D9 5C 24 3C                                   fstp    [esp+5Ch+var_20]
.text:004C411F 05C 6A 01                                         push    1               ; int
.text:004C4121 060 50                                            push    eax             ; int
.text:004C4122 064 E8 19 C2 0A 00                                call    sub_570340
.text:004C4127 064 E9 A6 00 00 00                                jmp     loc_4C41D2
.text:004C412C                                   ; ---------------------------------------------------------------------------
.text:004C412C
.text:004C412C                                   loc_4C412C:                             ; CODE XREF: sub_4C3F20+35j
.text:004C412C                                                                           ; DATA XREF: .data:off_6900ECo
.text:004C412C 038 8B 85 40 7D 7D 00                             mov     eax, ss:_radarBlips.entityHandle[ebp] ; jumptable 004C3F55 case 2
.text:004C4132 038 8B 0D E0 DB 94 00                             mov     ecx, ds:_ObjectPool ; this
.text:004C4138 038 50                                            push    eax             ; a2
.text:004C4139 03C E8 F2 DA F8 FF                                call    CPool_CObject__atHandle
.text:004C413E 038 66 8B 95 6A 7D 7D 00                          mov     dx, ss:_radarBlips.field_32[ebp]
.text:004C4145 038 66 83 FA 03                                   cmp     dx, 3
.text:004C4149 038 D9 EE                                         fldz
.text:004C414B 038 74 0A                                         jz      short loc_4C4157
.text:004C414D 038 66 83 FA 01                                   cmp     dx, 1
.text:004C4151 038 0F 85 9D 00 00 00                             jnz     loc_4C41F4
.text:004C4157
.text:004C4157                                   loc_4C4157:                             ; CODE XREF: sub_4C3F20+22Bj
.text:004C4157 038 0F BF 48 5C                                   movsx   ecx, word ptr [eax+5Ch]
.text:004C415B 038 83 C0 34                                      add     eax, 34h
.text:004C415E 038 6A 05                                         push    5               ; int
.text:004C4160 03C 8B 3C 8D C8 D4 92 00                          mov     edi, ds:_modelPtrs[ecx*4]
.text:004C4167 03C 8B 77 1C                                      mov     esi, [edi+1Ch]
.text:004C416A 03C 8D 7C 24 20                                   lea     edi, [esp+3Ch+var_1C]
.text:004C416E 03C D9 46 24                                      fld     dword ptr [esi+24h]
.text:004C4171 03C 8D 30                                         lea     esi, [eax]
.text:004C4173 03C A5                                            movsd
.text:004C4174 03C DD D9                                         fstp    st(1)
.text:004C4176 03C A5                                            movsd
.text:004C4177 03C A5                                            movsd
.text:004C4178 03C A0 5E F9 68 00                                mov     al, byte_68F95E
.text:004C417D 03C 8A 15 5D F9 68 00                             mov     dl, byte_68F95D
.text:004C4183 03C D9 05 40 FD 68 00                             fld     flt_68FD40
.text:004C4189 03C FF 35 88 FD 68 00                             push    dword_68FD88    ; float
.text:004C418F 040 68 00 04 00 00                                push    400h            ; int
.text:004C4194 044 68 FF 00 00 00                                push    0FFh            ; char
.text:004C4199 048 50                                            push    eax             ; char
.text:004C419A 04C A0 5C F9 68 00                                mov     al, byte_68F95C
.text:004C419F 04C 52                                            push    edx             ; char
.text:004C41A0 050 50                                            push    eax             ; char
.text:004C41A1 054 8D 44 24 38                                   lea     eax, [esp+54h+var_1C]
.text:004C41A5 054 D8 C1                                         fadd    st, st(1)
.text:004C41A7 054 D8 05 40 FD 68 00                             fadd    flt_68FD40
.text:004C41AD 054 FF 35 40 FD 68 00                             push    flt_68FD40      ; float
.text:004C41B3 058 50                                            push    eax             ; int
.text:004C41B4 05C 0F B7 85 5C 7D 7D 00                          movzx   eax, ss:_radarBlips.field_24[ebp]
.text:004C41BB 05C D8 44 24 48                                   fadd    [esp+5Ch+var_14]
.text:004C41BF 05C 6A 01                                         push    1               ; int
.text:004C41C1 060 C1 E0 10                                      shl     eax, 10h
.text:004C41C4 060 09 D8                                         or      eax, ebx
.text:004C41C6 060 50                                            push    eax             ; int
.text:004C41C7 064 D9 5C 24 50                                   fstp    [esp+64h+var_14]
.text:004C41CB 064 DD D8                                         fstp    st
.text:004C41CD 064 E8 6E C1 0A 00                                call    sub_570340
.text:004C41D2
.text:004C41D2                                   loc_4C41D2:                             ; CODE XREF: sub_4C3F20+A7j
.text:004C41D2                                                                           ; sub_4C3F20+207j
.text:004C41D2 064 83 C4 2C                                      add     esp, 2Ch
.text:004C41D5
.text:004C41D5                                   loc_4C41D5:                             ; CODE XREF: sub_4C3F20+19j
.text:004C41D5                                                                           ; sub_4C3F20+2Fj
.text:004C41D5                                                                           ; sub_4C3F20+35j
.text:004C41D5                                                                           ; sub_4C3F20+43j ...
.text:004C41D5 038 43                                            inc     ebx             ; default
.text:004C41D5                                                                           ; jumptable 004C3F55 case 3
.text:004C41D6 038 83 C5 38                                      add     ebp, 38h
.text:004C41D9 038 83 04 24 38                                   add     [esp+38h+var_38], 38h
.text:004C41DD 038 83 FB 4B                                      cmp     ebx, 4Bh
.text:004C41E0 038 0F 8C 4C FD FF FF                             jl      loc_4C3F32
.text:004C41E6 038 83 C4 28                                      add     esp, 28h
.text:004C41E9 010 5D                                            pop     ebp
.text:004C41EA 00C 5F                                            pop     edi
.text:004C41EB 008 5E                                            pop     esi
.text:004C41EC 004 5B                                            pop     ebx
.text:004C41ED 000 C3                                            retn
.text:004C41ED                                   ; ---------------------------------------------------------------------------
.text:004C41EE 000 89 C0                                         align 10h
.text:004C41F0
.text:004C41F0                                   loc_4C41F0:                             ; CODE XREF: sub_4C3F20+D1j
.text:004C41F0 038 DD D8                                         fstp    st
.text:004C41F2 038 EB E1                                         jmp     short loc_4C41D5 ; default
.text:004C41F2                                                                           ; jumptable 004C3F55 case 3
.text:004C41F4                                   ; ---------------------------------------------------------------------------
.text:004C41F4
.text:004C41F4                                   loc_4C41F4:                             ; CODE XREF: sub_4C3F20+231j
.text:004C41F4 038 DD D8                                         fstp    st
.text:004C41F6 038 EB DD                                         jmp     short loc_4C41D5 ; default
.text:004C41F6                                   sub_4C3F20      endp
« Последнее редактирование: Ноябрь 20, 2013, 09:33:20 pm от Sektor »

Оффлайн mike43842

  • Прохожий
  • *
  • Сообщений: 110
  • Репутация: +1/-0
    • mike43842
    • Просмотр профиля
    • lol
Re: хотел попросить
« Ответ #2 : Ноябрь 20, 2013, 09:36:40 pm »
Спасибо, только как я вижу в этой функции рисуются блипы, но мне нужна именно сфера именно там где она создается, ее форма и прпочее

Оффлайн Sektor

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 521
  • Репутация: +34/-0
    • Просмотр профиля
Re: хотел попросить
« Ответ #3 : Ноябрь 20, 2013, 10:05:20 pm »
Цитировать
Спасибо, только как я вижу в этой функции рисуются блипы, но мне нужна именно сфера именно там где она создается, ее форма и прпочее

Хорошо. Напомните мне опкод пожалуйста, который создает сферу. Есть же такие опкоды которые надо в условие помешать в цикле, при скриптинге.

Оффлайн mike43842

  • Прохожий
  • *
  • Сообщений: 110
  • Репутация: +1/-0
    • mike43842
    • Просмотр профиля
    • lol
Re: хотел попросить
« Ответ #4 : Ноябрь 20, 2013, 11:00:50 pm »
ну я юзаю вот этот опкод, он одновременно создает и блип и сферу - 02A7

Оффлайн Sektor

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 521
  • Репутация: +34/-0
    • Просмотр профиля
Re: хотел попросить
« Ответ #5 : Ноябрь 26, 2013, 11:36:46 am »
Ну, вот с этого адреса 0045719B надо копать. Там же хочу заметить еще и маркер используется на радаре.

Оффлайн Shagg_E

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 707
  • Репутация: +24/-4
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: хотел попросить
« Ответ #6 : Май 14, 2016, 10:53:36 am »
Напишу сюда, ибо похожих тем в этом разделе нет.
Если я создаю таймер:
Код: C++
  1. SetTimer(0,0, 0, (TIMERPROC)RealTimeMenu);
и мне нужно убить этот таймер, когда он отработает определенные действия, т.е. убить его изнутри себя...как мне это сделать?

В SCM можно было в любой момент закончить любой поток с помощью
end_thread- этой командой поток "убивал" сам себя.

Сразу скажу - мне не подойдет вариант, когда таймер придется убивать с другого лупа, ибо у меня их нет: плагин отрабатывает определенные функции и должен быть выгружен.

Оффлайн Sektor

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 521
  • Репутация: +34/-0
    • Просмотр профиля
Re: хотел попросить
« Ответ #7 : Май 14, 2016, 04:36:05 pm »
Была такая функция, для убивания таймера, называется KillTimer

Оффлайн Shagg_E

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 707
  • Репутация: +24/-4
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: хотел попросить
« Ответ #8 : Май 14, 2016, 04:59:39 pm »
Да, но Killtimer убивает таймер "со стороны", а мне нужно, чтобы таймер убил сам себя, когда появятся определенные условия(т.е. когда его задача будет выполнена)

Оффлайн Sektor

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 521
  • Репутация: +34/-0
    • Просмотр профиля
Re: хотел попросить
« Ответ #9 : Май 14, 2016, 05:32:10 pm »
Почему? Внутри тоже можно убить, по идее.

Оффлайн Shagg_E

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 707
  • Репутация: +24/-4
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: хотел попросить
« Ответ #10 : Май 14, 2016, 05:58:00 pm »
Как? У меня постоянно пишет ошибки всякие.
Как оформить killtimer, чтобы закрыть
Код: C++
  1. SetTimer(0,0, 0, (TIMERPROC)RealTimeMenu);
?
Я просто многое обшарил в поисках ответа, но моих знаний видимо не достаточно даже для того, чтобы сформулировать грамотно вопрос...

Оффлайн Shagg_E

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 707
  • Репутация: +24/-4
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: хотел попросить
« Ответ #11 : Май 14, 2016, 06:03:42 pm »
Вот такой таймер:

В одном месте он создается
Код: C++
  1. StartMenu = 0;
  2. SetTimer(0,0, 0, (TIMERPROC)RealTimeMenu);
Но! оттуда я не могу его закрыть, ибо это не луп, а DLL_PROCESS_ATTACH

А вот сам таймер:

Код: C++
  1. void RealTimeMenu()
  2. {
  3.         if(StartMenu==0)
  4.         {
  5.                 блаблабла
  6.                 StartMenu=1;
  7.         }
  8.         else if((StartMenu==1) && (*IsMenuActive==0))// && (*ActivateMenu==0))
  9.         {
  10.                 блаблабла
  11.                 StartMenu=2;
  12.         }
  13.         else if((StartMenu==2) && (*MenuID==32))
  14.         {
  15.                 блаблабла
  16.         }
  17.         else if((StartMenu==2) && (*MenuID==7) && (*IsMenuActive==0))
  18.         {
  19.                 блаблабла  <<<<<<<<<<<<< миссия выполнена, я сделал, что хотел
  20.                 StartMenu=3; <<<<<<<<<<и вот тут я вынужден ставить переменную на 3, чтобы условия больше не выполнялись, а нужно по-идее убить таймер
  21.         //KillTimer(RealTimeMenu);          <<<<<<<<<<<<<< так убить не получается
  22.         }
  23. }
« Последнее редактирование: Май 14, 2016, 06:07:05 pm от Shaggy »

Оффлайн Sektor

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 521
  • Репутация: +34/-0
    • Просмотр профиля
Re: хотел попросить
« Ответ #12 : Май 14, 2016, 09:27:55 pm »
Ну а так пробовал?

Где-то у нас есть, глобальная переменная верху:

Код: C++
  1. HWND hwndTimer;

После того как создали таймер получаем хендл:

Код: C++
  1. hwndTimer = SetTimer(0,0, 0, (TIMERPROC)RealTimeMenu);

В лупе вызываем:

Код: C++
  1. KillTimer(NULL, hwndTimer);

А вообще я не рекомендую юзать таймер из api. Лучше создать свой, используя фрейм/процесс игры и получая время с момента запуска и по нему ориентироваться, но тут нужны уже некоторые навыки.
« Последнее редактирование: Май 14, 2016, 09:35:39 pm от Sektor »

Оффлайн Shagg_E

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 707
  • Репутация: +24/-4
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: хотел попросить
« Ответ #13 : Май 14, 2016, 11:05:29 pm »
Так фишка-то в том, что этим
Код: C++
  1. KillTimer(NULL, hwndTimer);
таймер убивается из отдельного лупа, а мне нужно, чтобы он убил сам себя, когда закончит выполнение всех задач.
У меня нету отдельного лупа. Плагин должен отработать и вырубиться.
А другие способы создания таймеров мне еще рано осваивать - я с этой элементарщиной не могу разобраться...
Впрочем, я придумал, как приспособить незатыкающийся таймер, так что - не беда.
Сегодня-завтра создам темку про плагин(позволяет запиливать сцены в стартовом меню, как во многих играх), там будут сурсы и мб кто-нибудь пофиксит мои каракули(сам я настолько плох в этом, что не могу даже объяснить, что мне нужно)