Objeto voltar ao lugar depois de destruido -
patrao - 07.03.2014
Bem, estou criando um GM RPG bбsico. Gostaria que os objetos voltassem ao seu lugar depois que fossem destruнdo (os objetos em questгo Caixa eletrфnico , ponto de anibus e outros que podem ser destruнdos). Se me ajudarem ficarei muito feliz.
Re: Objeto voltar ao lugar depois de destruido -
focaximubh - 07.03.2014
Crie o objeto apуs ele detruir dentro do cуdigo de destruir ele crie uma Settimer e chame a public que irб reconstruir o obj. Caso nгo entenda irei dar EDIT nesta resposta.
Re: Objeto voltar ao lugar depois de destruido -
patrao - 07.03.2014
Entгo, os objetos a qual me refiro sгo todos do GM. Acontece que quando um player destrуi o caixa eletrфnico por exemplo o mesmo n volta ao seu lugar depois q o player se afasta ou morre.
Re: Objeto voltar ao lugar depois de destruido -
focaximubh - 07.03.2014
Entгo pega os objetos criados e cria tipo....
pawn Код:
//TOPO DO GM
new Objeto[5];//Definiзгo rбpida para os objetos melhor do que usar:
//new obj1, obj2, obj3...
forward AtualizarObjetos();//Forward referente a pъblic criada
//Criamos os objetos normalmente
//ONGAMEMODEINIT
Objeto[0] = CreateObject...
Objeto[1] = CreateObject...
Objeto[2] = CreateObject...
Objeto[3] = CreateObject...
Objeto[4] = CreateObject...
//Legenda usada abaixo: PC = Public Criada T = Tempo R = Repetiзгo 1 = repetir 0 = nгo repetir
//A repetiзгo da settimer й como se fosse assim: usei uma variavel uma vez e nгo vou mais utilizala....
// PC T R
SetTimer("AtualizarObjetos", 60000, 1);//Chamamos um settimer para atualizar de acordo com a evoluзгo...
//FINAL DO GM
public AtualizarObjetos()
{
for(new ApagarObj; ApagarObj <= 5; ApagarObj++)// Aqui criamos um loop para identificar o nъmero de objetos
DestroyObject(Objeto[ApagarObj]);//Destruimos todos os objetos novamente.....
//Em seguida os recriamos...
Objeto[0] = CreateObject...
Objeto[1] = CreateObject...
Objeto[2] = CreateObject...
Objeto[3] = CreateObject...
Objeto[4] = CreateObject...
//Menssagem enviada aos players informando a reconstituiзгo dos objetos....
SendClientMessageToAll(-1, "Todos os objetos destruidos foram recriados");
return 1;
}
Teste o cуdigo e deixe respostas.
Re: Objeto voltar ao lugar depois de destruido -
patrao - 07.03.2014
Nossa cara vlw mesmo.
Sem querer abusar de sua boa vontade mas ja abusando sera q da pra criar algo altomatico acho q chamam de loops, pois sao muitos objetos, se n souber vlw mesmo assim ajudou muito.
Re: Objeto voltar ao lugar depois de destruido -
focaximubh - 07.03.2014
kkkkkkk fera sim isso ai й o que eu disse observe vou explicar detalhadamente para vocк ok veja:
pawn Код:
/*Primeiramente vamos criar a variavel dos objetos, no cуdigo acima utilizei "5" desta forma:
"new Objeto[5];" vamos dizer que eu quero 30 objetos... Sendo assim irei utilizar a variavel Objetos da seguinte maneira: new Objeto[30];.... pronto criei minha variavel e setei um valor adicional a ela de "30".*/
//TOPO DO GM
new Objeto[30];
/*Agora vamos colocar a forward da callback que iremos cria lб no final da explicaзгo logo abaixo do new Objeto[30]; ficando da seguinte maneira:*/
new Objeto[30];
forward AtualizarObjetos();
/*Agora precisamos criar nossos objetos, irei dar um exemplo mas antes vou explicar veja bem:
se eu tiver 30 objetos serб necessбrio eu criar 30 aplicaзхes da variбvel Objeto enumerando-as por:
Objeto[0]
Objeto[1]..... assim por diante...
OBS:::::::: Objeto[0] й por que vocк inicia a contagem sempre do 0 nгo vai mudar o resultado, mas й uma questгo de ordem sendo assim eu teria:
*/
Objeto[0]
Objeto[1]
//......
//.....
Objeto[29]
//Pois atribui um valor a menos e nгo estamos contando a partir do 1 e sim do 0(ZERO й nъmero entгo ele conta tambйm) '-'
//entгo vamos ao exemplo:
//Digamos ser 30 objetos certo....
Objeto[0] = CreateObject(......)
Objeto[1] = CreateObject(......)
Objeto[2] = CreateObject(......)
Objeto[3] = CreateObject(......)
Objeto[4] = CreateObject(......)
Objeto[5] = CreateObject(......)
............
Objeto[29] = CreateObject(......)//a contagem termina no 29.....
/*Agora com os objetos criados vamos atribuir um settimer dentro da public OnGameModeInit() ficando da seguinte maneira:*/
Objeto[0] = CreateObject(......)
Objeto[1] = CreateObject(......)
Objeto[2] = CreateObject(......)
Objeto[3] = CreateObject(......)
Objeto[4] = CreateObject(......)
Objeto[5] = CreateObject(......)
//............
Objeto[29] = CreateObject(......)
SetTimer("AtualizarObjetos", 60000, 1);//Chamamos um settimer para atualizar de acordo com a evoluзгo...
/*Agora iremos criar uma forma para que os objetos criados dizendo que eles serгo destruidos, "RECRIAREM" automaticamente....*/
//FINAL DO GM::::
//Iniciamos a public:
public AtualizarObjetos()
{
//Iremos atribuir os mesmos valores porйm com algumas pequenas alteraзхes observe:
//no nosso loop que й isso ai embaixo estamos atribuindo um valor de 30 (pode mudar pelo valor de objetos......
for(new ApagarObj; ApagarObj <= 30; ApagarObj++)// Aqui criamos um loop para identificar o nъmero de objetos
//Destruimos nossos objetos, para nгo haver bugs de criar 2 objetos em um mesmo lugar
DestroyObject(Objeto[ApagarObj]);//Destruimos todos os objetos novamente.....
//Agora iremos recriar nossos objetos da mesma maneira feito acima:
Objeto[0] = CreateObject(......)
Objeto[1] = CreateObject(......)
Objeto[2] = CreateObject(......)
Objeto[3] = CreateObject(......)
Objeto[4] = CreateObject(......)
Objeto[5] = CreateObject(......)
//............
Objeto[29] = CreateObject(......)
//Pronto agora iremos enviar uma menssagem aos player informando que os objetos foram recriados com sucesso!
SendClientMessageToAll(-1, "Todos os objetos destruidos foram recriados");
return 1;//Finalizando a public
}//Finalizando a public
/*
:::::::::::::OBS::::::::::
Na nossa variavel new Objeto[30]; deverб ser mudado de acordo com o nъmero de objetos se for 30 vai ficar 30 se for 1000 vai ser 1000 deverб ser efetuada a mudanзa no loop tambйm lб embaixo na public AtualizarObjetos() ficando da seguinte maneira:
new Objeto[1000];
for(new ApagarObj; ApagarObj <= 1000; ApagarObj++)
Assim ele irб getar o nъmero de objetos definidos pela variбvel de forma simples e rбpida....
DICA::::
se forem muitos objetos vocк pode dar um (CTRL + H) identificar CreateObject e substituir por: Objeto[0] = CreateObject e depoir vir mudando os valores.....
Objeto[0] = CreateObject
Objeto[1] = CreateObject
Objeto[2] = CreateObject
Objeto[3] = CreateObject
Objeto[4] = CreateObject
Objeto[5] = CreateObject
*/
Espero que seja ъtil
OBS:::: Antes de pegar qualquer cуdigo, leia e o entenda pois apenas dar CTRL + C e CTRL + V suas dъvidas e dores de cabeзa vгo ser constantes...