Página 1 de 3 • 1, 2, 3 

- Matheus RivaldoScripter CLEO - Básico
- Mensagens : 981
Reputação : 36
Desde : 13/08/2015
Idade : 16
Localização : Passo de Torres - SC
Eu estava criando uma "missão" mas o script não funciona
. Depois que atualizei pro W10, os meus scripts - em sua maioria - pararam de funcionar.

- Código:
- Código:
SCRIPT_START
{
SAVE_THIS_CUSTOM_SCRIPT
LVAR_INT scplayer enable money1
GET_PLAYER_CHAR 0 scplayer
IF NOT READ_INT_FROM_INI_FILE "CLEO\Paraquedismo.ini" "MAIN" "DinheiroGanho" money1
money1 = 2000
ENDIF
MAIN_LOOP:
WAIT 0
IF enable = 0
IF LOCATE_CHAR_ANY_MEANS_3D scplayer 1562.7698 -1324.6803 16.4844 2.0 2.0 0.0 TRUE
DO_FADE 2000 FADE_IN
SET_CHAR_COORDINATES scplayer 1561.4446 -1347.1077 329.6733
enable = 1
WHILE NOT LOCATE_CHAR_ANY_MEANS_3D scplayer 2227.4009 -1645.8927 15.323 2.0 2.0 0.0 TRUE
WAIT 0
ENDWHILE
ADD_SCORE 0 money1
PLAY_MISSION_AUDIO 1
ENDIF
ENDIF
GOTO MAIN_LOOP
}
SCRIPT_END
O script esta completo? Porque tem um FADE_IN, mas não tem o FADE_OUT
Eu custei passar para o windows7, mas depois acostumei. os novos OS do Windows são meio problemáticos com games antigos, o que resta é executar em modo de compatibilidade e ver funciona como antes.

Eu custei passar para o windows7, mas depois acostumei. os novos OS do Windows são meio problemáticos com games antigos, o que resta é executar em modo de compatibilidade e ver funciona como antes.
- Matheus RivaldoScripter CLEO - Básico
- Mensagens : 981
Reputação : 36
Desde : 13/08/2015
Idade : 16
Localização : Passo de Torres - SC
- Matheus RivaldoScripter CLEO - Básico
- Mensagens : 981
Reputação : 36
Desde : 13/08/2015
Idade : 16
Localização : Passo de Torres - SC
Não deu certo. Acho que quando eu peguei o GTA na partição de backup - ele estava modificado -, a Steam baixou 700MB de atualização, e isso fodeu meu jogo. Tentarei baixá-lo novamente e testarei.
- kosticn101Mensagens Nível 1
- Mensagens : 28
Reputação : 4
Desde : 16/06/2017
Idade : 24
Your script doesn't work for me either (Win7). That's probably because you set Z Radius to 0.0.
If you do that, the only way for your script to work is to teleport to exact coordinates .
Z Radius is height of testing area. Change it to some higher value, like 2.0.
If you do that, the only way for your script to work is to teleport to exact coordinates .
Z Radius is height of testing area. Change it to some higher value, like 2.0.
- mais informações:
- Matheus RivaldoScripter CLEO - Básico
- Mensagens : 981
Reputação : 36
Desde : 13/08/2015
Idade : 16
Localização : Passo de Torres - SC
Problema no crack talvez? Pode ser que na Stram baixar substitui ele. Por agora tenta baixar o GTA RIP da miscellaneous-c pra testar, pode ser que corrija erros.@Matheus Rivaldo escreveu:Não deu certo. Acho que quando eu peguei o GTA na partição de backup - ele estava modificado -, a Steam baixou 700MB de atualização, e isso fodeu meu jogo. Tentarei baixá-lo novamente e testarei.
- Matheus RivaldoScripter CLEO - Básico
- Mensagens : 981
Reputação : 36
Desde : 13/08/2015
Idade : 16
Localização : Passo de Torres - SC
Deixa eu tentar entender o código, me corrija onde eu errar.
O player deve ir até as coordenadas 1562.7698 -1324.6803 16.4844 e então é teleportado para 1561.4446 -1347.1077 329.6733 que é no alto bem acima do solo, então ele deve pousar as coordenada 2227.4009 -1645.8927 15.323 para concluir a missão e conseguir o dinheiro?
Se sim o script ira parar no While a menos que o player chegue no ponto 2227.4009 -1645.8927 15.323 então não vai parecer estar acontecendo nada, coloque uma mensagem dentro do loop.
Vi pela src do ini que a missão se trata de saltar de paraquedas então seria legal checar se ele esta com o paraquedas antes de checar se ele esta no ponto usando IS_CURRENT_CHAR_WEAPON
Se instalou o Silent's ASI Loader, o cleo.asi mesmo na versão europeia do jogo já deve funcionar os cleos
O player deve ir até as coordenadas 1562.7698 -1324.6803 16.4844 e então é teleportado para 1561.4446 -1347.1077 329.6733 que é no alto bem acima do solo, então ele deve pousar as coordenada 2227.4009 -1645.8927 15.323 para concluir a missão e conseguir o dinheiro?
Se sim o script ira parar no While a menos que o player chegue no ponto 2227.4009 -1645.8927 15.323 então não vai parecer estar acontecendo nada, coloque uma mensagem dentro do loop.
- code:
- Código:
...
WHILE NOT LOCATE_CHAR_ANY_MEANS_3D scplayer 2227.4009 -1645.8927 15.323 2.0 2.0 0.0 TRUE
WAIT 0
PRINT_FORMATTED_NOW "Missao paraquedismo em andamento" 300
ENDWHILE
...
Vi pela src do ini que a missão se trata de saltar de paraquedas então seria legal checar se ele esta com o paraquedas antes de checar se ele esta no ponto usando IS_CURRENT_CHAR_WEAPON
Se instalou o Silent's ASI Loader, o cleo.asi mesmo na versão europeia do jogo já deve funcionar os cleos

- anexo editado:
Não cheguei testar, mas talvez não seja uma boa usar while como esta sendo usado, poderia checar se o player esta no ar em vez de nas coordenadas, assim se ele pousar no lugar errado o loop encerrara e o script continuara.
- Código:
WHILE IS_CHAR_IN_AIR scplayer
WAIT 0
ENDWHILE
IF LOCATE_CHAR_ANY_MEANS_3D scplayer 2227.4009 -1645.8927 15.323 2.0 2.0 0.0 TRUE
PRINT_FORMATTED_NOW "~g~missao feita" 1500
ELSE
PRINT_FORMATTED_NOW "~r~missao fracassada" 1500
ENDIF
- Matheus RivaldoScripter CLEO - Básico
- Mensagens : 981
Reputação : 36
Desde : 13/08/2015
Idade : 16
Localização : Passo de Torres - SC
- Matheus RivaldoScripter CLEO - Básico
- Mensagens : 981
Reputação : 36
Desde : 13/08/2015
Idade : 16
Localização : Passo de Torres - SC
Terminei o código, alguém pode testar pra mim? Tá muito difícil
- codigo:
- Código:
SCRIPT_START
{
SAVE_THIS_CUSTOM_SCRIPT
LVAR_INT scplayer enable money1
GET_PLAYER_CHAR 0 scplayer
IF NOT READ_INT_FROM_INI_FILE "CLEO\Paraquedismo.ini" "MAIN" "DinheiroGanho" money1
money1 = 2000
ENDIF
MAIN_LOOP:
WAIT 0
IF TEST_CHEAT "ola" //Código pra testes
SET_CHAR_COORDINATES scplayer 1562.7698 -1324.6803 -100.0
ENDIF
IF enable = 0
IF LOCATE_CHAR_ANY_MEANS_3D scplayer 1562.7698 -1324.6803 16.4844 2.0 2.0 1.0 TRUE
SET_CHAR_COORDINATES scplayer 1561.4446 -1347.1077 329.6733
IF NOT IS_CURRENT_CHAR_WEAPON scplayer WEAPONTYPE_PARACHUTE
REQUEST_MODEL 46
WHILE NOT HAS_MODEL_LOADED 46
WAIT 0
ENDWHILE
GIVE_WEAPON_TO_CHAR scplayer WEAPONTYPE_PARACHUTE 1
ENDIF
enable = 1
WHILE NOT LOCATE_CHAR_ANY_MEANS_3D scplayer 2227.4009 -1645.8927 15.323 2.0 2.0 2.0 TRUE
WAIT 0
ENDWHILE
IF LOCATE_CHAR_ANY_MEANS_3D scplayer 2227.4009 -1645.8927 15.323 2.0 2.0 2.0 TRUE
AND IS_CHAR_IN_AIR scplayer
ADD_SCORE 0 money1
PLAY_MISSION_AUDIO 1
PRINT_STRING_NOW "Missao cumprida" 1000
enable = 0
ELSE
PRINT_STRING_NOW "Missao fracassada" 1000
enable = 0
ENDIF
ENDIF
ENDIF
GOTO MAIN_LOOP
}
SCRIPT_END
- kosticn101Mensagens Nível 1
- Mensagens : 28
Reputação : 4
Desde : 16/06/2017
Idade : 24
It's good.
- Código:
WHILE NOT LOCATE_CHAR_ANY_MEANS_3D scplayer 2227.4009 -1645.8927 15.323 2.0 2.0 2.0 TRUE
WAIT 0
IF NOT IS_PLAYER_PLAYING 0
enable = 0
BREAK
ENDIF
ENDWHILE
- Spoiler:
- @Um Geek escreveu:Não cheguei testar, mas talvez não seja uma boa usar while como esta sendo usado, poderia checar se o player esta no ar em vez de nas coordenadas, assim se ele pousar no lugar errado o loop encerrara e o script continuara.
- Código:
WHILE IS_CHAR_IN_AIR scplayer
WAIT 0
ENDWHILE
IF LOCATE_CHAR_ANY_MEANS_3D scplayer 2227.4009 -1645.8927 15.323 2.0 2.0 0.0 TRUE
PRINT_FORMATTED_NOW "~g~missao feita" 1500
ELSE
PRINT_FORMATTED_NOW "~r~missao fracassada" 1500
ENDIF
- Spoiler:
- Código:
WHILE NOT LOCATE_STOPPED_CHAR_ON_FOOT_3D scplayer 1561.4446 -1347.1077 329.6733 2.0 2.0 1.0 FALSE // ***
WAIT 0 //wait for CJ to fall ***
ENDWHILE // ***
WHILE NOT IS_CHAR_PLAYING_ANIM scplayer PARA_open //just...
NOT IS_CHAR_PLAYING_ANIM scplayer PARA_float //...to be...
NOT IS_CHAR_PLAYING_ANIM scplayer PARA_decel //...sure that parachute is detected
WAIT 0 //wait for CJ to jump
IS_PLAYER_PLAYING 0
GOTO_IF_FALSE failed
ENDWHILE
//WHILE IS_CHAR_IN_AIR scplayer //returns false???
// WAIT 0
//ENDWHILE
//i have to use this:
GET_CHAR_HEIGHT_ABOVE_GROUND scplayer height
WHILE NOT height <= 1.5
WAIT 0
IS_PLAYER_PLAYING 0
GOTO_IF_FALSE failed
GET_CHAR_HEIGHT_ABOVE_GROUND scplayer height
ENDWHILE
IF LOCATE_CHAR_ANY_MEANS_3D scplayer 2227.4009 -1645.8927 15.323 2.0 2.0 0.0 TRUE
PRINT_FORMATTED_NOW "~g~missao feita" 1500
enable = 0
ELSE
failed:
enable = 0
PRINT_FORMATTED_NOW "~r~missao fracassada" 1500
ENDIF
To show icon on map:
- Código:
CONST_FLOAT TARGET_X 2227.4009
CONST_FLOAT TARGET_Y -1645.8927
CONST_FLOAT TARGET_Z 15.323
LVAR_INT blip
... ADD_BLIP_FOR_COORD (TARGET_X TARGET_Y TARGET_Z) (blip) ...
... LOCATE_CHAR_ANY_MEANS_3D scplayer TARGET_X TARGET_Y TARGET_Z 2.0 2.0 2.0 TRUE ...
... REMOVE_BLIP blip ...
- Spoiler:
@Matheus Rivaldo escreveu:Terminei o código, alguém pode testar pra mim?Tá muito difícil
- codigo:
- Código:
SCRIPT_START
{
SAVE_THIS_CUSTOM_SCRIPT
LVAR_INT scplayer enable money1
GET_PLAYER_CHAR 0 scplayer
IF NOT READ_INT_FROM_INI_FILE "CLEO\Paraquedismo.ini" "MAIN" "DinheiroGanho" money1
money1 = 2000
ENDIF
MAIN_LOOP:
WAIT 0
IF TEST_CHEAT "ola" //Código pra testes
SET_CHAR_COORDINATES scplayer 1562.7698 -1324.6803 -100.0
ENDIF
IF enable = 0
IF LOCATE_CHAR_ANY_MEANS_3D scplayer 1562.7698 -1324.6803 16.4844 2.0 2.0 1.0 TRUE
SET_CHAR_COORDINATES scplayer 1561.4446 -1347.1077 329.6733
IF NOT IS_CURRENT_CHAR_WEAPON scplayer WEAPONTYPE_PARACHUTE
REQUEST_MODEL 46
WHILE NOT HAS_MODEL_LOADED 46
WAIT 0
ENDWHILE
GIVE_WEAPON_TO_CHAR scplayer WEAPONTYPE_PARACHUTE 1
ENDIF
enable = 1
WHILE NOT LOCATE_CHAR_ANY_MEANS_3D scplayer 2227.4009 -1645.8927 15.323 2.0 2.0 2.0 TRUE
WAIT 0
ENDWHILE
IF LOCATE_CHAR_ANY_MEANS_3D scplayer 2227.4009 -1645.8927 15.323 2.0 2.0 2.0 TRUE
AND IS_CHAR_IN_AIR scplayer
ADD_SCORE 0 money1
PLAY_MISSION_AUDIO 1
PRINT_STRING_NOW "Missao cumprida" 1000
enable = 0
ELSE
PRINT_STRING_NOW "Missao fracassada" 1000
enable = 0
ENDIF
ENDIF
ENDIF
GOTO MAIN_LOOP
}
SCRIPT_END
Esta ficando legal, quando vamos carregar o modelo de uma arma é bom lembrar que o tipo não é o mesmo do modelo (no caso do paraquedas o modelo é o 371), da para usar a lista de armas do samp para ver os modelos, mas tem umas que não pega no GTA_SA normal http://wiki.sa-mp.com/wiki/Weapons ou pode usar GET_WEAPONTYPE_MODEL 46 model para pegar o modelo exato pelo tipo da arma.
Usar o que o @kosticn101 disse para checar se o player esta em voo usando o paraquedas, coloquei um código em uma função ai é só chamar com CLEO_CALL

- codigo:
- Código:
{
LVAR_INT scplayer
CALL_CHECK_CHAR_IN_AIR:
IF IS_PLAYER_CONTROL_ON 0
GET_PLAYER_CHAR 0 scplayer
WHILE NOT IS_CHAR_PLAYING_ANIM scplayer "PARA_open"
AND NOT IS_BUTTON_PRESSED 0 15 //-- ENTER CANCEL
WAIT 0
ENDWHILE
WHILE NOT IS_CHAR_PLAYING_ANIM scplayer "PARA_Land"
AND NOT IS_CHAR_PLAYING_ANIM scplayer "PARA_Land_Water"
AND NOT IS_CHAR_PLAYING_ANIM scplayer "FALL_front"
AND NOT IS_CHAR_PLAYING_ANIM scplayer "FALL_land"
AND NOT IS_BUTTON_PRESSED 0 15 //-- ENTER CANCEL
WAIT 0
ENDWHILE
ENDIF
CLEO_RETURN 0
}
Colocar o ícone como ele disse ai também ajudaria porque compilei o código e testei, mas não achei o ponto de pouso

- kosticn101Mensagens Nível 1
- Mensagens : 28
Reputação : 4
Desde : 16/06/2017
Idade : 24
Code is edited.Usar o que o @kosticn101 disse para checar se o player esta em voo usando o paraquedas, coloquei um código em uma função ai é só chamar com CLEO_CALL (BG)

IS_CHAR_PLAYING_ANIM

Maybe GOSUB is better idea, you still need to check IS_PLAYER_PLAYING, maybe he gets wasted or busted so loop will stuck and enable = 1.
- Matheus RivaldoScripter CLEO - Básico
- Mensagens : 981
Reputação : 36
Desde : 13/08/2015
Idade : 16
Localização : Passo de Torres - SC
- kosticn101Mensagens Nível 1
- Mensagens : 28
Reputação : 4
Desde : 16/06/2017
Idade : 24
Can't wait till it's finished, I like the idea.@Matheus Rivaldo escreveu:Estou mexendo no script, mais tarde eu dou notícias.
I'm working on the script. I'll give news later.
Fiz uns testes aqui, mas o @Junior_Djjr, @Veryzon, ou o @Fabio devem saber algum opcode ou alguma forma segura de saber que o char esta voando ou no chão de forma mais segura, testei todas as formas e apesar de algumas funcionar bem tem umas falhas, por tempo a melhor que vi foi checar as animações, mas se ele pousar e não fazer uma das animações checadas só vai encerrar o loop se apertar a tecla enter. Nestas horas o banco de dados de opcode do http://www.gtag.gtagaming.com era bem útil, lá explicava muito melhor 

- Matheus RivaldoScripter CLEO - Básico
- Mensagens : 981
Reputação : 36
Desde : 13/08/2015
Idade : 16
Localização : Passo de Torres - SC
- Matheus RivaldoScripter CLEO - Básico
- Mensagens : 981
Reputação : 36
Desde : 13/08/2015
Idade : 16
Localização : Passo de Torres - SC
Assim?:
- Sanny:
- Código:
{$CLEO}
0000:
while true
if 0AB0: key_pressed 90
then
0A96: 0@ = actor $PLAYER_ACTOR struct
0@ += 0x46C
0A8D: 1@ = read_memory 0@ size 1 virtual_protect 0
if 08B7: test 1@ bit 0
then
0ACD: show_text_highpriority "ta em pe" time 1000
else
0ACD: show_text_highpriority "nao ta em pe" time 1000
end
while 0AB0: 90
wait 0
end
end
wait 0
end
- GTA3Sc:
- Código:
SCRIPT_START
{
LVAR_INT pointer result scplayer irineu
irineu = 1
GET_PLAYER_CHAR 0 scplayer
WHILE irineu = 1
IF IS_KEY_PRESSED VK_KEY_Z
GET_PED_POINTER scplayer pointer
pointer += 0x46C
READ_MEMORY pointer 1 0 result
IF IS_LOCAL_VAR_BIT_SET_CONST result 0
PRINT_STRING_NOW "ta em pe" 1000
ELSE
PRINT_STRING_NOW "nao ta em pe" 1000
ENDIF
WHILE IS_KEY_PRESSED VK_KEY_Z
WAIT 0
ENDWHILE
ENDIF
WAIT 0
ENDWHILE
}
SCRIPT_END
- Matheus RivaldoScripter CLEO - Básico
- Mensagens : 981
Reputação : 36
Desde : 13/08/2015
Idade : 16
Localização : Passo de Torres - SC
Eu recriei o mod em SB mas crasha 

- Code:
- Código:
{$CLEO}
0000:
while true
while 8256: not player $PLAYER_CHAR defined
wait 0
end
if 0ADC: "go" //Pra ir no local rapidamente
then
actor.PutAt($PLAYER_ACTOR, 1562.7698, -1324.6803, -1000.0)
end
0A96: 2@ = actor $PLAYER_ACTOR struct
2@ += 0x46C
0A8D: 3@ = read_memory 2@ size 1 virtual_protect 0
0A96: 4@ = actor $PLAYER_ACTOR struct
4@ += 0x46D
0A8D: 5@ = read_memory 4@ size 1 virtual_protect 0
if and
00FE: actor $PLAYER_ACTOR sphere 1 in_sphere 1562.7698 -1324.6803 16.4844 radius 2.0 2.0 1.0
0@ == 0
then
actor.PutAt($PLAYER_ACTOR, 1561.4446, -1347.1077, -100.0)
018A: 1@ = create_checkpoint_at 2227.4009 -1645.8927 15.323
0@ = 1
$ONMISSION = 1
if 82D8: not actor $PLAYER_ACTOR current_weapon == 46
then
repeat model.Load(371)
wait 0
until 0248: model 371 available
actor.GiveWeaponAndAmmo($PLAYER_ACTOR, 46, 1)
end
while 0@ == 1
if and
0AB7: test 3@ bit 0
80FE: not actor $PLAYER_ACTOR sphere 0 in_sphere 1562.7698 -1324.6803 16.4844 radius 50.0 50.0 20.0 0
then
marker.Disable(1@)
0@ = 0
$ONMISSION = 0
00BA: show_text_styled GXT 'M_FAIL' time 5000 style 1
end
if and
0AB7: test 5@ bit 1
00FE: actor $PLAYER_ACTOR sphere 1 in_sphere 2227.4009 -1645.8927 15.323 radius 2.0 2.0 2.0
then
marker.Disable(1@)
0@ = 0
$ONMISSION = 0
0109: player $PLAYER_CHAR money += 2000
03D1: play_wav 1
01E3: show_text_1number_styled GXT 'M_PASS' number 10000 time 5000 style 1
end
wait 0
end
end
wait 0
end
- Matheus RivaldoScripter CLEO - Básico
- Mensagens : 981
Reputação : 36
Desde : 13/08/2015
Idade : 16
Localização : Passo de Torres - SC
Página 1 de 3 • 1, 2, 3 

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum
|
|