Comando que pegue todos os objetos com nome parecidos.

 
   3D Game Builder - Índice » Suporte
Comando que pegue todos os objetos com nome parecidos.
Autor Mensagem
kleiton157
Usuário
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:
Código:
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 Exibir perfil de usuários
welgomes
Usuário
Usuário


Registrado: 10/07/11
Mensagens: 827
Localização: São Paulo - Capital

No OnLoop do mapa

Exemplo
Código:

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 Exibir perfil de usuários
welgomes
Usuário
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
Código:
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 Exibir perfil de usuários
welgomes
Usuário
Usuário


Registrado: 10/07/11
Mensagens: 827
Localização: São Paulo - Capital

Código mais parecido com seu exemplo

Código:

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 Exibir perfil de usuários
kleiton157
Usuário
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 Wink



_________________
________________________________________
- É nescessário ver além do que os olhos mostram
Qua Fev 11, 2015 12:39 pm Exibir perfil de usuários
   3D Game Builder - Índice » Suporte
Página 1 de 1