Problema con FCNPC -
romperson - 26.06.2015
Tengo un problema con el FCNPC , cuando agrego cosas alas callbacks que trae solo se ejecutan la mitad de las lнneas que agrego en cada callback , utilizo ZCMD nose si eso puede estar afectando a esto . NECESITO AYUDA POR FAVOR
Respuesta: Problema con FCNPC -
[DOG]irinel1996 - 26.06.2015
Comprueba que los
return estбn situados correctamente, si devuelves un valor en la
callback, suele dejar de ejecutarse el cуdigo que sigue dicho
return.
Respuesta: Problema con FCNPC -
romperson - 26.06.2015
Si los return estбn todos colocados perfectamente , lo probй haciendo en un FS aparte y funciona perfectamente
Respuesta: Problema con FCNPC -
[DOG]irinel1996 - 26.06.2015
їEs mucha molestia pedirte que publiques el cуdigo de esas
callbacks?
Respuesta: Problema con FCNPC -
romperson - 26.06.2015
Код:
public FCNPC_OnSpawn(npcid)
{
FCNPC_SetHealth(npcid,100.0);
new rand = random(sizeof(RandomSpawnsNpc));
FCNPC_SetPosition(npcid, RandomSpawnsNpc[rand][0], RandomSpawnsNpc[rand][1], RandomSpawnsNpc[rand][2]);
if (Timer[npcid] > 0) KillTimer(Timer[npcid]);
Timer[npcid] = SetTimerEx("ZombieBOTMordida", 1000, 1, "i", npcid);
return 1;
}
El temporizador es el que no se ejecuta
Respuesta: Problema con FCNPC -
[DOG]irinel1996 - 27.06.2015
їProbaste hacer un
debug a travйs de todo el cуdigo para ver quй cosa falla?
Primero te recomiendo que te leas cуmo funciona
SetTimerEx, esta funciуn al ser ejecutada devuelve una ID (la ID del
timer) que empieza en
0, por lo tanto:
pawn Код:
if (Timer[npcid] >= 0) KillTimer(Timer[npcid]);
La variable
Timer deberнa ser igual a
-1 (por ejemplo) cuando "estб vacнa" ya que 0 ES una ID vбlida que devuelve SetTimerEx.
Bien, lo anterior es un pequeсo fallo sin importancia, deberнas probar esto a ver quй pasa:
pawn Код:
public FCNPC_OnSpawn(npcid)
{
print("1. hola, empiezo a ejecutarme");
FCNPC_SetHealth(npcid, 100.0);
print("2. he llegado hasta aquн");
new rand = random(sizeof(RandomSpawnsNpc));
FCNPC_SetPosition(npcid, RandomSpawnsNpc[rand][0], RandomSpawnsNpc[rand][1], RandomSpawnsNpc[rand][2]);
print("3. aquн estoy otra vez");
if (Timer[npcid] >= 0) KillTimer(Timer[npcid]);
print("4. bieeen mi gente");
Timer[npcid] = SetTimerEx("ZombieBOTMordida", 1000, true, "i", npcid);
print("5. si me lees, SetTimerEx se ejecutу, bye bye");
return 1;
}
Tambiйn me gustarнa ver
ZombieBOTMordida.
Respuesta: Problema con FCNPC -
romperson - 27.06.2015
Код:
public ZombieBOTMordida(npcid)
{
foreach (new playerid : Player) {
if(IsPlayerNPC(npcid)) {
new Float:x[2],Float:y[2],Float:z[2];
GetPlayerPos(playerid,x[1],y[1],z[1]);
if(IsPlayerInRangeOfPoint(npcid, 25, x[1],y[1],z[1])){
FCNPC_GoTo(npcid,x[1],y[1],z[1],MOVE_TYPE_RUN,10,1);
}
GetPlayerPos(playerid,x[0],y[0],z[0]);
if(IsPlayerInRangeOfPoint(npcid, 3, x[0],y[0],z[0])){
/.....
}
}
}
return 1;
}
Probe con el debug y solo llega hasta el numero 3 , no se ejecuta el temporizador
Respuesta: Problema con FCNPC -
[DOG]irinel1996 - 27.06.2015
Vale, parece que el problema lo tenemos en la condiciуn del
KillTimer, no sй como habrбs declarado
Timer, pero desde mi punto de vista lo harнa asн:
pawn Код:
/* Fuera de todo */
new Timer[MAX_NPCS] = -1;
/* ---------------------- */
public FCNPC_OnSpawn(npcid)
{
print("1. hola, empiezo a ejecutarme");
FCNPC_SetHealth(npcid, 100.0);
print("2. he llegado hasta aquн");
new rand = random(sizeof(RandomSpawnsNpc));
FCNPC_SetPosition(npcid, RandomSpawnsNpc[rand][0], RandomSpawnsNpc[rand][1], RandomSpawnsNpc[rand][2]);
print("3. aquн estoy otra vez");
if (Timer[npcid] >= 0)
{
KillTimer(Timer[npcid]);
Timer[npcid] = -1;
}
print("4. bieeen mi gente");
Timer[npcid] = SetTimerEx("ZombieBOTMordida", 1000, true, "i", npcid);
print("5. si me lees, SetTimerEx se ejecutу, bye bye");
return 1;
}
Yo puse
MAX_NPCS al declarar la variable, pero ya sabes que tienes que poner el valor que tu estйs usando.
Respuesta: Problema con FCNPC -
romperson - 27.06.2015
Lo probo y sigue sin ejecutarse , tambiйn lo hice en un FS limpio se ejecuta bien nose si algъn cуdigo del GM este afectando (esto me pasa en todas la callbacks del FCNPC)
Respuesta: Problema con FCNPC -
[DOG]irinel1996 - 27.06.2015
A lo mejor otro
include influye en el funcionamiento, serнa raro pero no imposible, si el cуdigo te va bien en el filterscript y en el gamemode no... habrнa que revisar el gamemode de arriba - abajo.
Lo ъnico que se me ocurre es poner los includes de uno en uno en el filterscript, compilar y probar a ver si alguno interfiere... es muy pesado, pero a veces no queda de otra.