[Ayuda] FCNPC.
#1

Hola, estaba aprendiendo a utilizar el FCNPC. Bueno, la cosa es que hice un comando para crear un NPC en la poisciуn en la que se encuentra el jugador.

Al utilizar el comando me dice que no existe. Todo lo que estб en el FS no funciona. Por quй?

Tengo el 'FCNPC.dll' en los plugins y en el 'server.cfg' y todo.

Aquн les dejo todo el FS:


pawn Код:
#include <a_samp>
#include <zcmd>
#include <FCNPC>

new NpcZombie1;

public OnFilterScriptInit()
{
    NpcZombie1 = FCNPC_Create("NpcZombie1");
    return 1;
}

CMD:npc(playerid, params[])
{
    new Float:PosX, Float:PosY, Float:PosZ;
    GetPlayerPos(playerid, PosX, PosY, PosZ);
    FCNPC_Spawn(NpcZombie1, 35, PosX+1.0, PosY+1.0, PosZ);
    SendClientMessage(playerid, -1, "*{F11515}NpcZombie1{FFFFFF}* creado.");
    return 1;
}


Aclaro que tengo el mismo procesador de comandos en la GM.

.-Un saludo y gracias.
Reply
#2

Si su GM utilizб las mismas callbacks del FS solo funcionarбn las del GM, usted debe hacer hooks de las callback у en el GM retornar el valor de la callback en 0 para que se ejecute la del FS pero es mejor hacer hooks.

Un saludo.
Reply
#3

No entiendo mucho de los hook's, es mбs, no sй lo que es.

Y sobre las callbacks del FS y del GM; no utilizo ninguna callback que estй en el GM que estб en el FS.
Reply
#4

Quote:
Originally Posted by EnzoMetlc
Посмотреть сообщение
No entiendo mucho de los hook's, es mбs, no sй lo que es.

Y sobre las callbacks del FS y del GM; no utilizo ninguna callback que estй en el GM que estб en el FS.
Intente poner ese cуdigo en su GM y ver si le funciona.

Un saludo.
Reply
#5

Creo que el problema que aparezca que el comando no existe, es por el include (FCNPC.inc), lo digo por que saquй todo lo relacionado con los Npc's y los comandos me andan perfectos...

Alguna soluciуn?.
Reply
#6

Tienes la carpeta "FCNPC" dentro de tus scriptfiles?

Quote:
Originally Posted by oOFotherOo
Посмотреть сообщение
Si su GM utilizб las mismas callbacks del FS solo funcionarбn las del GM, usted debe hacer hooks de las callback у en el GM retornar el valor de la callback en 0 para que se ejecute la del FS pero es mejor hacer hooks.

Un saludo.
Esto no es asi. Un callback X no sera llamado en un cierto FS si y solo si el callback X fue procesado y se retorno un valor de exito en el GM o bien en un filterscript anterior. Los filterscripts no necesitan crear hooks para funcionar.
Reply
#7

Quote:
Originally Posted by the_chaoz
Посмотреть сообщение
Tienes la carpeta "FCNPC" dentro de tus scriptfiles?
No venia esa carpeta en la descarga del FCNPC. Sуlo venia un archivo llamado 'ZMap.hmap' y una carpeta llamada 'Nodes' con un montуn de archivos.

__________________________________________________ _
Descubrн que si saco todo lo relacionado con el FCNPC, funciona el FS.
Reply
#8

Esto me pasу a mн cuando empecй a utilizar FCNPC, la manera de solucionarlo es incluirlo en el GM, porque extraсamente no siempre funciona correctamente las lнneas de FCNPC en los filterscript (aunque el creador dй filterscripts con cуdigo fcnpc de ejemplo).
Reply
#9

Quote:
Originally Posted by Malganys
Посмотреть сообщение
Esto me pasу a mн cuando empecй a utilizar FCNPC, la manera de solucionarlo es incluirlo en el GM, porque extraсamente no siempre funciona correctamente las lнneas de FCNPC en los filterscript (aunque el creador dй filterscripts con cуdigo fcnpc de ejemplo).
Funciona con cualquier procesador de comandos? :S
Reply
#10

Te dejo toda la public:

pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    new string[256];
    new playermoney;
    new sendername[MAX_PLAYER_NAME];
    new giveplayer[MAX_PLAYER_NAME];
    new cmd[256];
    new giveplayerid, moneys, idx;

    cmd = strtok(cmdtext, idx);

    if(strcmp(cmd, "/help", true) == 0) {
        SendPlayerFormattedText(playerid,"Las Venturas Deathmatch: Money Grub Coded By Jax and the SA-MP Team.",0);
        SendPlayerFormattedText(playerid,"Type: /objective : to find out what to do in this gamemode.",0);
        SendPlayerFormattedText(playerid,"Type: /givecash [playerid] [money-amount] to send money to other players.",0);
        SendPlayerFormattedText(playerid,"Type: /tips : to see some tips from the creator of the gamemode.", 0);
    return 1;
    }
    if(strcmp(cmd, "/objective", true) == 0) {
        SendPlayerFormattedText(playerid,"This gamemode is faily open, there's no specific win / endgame conditions to meet.",0);
        SendPlayerFormattedText(playerid,"In LVDM:Money Grub, when you kill a player, you will receive whatever money they have.",0);
        SendPlayerFormattedText(playerid,"Consequently, if you have lots of money, and you die, your killer gets your cash.",0);
        SendPlayerFormattedText(playerid,"However, you're not forced to kill players for money, you can always gamble in the", 0);
        SendPlayerFormattedText(playerid,"Casino's.", 0);
    return 1;
    }
    if(strcmp(cmd, "/tips", true) == 0) {
        SendPlayerFormattedText(playerid,"Spawning with just a desert eagle might sound lame, however the idea of this",0);
        SendPlayerFormattedText(playerid,"gamemode is to get some cash, get better guns, then go after whoever has the",0);
        SendPlayerFormattedText(playerid,"most cash. Once you've got the most cash, the idea is to stay alive(with the",0);
        SendPlayerFormattedText(playerid,"cash intact)until the game ends, simple right?", 0);
    return 1;
    }
   

   
   
    if(strcmp(cmd, "/givecash", true) == 0)
     {
        new tmp[256];
        tmp = strtok(cmdtext, idx);

        if(!strlen(tmp))
        {
            SendClientMessage(playerid, COLOR_WHITE, "USAGE: /givecash [playerid] [amount]");
            return 1;
        }
        giveplayerid = strval(tmp);
       
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp))
        {
            SendClientMessage(playerid, COLOR_WHITE, "USAGE: /givecash [playerid] [amount]");
            return 1;
        }
        moneys = strval(tmp);
       
        //printf("givecash_command: %d %d",giveplayerid,moneys);

       
        if (IsPlayerConnected(giveplayerid))
        {
            GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
            GetPlayerName(playerid, sendername, sizeof(sendername));
            playermoney = GetPlayerMoney(playerid);
            if (moneys > 0 && playermoney >= moneys)
            {
                GivePlayerMoney(playerid, (0 - moneys));
                GivePlayerMoney(giveplayerid, moneys);
                format(string, sizeof(string), "You have sent %s(player: %d), $%d.", giveplayer,giveplayerid, moneys);
                SendClientMessage(playerid, COLOR_YELLOW, string);
                format(string, sizeof(string), "You have recieved $%d from %s(player: %d).", moneys, sendername, playerid);
                SendClientMessage(giveplayerid, COLOR_YELLOW, string);
                printf("%s(playerid:%d) has transfered %d to %s(playerid:%d)",sendername, playerid, moneys, giveplayer, giveplayerid);
            } else {
                SendClientMessage(playerid, COLOR_YELLOW, "Invalid transaction amount.");
            }
        } else {
                format(string, sizeof(string), "%d is not an active player.", giveplayerid);
                SendClientMessage(playerid, COLOR_YELLOW, string);
            }
        return 1;
    }
   
   
   
   
   
   
   
    if(strcmp(cmd, "/Npc", true) == 0)
    {
        new Float:PosX, Float:PosY, Float:PosZ;
        GetPlayerPos(playerid, PosX, PosY, PosZ);
        FCNPC_Spawn(NpcZombie1, 35, PosX+1.0, PosY+1.0, PosZ);
        SendClientMessage(playerid, -1, "*{F11515}NpcZombie1{FFFFFF}* creado.");
        return 1;
    }
   
   
    return SendClientMessage(playerid, -1, "{F11515}[<!>] Comando inexistente.");
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)