[Pedido] Sistema de Label In-Game
#1

Tipo Essas !
http://prntscr.com/7nmx29
Reply
#2

no basico й isso

PHP код:
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;
} 
Reply
#3

Uma Base:

PHP код:
//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;
} 
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)