[Ayuda] Npcs que hable? como seria?
#1

Tengo muchos npcs,pero no e logrado hacer que alguno hable,cierto tiempo,me gustaria que hablaran como cada cierto tiempo,e leeido tutoriales y revisando el buscador de esta web,pero nada me a servido,este es mi npc (tengo mas de 30 pero solo pongo 1 para horrar espacio.) por favor gracias.

Код:
#include <a_samp>

#define 			COLOR_MEGAPHONE 			0xFF9B6AFF
#define 			COLOR_GREEN 				0x9EC73DAA
#define 			COLOR_RED 					0xAA3333AA
#define 			COLOR_WHITE 				0xFFFFFFFF
#define 			COLOR_PURPLE 				0x9B9BFFFF
#define 			COLOR_OOC 					0x66FFFFFF
#define 			PAINTBALL_TEAM_RED 			0x00DCFF00
#define COLOR_COLOR 0x1478EDFF
#define 			YELLOW 						COLOR_WHITE
#define 			ORANGE 						0xF97804FF
#define             COLOR_LIGHTGREEN            COLOR_WHITE
#define             TEAM_HIT_COLOR              0xFFFFFF00
#define 			TEAM_RADIO_COLOR 			0x9B9BFFFF
#define blanco 0xFFFFFF
#define verde 0xACDE43FF
#define rojo 0xDE4343FF
#define azul 0x4378DEFF
#define naranja 0xDEC543FF
#define celeste 0x00FFFFFF
#define moradoadmin 0xE73EEBFF
 
#pragma tabsize 0

new elektra;


new const NPC_LIST[][] =
{ //recuerden reemplazar los nombres de los scripts... tal y como si estuvieran creando un ConnectNPC... de esta forma...

"Susana_Suarez","elektra"
};

public OnGameModeInit()
{


    ConectarNPCS(0); //dejamos 0 pues va a comenzar la lista desde el primer NPC...
 elektra =	AddStaticVehicle(594,2044.8854,1473.2106,10.4494,181.3339,1,1); //tienda electronica ls atiende
    	return 1;
}
//
 
//
public OnPlayerSpawn(playerid)
{
    if(IsPlayerNPC(playerid))
    {
        new npcname[MAX_PLAYER_NAME];
        GetPlayerName(playerid, npcname, sizeof(npcname)); 
        
        //desde aca para abajo nombres de los npc"s
       
         if(!strcmp(npcname, "Susana_Suarez", true))
        {
            SetPlayerSkin(playerid,150);
            PutPlayerInVehicle(playerid, elektra, 0); //atiende en electronica ls
	}
     

    }
    return 1;
}



forward ConectarNPCS(pos); //lo recuerdan de arriba en el ongamemodeinit??
public ConectarNPCS(pos) {
if(pos >= sizeof(NPC_LIST)) { printf("LISTA DE NPCS COMPLETADA"); return; }//este mensaje aparecera en tu log cuando todos los NPCs hayan sido cargados...
printf("CONECTANDO NPC: %s | SCRIPT: %s",NPC_LIST[pos],NPC_LIST[pos+1]);
ConnectNPC(NPC_LIST[pos],NPC_LIST[pos+1]);//vean aqui la funcion de connectNPCs para que no se pierdan...
SetTimerEx("ConectarNPCS",5000,false,"i",pos+=2);//en este caso, el 5000 representa
}
Reply
#2

Lo primero es que tendrнas que poner un array que englobe a los NPCS, justo delante del ConnectNPC, en el callback de ConectarNPCS. Luego, podrнas hacer algo asн:
pawn Код:
public OnPlayerUpdate(playerid)
{
for(new n=0; n < sizeof(NPC_LIST); n++)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(arrayNPC[n], x, y, z);
if(IsPlayerInRangeOfPoint(p, 20.0, x, y, z))
{
//AQUI MANDAS EL MENSAJE
}}
return 1;
}
Esto solo es una idea de como hacerlo, ya perfeccionalo tъ a tu gusto..
Reply
#3

Puedes utilizar la funciуn que te dejare aquн mas abajo, esta te puede servir para que el texto que tu quieras ponerle le salga por encima de la cabeza al npc.

https://sampwiki.blast.hk/wiki/SetPlayerChatBubble
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)