Czy wiesz, że... na forum możesz uzyskać pomoc nt. modowania GTA?
Strona główna forum Szukaj Rejestracja
Witaj, nieznajomy!
Poprzedni 1 Następny
Postów: 13 Dołączył: 2011-12-07
#
Dziękuję za pomoc i rady, działa elegancko. Tylko, że efekt jest inny od zamierzonego, ponieważ muzyka odtwarza się na zewnątrz, a chciałem aby była w domu CJ'a. Następna sprawa to to, że właśnie zależy mi na tym, żeby mp3 odtwarzało się cały czas. No i czy da się ją zciszyć którymś z tych opcodów?

Kod:
0ABB 0@ = audiostream $hMP3 volume

Kod:
0ABC set_audiostream $hMP3 volume 0@


Postów: 13 Dołączył: 2011-12-07
#
Odświeżam i przy okazji dodaję skrypt, który próbowałem zrobić. Zrobiłem to tak, żeby mp3 odtwarzało się w domu CJ'a na GS. No i jak załaduję zapis w tym domu, to słychać muzykę, ale jednocześnie wyskakuje błąd gta_sa.exe. Co trzeba poprawić, albo dodać?

Kod:
{$VERSION 3.1.0027}
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP 

:NONAME_2
wait 250 
if 
   Player.Defined(0)
if 
00FE:   actor $PLAYER_ACTOR sphere 0 in_sphere 2495.996 -1699.918 1014.742 radius 50.0 50.0 40.0 
0AAC: $HMP3 = load_mp3 "CLEO\MUSIC\SAVEROOM.MP3" 
0AAD: set_mp3 0@ perform_action 1 
if 
   Player.Defined(0)
00F2:   actor $PLAYER_ACTOR near_actor 0 radius 60.0 60.0 50.0 
0AAD: set_mp3 0@ perform_action 0 
jump @NONAME_2


Wiem, że jest prymitywny, ale sklejałem to z kilku innych skryptów. Mam jeszcze pytanie, jak zmniejszyć głośność odtwarzanego mp3?
Postów: 13 Dołączył: 2011-12-07
#
Ok, działa. Tylko musiałem usunąć kastet... ;/ Ostatnie pytanie w tym temacie - da się połączyć styl walki z kastetem?
Postów: 13 Dołączył: 2011-12-07
#
Dzięki za odpowiedź, spróbuję zmniejszyć HP gracza, bo NPC ma już wystarczająco dużo. Zostało jeszcze pytanie nr 1. ;)
Postów: 13 Dołączył: 2011-12-07
#
Witam ponownie. ;)
W tym temacie chciałbym zapytać o dwie funkcje dla NPC:

1) Styl walki dla NPC
Próbowałem ulepszyć skrypt Nemesisa dodając dla niego styl walki (boks). Niestety nie widać efektu w grze, NPC dalej bije się "standardowym" stylem walki (jak przechodnie). Może ktoś powiedzieć, dlaczego tak się dzieje?

Kod:
//-------------MAIN---------------
0000: NOP 

:NONAME_2
wait 250 
if 
   Player.Defined(0)
else_jump @NONAME_482 
if 
  $ONMISSION == 0 
else_jump @NONAME_482 
if 
00FE:   actor $PLAYER_ACTOR sphere 0 in_sphere 287.6322 1839.766 7.72656 radius 12.0 12.0 5.0 
else_jump @NONAME_482 
Model.Load(#BRASSKNUCKLE)
Model.Load(#ROCKETLA)
023C: load_special_actor 'NEMESIS' as 1 // models 290-299 
038B: load_requested_models 
060A: create_decision_maker_type 0 store_to 3@ // decision\allowed\m_.ped files 
0AAC: 0@ = load_mp3 "CLEO\NEMESIS\MUSIC.MP3" 
1@ = Actor.Create(Mission1, #SPECIAL01, 287.6322, 1839.766, 7.72656)
Actor.Angle(1@) = 347.2881
Actor.Health(1@) = 11000
0446: set_actor 1@ immune_to_headshots 0 
04D8: set_actor 1@ drowns_in_water 0 
060B: set_actor 1@ decision_maker_to 3@ 
01B2: give_actor 1@ weapon 1 ammo 0 // Load the weapon model before using this 
01B2: give_actor 1@ weapon 35 ammo 15 // Load the weapon model before using this 
0245: set_actor 1@ walk_style_to "SWAT" 
07FE: set_actor 1@ fighting_style_to 5 2 
03FE: set_actor 1@ money 0 
05E2: AS_actor 1@ kill_actor $PLAYER_ACTOR 
Model.Destroy(#BRASSKNUCKLE)
Model.Destroy(#ROCKETLA)
0296: unload_special_actor 1 
2@ = Actor.Health(1@)
2@ /= 110 
0AB1: call_scm_func @NONAME_489 4 2 1 -589 1 
0AAD: set_mp3 0@ perform_action 1 

:NONAME_322
if and
   Player.Defined(0)
   not Actor.Dead(1@)
00F2:   actor $PLAYER_ACTOR near_actor 1@ radius 200.0 200.0 0 
else_jump @NONAME_425 
wait 0 
0AB9: get_mp3 0@ state_to 4@ 
if 
  4@ == -1 
else_jump @NONAME_403 
wait 125 
0AAD: set_mp3 0@ perform_action 1 

:NONAME_403
2@ = Actor.Health(1@)
2@ /= 110 
jump @NONAME_322 

:NONAME_425
0AAD: set_mp3 0@ perform_action 0 
0AAE: release_mp3 0@ 
065C: release_decision_maker 3@ 
0AB1: call_scm_func @NONAME_555 1 2 
if 
   Actor.Dead(1@)
else_jump @NONAME_477 
Actor.RemoveReferences(1@)
0A93: end_custom_thread 

:NONAME_477
Actor.RemoveReferences(1@)

:NONAME_482
jump @NONAME_2 

:NONAME_489
0AB1: call_scm_func @NONAME_604 1 0@ 0@ 
0AB1: call_scm_func @NONAME_707 1 2@ 2@ 
0AA6: call_method 4509088 12195720 num_params 4 pop 0 3@ 2@ 1@ 0@  
0AB2: ret 0 

:NONAME_555
0AB1: call_scm_func @NONAME_604 1 0@ 0@ 
0AA6: call_method 4509312 12195720 num_params 1 pop 0 0@  
0AB2: ret 0 
0662: NOP "NA" 
0000: NOP 

:NONAME_604
0A9F: 1@ = current_thread_pointer 
0A8E: 2@ = 1@ + 220 // int 
0A8D: 2@ = read_memory 2@ size 1 virtual_protect 0 
if 
  2@ == 1 
else_jump @NONAME_667 
1@ = 10783072 
jump @NONAME_674 

:NONAME_667
1@ += 60 

:NONAME_674
0@ *= 4 
005A: 1@ += 0@ // (int) 
1@ -= 10787168 
0AB2: ret 1 1@ 

:NONAME_707
if 
  0@ == 0 
else_jump @NONAME_732 
0AB2: ret 1 0 

:NONAME_732
0A9F: 1@ = current_thread_pointer 
1@ += 16 
0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0 
0062: 1@ -= 0@ // (int) 
1@ += 4 
0AB2: ret 1 1@


2) Siła NPC

Czyli jak zwiększyć siłę NPC, aby zadawał większe obrażenia w walce wręcz?
Postów: 13 Dołączył: 2011-12-07
#
To może ja odświeżę moje pytanie - jak zrobić, żeby we wszystkich domach do zapisywania odtwarzał się ciągle 1 utwór? Sorry, ale jestem zielony, jeśli chodzi o tworzenie skryptów od podstaw.
Postów: 13 Dołączył: 2011-12-07
#
Witam.
Jako, że tworzę mod w stylu Resident Evil, to tym razem chciałbym dodać zmieniającą się muzykę podczas gry. Na zewnątrz powinny się powtarzać 3 utwory, a w kryjówce (dom z zapisem) - 1, inny utwór. W modzie w 3 miejscach dodałem bossów, więc bardzo zależy mi na tym, żeby po zbliżeniu się do któregoś z nich muzyka przestała grać (bo każdy z tych boss'ów ma swój unikalny utwór podczas walki). Podaję ich współrzędne:

1. 287.6322 1839.766 7.72656
2. 1764.887 -2282.461 26.79602
3. -1930.182 644.7468 46.5625

Taki skrypt jest możliwy?
Postów: 13 Dołączył: 2011-12-07
#
Wszystko działa znakomicie, nie wiem jak Ci dziękować. Temat można zamknąć. ;)

PS: Czy mógłbym opublikować ten gotowy mod na tej i jeszcze jednej stronie? Oczywiście napisałbym, że Ty jesteś autorem skryptu.
Postów: 13 Dołączył: 2011-12-07
#
Teraz się skompilowało i działa bez zarzutu. Ale jest jeszcze coś - jak się pojawia Nemesis i zaczyna grać muzyka, to wyskakuje timer, który pokazuje 0:00 i tyka, jakby kończył się czas. Jeśli jest to możliwe, to prosiłbym o jego usunięcie.

PS: Tak na marginesie - chciałbym, żeby muzyka się powtarzała dopóki potwór nie zostałby zabity. Dałoby radę coś takiego zrobić? Jeśli nie to trudno, ale fajnie by było. ;)
Postów: 13 Dołączył: 2011-12-07
#
Jak próbuję skompilować ten Twój skrypt, to wyskakuje mi "Zdanie NA nie zostało znalezione". Co w takim wypadku zrobić?
Postów: 13 Dołączył: 2011-12-07
#
Ta linijka odpowiada za teren, obszar walki (200x200). Po przekroczeniu tego limitu Nemesis już nas przestaje ścigać. Czy w takim razie może ktoś napisać, jak wyglądałaby ta funkcja muzyki w skrypcie? To dla mnie ważne.
Postów: 13 Dołączył: 2011-12-07
#
W porządku. Oto skrypt (w wersji, w której jeszcze nie próbowałem dodać muzyki):

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---------------
thread 'NEMESIS_THREAD' 

:NEMESIS_THREAD_19
wait 0 
if 
   Player.Defined($PLAYER_CHAR)
else_jump @NEMESIS_THREAD_19 
if 
  $ONMISSION == 0 
else_jump @NEMESIS_THREAD_19 
if 
00FE:   actor $PLAYER_ACTOR sphere 0 in_sphere 287.6322 1839.766 7.72656 radius 40.0 40.0 40.0 
else_jump @NEMESIS_THREAD_19 
Model.Load(#BRASSKNUCKLE)
Model.Load(#ROCKETLA)
023C: load_special_actor 'NEMESIS' as 1 // models 290-299 

:NEMESIS_THREAD_128
wait 0 
if 
   Model.Available(#BRASSKNUCKLE)
   Model.Available(#ROCKETLA)
   Model.Available(#SPECIAL01)
else_jump @NEMESIS_THREAD_128 
1@ = Actor.Create(Mission1, #SPECIAL01, 287.6322, 1839.766, 7.72656)
Actor.Angle(1@) = 347.2881
Actor.Health(1@) = 11000
0446: set_actor 1@ immune_to_headshots 0 
04D8: set_actor 1@ drowns_in_water 0 
0946: set_actor 1@ actions_uninterupted_by_weapon_fire 0 
01B2: give_actor 1@ weapon 1 ammo 0 // Load the weapon model before using this 
01B2: give_actor 1@ weapon 35 ammo 5 // Load the weapon model before using this 
0245: set_actor 1@ walk_style_to "SWAT" 
03FE: set_actor 1@ money 0 
05E2: AS_actor 1@ kill_actor $PLAYER_ACTOR 
$NEMESIS_ACTOR = Actor.Health(1@)
$NEMESIS_ACTOR /= 40 
03C4: set_status_text $NEMESIS_ACTOR type 1 GXT 'NA' // global_variable 
Model.Destroy(#SPECIAL01)

:NEMESIS_THREAD_302
wait 0 
if 
   Player.Defined($PLAYER_CHAR)
else_jump @NEMESIS_THREAD_391 
if 
   not Actor.Dead(1@)
else_jump @NEMESIS_THREAD_408 
if 
00F2:   actor $PLAYER_ACTOR near_actor 1@ radius 200.0 200.0 0 
$NEMESIS_ACTOR = Actor.Health(1@)
$NEMESIS_ACTOR /= 25 
else_jump @NEMESIS_THREAD_391 
jump @NEMESIS_THREAD_302 

:NEMESIS_THREAD_391
Actor.RemoveReferences(1@)
0151: remove_status_text $NEMESIS_ACTOR 
jump @NEMESIS_THREAD_19 

:NEMESIS_THREAD_408
Actor.RemoveReferences(1@)
0151: remove_status_text $NEMESIS_ACTOR 
end_thread 


Postów: 13 Dołączył: 2011-12-07
#
Witam.
Tak więc zrobiłem skrypt CLEO dodający Nemesisa do Area 69. Wszystko działa dobrze, ale czuję pewien niedosyt. Dlatego wpadłem na pomysł dodania odpowiedniej muzyki, podczas gdy Nemesis zaatakuje. Muzykę mam, próbowałem ją dodać do skryptu wzorując się na modzie Werewolf Attack, ale jest zupełnie nie tak, jak chciałem. Muzyka przez chwilę gra, a jak się skończy, to dopiero Nemesis się spawnuje. A ja chcę, żeby muzyka grała podczas walki z tym potworem; w tle. A jeśli Nemesis zostałby już zabity, to dobrze by było, żeby muzyka się automatycznie przerwała. W razie potrzeby mogę napisać skrypt w komentarzu, jeśli ktoś by chciał. Proszę o pomoc.
Poprzedni 1 Następny
Created & Powered by MakG