PHP код:
#define FILTERSCRIPT
#define MAX_LABELS (100)
#define PASTA_LABELS "Labels/%d.lbl"
#define SISTEMA_VERSAO "1.0"
#define Dialog_Nova_Label_Cor 10001
#define Dialog_Nova_Label_Distancia 10002
#define Amarelo 0xFFFF00FF
#define AzulForte 0x0000FFFF
#define Laranja 0xFF5604FF
#define Vermelho 0xFF0000FF
#define Cyan 0x00F9F9FF
#define Cinza 0xC0C0C0FF
#define Verde 0x80FF80FF
#define Rosa 0xFF00FFFF
#define AmareloClaro 0xFFFF00FF
#define AzulClaroI 0x00FFFFFF
#define AzulClaroII 0x33CCFFFF
#define Roxo 0xA02DD2FF
#define RoxoClaro 0xE285FAFF
#define VerdeClaro 0x00FF00FF
#define Branco 0xFFFFFFFF
#define Preto 0x000000FF
#define VerdeOliva 0x9DAD80FF
#include <a_samp>
#include <DOF2>
#include <ZCMD>
#include <sscanf2>
#if defined FILTERSCRIPT
new LabelID;
enum InfoLabel
{
Texto[500],
Cor,
Float:LocX,
Float:LocY,
Float:LocZ,
Distancia,
Mundo
}
new LabelInfo[MAX_LABELS][InfoLabel];
public OnFilterScriptInit()
{
print("Sistema de criaзгo de label in-gane Carregado!");
print(SISTEMA_VERSAO);
for(new i;i<MAX_LABELS;i++)
{
new Pasta[128];
format(Pasta, 128, PASTA_LABELS, i);
Create3DTextLabel(DOF2_GetString(Pasta, "Texto"), DOF2_GetInt(Pasta, "Cor"), DOF2_GetFloat(Pasta, "PosicaoX"), DOF2_GetFloat(Pasta, "PosicaoY"), DOF2_GetFloat(Pasta, "PosicaoZ"), DOF2_GetFloat(Pasta, "Distancia"), DOF2_GetInt(Pasta, "Mundo"), 0);
}
if(!DOF2_FileExists("Labels/LabelsCriadas.ini"))
{
DOF2_CreateFile("Labels/LabelsCriadas.ini");
DOF2_SetInt("Labels/LabelsCriadas.ini", "Total de 3DTextLabels criadas", 0);
DOF2_SaveFile();
}
else
return 0;
LabelID = DOF2_GetInt("Labels/LabelsCriadas.ini", "Total de 3DTextLabels criadas")+1;
return 1;
}
public OnFilterScriptExit()
{
DOF2_Exit();
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new Pasta[128], Float:Pos[3];
LabelID = DOF2_GetInt("Labels/LabelsCriadas.ini", "Total de 3DTextLabels criadas")+1;
format(Pasta, 128, PASTA_LABELS, LabelID);
if(dialogid == Dialog_Nova_Label_Cor)
{
if(!response)return 0;
if(response)
{
if(listitem == 0) LabelInfo[LabelID][Cor] = Amarelo; ShowPlayerDialog(playerid, Dialog_Nova_Label_Distancia, DIALOG_STYLE_INPUT, "{FFFF00}Distвncia:", "{FFFFFF}Abaixo, insira a distвncia para o player ver a nova label!", "Criar", "");
if(listitem == 1) LabelInfo[LabelID][Cor] = AzulForte; ShowPlayerDialog(playerid, Dialog_Nova_Label_Distancia, DIALOG_STYLE_INPUT, "{FFFF00}Distвncia:", "{FFFFFF}Abaixo, insira a distвncia para o player ver a nova label!", "Criar", "");
if(listitem == 2) LabelInfo[LabelID][Cor] = Laranja; ShowPlayerDialog(playerid, Dialog_Nova_Label_Distancia, DIALOG_STYLE_INPUT, "{FFFF00}Distвncia:", "{FFFFFF}Abaixo, insira a distвncia para o player ver a nova label!", "Criar", "");
if(listitem == 3) LabelInfo[LabelID][Cor] = Vermelho; ShowPlayerDialog(playerid, Dialog_Nova_Label_Distancia, DIALOG_STYLE_INPUT, "{FFFF00}Distвncia:", "{FFFFFF}Abaixo, insira a distвncia para o player ver a nova label!", "Criar", "");
if(listitem == 4) LabelInfo[LabelID][Cor] = Cyan; ShowPlayerDialog(playerid, Dialog_Nova_Label_Distancia, DIALOG_STYLE_INPUT, "{FFFF00}Distвncia:", "{FFFFFF}Abaixo, insira a distвncia para o player ver a nova label!", "Criar", "");
if(listitem == 5) LabelInfo[LabelID][Cor] = Cinza; ShowPlayerDialog(playerid, Dialog_Nova_Label_Distancia, DIALOG_STYLE_INPUT, "{FFFF00}Distвncia:", "{FFFFFF}Abaixo, insira a distвncia para o player ver a nova label!", "Criar", "");
if(listitem == 6) LabelInfo[LabelID][Cor] = Verde; ShowPlayerDialog(playerid, Dialog_Nova_Label_Distancia, DIALOG_STYLE_INPUT, "{FFFF00}Distвncia:", "{FFFFFF}Abaixo, insira a distвncia para o player ver a nova label!", "Criar", "");
if(listitem == 7) LabelInfo[LabelID][Cor] = Rosa; ShowPlayerDialog(playerid, Dialog_Nova_Label_Distancia, DIALOG_STYLE_INPUT, "{FFFF00}Distвncia:", "{FFFFFF}Abaixo, insira a distвncia para o player ver a nova label!", "Criar", "");
if(listitem == 8) LabelInfo[LabelID][Cor] = AzulClaroI; ShowPlayerDialog(playerid, Dialog_Nova_Label_Distancia, DIALOG_STYLE_INPUT, "{FFFF00}Distвncia:", "{FFFFFF}Abaixo, insira a distвncia para o player ver a nova label!", "Criar", "");
if(listitem == 9) LabelInfo[LabelID][Cor] = AzulClaroII; ShowPlayerDialog(playerid, Dialog_Nova_Label_Distancia, DIALOG_STYLE_INPUT, "{FFFF00}Distвncia:", "{FFFFFF}Abaixo, insira a distвncia para o player ver a nova label!", "Criar", "");
if(listitem == 10) LabelInfo[LabelID][Cor] = Roxo; ShowPlayerDialog(playerid, Dialog_Nova_Label_Distancia, DIALOG_STYLE_INPUT, "{FFFF00}Distвncia:", "{FFFFFF}Abaixo, insira a distвncia para o player ver a nova label!", "Criar", "");
if(listitem == 11) LabelInfo[LabelID][Cor] = RoxoClaro; ShowPlayerDialog(playerid, Dialog_Nova_Label_Distancia, DIALOG_STYLE_INPUT, "{FFFF00}Distвncia:", "{FFFFFF}Abaixo, insira a distвncia para o player ver a nova label!", "Criar", "");
if(listitem == 12) LabelInfo[LabelID][Cor] = Branco; ShowPlayerDialog(playerid, Dialog_Nova_Label_Distancia, DIALOG_STYLE_INPUT, "{FFFF00}Distвncia:", "{FFFFFF}Abaixo, insira a distвncia para o player ver a nova label!", "Criar", "");
if(listitem == 13) LabelInfo[LabelID][Cor] = Preto; ShowPlayerDialog(playerid, Dialog_Nova_Label_Distancia, DIALOG_STYLE_INPUT, "{FFFF00}Distвncia:", "{FFFFFF}Abaixo, insira a distвncia para o player ver a nova label!", "Criar", "");
if(listitem == 14) LabelInfo[LabelID][Cor] = VerdeOliva; ShowPlayerDialog(playerid, Dialog_Nova_Label_Distancia, DIALOG_STYLE_INPUT, "{FFFF00}Distвncia:", "{FFFFFF}Abaixo, insira a distвncia para o player ver a nova label!", "Criar", "");
DOF2_SetInt(Pasta, "Cor", LabelInfo[LabelID][Cor]);
GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
DOF2_SetFloat(Pasta, "PosicaoX", Pos[0]);
DOF2_SetFloat(Pasta, "PosicaoY", Pos[1]);
DOF2_SetFloat(Pasta, "PosicaoZ", Pos[2]);
DOF2_SetInt(Pasta, "Mundo", GetPlayerVirtualWorld(playerid));
}
return 1;
}
if(dialogid == Dialog_Nova_Label_Distancia)
{
new Msg[128];
DOF2_SetFloat(Pasta, "Distancia", float(strval(inputtext)));
DOF2_SaveFile();
Create3DTextLabel(DOF2_GetString(Pasta, "Texto"), DOF2_GetInt(Pasta, "Cor"), DOF2_GetFloat(Pasta, "PosicaoX"), DOF2_GetFloat(Pasta, "PosicaoY"), DOF2_GetFloat(Pasta, "PosicaoZ"), DOF2_GetFloat(Pasta, "Distancia"), DOF2_GetInt(Pasta, "Mundo"), 0);
DOF2_SetInt("Labels/LabelsCriadas.ini", "Total de 3DTextLabels criadas", LabelID);
format(Msg, 128, "{00FF00}Label ID: %d criada.", LabelID);
SendClientMessage(playerid, -1, Msg);
return 1;
}
return 1;
}
CMD:criarlabel(playerid, params[])
{
new TextoLabel[500], Pasta[128];
LabelID = DOF2_GetInt("Labels/LabelsCriadas.ini", "Total de 3DTextLabels criadas")+1;
format(Pasta, 128, PASTA_LABELS, LabelID);
if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid, -1, "{FF0000}Esse comando sу pode ser executado por um admin RCON!");
if(sscanf(params, "s[500]", TextoLabel))return SendClientMessage(playerid, -1, "{FF00FF}#{FFFFFF} Uso: /CriarLabel [Texto]");
ShowPlayerDialog(playerid, Dialog_Nova_Label_Cor, DIALOG_STYLE_LIST, "{FFFF00}Cor:", "{FFFF00}Amarelo\n\
{0000FF}Azul Forte\n\
{FF5604}Laranja\n\
{FF0000}Vermelho\n\
{00F9F9}Cyan\n\
{C0C0C0}Cinza\n\
{80FF80}Verde\n\
{FF00FF}Rosa\n\
{00FFFF}Azul Claro I\n\
{33CCFF}Azul Claro II\n\
{A02DD2}Roxo\n\
{E285FA}Roxo Claro\n\
{FFFFFF}Branco\n\
{000000}Preto\n\
{9DAD80}Verde Oliva", "Selecionar", "");
if(!DOF2_FileExists(Pasta))
{
DOF2_CreateFile(Pasta);
DOF2_SetString(Pasta, "Texto", TextoLabel);
DOF2_SaveFile();
}
else
{
DOF2_SetString(Pasta, "Texto", TextoLabel);
DOF2_SaveFile();
}
return 1;
}
stock CarregarLabel(a)
{
new Pasta[128];
format(Pasta, 128, PASTA_LABELS, LabelInfo[a]);
strpack(LabelInfo[a][Texto], DOF2_GetString(Pasta, "Texto"));
LabelInfo[a][Cor] = DOF2_GetInt(Pasta, "Cor");
LabelInfo[a][LocX] = DOF2_GetFloat(Pasta, "PosicaoX");
LabelInfo[a][LocY] = DOF2_GetFloat(Pasta, "PosicaoY");
LabelInfo[a][LocZ] = DOF2_GetFloat(Pasta, "PosicaoZ");
LabelInfo[a][Distancia] = DOF2_GetFloat(Pasta, "Distancia");
LabelInfo[a][Mundo] =DOF2_GetInt(Pasta, "Mundo");
}
stock DeletarLabel(a)
{
new Pasta[128];
format(Pasta, 128, PASTA_LABELS, LabelInfo[a]);
DOF2_SetString(Pasta, "Texto", "Empty");
DOF2_SetInt(Pasta, "Cor", "0xFFFFFFFF");
DOF2_SetFloat(Pasta, "PosicaoX", "0.0");
DOF2_SetFloat(Pasta, "PosicaoY", "0.0");
DOF2_SetFloat(Pasta, "PosicaoZ", "0.0");
DOF2_SetFloat(Pasta, "Distancia", "0.0");
DOF2_SetInt(Pasta, "Mundo", "0");
DOF2_RemoveFile(Pasta);
}
#else
main(){}
#endif
OBS: Nгo utilize vбrias if sendo que ele sу irб selecionar um item da lista, utilize