[Aporte] Mensajes automaticos mejorados

Aprende lo que no sabes de este lenguaje y encuentra herramientas y códigos útiles.

Moderador: Ayudantes

Reglas del Foro
  • Si tu código es corto, no crees un tema nuevo para liberarlo, publica un mensaje en el tema [Funciones] ¡Publica tu código aquí!.
  • Si creas una guía, debes explicar el código claramente. Evita poner la explicación en forma de comentarios dentro del mismo y no olvides utilizar el BBCode correspondiente: [Pawn]Código aquí[/Pawn].
  • No postear códigos sin probar. Publicar códigos con errores (que impidan compilar el script para el cual está destinado) en este apartado es motivo de sanción.
  • Si tu código necesita plugins, includes u otros códigos adicionales para funcionar, debes mencionarlo en el mensaje.
  • Si has utilizado códigos de otros autores, recuerda colocar los créditos correspondientes. (El plagio es motivo de sanción).
  • Si tu aporte es para un GameMode en específico, debes publicar el tema en el apartado "Guías y Aportes para GameModes específicos".
Responder
Avatar de Usuario
Alejandro44
Aprendiz
Aprendiz
Mensajes: 138
Registrado: 30 Ago 2017 07:07
Ubicación: Venezuela
Contactar:
Reputación: 6

10 Dic 2017 09:23

Bueno aca les traigo un aporte de mensajes automaticos sirve para Server Roleplay O FR

Bien Aca Les Dejo El Codigo:
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175

/*
By: Alejandro44

*/
/////Aqui Pueden Agregar Mas Colores ///
#define COLOR_CELESTE 0x00FFFFFF
#define COLOR_AMARILLO 0xFFFF00FF
#define COLOR_ROJO 0xFF0000AA
#define COLOR_NARANJA2 0xFF9900AA
#define COLOR_AZUL 0x00FFFFAA
#define COLOR_DORADO 0xE5E52BAA
#define COLOR_BLANCO 0xFFFFFFAA
#define COLOR_VIOLETA 0x9f1488ff
#define COLOR_GRIS 0x00ff00ff

#include <a_samp>

new string[128];
new playername[128];
new Playerid;
new Mensaje;
new RMsg[MAX_PLAYERS];

public OnFilterScriptInit()
{
    print("Cargando Mensajes Automaticos!.");
	SetTimer("MensajesAutomaticos", 120000, 1); //Aqui Pueden Agregar El Tiempo Cada Cuanto Aparecera Un Mensaje Automatico
	return 1;
}

forward MensajesAutomaticos();
public MensajesAutomaticos()
{
	Mensaje = random(9);
	if(Mensaje == 0)
	{
	    for(Playerid = 0; Playerid <= 500; Playerid++)
		{
		    if(IsPlayerConnected(Playerid) && RMsg[Playerid] == 0)
		    {
    			format(string, sizeof(string),"{BA0000}[Info]{BA0000}{FAFAFA}Mensaje{077DEC}Mensaje{077DEC}", playername);
			    SendClientMessage(Playerid,COLOR_CELESTE,string);
		    }
		}
	}
	else if(Mensaje == 1)
	{
	    for(Playerid = 0; Playerid <= 500; Playerid++)
		{
		    if(IsPlayerConnected(Playerid) && RMsg[Playerid] == 0)
		    {
    			format(string, sizeof(string),"{BA0000}[Info]{BA0000}{FAFAFA}Mensaje {BA0000}Mensaje{BA0000}{FAFAFA}Mensaje", playername);
			    SendClientMessage(Playerid,COLOR_AMARILLO,string);
		    }
		}
	}
	else if(Mensaje == 2)
	{
	    for(Playerid = 0; Playerid <= 500; Playerid++)
		{
		    if(IsPlayerConnected(Playerid) && RMsg[Playerid] == 0)
		    {
   			 	format(string, sizeof(string),"{BA0000}[Info]{BA0000}{FAFAFA}Mensaje{FAFAFA}", playername);
	    		SendClientMessage(Playerid,COLOR_ROJO,string);
		    }
		}
	}
	else if(Mensaje == 3)
	{
	    for(Playerid = 0; Playerid <= 500; Playerid++)
		{
		    if(IsPlayerConnected(Playerid) && RMsg[Playerid] == 0)
		    {
    			format(string, sizeof(string),"{BA0000}[Info]{BA0000}{FAFAFA}Mensaje{FAFAFA}", playername);
			    SendClientMessage(Playerid,COLOR_NARANJA2,string);
		    }
		}
	}
 	else if(Mensaje == 4)
	{
	    for(Playerid = 0; Playerid <= 500; Playerid++)
		{
		    if(IsPlayerConnected(Playerid) && RMsg[Playerid] == 0)
		    {
     			format(string, sizeof(string),"{BA0000}[Info]{BA0000}{FAFAFA}Mensaje{FAFAFA}", playername);
     			SendClientMessage(Playerid,COLOR_AZUL,string);
		    }
		}
}
    else if(Mensaje == 5)
	{
	    for(Playerid = 0; Playerid <= 500; Playerid++)
		{
		    if(IsPlayerConnected(Playerid) && RMsg[Playerid] == 0)
		    {
    			format(string, sizeof(string),"{BA0000}[Info]{BA0000}{FAFAFA}Mensaje{FAFAFA}", playername);
			    SendClientMessage(Playerid,COLOR_DORADO,string);
		    }
		}
}
	else if(Mensaje == 6)
	{
	    for(Playerid = 0; Playerid <= 500; Playerid++)
		{
		    if(IsPlayerConnected(Playerid) && RMsg[Playerid] == 0)
		    {
    			format(string, sizeof(string),"{BA0000}[Info]{BA0000}{FAFAFA}Mensaje{FAFAFA}", playername);
			    SendClientMessage(Playerid,COLOR_VIOLETA,string);
		    }
		}
	}
	else if(Mensaje == 7)
	{
	    for(Playerid = 0; Playerid <= 500; Playerid++)
		{
		    if(IsPlayerConnected(Playerid) && RMsg[Playerid] == 0)
		    {
    			format(string, sizeof(string),"{BA0000}[Info]{BA0000}{FAFAFA}Mensaje{FAFAFA}", playername);
			    SendClientMessage(Playerid,COLOR_ROJO,string);
		    }
		}
	}
	else if(Mensaje == 8)
	{
	    for(Playerid = 0; Playerid <= 500; Playerid++)
		{
		    if(IsPlayerConnected(Playerid) && RMsg[Playerid] == 0)
		    {
    			format(string, sizeof(string),"{BA0000}[Info]{BA0000}{FAFAFA}Mensaje{FAFAFA}", playername);
			    SendClientMessage(Playerid,COLOR_ROJO,string);
		    }
		}
	}
	else if(Mensaje == 9)
	{
	    for(Playerid = 0; Playerid <= 500; Playerid++)
		{
		    if(IsPlayerConnected(Playerid) && RMsg[Playerid] == 0)
		    {
    			format(string, sizeof(string),"{BA0000}[Info]{BA0000}{FAFAFA}Mensaje{FAFAFA}", playername);
			    SendClientMessage(Playerid,COLOR_GRIS,string);
		    }
		}
	}
	else if(Mensaje == 10)
	{
	    for(Playerid = 0; Playerid <= 500; Playerid++)
		{
		    if(IsPlayerConnected(Playerid) && RMsg[Playerid] == 0)
		    {
    			format(string, sizeof(string),"{BA0000}[Info]{BA0000}{FAFAFA}Mensaje{FAFAFA} {BA0000}Mensaje{BA0000}", playername);
			    SendClientMessage(Playerid,COLOR_GRIS,string);
		    }
		}
	}
	return 1;
}

public OnFilterScriptExit()
{
	print("Mensajes Automaticos Finalizados!");
	return 1;
}

public OnPlayerConnect(playerid)
{
	RMsg[playerid] = 0;
	return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
	RMsg[playerid] = 0;
	return 1;
}
  Cantidad de llaves: Abiertas(87)-Cerradas(87) | Lineas Totales: 175

Para Los Que No les Gusta Poner en su gm Aca El FS:


http://www.mediafire.com/file/vicawva3c ... aticos.pwn

http://www.mediafire.com/file/3cis3u423 ... aticos.amx
Mis aportes:


Willian Rojas
Aprendiz
Aprendiz
Mensajes: 32
Registrado: 22 Sep 2017 10:50
Reputación: 3

10 Dic 2017 11:14

Spoiler:
Alejandro44 escribió:
10 Dic 2017 09:23
Bueno aca les traigo un aporte de mensajes automaticos sirve para Server Roleplay O FR

Bien Aca Les Dejo El Codigo:
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175

/*
By: Alejandro44

*/
/////Aqui Pueden Agregar Mas Colores ///
#define COLOR_CELESTE 0x00FFFFFF
#define COLOR_AMARILLO 0xFFFF00FF
#define COLOR_ROJO 0xFF0000AA
#define COLOR_NARANJA2 0xFF9900AA
#define COLOR_AZUL 0x00FFFFAA
#define COLOR_DORADO 0xE5E52BAA
#define COLOR_BLANCO 0xFFFFFFAA
#define COLOR_VIOLETA 0x9f1488ff
#define COLOR_GRIS 0x00ff00ff

#include <a_samp>

new string[128];
new playername[128];
new Playerid;
new Mensaje;
new RMsg[MAX_PLAYERS];

public OnFilterScriptInit()
{
    print("Cargando Mensajes Automaticos!.");
	SetTimer("MensajesAutomaticos", 120000, 1); //Aqui Pueden Agregar El Tiempo Cada Cuanto Aparecera Un Mensaje Automatico
	return 1;
}

forward MensajesAutomaticos();
public MensajesAutomaticos()
{
	Mensaje = random(9);
	if(Mensaje == 0)
	{
	    for(Playerid = 0; Playerid <= 500; Playerid++)
		{
		    if(IsPlayerConnected(Playerid) && RMsg[Playerid] == 0)
		    {
    			format(string, sizeof(string),"{BA0000}[Info]{BA0000}{FAFAFA}Mensaje{077DEC}Mensaje{077DEC}", playername);
			    SendClientMessage(Playerid,COLOR_CELESTE,string);
		    }
		}
	}
	else if(Mensaje == 1)
	{
	    for(Playerid = 0; Playerid <= 500; Playerid++)
		{
		    if(IsPlayerConnected(Playerid) && RMsg[Playerid] == 0)
		    {
    			format(string, sizeof(string),"{BA0000}[Info]{BA0000}{FAFAFA}Mensaje {BA0000}Mensaje{BA0000}{FAFAFA}Mensaje", playername);
			    SendClientMessage(Playerid,COLOR_AMARILLO,string);
		    }
		}
	}
	else if(Mensaje == 2)
	{
	    for(Playerid = 0; Playerid <= 500; Playerid++)
		{
		    if(IsPlayerConnected(Playerid) && RMsg[Playerid] == 0)
		    {
   			 	format(string, sizeof(string),"{BA0000}[Info]{BA0000}{FAFAFA}Mensaje{FAFAFA}", playername);
	    		SendClientMessage(Playerid,COLOR_ROJO,string);
		    }
		}
	}
	else if(Mensaje == 3)
	{
	    for(Playerid = 0; Playerid <= 500; Playerid++)
		{
		    if(IsPlayerConnected(Playerid) && RMsg[Playerid] == 0)
		    {
    			format(string, sizeof(string),"{BA0000}[Info]{BA0000}{FAFAFA}Mensaje{FAFAFA}", playername);
			    SendClientMessage(Playerid,COLOR_NARANJA2,string);
		    }
		}
	}
 	else if(Mensaje == 4)
	{
	    for(Playerid = 0; Playerid <= 500; Playerid++)
		{
		    if(IsPlayerConnected(Playerid) && RMsg[Playerid] == 0)
		    {
     			format(string, sizeof(string),"{BA0000}[Info]{BA0000}{FAFAFA}Mensaje{FAFAFA}", playername);
     			SendClientMessage(Playerid,COLOR_AZUL,string);
		    }
		}
}
    else if(Mensaje == 5)
	{
	    for(Playerid = 0; Playerid <= 500; Playerid++)
		{
		    if(IsPlayerConnected(Playerid) && RMsg[Playerid] == 0)
		    {
    			format(string, sizeof(string),"{BA0000}[Info]{BA0000}{FAFAFA}Mensaje{FAFAFA}", playername);
			    SendClientMessage(Playerid,COLOR_DORADO,string);
		    }
		}
}
	else if(Mensaje == 6)
	{
	    for(Playerid = 0; Playerid <= 500; Playerid++)
		{
		    if(IsPlayerConnected(Playerid) && RMsg[Playerid] == 0)
		    {
    			format(string, sizeof(string),"{BA0000}[Info]{BA0000}{FAFAFA}Mensaje{FAFAFA}", playername);
			    SendClientMessage(Playerid,COLOR_VIOLETA,string);
		    }
		}
	}
	else if(Mensaje == 7)
	{
	    for(Playerid = 0; Playerid <= 500; Playerid++)
		{
		    if(IsPlayerConnected(Playerid) && RMsg[Playerid] == 0)
		    {
    			format(string, sizeof(string),"{BA0000}[Info]{BA0000}{FAFAFA}Mensaje{FAFAFA}", playername);
			    SendClientMessage(Playerid,COLOR_ROJO,string);
		    }
		}
	}
	else if(Mensaje == 8)
	{
	    for(Playerid = 0; Playerid <= 500; Playerid++)
		{
		    if(IsPlayerConnected(Playerid) && RMsg[Playerid] == 0)
		    {
    			format(string, sizeof(string),"{BA0000}[Info]{BA0000}{FAFAFA}Mensaje{FAFAFA}", playername);
			    SendClientMessage(Playerid,COLOR_ROJO,string);
		    }
		}
	}
	else if(Mensaje == 9)
	{
	    for(Playerid = 0; Playerid <= 500; Playerid++)
		{
		    if(IsPlayerConnected(Playerid) && RMsg[Playerid] == 0)
		    {
    			format(string, sizeof(string),"{BA0000}[Info]{BA0000}{FAFAFA}Mensaje{FAFAFA}", playername);
			    SendClientMessage(Playerid,COLOR_GRIS,string);
		    }
		}
	}
	else if(Mensaje == 10)
	{
	    for(Playerid = 0; Playerid <= 500; Playerid++)
		{
		    if(IsPlayerConnected(Playerid) && RMsg[Playerid] == 0)
		    {
    			format(string, sizeof(string),"{BA0000}[Info]{BA0000}{FAFAFA}Mensaje{FAFAFA} {BA0000}Mensaje{BA0000}", playername);
			    SendClientMessage(Playerid,COLOR_GRIS,string);
		    }
		}
	}
	return 1;
}

public OnFilterScriptExit()
{
	print("Mensajes Automaticos Finalizados!");
	return 1;
}

public OnPlayerConnect(playerid)
{
	RMsg[playerid] = 0;
	return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
	RMsg[playerid] = 0;
	return 1;
}
  Cantidad de llaves: Abiertas(87)-Cerradas(87) | Lineas Totales: 175

Para Los Que No les Gusta Poner en su gm Aca El FS:


http://www.mediafire.com/file/vicawva3c ... aticos.pwn

http://www.mediafire.com/file/3cis3u423 ... aticos.amx
Este sistema lo tengo y es igualito no editaste nada , Solo el mensaje , Deja los creditos cuando saques algo de otro FS -dance4
Logros Encontrados

APORTES Y GUÍAS

Crear una Selección de Skin: viewtopic.php?f=40&t=24940

Login/Logueo Sencillo: viewtopic.php?f=40&t=24874

Mapeo de navidad: viewtopic.php?f=43&t=24706

Guía crear un soporte en dialogo: viewtopic.php?f=40&t=25146

GAMEMODE: Zombis Vs Humanos Vs FBI Vs Militares: viewtopic.php?f=41&t=25148

Aporte Pagina para tu servidor :viewtopic.php?f=68&t=25166

Avatar de Usuario
Lautaro97
Junior
Junior
Mensajes: 352
Registrado: 16 Feb 2015 15:46
Ubicación: Cordoba, Argentina
Reputación: 10

10 Dic 2017 11:22

Hola, se te agradece el querer aportar a la comunidad pero... esto ya ha sido posteado anteriormente varias veces.

También hay varios errores y mala optimización en tu código, sin contar que hay variables que ni siquiera están siendo utilizadas.

Primero que nada, no es necesario y tampoco recomendado utilizar un array global como este...
 Codigo Pawno:
1

new string[128];
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
2) Hay variables que ni siquiera están siendo utilizando como..
 Codigo Pawno:
1

new playername[128]
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
sin contar que le asignas 128 celdas lo cual por el nombre de la variable lo que se supone que debe contener es el nombre de un jugador... el máximo número de caracteres que un jugador puede llevar en su nombre es de 24 o bien podrías utilizar MAX_PLAYER_NAME que es exactamente igual.

Variables como...
 Codigo Pawno:
1
2

new Mensaje;
new string[128];
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 2
Deberían ser locales colocandolas en la funcion MensajesAutomaticos

3) La manera en la que utilizas el bucle es incorrecta sin contar que es innecesaria y podrías hacer el bucle más rápido utilizado el include foreach o de esta manera.
 Codigo Pawno:
1
2
3
4

for(new playerid, j = GetPlayerPoolSize(); playerid < j; playerid++)
{
//....
}
  Cantidad de llaves: Abiertas(1)-Cerradas(1) | Lineas Totales: 4

4) ¿Para que definir los colores si cambias el color del texto en el formato?

5) Esta comprobado que utilizando if... else if es bastante lento ya que el se verifica condición por condición... Para ello te recomiendo utilizar switch de esta manera
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10

switch(Mensaje)
{
	case 0:
	{
	}
	case 1:
	{
	}
	//etc...
}
  Cantidad de llaves: Abiertas(3)-Cerradas(3) | Lineas Totales: 10

Tampoco le encuentro el sentido y/o el uso de la variable "RMsg" ya que le asignas el valor en 0 al conectarse y al desconectarse, tampoco cambia en ningún momento dicho valor... asi que simplemente es una variable sin sentido...

Espero que no lo tomes a mal y puedas seguir mejorando, saludos -good
Avatar de Usuario
MrDave
Ayudante
Ayudante
Mensajes: 1048
Registrado: 05 Oct 2017 12:13
Reputación: 113

10 Dic 2017 11:46

Mucho código..
Mejor es así..
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

#include <YSI\y_timers>

public OnGameModeInit()
{
repeat EnviarMensajes();
return 1;
}

timer EnviarMensajes[60000]()
{
new Mensajes[4][10] = {
{"Mensaje 1"},
{"Mensaje 2"},
{"Mensaje 3"},
{"Mensaje 4"}
};
SendClientMessageToAll(-1, Mensajes[random(sizeof(Mensajes))]);
}
  Cantidad de llaves: Abiertas(7)-Cerradas(7) | Lineas Totales: 18

- Temporalmente estoy retirado de SA-MP; por lo tanto no me envíen propuestas de proyectos.
- No respondo dudas por privado, usa la sección de preguntas.
Avatar de Usuario
Kanamex
Aprendiz
Aprendiz
Mensajes: 181
Registrado: 22 Mar 2017 02:33
Ubicación: México
Contactar:
Reputación: 4

18 Dic 2017 09:16

Es mucho codigo, seria mejor ponerlo en un random, se gastan menos lineas -thumbup
Scripter
65%
Mapper
30%
webmaster
70%
¿Quieres ver mis aportes?
Spoiler:
todos somos noobs, nadie es mas que otro y si se cree mas algun dia lo veras que te pedira ayuda en alguna ocasión.

Aportes

Crear bandas IG en gm Oz viewtopic.phpf=40&t=21128

TexDraw de entrada simple viewtopic.php?f=40&t=21390

Sistema de vagabundos simpleviewtopic.php?f=40&p=113282#p113282
Guias

Guia como poner texto en los objetos viewtopic.php?f=40&t=25347
Mapas

[Mapa]Spawn para Freerom por Snapy viewtopic.php?f=43&t=21342

[Mapa]HQ en un interior para pandilleros por Kanamex viewtopic.php?f=43&t=21687


Gm

Actualmente estoy trabajando en una gm si quieres ser parte de el proyecto manda pm
#HailGrasa prros :v

Avatar de Usuario
Marvin
Aprendiz
Aprendiz
Mensajes: 387
Registrado: 21 Abr 2014 14:34
Reputación: 4

27 Dic 2017 03:36

Nunca faltan los que critican por la mala optimización o las 1K de líneas usadas en un código, aunque lo ultimo de MrDave estuvo excelente. xd

Sólo una cosa, no veo para que usar esos #define de colores si en los mensajes ya estás usando un color.
 Codigo Pawno:
1

/* Server closed the connection. */
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
APORTES


Responder