Recriar objetos quando quebrar -
focaximubh - 07.03.2014
Bom, eu fiz um tutorial inteiro em uma resposta a uma dъvida de um cara entгo sу vou colocalo de forma mais fбcil aqui... vou copiar e colocar, espero que gostem
OBS: dividi o tutorial em 2 partes para ficar melhor explicado sendo assim teremos 2 explicaзхes diferentes mas se unindo no final
Removi os [*pawn] do tutorial kk vlw schocc
Crйditos do tutorial:
samp wiki:
https://sampwiki.blast.hk/wiki/Scripting....C3.A7.C3.B5es // NA PARTE MATRIZES LOGO ABAIXO NA PБGINA ABERTA....
https://sampwiki.blast.hk/wiki/SetTimer
Criador: Focaximubh
O motivo de criar o tуpico foi para facilitar o acesso aos cуdigos pois isto й uma dъvida constante... Sei que nego vai dar CTRL + C e CTRL + V pq jб tб tudo mastigadinho ai, mas a cada 10 pelomenos 1 deve querer aprender realmente e este 1 aprendendo alguma coisa com meu tуpico ja estou satisfeito pois os outros 9 nгo irгo chegar a lugar nenhum alйm de dar dinheiro fбcil para empresar de host e serviзos para scripters
//TOPO DO GM
// A definiзгo abaixo й chamada de MATRIZ
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
pawn Код:
//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
pawn Код:
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;
}
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:
pawn Код:
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....
pawn Код:
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 callback:
[/pawn]
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
[/pawn]
:::::::::::::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:
pawn Код:
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.....
pawn Код:
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...
Re: Recriar objetos quando quebrar -
Schocc - 13.03.2014
REMOVED
Re: Recriar objetos quando quebrar -
PT - 13.03.2014
A explicacao poderia estar um pouco melhor.
porem nao esta ma
parabens.
Re: Recriar objetos quando quebrar -
joaovictor098 - 13.03.2014
Gostei, funcionou perfeitamente no meu GM que estou criando.
Re: Recriar objetos quando quebrar -
focaximubh - 14.03.2014
hehe agradeзo os comentбrios e estarei editando o tutorial neste exato momento para melhor explicar e remover da caixa de [pawn]