01.07.2015, 18:46
Tipo Essas !
http://prntscr.com/7nmx29
http://prntscr.com/7nmx29
COMMAND:criarlabel(playerid, params[])
{
if(IsPlayerAdmin(playerid))
{
new Float:PosXX,
Float:PosYY,
Float:PosZZ;
new texto[256];
new string[256];
{
if(sscanf(params, "s[256]", texto)) return SendClientMessage(playerid, 0xFF0000FF, "Use: /criarlabel3 [Texto]");
GetPlayerPos(playerid, PosXX, PosYY, PosZZ);
format(string, sizeof(string), "%s", texto);
Create3DTextLabel(string, 0x00ff00ff, PosXX, PosYY, PosZZ, 40,0);
format(string, sizeof(string), "Label criada com a mensagem: %s", texto);
SendClientMessage(playerid, -1, string);
}
}
return true;
}
//Defines..
enum TLabel
{
Float:LabX, // Posiзгo X do Texto
Float:LabY, // Posiзгo Y do Texto
Float:LabZ, // Posiзгo Z do Texto
Float:LabD, // Distвncia de visibilidade do Texto
Text3D:Lab, // A funзгo CreateText bla bla pra identificar pelo ID caso precise destruir
LabVW // Virtual Word do Texto
}
#define MAX_LABEL 100
#define ArqLabel "ServerData/Labels/Label%i.ini"
new ALabel[MAX_LABEL][TLabel]; //Substituir o 100 pelo valor mбximo de Textos criados
//Comando para criar /criarlabel <texto> <Distвncia> <VirtualWorld>
CMD:criarlabel(playerid, params[])
{
new Float:x, Float:y, Float:z, Float:Dist, VW, file[100], File:PFile, LineForFile[100], Msg[128], Texto[50], NomeA[21];
if (sscanf(params, "s[50]fi", Texto,Dist,VW)) SendClientMessage(playerid, 0xFF0000AA, "{FFFFFF}Use: {FF8C00}\"/criarlabel <texto> <Float:Distвncia> <VirtualWorld>\"");
else
{
GetPlayerName(playerid,NomeA,21);
GetPlayerPos(playerid, x, y, z);
for (new LabelID; LabelID < MAX_LABEL; LabelID++)
{
if (ALabel[LabelID][Lab] == 0)
{
format(Msg,sizeof(Msg),"{FFF000}Admin:%s\n{FFFFFF}%s",NomeA,Texto);
ALabel[LabelID][Lab] = Create3DTextLabel(Msg,-1,x,y,z,Dist,VW,1);
format(file, sizeof(file), ArqLabel, LabelID);
PFile = fopen(file, io_write);
format(LineForFile, 100, "LabX %f\r\n", x);
fwrite(PFile, LineForFile);
format(LineForFile, 100, "LabY %f\r\n", y);
fwrite(PFile, LineForFile);
format(LineForFile, 100, "LabZ %f\r\n", z);
fwrite(PFile, LineForFile);
format(LineForFile, 100, "LabD %f\r\n", Dist);
fwrite(PFile, LineForFile);
format(LineForFile, 100, "LabVW %i\r\n", VW);
fwrite(PFile, LineForFile);
fclose(PFile);
format(Msg, sizeof(Msg), "* {FFFFFF}Vocк criou o LabelID: {FF8C00}%i", LabelID);
SendClientMessage(playerid, 0x00FF00FF, Msg);
return 1;
}
}
format(Msg, 128, "{FFFFFF}Vocк nгo pode criar mais de {FF8C00}%i {FFFFFF}Textos3d", MAX_LABEL);
SendClientMessage(playerid, 0xFFFFFFFF, Msg);
}
return 1;
}
//Comando para deletar
CMD:dellabel(playerid, params[])
{
new file[100], Msg[128];
for (new LabelID; LabelID < MAX_LABEL; LabelID++)
{
// Verifica se o jogador estб prуximo ao label
if (IsPlayerInRangeOfPoint(playerid, 5.0, ALabel[LabelID][LabX], ALabel[LabelID][LabY], ALabel[LabelID][LabZ]))
{
format(file, sizeof(file), ArqLabel, LabelID);
if (fexist(file))
fremove(file);
ALabel[LabelID][LabX] = 0.0;
ALabel[LabelID][LabY] = 0.0;
ALabel[LabelID][LabZ] = 0.0;
ALabel[LabelID][LabD] = 0.0;
ALabel[LabelID][LabVW] = 0;
DestroyDynamic3DTextLabel(ALabel[LabelID][Lab]);
format(Msg, 128, "{FF8C00} [C.P] {FFFFFF}Vocк deletou o Label ID {FF8C00}%i", LabelID);
SendClientMessage(playerid, 0x00FF00FF, Msg);
return 1;
}
else
{
SendClientMessage(playerid, 0xFFFFFFFF, "{FF8C00} [C.P] {FF0000}Ops, {FFFFFF}Vocк precisa estб perto do Label");
}
}
else
return 0;
return 1;
}