|
|
|
Autor |
Mensagem |
kleiton157
Usuário
Registrado: 06/05/11 Mensagens: 1170 Localização: Na cáducarai |
|
Comando que pegue todos os objetos com nome parecidos. |
|
Por exemplo, eu tenho aqui este comando:
| | if getobjectdistance('Player','mob1') < 2 then
writeglobalvar('lifemob1',readglobalvar('lifemob1')-1); |
Eu queria que ele verificasse todos os mobs de 1 a 6 com essa unica linha de comando? Tem como?
Eu ví isso no comando Copy(GetCollidedObject2(), 0, 3) que dá pra escolher a quantidade de letras que ele vai ler.. Dá pra fazer no comando acima?
_________________ ________________________________________
- É nescessário ver além do que os olhos mostram |
|
Ter Fev 10, 2015 1:14 pm |
|
|
welgomes
Usuário
Registrado: 10/07/11 Mensagens: 827 Localização: São Paulo - Capital |
|
|
|
No OnLoop do mapa
Exemplo
| |
var strMob : String;
//Contagem de 0 a 2
var c : Integer;
for c := 0 to 2 do
begin
strMob := 'MD2Actor' + IntToStr(c);
if GetObjectDistance('Player', strMob) < 2 then
begin
SetLabelText('Label0', 'Você está próximo de ' + strMob);
end;
end;
|
Eu usei uma instrução for para contar de 0 a 2.
Assim a cada iteração gera-se um nome que é guardado na variável strMob
Então essa variável terá nomes do tipo: MD2Actor0, MD2Actor1 e MD2Actor2.
Com o uso da função GetObjectDistance() saberemos quando o jogador está próximo dos atores MD2Actor0, MD2Actor1 ou MD2Actor2.
Então eu escrevo a frase Você está próximo de MD2Actor0, por exemplo.
|
|
Ter Fev 10, 2015 5:12 pm |
|
|
welgomes
Usuário
Registrado: 10/07/11 Mensagens: 827 Localização: São Paulo - Capital |
|
|
|
Um problema que você pode ter ao adaptar para o que você quer é a instrução
| | writeglobalvar('lifemob1',readglobalvar('lifemob1')-1); |
Será executada tão rápida e várias vezes que poderá matar o mob só de se aproximar.
|
|
Ter Fev 10, 2015 5:17 pm |
|
|
welgomes
Usuário
Registrado: 10/07/11 Mensagens: 827 Localização: São Paulo - Capital |
|
|
|
Código mais parecido com seu exemplo
| |
var strMob : String;
var strLifeMob: String;
//Contagem de 1 a 6
var c : Integer;
for c := 1 to 6 do
begin
strMob := 'mob' + IntToStr(c);
strLifeMob := 'life' + strMob;
if GetObjectDistance('Player', strMob) < 2 then
begin
SetLabelText('Label0', 'Você está próximo de ' + strMob);
writeglobalvar(strLifeMob, readglobalvar(strLifeMob)-1);
end;
end;
|
|
|
Ter Fev 10, 2015 5:23 pm |
|
|
kleiton157
Usuário
Registrado: 06/05/11 Mensagens: 1170 Localização: Na cáducarai |
|
|
|
Cara, serviu perfeitamente, como uma luva...
a questão do life descer muito rápido era a intenção mesmo
Obrigado
_________________ ________________________________________
- É nescessário ver além do que os olhos mostram |
|
Qua Fev 11, 2015 12:39 pm |
|
|
|
|
|
|
|
|