Czy wiesz, że... na forum możesz uzyskać pomoc nt. modowania GTA?
Strona główna forum Szukaj Rejestracja
Witaj, nieznajomy!
Poprzedni 33 34 35 36 37 38 39 40 41 42 Następny
Postów: 628 Dołączył: 2009-01-22
#
Do czego dokładnie? IDB?
Za bardzo nie jest przydatne w praktyce, i wymaga IDA Pro.

___________________
Moderator
http://i.imgur.com/Abvv63y
Śledź mój kanał Twitter by być na bieżąco ze wszystkimi aktualizacjami moich modów!
Postów: 628 Dołączył: 2009-01-22
#
ŚWIETNA STRONKA.
Wszystkie mody są pobrane z serwisów takich jak GTA Forums i inne, a w dodatku nawet autorzy są przekręcani:
http://gtamoding.pl/infusions/pro_download_panel/download.php?did=1306

http://www.gtaforums.com/index.php?showtopic=460133

Coś mi się nie wydaje, żebym miał nick Lukass B...

___________________
Moderator
http://i.imgur.com/Abvv63y
Śledź mój kanał Twitter by być na bieżąco ze wszystkimi aktualizacjami moich modów!
Postów: 628 Dołączył: 2009-01-22
#
1. Zaktualizuj swoje sascm.ini i opcodes.txt ze strony w mojej sygnie - widać, że Twoja baza jest stara jak świat (request_model? To od paru lat nazywa się inaczej).

2. wait 0 > wait 10 :P

3. Zmienne globalne w CLEO to zło. ZAZ by się popłakał :(

4. Przesunięcie 02A7 przed odliczanie wchodzi w grę?

5. load_requested_models jest w SA całkowicie zbędne. SA przy 0247 automatycznie wczytuje go, potem trzeba tylko sprawdzić opcodem 0248, czy model jest już dostępny. Dowód?
IDB opcodu 038B:
Kod:
; __linkproc__ opcode_038B
@@opcode_038B:          ; load_requested_models
call    _renderTimerPause
push    0
call    _loadRequestedModels
add     esp, 4
call    _renderTimerResume
xor     al, al
jmp     loc_48569B


Opcode 0247 robi tą operację automatycznie.

W ogóle sam skrypt wyścigu najlepiej jest zrobić, używając jump_table albo tablic, ale to wyższa szkoła jazdy.

A samo odliczanie proponowałbym włożyć w pętlę for, ponieważ zakładam że jest ono po prostu odliczaniem od 20 do 'start':

Kod:
0006: 1@ = 20
0006: 32@ = 0 

while 0019:   1@ > 0
    wait 0
    if 
        0019:   32@ > 1000
    then
        000E: 1@ -= 1
        01E5: show_text_1number_highpriority GXT "NUMBER" number 1@ time 1000 flag 1
        0006: 32@ = 0 
    end
end


To coś wykona to samo co ręczne odliczanie :)

___________________
Moderator
http://i.imgur.com/Abvv63y
Śledź mój kanał Twitter by być na bieżąco ze wszystkimi aktualizacjami moich modów!
Postów: 628 Dołączył: 2009-01-22
#
To zależy od skryptu, jaki napisałeś. Pokaż tą część chociaż.

Nie możesz też najpierw stworzyć pierwszego checkpointu, a potem zacząć odliczanie?

___________________
Moderator
http://i.imgur.com/Abvv63y
Śledź mój kanał Twitter by być na bieżąco ze wszystkimi aktualizacjami moich modów!
Postów: 628 Dołączył: 2009-01-22
#
Powinno działać bez zarzutu, włącz Num Lock :P

___________________
Moderator
http://i.imgur.com/Abvv63y
Śledź mój kanał Twitter by być na bieżąco ze wszystkimi aktualizacjami moich modów!
Postów: 628 Dołączył: 2009-01-22
#
@G500
Oj, pomyliłem się w jednym miejscu, poprawka:
Kod:
{$CLEO}
0000: NOP

while true
    wait 0
    if
        00DF:   actor $PLAYER_ACTOR driving 
    then
        if
            0AB0:  key_pressed 0x6F // Ten opcode jest od sprawdzania klawiszy Virtual Key Codes, nie 00E1.
        then
            0811: 0@ = actor $PLAYER_ACTOR car_nosave // Lepsze niż 03C0 do takich operacji. Jeśli jednak skrypt będzie crashował, zamien to spowrotem.
            if
                096E:   car 0@ lowrider // 07FF działa tylko na lowriderach, więc to jest potrzebne.
            then
                07FF: set_car 0@ hydraulics 1 
            end
        end
    end
end


@BigOn
Znowu zmienne globalne...
Jak chcesz dać moda tylko na Blade, to zrób tak:

Kod:
{$CLEO}
0000: NOP

while true
    wait 0
    if
        00DD:   actor $PLAYER_ACTOR driving_car_with_model #BLADE
    then
        if
            0AB0:  key_pressed 0x6F
        then
            0811: 0@ = actor $PLAYER_ACTOR car_nosave
            07FF: set_car 0@ hydraulics 1 
        end
    end
end

___________________
Moderator
http://i.imgur.com/Abvv63y
Śledź mój kanał Twitter by być na bieżąco ze wszystkimi aktualizacjami moich modów!
Postów: 628 Dołączył: 2009-01-22
#
Nie można. Możesz pokombinować z hydrauliką jako car_component, ale nigdy nie bawiłem się z tym.

___________________
Moderator
http://i.imgur.com/Abvv63y
Śledź mój kanał Twitter by być na bieżąco ze wszystkimi aktualizacjami moich modów!
Postów: 628 Dołączył: 2009-01-22
#
Wiem że nieco to odkopię, ale jest dużo szybszy sposób na pobranie koordynatów. Gdy jest się w grze w miejscu, z którego chce się je pobrać, wracasz do Sanny Buildera, klikasz tam, gdzie koordynaty mają się wkleić i wciskasz Ctrl + Shift + C ;)
Obrót postaci też można pobrać, poprzez Ctrl + Shift + E.

___________________
Moderator
http://i.imgur.com/Abvv63y
Śledź mój kanał Twitter by być na bieżąco ze wszystkimi aktualizacjami moich modów!
Postów: 628 Dołączył: 2009-01-22
#
Panowie, nie używajcie zmiennych globalnych w skryptach CLEO.

Spróbuj tego:

Kod:
{$CLEO}
0000: NOP

while true
    wait 0
    if
        00DF:   actor $PLAYER_ACTOR driving 
    then
        if
            0AB0:  key_pressed 0x6F // Ten opcode jest od sprawdzania klawiszy Virtual Key Codes, nie 00E1.
        0811: 0@ = actor $PLAYER_ACTOR car_nosave // Lepsze niż 03C0 do takich operacji. Jeśli jednak skrypt będzie crashował, zamien to spowrotem.
        if
            096E:   car 0@ lowrider // 07FF działa tylko na lowriderach, więc to jest potrzebne.
        then
            07FF: set_car 0@ hydraulics 1 
        end
    end
end


O rany, TAB się nie wyświetlają i skrypt jest bardzo pomieszany przez to :/

Offtopic - czy moja sygna nie jest za duża?

___________________
Moderator
http://i.imgur.com/Abvv63y
Śledź mój kanał Twitter by być na bieżąco ze wszystkimi aktualizacjami moich modów!
Postów: 628 Dołączył: 2009-01-22
#
038B jest całkowicie zbędne w SA. Pickupu info nie trzeba też wczytywać :)

To jest CLEO? Jak tak, to polecałbym zmienić zmienną globalną na lokalną.

___________________
Moderator
http://i.imgur.com/Abvv63y
Śledź mój kanał Twitter by być na bieżąco ze wszystkimi aktualizacjami moich modów!
Postów: 628 Dołączył: 2009-01-22
#
Można również stanąć aktorem w miejscu, z którego chce się pobrać koordynaty, zminimalizować grę, w Sannym najechać kursorem w miejsce, gdzie chcemy aby koordynaty się pojawiły i nacisnąć Ctrl+Shift+C. Do obrotu (angle) służy hotkey Ctrl+Shift+E.

___________________
Moderator
http://i.imgur.com/Abvv63y
Śledź mój kanał Twitter by być na bieżąco ze wszystkimi aktualizacjami moich modów!
Postów: 628 Dołączył: 2009-01-22
#
Ani jedno, ani drugie nie pomagają. Wręcz sprawiają, że skrypt crashuje już przy wejściu do auta. Wcześniej crashowało, kiedy liczba 27@ zmieniała się z 0 na 1. Tak jakby skrypt nie mógł zapisać tej jedynki do pliku.
BTW. w pliku .ini nic się nie pojawia, ani przed crashem, ani po nim.

___________________
Moderator
http://i.imgur.com/Abvv63y
Śledź mój kanał Twitter by być na bieżąco ze wszystkimi aktualizacjami moich modów!
Postów: 628 Dołączył: 2009-01-22
#
Jak w temacie. Mam taki kod:
Kod:
// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007

{$VERSION 3.1.0027}
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP 
26@ = 0 

:NONAME_9
wait 0 
if 
   Actor.DrivingVehicleType($PLAYER_ACTOR, #SABRE)
else_jump @NONAME_9 
0A99: chdir 0 
0A9A: 2@ = openfile "CLEOODOMETER.INI" mode 119 // IF and SET 
0811: 1@ = actor $PLAYER_ACTOR car // versionC 
02E3: 0@ = car 1@ speed 
0@ *= 4.0 
0@ *= 10.0 
0@ /= 36.0 
01BD: 28@ = current_time_in_ms 
0093: 27@ = integer 27@ to_float 
0093: 28@ = integer 28@ to_float 
0093: 32@ = integer 32@ to_float 
0093: 31@ = integer 31@ to_float 
if 
0025:   28@ > 31@ // (float) 
else_jump @NONAME_198 
005B: 30@ += 0@ // (float) 
005B: 26@ += 0@ // (float) 
0087: 31@ = 28@ // (float) 
31@ += 1000.0 

:NONAME_198
008C: 31@ = float 31@ to_integer 
0087: 33@ = 30@ // (float) 
33@ /= 1000.0 
0087: 27@ = 26@ // (float) 
27@ /= 1000.0 
008C: 33@ = float 33@ to_integer 
033F: set_text_draw_letter_size 0.125 0.7 
045A: draw_text_1number 578.5 384.0 GXT 'NUMBER' number 33@  // ~1~
008C: 27@ = float 27@ to_integer 
033F: set_text_draw_letter_size 0.125 0.7 
045A: draw_text_1number 578.5 390.0 GXT 'NUMBER' number 27@  // ~1~
0A9E: writefile 2@ size 1 from 27@ 
03F0: enable_text_draw 0 
jump @NONAME_9
Skrypt działa dobrze, lecz tylko jeśli wywalę trzecią linijkę od góry (0A9E:). Chcę zapisywać na bieżąco liczbę do pliku odometer.ini, znajdującego się w folderze CLEO. Co robię źle?

___________________
Moderator
http://i.imgur.com/Abvv63y
Śledź mój kanał Twitter by być na bieżąco ze wszystkimi aktualizacjami moich modów!
Poprzedni 33 34 35 36 37 38 39 40 41 42 Następny
Created & Powered by MakG