Ayuda con fcnpc
#1

Hola a todos mi pregunta es sobre el pugling fcnpc he hecho trabajar el pugling en todo y he probado cada una de sus funciones lo unico que me esta rompiendo el coco es que los npc no me causan daсo con armas les doy arma con fcnpc_SetWeapon y municion con fcnpc_Setammo y para el disparo he aplicado muchas funciones como FCNPC_AimAt ,FCNPC_IsShooting,FCNPC_IsAiming incluso FCNPC_SetKeys pero nada hace que se detecte el daсo que me hacen es mas se ve la animacion que disparan pero no se ve fuego en las armas y no se ven disparos cerca el
pawn Код:
public FCNPC_OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart)
esta funcionando por que yo si los puedo matar y he intentado con
pawn Код:
OnPlayerGiveDamage
el resultado es el mismo alguien sabe que es lo que esta pasando .... no se que mas hacerle he intentado hacerlo trabajar con funciones mas complejas como
pawn Код:
IsPlayerFacingPlayer
y hacer un sistema de daсo por medio de keys que hice pero igual los npc siguen sin hacer daсo con armas de fuego con armas cuerpo a cuerpo o sin armas si hacen daсo solo los disparos no trabajan si alguien sabe que falta o cual es la funcion que debo aplicar ayudeme se los agradesco
Reply
#2

Creo que...
pawn Код:
public FCNPC_OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart)
{
if(npcid)
{
if(playerid)
{
new Health:
GetPlayerHealth(playerid, Health);
SetPlayerHealth(playerid, Health-=5);
}
}
}
No se si funcione, solo es un ejemplo, te explico que tienes que hacer:
pawn Код:
if(npcid)
{
}
Seria: Si es npcid, ej: pablonpc
pawn Код:
if(playerid)
{
new Health:
GetPlayerHealth(playerid, Health);
SetPlayerHealth(playerid, Health-=5);
}
Una vez el npc hace daсo miraremos si el daсo recibido es un playerid, entonces si es playerid le quitara -5 a la vida..
osea que seria:
pawn Код:
public FCNPC_OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart)
{
if(npcid)
{
if(playerid)
{
new Health:
GetPlayerHealth(playerid, Health);
SetPlayerHealth(playerid, Health-=5);
}
}
}
Esa CallBack se llama cuando el npc hace un daсo , si el que dio daсo es pablonpc le restara -5 al playerid que disparo, bueno es algo asн la verdad no se si funcione, tenia una funciуn parecida en onplayertakedamage, asн que tal ves lo haya hecho al revez, pero guiate de eso, saludos men
Reply
#3

gracias por responder men pero eso solo verificaria una daсo pero no lo esta dando es como que hariamos esto
new HP:
GetPlayerHealth(playerid, HP);
new weapon;
GetPlayerWeapon(playerid);
if(weapon == 4) return SetPlayerHealth(playerid, -HP5);

asi que no creo que eso solucione lo que digo lo que esta pasando en esto es que no encuentro la funcion correcta para utilizar los callback del puglin en las armas de los npc no se ve que salgan balas se ve animacion pero nunca se ve los destellos asi que creo que ahi algo que debo buscar gracias men de todos modos
Reply
#4

a ver, pasame la call back como la tienes, yo uso fcnpc y he creado varios npcs con muchas funciones, solo que no has pasado el codigo como lo has puesto, la verdad es muy raro que te pase eso, ademбs de que intente usar esa funcion aim y tiene cierto bug de sync
Reply
#5

ok el callback funciona de estas maneras de estas tres formas me funciona
osea yo puedo matar a los npc

public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid, bodypart)
{
return 1;
}
public FCNPC_OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid, bodypart)
{
return 1;
}

public FCNPC_OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart)
{
if(!IsPlayerNPC(playerid) || !IsPlayerNPC(damagedid))
{
if(damagedid != INVALID_PLAYER_ID)
{
new Float:HP;
GetPlayerHealth(damagedid, HP);
if(weaponid < 40) return SetPlayerHealth(damagedid, HP-1);
}
}
return 1;
}


aunque no se si a ti te bote un error el FCNPC.inc el cual tenia que ver con eso te dejo el codigo
Код:
native FCNPC_ProcessDamage(playerid, damagedid, Float:amount, weaponid, bodypart);

public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart)
{
	// Process damage
	FCNPC_ProcessDamage(playerid, damagedid, Float:amount, weaponid, bodypart);
    #if defined FCNPC_OnPlayerGiveDamage
            return FCNPC_OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart);
    #else
            return 1;
    #endif
}
// Hook "OnPlayerGiveDamage" callback
#if defined _ALS_OnPlayerGiveDamage
        #undef OnPlayerGiveDamage
#else
        #define _ALS_OnPlayerGiveDamage
#endif

#define OnPlayerGiveDamage FCNPC_OnPlayerGiveDamage

#if defined FCNPC_OnPlayerGiveDamage
        forward FCNPC_OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart);
#endif
el cual solo era en esta parte que tiraba un error que era Float:amount que estaba escrito sin float: solo estaba amount
asi que no se si sea eso en el include original lo veras en fin creo que ese no es el problema igual eso es lo que tengo
Reply
#6

Yo ando rallado con la misma mierda, intento hacer que me persiga pero no se como hacer que me ataque
Reply
#7

Quote:
Originally Posted by chusothe41
Посмотреть сообщение
Yo ando rallado con la misma mierda, intento hacer que me persiga pero no se como hacer que me ataque
Eso es facil si quieres puedo ayudarte si lo que quieres es hacer zombies
Reply
#8

Quote:
Originally Posted by lucio2405
Посмотреть сообщение
Eso es facil si quieres puedo ayudarte si lo que quieres es hacer zombies
No, no es pa zombies (de momento) es para que cuando pegues a una prostituta en el puticlub los porteros te peguen.

Si sabes como hacerlo te lo agradeceria
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)