new Float: posX, Float: posY,Float: posZ; forward Teleportando(playerid);
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;
}
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;
}
|
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. |

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;
}
if(!strcmp(cmdtext,"/corrida", true))
{
OnTele(playerid, cmdtext);
// Funзхes do comando aqui...
return 1;
}
CMD:corrida(playerid, params[])
{
OnTele(playerid, params);
// Funзхes do comando aqui ..
return 1;
}
|
Duvida
Caroline o Que й char? que voce criou ali new tTemp[MAX_PLAYERS char]; |
.
:new x[1];
.
.
.
), pois nesse caso, ele terб um nъmero de bits em sua composiзгo binбria maior, e consequentemente, um tamanho maior
.
.
.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
.
(4222) : warning 213: tag mismatch
(4222) : warning 202: number of arguments does not match definition
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;
}
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;
}