Temat:
Zmiana skinu
|
Napisano dnia: 2011-10-10 16:48:56
Można by się uprzeć i skrypt uprościć i skrócić w taki sposób + przesunąć ładowanie modeli na później, by nie zawalały pamięci.
Używając gosubów można to zoptymalizować jeszcze bardziej agresywnie (to już tylko kosmetyka i parę bajtów skryptu mniej):
Tak napisany kod jest dużo bardziej "Rockstarowy", jak nie wiesz o co gdzieś chodzi to pytaj + tut "Konstrukcje wysokiego poziomu".
Kod:
{$CLEO}
0000: NOP // CLEO dobiera nazwę watku samodzielnie, nie ma potrzeby definiowania jej
while true
0001: wait 0 ms
if
0256: player 0 defined // 0 = $PLAYER_CHAR, tyle że zajmuje mniej miejsca w pliku. Mniejszy skrypt CLEO = lepiej.
then
if
0AB0: key_pressed 0x37
then
0247: load_model #FAM1
038B: load_requested_models
09C7: change_player 0 model_to #FAM1 // j/w
0249: release_model #FAM1
end
if
0AB0: key_pressed 0x38
then
// Tego typu konstrukcja nie wymusza na graczu kolejności FAM1 - FAM2 - FAM3, która
// wymuszała stara wersja skryptu.
0247: load_model #FAM2
038B: load_requested_models
09C7: change_player 0 model_to #FAM2
0249: release_model #FAM2
end
if
0AB0: key_pressed 0x39
then
0247: load_model #FAM3
038B: load_requested_models
09C7: change_player 0 model_to #FAM3
0249: release_model #FAM3
end
end
end
0000: NOP // CLEO dobiera nazwę watku samodzielnie, nie ma potrzeby definiowania jej
while true
0001: wait 0 ms
if
0256: player 0 defined // 0 = $PLAYER_CHAR, tyle że zajmuje mniej miejsca w pliku. Mniejszy skrypt CLEO = lepiej.
then
if
0AB0: key_pressed 0x37
then
0247: load_model #FAM1
038B: load_requested_models
09C7: change_player 0 model_to #FAM1 // j/w
0249: release_model #FAM1
end
if
0AB0: key_pressed 0x38
then
// Tego typu konstrukcja nie wymusza na graczu kolejności FAM1 - FAM2 - FAM3, która
// wymuszała stara wersja skryptu.
0247: load_model #FAM2
038B: load_requested_models
09C7: change_player 0 model_to #FAM2
0249: release_model #FAM2
end
if
0AB0: key_pressed 0x39
then
0247: load_model #FAM3
038B: load_requested_models
09C7: change_player 0 model_to #FAM3
0249: release_model #FAM3
end
end
end
Używając gosubów można to zoptymalizować jeszcze bardziej agresywnie (to już tylko kosmetyka i parę bajtów skryptu mniej):
Kod:
{$CLEO}
while true
0001: wait 0 ms
if
0256: player 0 defined
then
if
0AB0: key_pressed 0x37
then
0006: 0@ = #FAM1 // 0@ będzie nasza zmienna, która najlepiej by było określić jako
// skin_do_ustawienia
gosub @CHANGE_SKIN
end
if
0AB0: key_pressed 0x38
then
0006: 0@ = #FAM2
gosub @CHANGE_SKIN
end
if
0AB0: key_pressed 0x39
then
0006: 0@ = #FAM3
gosub @CHANGE_SKIN
end
end
end
:CHANGE_SKIN
0247: load_model 0@
038B: load_requested_models
09C7: change_player 0 model_to 0@
0249: release_model 0@
return
while true
0001: wait 0 ms
if
0256: player 0 defined
then
if
0AB0: key_pressed 0x37
then
0006: 0@ = #FAM1 // 0@ będzie nasza zmienna, która najlepiej by było określić jako
// skin_do_ustawienia
gosub @CHANGE_SKIN
end
if
0AB0: key_pressed 0x38
then
0006: 0@ = #FAM2
gosub @CHANGE_SKIN
end
if
0AB0: key_pressed 0x39
then
0006: 0@ = #FAM3
gosub @CHANGE_SKIN
end
end
end
:CHANGE_SKIN
0247: load_model 0@
038B: load_requested_models
09C7: change_player 0 model_to 0@
0249: release_model 0@
return
Tak napisany kod jest dużo bardziej "Rockstarowy", jak nie wiesz o co gdzieś chodzi to pytaj + tut "Konstrukcje wysokiego poziomu".
___________________
Moderator







