Programación en Pawn - SAMP

Sistema de /duda (RP)

Moderador: Ayudantes

Información detallada del pedido: Bueno lo que busco es un sistema típico de /d o /duda que la duda se haga global para que lo vean todos, solo eso, para Roleplay

GM / FS: gm de 0

notas: --
Tantas gamemodes para extraer un sistema tan básico. xd
Lo que hace la pereza de consultar.


viewtopic.php?f=40&t=613

viewtopic.php?t=715

Créditos a OTACON.
 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

#include <a_samp>
#include <sscanf2> //http://forum.sa-mp.com/showthread.php?t=120356
#include <zcmd> //http://forum.sa-mp.com/showthread.php?t=91354

//variable global para activar el canal
new bool:ActivarCanalGlobal;

//variable global para activar la visualizacion del canal por jugador
new bool:ActivarCanalPlayer[MAX_PLAYERS];

COMMAND:duda(playerid, params[]){
    new data[128],nombre[MAX_PLAYER_NAME+1], rango[50];
    
    //obtiene el nombre del jugador con la id correspondiente.
    GetPlayerName(playerid, nombre, sizeof(nombre));
    
    //verifica si no escribiste ningun texto con el comando y le dara el mensaje.
	if(sscanf(params, "s[128]", params[0])) return SendClientMessage(playerid, -1, "Escribe: /duda (texto)");

	//verifica si el canal esta desactivado y el jugador no es administrador y le dara el mensaje.
    //CAMBIAR VariableADMIN por la variable del administador de tu sistema.
	if(ActivarCanalGlobal==false && !VariableADMIN) return SendClientMessage(playerid, -1, "el canal esta desactivado y no eres admministrador!.");

	switch(VariableADMIN){ //CAMBIAR VariableADMIN por la variable del administador de tu sistema.
        case 1: rango = "nombre del rango 1"; //CAMBIAR por el nombre del rango de tu sistema.
        case 2: rango = "nombre del rango 2"; //ETC...
        case 3: rango = "nombre del rango 3"; //ETC...
        case 4: rango = "nombre del rango 4"; //ETC...
        case 5: rango = "nombre del rango 5"; //ETC...
        case 6: rango = "nombre del rango 6";//ETC...
        //ETC...
    }
    //CAMBIAR VariableADMIN por la variable del administador de tu sistema.
	if(VariableADMIN){ //es administrador
		format(data, sizeof(data), "[RANGO ADMIN:%s] [NOMBRE:%s] [TEXTO:%s]", rango, nombre, params[0]);
	    MensajesCanal(data, -1);
	}else{ //es jugador normal
		format(data, sizeof(data), "[NIVEL:%d] [NOMBRE:%s] [ID:%d] [TEXTO:%s]", GetPlayerScore(playerid), nombre, playerid, params[0]);
	    MensajesCanal(data, -1);
	}
	return true;
}

COMMAND:canalplayer(playerid, params[]){
	if(!ActivarCanalPlayer[playerid]){ //canal desactivado, no es visualizado
		ActivarCanalPlayer[playerid]=true; //activa el canal
	}else{ //canal activado, es visualizado
		ActivarCanalPlayer[playerid]=false; //desactiva el canal
	}
	return true;
}

COMMAND:canalglobal(playerid, params[]){
     //CAMBIAR VariableADMIN por la variable del administador de tu sistema.
	if(VariableADMIN){ //es administrador
		if(ActivarCanalGlobal){ //canal desactivado
			ActivarCanalGlobal=true; //activa el canal
			for(new player, user = GetMaxPlayers(); player != user; player++){
				if(!IsPlayerConnected(player)) continue;
				if(player==playerid) continue;
				ActivarCanalPlayer[player]=true; //le activa el canal a todos los jugadores para ser visualizado
			}
		}else{ //canal activado
			ActivarCanalGlobal=false; //desactiva el canal
			for(new player, user = GetMaxPlayers(); player != user; player++){
				if(!IsPlayerConnected(player)) continue;
				if(player==playerid) continue;
				ActivarCanalPlayer[player]=false; //le desactiva el canal a todos los jugadores para no ser visualizado
			}
		}
	}else{ //es jugador normal
		SendClientMessage(playerid, -1, "usted no es administrador!.");
	}
	return true;
}


stock MensajesCanal(const texto[], color) {
	if(ActivarCanalGlobal==false) return false; //verifica que el canal este en false (desactivado) asi dejara la  funcion nula.
    for(new player, user = GetMaxPlayers(); player != user; player++){ //verifica todos los jugadores que se encuentran comectados.
        if(!IsPlayerConnected(player)) continue; //verifica si el jugador esta desconectado continuara co nel siguiente.
        if(ActivarCanalPlayer[player]==true){ //verifica si el player tiene el canal activado
        	SendClientMessage(player, color, texto); //manda el mensaje correspondiente al todos los jugadores con el canal activado.
        }
    } return true;
}
  Cantidad de llaves: Abiertas(17)-Cerradas(17) | Lineas Totales: 86
KaizerHind escribió:
16 Jun 2018 16:29
Tantas gamemodes para extraer un sistema tan básico. xd
Lo que hace la pereza de consultar.


viewtopic.php?f=40&t=613

viewtopic.php?t=715

Créditos a OTACON.
 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

#include <a_samp>
#include <sscanf2> //http://forum.sa-mp.com/showthread.php?t=120356
#include <zcmd> //http://forum.sa-mp.com/showthread.php?t=91354

//variable global para activar el canal
new bool:ActivarCanalGlobal;

//variable global para activar la visualizacion del canal por jugador
new bool:ActivarCanalPlayer[MAX_PLAYERS];

COMMAND:duda(playerid, params[]){
    new data[128],nombre[MAX_PLAYER_NAME+1], rango[50];
    
    //obtiene el nombre del jugador con la id correspondiente.
    GetPlayerName(playerid, nombre, sizeof(nombre));
    
    //verifica si no escribiste ningun texto con el comando y le dara el mensaje.
	if(sscanf(params, "s[128]", params[0])) return SendClientMessage(playerid, -1, "Escribe: /duda (texto)");

	//verifica si el canal esta desactivado y el jugador no es administrador y le dara el mensaje.
    //CAMBIAR VariableADMIN por la variable del administador de tu sistema.
	if(ActivarCanalGlobal==false && !VariableADMIN) return SendClientMessage(playerid, -1, "el canal esta desactivado y no eres admministrador!.");

	switch(VariableADMIN){ //CAMBIAR VariableADMIN por la variable del administador de tu sistema.
        case 1: rango = "nombre del rango 1"; //CAMBIAR por el nombre del rango de tu sistema.
        case 2: rango = "nombre del rango 2"; //ETC...
        case 3: rango = "nombre del rango 3"; //ETC...
        case 4: rango = "nombre del rango 4"; //ETC...
        case 5: rango = "nombre del rango 5"; //ETC...
        case 6: rango = "nombre del rango 6";//ETC...
        //ETC...
    }
    //CAMBIAR VariableADMIN por la variable del administador de tu sistema.
	if(VariableADMIN){ //es administrador
		format(data, sizeof(data), "[RANGO ADMIN:%s] [NOMBRE:%s] [TEXTO:%s]", rango, nombre, params[0]);
	    MensajesCanal(data, -1);
	}else{ //es jugador normal
		format(data, sizeof(data), "[NIVEL:%d] [NOMBRE:%s] [ID:%d] [TEXTO:%s]", GetPlayerScore(playerid), nombre, playerid, params[0]);
	    MensajesCanal(data, -1);
	}
	return true;
}

COMMAND:canalplayer(playerid, params[]){
	if(!ActivarCanalPlayer[playerid]){ //canal desactivado, no es visualizado
		ActivarCanalPlayer[playerid]=true; //activa el canal
	}else{ //canal activado, es visualizado
		ActivarCanalPlayer[playerid]=false; //desactiva el canal
	}
	return true;
}

COMMAND:canalglobal(playerid, params[]){
     //CAMBIAR VariableADMIN por la variable del administador de tu sistema.
	if(VariableADMIN){ //es administrador
		if(ActivarCanalGlobal){ //canal desactivado
			ActivarCanalGlobal=true; //activa el canal
			for(new player, user = GetMaxPlayers(); player != user; player++){
				if(!IsPlayerConnected(player)) continue;
				if(player==playerid) continue;
				ActivarCanalPlayer[player]=true; //le activa el canal a todos los jugadores para ser visualizado
			}
		}else{ //canal activado
			ActivarCanalGlobal=false; //desactiva el canal
			for(new player, user = GetMaxPlayers(); player != user; player++){
				if(!IsPlayerConnected(player)) continue;
				if(player==playerid) continue;
				ActivarCanalPlayer[player]=false; //le desactiva el canal a todos los jugadores para no ser visualizado
			}
		}
	}else{ //es jugador normal
		SendClientMessage(playerid, -1, "usted no es administrador!.");
	}
	return true;
}


stock MensajesCanal(const texto[], color) {
	if(ActivarCanalGlobal==false) return false; //verifica que el canal este en false (desactivado) asi dejara la  funcion nula.
    for(new player, user = GetMaxPlayers(); player != user; player++){ //verifica todos los jugadores que se encuentran comectados.
        if(!IsPlayerConnected(player)) continue; //verifica si el jugador esta desconectado continuara co nel siguiente.
        if(ActivarCanalPlayer[player]==true){ //verifica si el player tiene el canal activado
        	SendClientMessage(player, color, texto); //manda el mensaje correspondiente al todos los jugadores con el canal activado.
        }
    } return true;
}
  Cantidad de llaves: Abiertas(17)-Cerradas(17) | Lineas Totales: 86
No hace falta tirar esa mala onda :).

y gracias por el sistema
lauti2112 escribió:
16 Jun 2018 17:22
No hace falta tirar esa mala onda :).

y gracias por el sistema
No es mala onda, es un consejo, no lo tomes a pecho.
De nada, para servir.

¿Quién está conectado?

En total hay 1 usuario conectado :: 0 registrados, 0 ocultos y 1 invitado (basados en usuarios activos en los últimos 5 minutos)
La mayor cantidad de usuarios identificados fue 855 el 27 May 2018 00:03

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado