#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;
}
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. |
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 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).
|
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.");
}