(ObjetoID, Float:X, Float:Y, Float:Z, Float:Vel, Float:RotX, Float:RotY, Float:RotZ)
ObjetoID// ID do objeto a ser movido
Float:X//Coordenada 'x' para o novo local do objeto
Float:Y//Coordenada 'y' para o novo local do objeto
Float:Z//Coordenada 'z' para o novo local do objeto
Float:Vel//Velocidade com que o objeto vai ser movido
Float:RotX//Rotaзгo 'x' para o novo local do objeto(OPCIONAL)
Float:RotY//Rotaзгo 'y' para o novo local do objeto(OPCIONAL)
Float:RotZ//Rotaзгo 'z' para o novo local do objeto(OPCIONAL)
//Primeiramente no inicio da GM:
new ObjetoParaMover;//Criamos um nome para o portгo.
//Na public OnGameModeInit:
ObjetoParaMover = CreateObject(980, 1977.3000488281, 703.29998779297, 12.,5, 0.0, 0.0, 90);//Aqui, vamos igualar o portгo ao objeto criado, jб com seu ID e coordenadas.
//OBS: O objeto quando criado, tem que estar no seu ponto inicial, como no meu caso o portгo, deve estar fechado(posiзгo inicial)
CMD:AbrirPortao(playerid)//Definimos o nome pro comando, no meu caso, 'AbrirPortao'.
{//abrimos o comando.
MoveObject(ObjetoParaMover, 1977.3000488281, 703.29998779297, 15.199999809265:, 2.00, 270.0, 0.0, 90);
//Usamos a funзгo 'MoveObject', em seguida adicionando o nome do objeto(portгo) e suas novas coordenadas com a velocidade.
SendClientMessage(playerid, -1, "{00FF00}Parabйns, Vocк abriu o portгo \"{FFFFFF}ObjetoParaMover\" {00FF0}com sucesso!");
//Enviei uma mensagem para o player que usou o comandos, apenas para informa-lo que o portгo foi aberto(portгo ou objeto).
return 1;//retornamos
}//e fechamos o comando.
if (strcmp("/AbrirPortao", cmdtext, true, 10) == 0)
{
MoveObject(ObjetoParaMover, 1977.3000488281, 703.29998779297, 15.199999809265:, 2.00, 270.0, 0.0, 90);
SendClientMessage(playerid, -1, "{00FF00}Parabйns, Vocк abriu o portгo \"{FFFFFF}ObjetoParaMover\" {00FF0}com sucesso!");
return 1;
}
//Em ZCMD:
CMD:FecharPortao(playerid)
{
MoveObject(ObjetoParaMover, 1977.3000488281, 703.29998779297, 12.,5, 0.0, 0.0, 90);
SendClientMessage(playerid, -1, "{00FF00}Parabйns, Vocк fechou o portгo \"{FFFFFF}ObjetoParaMover\" {00FF0}com sucesso!");
return 1;
}
//Em strcmp:
if (strcmp("/FecharPortao", cmdtext, true, 10) == 0)
{
MoveObject(ObjetoParaMover, 1977.3000488281, 703.29998779297, 12.,5, 0.0, 0.0, 90);
SendClientMessage(playerid, -1, "{00FF00}Parabйns, Vocк fechou o portгo \"{FFFFFF}ObjetoParaMover\" {00FF0}com sucesso!");
return 1;
}
//Topo Da GM:
new ObjetoParaMover;
new Aberto = 0;//Utilizaremos para verificar se o portгo estб aberto ou nгo, definido a 0 quer dizer que nгo.
//GameModeInit:
ObjetoParaMover = CreateObject(980, 1977.3000488281, 703.29998779297, 12.5, 0.0, 0.0, 90);
//Comando:
CMD:Portao(playerid)
{
if(Aberto == 0)//Se o portгo estiver fechado:
{
MoveObject(ObjetoParaMover, 1977.3000488281, 703.29998779297, 15.199999809265, 0.75, 270.0, 0.0, 90);
SendClientMessage(playerid, -1, "{00FF00}Parabйns, Vocк abriu o portгo \"{FFFFFF}ObjetoParaMover\" {00FF0}com sucesso!");
Aberto = 1;
}
else//Se o portгo estiver aberto:
{
MoveObject(ObjetoParaMover, 1977.3000488281, 703.29998779297, 12.5, 0.75, 0.0, 0.0, 90);
SendClientMessage(playerid, -1, "{00FF00}Parabйns, vocк fechou o portгo \"{FFFFFF}ObjetoParaMover\" {00FF00}com sucesso!");
}
return 1;
}
//Topo Da GM:
new ObjetoParaMover;
//GameModeInit:
ObjetoParaMover = CreateObject(980, 1977.3000488281, 703.29998779297, 12.5, 0.0, 0.0, 90);
CMD:Portao(playerid)
{
MoveObject(ObjetoParaMover, 1977.3000488281, 703.29998779297, 15.199999809265, 0.75, 270.0, 0.0, 90);
SendClientMessage(playerid, -1, "{00FF00}Parabйns, Vocк abriu o portгo \"{FFFFFF}ObjetoParaMover\" {00FF0}em 5 segundos ele fecharб automaticamente");
SetTimer("Fechando", 5000, false);//Definimos o SetTimer, com nome da funзгo, tempo e se й preciso ficar repetindo
return 1;
}
forward Fechando();//criamos a public
public Fechando()//agora vamos utilizar a public criada acima
{
MoveObject(ObjetoParaMover, 1977.3000488281, 703.29998779297, 12.5, 0.75, 0.0, 0.0, 90);//move o objeto para a posicгo inicial
SendClientMessage(playerid, -1, "{00FF00}Jб se passou 05 segundos e o portгo fechou sozinho.");//manda uma mensagem ao player informando que o portгo estб sendo fechado.
return 1;
}
//Topo Da GM:
new ObjetoParaMover;//Criei uma variavel para armazenar os dados do portгo
new Aberto = 0;//Criei essa variavel para saber quando o portгo estб aberto ou fechado(Fechado = 0, Aberto = 1)
//GameModeInit:
ObjetoParaMover = CreateObject(980, 1977.3000488281, 703.29998779297, 12.5, 0.0, 0.0, 90);//Usei a variavel e igualei ela ao objeto, jб criando o objeto.
//Na public OnPlayerKeyStateChange
if ((newkeys & KEY_CTRL_BACK) && !(oldkeys & KEY_CTRL_BACK))//Definimos a tecla desejada
{
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)//Se o player for motorista de um veiculo
{
if(IsPlayerInRangeOfPoint(playerid, 07, 1977.3000488281, 703.29998779297, 12.5)//Se ele estiver em tal lugar(Perto do objeto)
{
if(Aberto == 1)//Se o portгo estiver aberto ele vai fechar
{
MoveObject(ObjetoParaMover, 1977.3000488281, 703.29998779297, 12.5, 0.75, 0.0, 0.0, 90);
SendClientMessage(playerid, -1, "{00FF00}Parabйns, vocк fechou o portгo \"{FFFFFF}ObjetoParaMover\" {00FF00}apenas apertando a tecla [H].");
Aberto = 0;
}
else//Se estiver fechado, ele vai abrir
{
MoveObject(ObjetoParaMover, 1977.3000488281, 703.29998779297, 15.199999809265, 0.75, 270.0, 0.0, 90);
SendClientMessage(playerid, -1, "{00FF00}Parabйns, Vocк abriu o portгo \"{FFFFFF}ObjetoParaMover\" {00FF0}apenas apertando a tecla [H]!");
Aberto = 1;
}
}
else
return 0;
}
else
return 0;
}
//Topo Da GM:
new ObjetoParaMover;
new Aberto = 0;
//GameModeInit:
ObjetoParaMover = CreateDynamicObject(980, 1977.3000488281, 703.29998779297, 12.5, 0.0, 0.0, 90);
//Comando:
CMD:AbrirPortao(playerid)
{
if(Aberto == 1) return SendClientMessage(playerid, -1, "{FF0000}O portгo jб estб aberto!");
MoveDynamicObject(ObjetoParaMover, 1977.3000488281, 703.29998779297, 15.199999809265, 0.75, 270.0, 0.0, 90);
SendClientMessage(playerid, -1, "{00FF00}Parabйns, Vocк abriu o portгo \"{FFFFFF}ObjetoParaMover\" {00FF0}com sucesso!");
Aberto = 1;
return 1;
}
CMD:FecharPortao(playerid)
{
if(Aberto == 0) return SendClientMessage(playerid, -1, "{FF0000}O portгo jб estб fechado");
MoveDynamicObject(ObjetoParaMover, 1977.3000488281, 703.29998779297, 12.5, 0.75, 0.0, 0.0, 90);
SendClientMessage(playerid, -1, "{00FF00}Parabйns, vocк fechou o portгo \"{FFFFFF}ObjetoParaMover\" {00FF00}com sucesso!");
Aberto = 0;
return 1;
}
//Resumindo, apenas no lugar de usar CreateObject, usar CreateDynamicObject e na hora de usar MoveObject usar MoveDynamicObject, lembrando que utilizando Dynamic, o objeto й carregado apenas quando tiver alguйm por perto, evitando um tanto de Lag.
PHP Code:
PHP Code:
|
New ObjetoParaMover = CreateObject(..)
Poderia complementar ensinando a fazer a funзгo para mover com keys...
Bom trabalho. |
Tutorial bacana, mais seria bom tambйm explicar com o uso do plugin streamer.
Do mais, bom trabalho. @Edit Sу uma coisa, strcmp nгo e processador de comandos, й um comparador de strings.. |