Ayuda con fcnpc -
lucio2405 - 20.08.2014
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
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
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
Respuesta: Ayuda con fcnpc -
juandiegox - 20.08.2014
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:
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
Respuesta: Ayuda con fcnpc -
lucio2405 - 20.08.2014
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
Respuesta: Ayuda con fcnpc -
juandiegox - 20.08.2014
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
Respuesta: Ayuda con fcnpc -
lucio2405 - 20.08.2014
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
Respuesta: Ayuda con fcnpc -
chusothe41 - 20.08.2014
Yo ando rallado con la misma mierda, intento hacer que me persiga pero no se como hacer que me ataque
Respuesta: Ayuda con fcnpc -
lucio2405 - 20.08.2014
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
Respuesta: Ayuda con fcnpc -
chusothe41 - 21.08.2014
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