SA-MP Forums Archive
[PETICION]Announce - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: [PETICION]Announce (/showthread.php?tid=123348)



[PETICION]Announce - Karkanos - 25.01.2010

Bueno me gustaria un announce como los de gamemodetext o como se llame pero me sutaria con el

shady textdraw el que se mueve http://forum.sa-mp.com/index.php?topic=114586.0

porfavor mandarme el codigo por PM no confio en algunos despues en su server diran que a ellos se les ocurrio la idea

Gracias


Re: [PETICION]Announce - Zoutdaxv - 25.01.2010

pawn Код:
#define ANUNCIO "Probando Anuncio" // йste es el anuncio que aparecerб

new Text:Anuncio;
new Text:Cuadro;

public OnFilterScriptInit() // o tambiйn puede ir en OnGameModeInit()
{
  Anuncio = TextDrawCreate(-300.0, 433.000, ANUNCIO);
  TextDrawBackgroundColor(Anuncio, 255);
  TextDrawFont(Anuncio, 1);
  TextDrawLetterSize(Anuncio, 0.500000, 1.000000);
  TextDrawColor(Anuncio, -1);
  TextDrawSetOutline(Anuncio, 0);
  TextDrawSetProportional(Anuncio, 1);
  TextDrawSetShadow(Anuncio, 1);
  Cuadro = TextDrawCreate(0.000000, 432.000000, "Cuadro");
  TextDrawBackgroundColor(Cuadro, 0);
  TextDrawFont(Cuadro, 1);
  TextDrawLetterSize(Cuadro, 0.500000, 1.300000);
  TextDrawColor(Cuadro, 0);
  TextDrawSetOutline(Cuadro, 0);
  TextDrawSetProportional(Cuadro, 1);
  TextDrawSetShadow(Cuadro, 1);
  TextDrawUseBox(Cuadro, 1);
  TextDrawBoxColor(Cuadro, 65535);
  TextDrawTextSize(Cuadro, 636.000000, 0.000000);
  SetTimer("Mover", 100, 1);//100 milisegundos ajusta el tiempo al que desees
  return 1;
}

forward Mover();
public Mover()
{
  static Float:pos = -300.00;
  pos += 10.00;//aquн lo que se moverб en el tiempo determinado
  if(pos >= 650.00) pos = -300.00;
  TextDrawHideForAll(Anuncio);
  TextDrawDestroy(Anuncio);
  Anuncio = TextDrawCreate(pos, 433.000, ANUNCIO);
  TextDrawBackgroundColor(Anuncio, 255);
  TextDrawFont(Anuncio, 1);
  TextDrawLetterSize(Anuncio, 0.500000, 1.000000);
  TextDrawColor(Anuncio, -1);
  TextDrawSetOutline(Anuncio, 0);
  TextDrawSetProportional(Anuncio, 1);
  TextDrawSetShadow(Anuncio, 1);
  TextDrawShowForAll(Anuncio);
  TextDrawShowForAll(Cuadro);
}
Creditos: Zamaroht por el TextDrawEditor, y a mн por que yo lo hice .

Puedes cambiar el color del texto o el color del cuadro. Vн el del video, pero es mбs facil con йste. Son menos lнneas y sуlo cambias un string.

Se vera asн:
Imagen
Saludos.


Re: [PETICION]Announce - TheChaoz - 25.01.2010

la idea es compartir no querer cosas para uno mismo LOL (si no no tendria sentido compartir codigos xq los hice yo o los hoso X)



Re: [PETICION]Announce - Karkanos - 25.01.2010

xP gracias pero como lo hago en comando?

pero me gustaria que el admin escriba el anuncio


Re: [PETICION]Announce - TheChaoz - 25.01.2010

modificacion al codigo de infierno:
pawn Код:
#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

#define ANUNCIO "Probando Anuncio" // йste es el anuncio que aparecerб

new Text:Anuncio;
new Text:Cuadro;
new MoverT;

public OnPlayerCommandText(playerid, cmdtext[])
{
  dcmd(anuncio, 7, cmdtext);
  return 0;
}

dcmd_anuncio(playerid, params[]){
//Nota: si el jugador no es un admin de rcon no lo dejara usar el comando. Cambia esto en tu script x algo asi como el ladmin que tiene PlayerInfo[playerid][Level] para que los demas admins tambien lo puedan usar

  if(IsPlayerAdmin(playerid)){
    if(!strlen(params))return SendClientMessage(playerid, 0xF6F600F6, "USO: /anuncio <mensaje>");
    Anuncio = TextDrawCreate(-300.0, 433.000, ANUNCIO);
    TextDrawBackgroundColor(Anuncio, 255);
    TextDrawFont(Anuncio, 1);
    TextDrawLetterSize(Anuncio, 0.500000, 1.000000);
    TextDrawColor(Anuncio, -1);
    TextDrawSetOutline(Anuncio, 0);
    TextDrawSetProportional(Anuncio, 1);
    TextDrawSetShadow(Anuncio, 1);
    Cuadro = TextDrawCreate(0.000000, 432.000000, "Cuadro");
    TextDrawBackgroundColor(Cuadro, 0);
    TextDrawFont(Cuadro, 1);
    TextDrawLetterSize(Cuadro, 0.500000, 1.300000);
    TextDrawColor(Cuadro, 0);
    TextDrawSetOutline(Cuadro, 0);
    TextDrawSetProportional(Cuadro, 1);
    TextDrawSetShadow(Cuadro, 1);
    TextDrawUseBox(Cuadro, 1);
    TextDrawBoxColor(Cuadro, 65535);
    TextDrawTextSize(Cuadro, 636.000000, 0.000000);
    MoverT = SetTimer("Mover", 100, 1);//100 milisegundos ajusta el tiempo al que desees
    SetTimer("Killer", 3000, 0);//3000 milisegundos, es el tiempo que durara el anuncio.
    return 1;
  }else return SendClientMessage(playerid, 0xFF0000AA, "ERROR: Debes ser un administrador para poder usar este comando");
}

forward Mover();
public Mover()
{
  static Float:pos = -300.00;
  pos += 10.00;//aquн lo que se moverб en el tiempo determinado
  if(pos >= 650.00) pos = -300.00;
  TextDrawHideForAll(Anuncio);
  TextDrawDestroy(Anuncio);
  Anuncio = TextDrawCreate(pos, 433.000, ANUNCIO);
  TextDrawBackgroundColor(Anuncio, 255);
  TextDrawFont(Anuncio, 1);
  TextDrawLetterSize(Anuncio, 0.500000, 1.000000);
  TextDrawColor(Anuncio, -1);
  TextDrawSetOutline(Anuncio, 0);
  TextDrawSetProportional(Anuncio, 1);
  TextDrawSetShadow(Anuncio, 1);
  TextDrawShowForAll(Anuncio);
  TextDrawShowForAll(Cuadro);
}

forward Killer();
public Killer()
{
  TextDrawDestroy(Anuncio);
  TextDrawDestroy(Cuadro);
  KillTimer(MoverT);
}
Creditos: Zamaroht por el TextDrawEditor, Infierno x el trabajo, Yo x la mini modificacion(ni cuenta) xD

Espero que te funcione y te sirva


Re: [PETICION]Announce - Zoutdaxv - 25.01.2010

Es mejor asн, por que si el anuncio estб muy largo se verб mal ja.
Quitas el define y agregas:

osea йste:

pawn Код:
#define ANUNCIO "Probando Anuncio"
por йste:

pawn Код:
new ANUNCIO[128] = "Probando Anuncio";
Y despuйs:

pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
  new
    tmp[128],
    cmd[128],
    idx;   

    cmd = strtok(cmdtext, idx);
    if(!strcmp(cmd,"/anuncio", true))
    {
      if(!IsPlayerAdmin(playerid)) return 0;
      tmp = strrest(cmdtext, idx);//
      if(!strlen(tmp)) return SendClientMessage(playerid, 0x00F600AA, "Usa /anuncio [texto]");
      format(ANUNCIO, 20, "%s", tmp);
      return 1;
    }
    return 0;
}
Y al final pones(si es que no lo tienes):

pawn Код:
stock strrest(const string[], &index)
{
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
        index++;
    }
    new offset = index;
    new result[128];
    while ((index < length) && ((index - offset) < (sizeof(result) - 1)))
    {
        result[index - offset] = string[index];
        index++;
    }
    result[index - offset] = EOS;
    return result;
}
Asн continuarб avanzando sуlo que con el anuncio cambiado.

EDIT: strtok por strrest, Gracias a Karkanos :P


Re: [PETICION]Announce - xenowort - 25.01.2010

a mi me sirvio le primero,los otros 2 ultimos no funcionaron.No sale errores pero no sale el texto..de todos modos esta muy bueno el aporte


Re: [PETICION]Announce - Zoutdaxv - 25.01.2010

Quote:
Originally Posted by xenowort
a mi me sirvio le primero,los otros 2 ultimos no funcionaron.No sale errores pero no sale el texto..de todos modos esta muy bueno el aporte
Por que tienes que agregar el primero mбs el que puse despues osea el comando.


Re: [PETICION]Announce - xenowort - 25.01.2010

Quote:
Originally Posted by Infierno
Quote:
Originally Posted by xenowort
a mi me sirvio le primero,los otros 2 ultimos no funcionaron.No sale errores pero no sale el texto..de todos modos esta muy bueno el aporte
Por que tienes que agregar el primero mбs el que puse despues osea el comando.
cierto un error mio,no me di cuenta xd


Re: [PETICION]Announce - Karkanos - 26.01.2010

gracias a todos