[Ajuda]comandos de teleportes -
Smigol - 03.12.2009
Tenho um gm aqui ele tem varios teleportes, so que os teleportes quando o player digita o comando o player e teleportado na hora, e tem muitos players que se aproveitгo disso em batalhas quando estгo morrendo, gostaria que alguem me ajuda-se queria que o player levase uns 5 seg depois de digita o comando, e gostaria de bota que o player nao poderia se mover nesses 5 seg.
Se alguem souber me ajuda eu agradeзo xD.
Re: [Ajuda]comandos de teleportes -
-xy! - 03.12.2009
nгo entendi muito bem, vocк quer que quando o player entre em um x1, qualquer comando que tenha como funзгo teleportar, nгo funcione?
Re: [Ajuda]comandos de teleportes -
Smigol - 03.12.2009
Nгo eu quero que funcione mais demore tipo 5 segundos para ele ser teleportado, e durrante esses 5 segundos o player noa pode se mover.
Por exemplo ele digita /x1 dae aparece uma mensagem no chat "Nгo se mova vocк sera teleportado".
Re: [Ajuda]comandos de teleportes -
.Unnamed - 12.11.2011
No comeзo do Gamemode:
Code:
new Float: posX, Float: posY,Float: posZ;
forward Teleportando(playerid);
OnPlayerCommandText:
Code:
if(strcmp(cmdtext,"/teleport",true) == 0)
{
GetPlayerPos(playerid,posX,posY,posZ);
SetTimerEx("Teleportando",5000,false,"d",playerid);
SendClientMessage(playerid,0xFFFF56,"Teleportando em 5 segundos. Nгo se mova nestes instantes!");
return 1;
}
Fim do GameMode:
Code:
public Teleportando(playerid)
{
new Float:x,Float:y,Float:z;
GetPlayerPos(x,y,z);
if(posX,posY,posZ != x,y,z) return SendClientMessage(playerid,0xFFFFFF,"Vocк nгo ficou na mesma posiзгo e nгo foi teleportado.");
else
{
SetPlayerPos(playerid,Coordenada Desejada aqui);
SendClientMessage(playerid,0xFFFFFF,"Teleportado com sucesso!");
}
return 1;
}
Espero Ter ajudado
Re: [Ajuda]comandos de teleportes -
[BVE]Lucas_Locate - 12.11.2011
Quote:
Originally Posted by Smigol
Tenho um gm aqui ele tem varios teleportes, so que os teleportes quando o player digita o comando o player e teleportado na hora, e tem muitos players que se aproveitгo disso em batalhas quando estгo morrendo, gostaria que alguem me ajuda-se queria que o player levase uns 5 seg depois de digita o comando, e gostaria de bota que o player nao poderia se mover nesses 5 seg.
Se alguem souber me ajuda eu agradeзo xD.
|
Pra mim nгo existe,Nem ferrando,Nem tem como
Vamos ver se outra pessoa sabe para te ajudar
Re: [Ajuda]comandos de teleportes -
[O.z]Caroline - 12.11.2011
pawn Code:
new tTemp[MAX_PLAYERS char];
stock OnTele(pid, txt[])
{
if(tTemp{pid} != 0 && tTemp{pid} - gettime() < 5)
return SendClientMessage(pid, -1,"Espere 5 Segundos!");
SendClientMessage(pid, -1,"Espere alguns seguindos para ir stй o seu teleporte.");
SetTimerEx("ToTele", 5000, false, "is", pid, txt);
tTemp{pid} = gettime();
return 1;
}
ToTele(pl, tel[]);
public ToTele(pl, tel[])
{
if(IsPlayerConnected(pl))
{
#if !defined _zcmd_included
CallLocalFunction("OnPlayerCommandText", "is", pl, tel);
#else
static
str[128];
format(str, sizeof(str),"cmd_%s(%i, %i)", tel, pl, "params");
CallLocalFunction(str, "");
#endif
tTemp{pl} = 0;
}
return 1;
}
Coloque isto "OnTele(playerid, cmdtext);" Dentro do comando que for executado.
- Caso for comando primбrio(usando comparador de strings *strcmp*):
pawn Code:
if(!strcmp(cmdtext,"/corrida", true))
{
OnTele(playerid, cmdtext);
// Funзхes do comando aqui...
return 1;
}
- Caso for comando com uso do processador ZCMD
pawn Code:
CMD:corrida(playerid, params[])
{
OnTele(playerid, params);
// Funзхes do comando aqui ..
return 1;
}
Crйditos: meol.
Re: [Ajuda]comandos de teleportes -
ReDKiiL - 12.11.2011
Duvida
Caroline o Que й char?
que voce criou ali new tTemp[MAX_PLAYERS char];
Re: [Ajuda]comandos de teleportes - rjjj - 12.11.2011
Quote:
Originally Posted by ReDKiiL
Duvida
Caroline o Que й char?
que voce criou ali new tTemp[MAX_PLAYERS char];
|
Usa-se
char para transformar o nъmero de cells de uma variбvel array no menor nъmero de cells capaz de armazenar a mesma quantidade de valores que aquela mas usando 8 bits (1/4 da cell) para cada valor
.
A variбvel array abaixo, que tem 1 cell
:
Pode armazenar apenas 1 letra/nъmero normal e 4 valores packed (valores armazenados por partнculas de 8 bits, ou seja, por 1/4 (um quarto) de cell).
Mas como isso й possнvel ?
.
Bem, cada cell de uma array tem 4 bytes de tamanho e cada letra ou nъmero tem 1 byte de tamanho
.
Entгo vocк pensa, se 1 byte de uma cell de array pode armazenar 1 byte de valor numйrico ou alfabйtico, entгo pra que os outros 3 bytes ?
.
Os outros 3 bytes (ou uma parcela deles) serгo utilizados quando o valor numйrico ou alfabйtico que se quer armazenar for maior que 255 (as letras/nъmeros que citei antes eram os menores ou iguais a 255/da Tabela ASCII
), pois nesse caso, ele terб um nъmero de bits em sua composiзгo binбria maior, e consequentemente, um tamanho maior
.
Entгo, ao armazenar valores daquele tipo a cell apenas passa a usar 100% de sua capacidade
.
Em compensaзгo, elas acabam podendo armazenar apenar valores menores ou iguais a 255, incluindo todos os valores da tabela ASCII
.
Exemplo:
pawn Code:
new o[4 char]; //Ou new o[1]; pois basicamente o char divide a quantidade atual de cells por 4.
o{0} = 5;
o{1} = 6;
o{2} = 7;
o{3} = 8;
//o{4} geraria um error, pois todas as partes (de 1/4 cada uma) da cell jб teriam sido utilizadas.
printf("%i", o{2}); //Imprimirб o nъmero 7
Espero ter ajudado
.
Re: [Ajuda]comandos de teleportes -
PlueX - 12.11.2011
Bom no caso do ".Unnamed" ocorreu os seguintes erros.
pawn Code:
(4222) : warning 213: tag mismatch
(4222) : warning 202: number of arguments does not match definition
Callback(public):
pawn Code:
public Teleportando(playerid)
{
new Float:x,Float:y,Float:z;
GetPlayerPos(x,y,z); //Linha do erro.
if(posX,posY,posZ != x,y,z) return SendClientMessage(playerid,0xFFFFFF,"Vocк nгo ficou na mesma posiзгo e nгo foi teleportado.");
else
{
SendClientMessage(playerid,0xFFFFFF,"Teleportado com sucesso!");
}
return 1;
}
Re: [Ajuda]comandos de teleportes -
Dolby - 12.11.2011
pawn Code:
public Teleportando(playerid)
{
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z); //Linha do erro.
if(posX != x && posY != y && posZ !=z) return SendClientMessage(playerid,0xFFFFFF,"Vocк nгo ficou na mesma posiзгo e nгo foi teleportado.");
SendClientMessage(playerid,0xFFFFFF,"Teleportado com sucesso!");
SetPlayerPos(playerid,Coordenada Desejada aqui);
return 1;
}