21.03.2015, 19:48
Um bom mйtodo (pra mim) de criar entradas e saнda prй-definidas.
pawn Код:
enum drInfo
{
Nome[32],
Float:Porta[6],
Interior[2]
// Adicione нcones do mapa, modelos da pickup, virtual world, se quiser.
}
new const
PortasPreDefinidas[3][drInfo] = {
{{"Banco"}, {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, {0, 3}},
{{"Prefeitura"}, {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, {0, 8}},
{{"Hotel"}, {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, {0, 14}}
// Vou explicar um pouquinho sobre isso que estб acima:
/*
{
{
"Hotel" // NOME QUE APARECERБ NO 3DTEXTLABEL DA ENTRADA (ONDE /ENTRAR SERБ DIGITADO)
},
{
0.0, // COORDENADA X DA ENTRADA (ONDE /ENTRAR SERБ DIGITADO)
0.0, // COORDENADA Y DA ENTRADA (ONDE /ENTRAR SERБ DIGITADO)
0.0, // COORDENADA Z DA ENTRADA (ONDE /ENTRAR SERБ DIGITADO)
0.0, // COORDENADA X DA SAНDA (ONDE /SAIR SERБ DIGITADO)
0.0, // COORDENADA Y DA SAНDA (ONDE /SAIR SERБ DIGITADO)
0.0 // COORDENADA Z DA SAНDA (ONDE /SAIR SERБ DIGITADO)
},
{
0, // INTERIOR DA ENTRADA (ONDE /ENTRAR SERБ DIGITADO)
14 // INTERIOR DA SAНDA (ONDE /SAIR SERБ DIGITADO)
}
}
*/
};
public OnGameModeInit()
{
for(new i = 0; i < sizeof(PortasPreDefinidas); ++i)
{
// ENTRADA
AddStaticPickup(1318, 1, PortasPreDefinidas[j][Porta][0], PortasPreDefinidas[j][Porta][1], PortasPreDefinidas[j][Porta][2]);
CreateDynamic3DTextLabel(PortasPreDefinidas[j][Nome], 0x00FF00FF, PortasPreDefinidas[j][Porta][0], PortasPreDefinidas[j][Porta][1], PortasPreDefinidas[j][Porta][2] + 1, 10);
// SAНDA
AddStaticPickup(1318, 1, PortasPreDefinidas[j][Porta][3], PortasPreDefinidas[j][Porta][4], PortasPreDefinidas[j][Porta][5]);
CreateDynamic3DTextLabel("Saнda", 0xFF0000FF, PortasPreDefinidas[j][Porta][3], PortasPreDefinidas[j][Porta][4], PortasPreDefinidas[j][Porta][5] + 1, 10);
}
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp("/entrar", cmdtext, true))
{
for(new i = 0; i < sizeof(PortasPreDefinidas); ++i)
{
if(IsPlayerInRangeOfPoint(playerid, 1.0, PortasPreDefinidas[i][Porta][0], PortasPreDefinidas[i][Porta][1], PortasPreDefinidas[i][Porta][2]))
{
SetPlayerPos(playerid, PortasPreDefinidas[i][Porta][3], PortasPreDefinidas[i][Porta][4], PortasPreDefinidas[i][Porta][5]);
SetPlayerInterior(playerid, PortasPreDefinidas[i][Interior][1]);
break;
}
}
}
else if(!strcmp("/sair", cmdtext, true))
{
for(new i = 0; i < sizeof(PortasPreDefinidas); ++i)
{
if(IsPlayerInRangeOfPoint(playerid, 1.0, PortasPreDefinidas[i][Porta][3], PortasPreDefinidas[i][Porta][4], PortasPreDefinidas[i][Porta][5]))
{
SetPlayerPos(playerid, PortasPreDefinidas[i][Porta][0], PortasPreDefinidas[i][Porta][1], PortasPreDefinidas[i][Porta][2]);
SetPlayerInterior(playerid, PortasPreDefinidas[i][Interior][0]);
break;
}
}
}
return 1;
}