[Ajuda] Objetos em npcs
#1

Eu uso o KNPC para fazer bots na hora.
E tambйm uso um filterscript de armas carregadas pelo corpo, mas na criaзгo do knpc ele nгo fica com os objetos fixados no corpo.
Tem algum modo de resolver isto?
Reply
#2

Eu nгo sei ao certo como funciona KNPC, porйm, verifique se existe alguma variбvel na qual detecta se o player й um NPC. Se sim, vocк poderб adicionar o cуdigo que carrega os objetos.

Se nгo tiver, eu aconselho a vocк a criar um NPC manualmente pois nгo й difнcil, e terб mais liberdade com esses assuntos. Veja o exemplo abaixo:

Em OnPlayerSpawn:
PHP код:
if(IsPlayerNPC(playerid)) // Verifica se ele й um NPC.
{
    
// Adicione as funзхes das armas pelo corpo aqui.
    
return 1;

Espero ter ajudado.
Reply
#3

Ok! Valeu!
Reply
#4

Quote:
Originally Posted by Ley
Посмотреть сообщение
Eu nгo sei ao certo como funciona KNPC, porйm, verifique se existe alguma variбvel na qual detecta se o player й um NPC. Se sim, vocк poderб adicionar o cуdigo que carrega os objetos.

Se nгo tiver, eu aconselho a vocк a criar um NPC manualmente pois nгo й difнcil, e terб mais liberdade com esses assuntos. Veja o exemplo abaixo:

Em OnPlayerSpawn:
PHP код:
if(IsPlayerNPC(playerid)) // Verifica se ele й um NPC.
{
    
// Adicione as funзхes das armas pelo corpo aqui.
    
return 1;

Espero ter ajudado.
Assim nгo irб funcionar.
Eu mecho com NPCS, e tenho um cуdigo que funciona perfeitamente para afixar uma objeto nas costas dele.
No meu caso, й uma bazuca.
Jб fiz muitos testes. Isso sу dб certo com timer.
Veja sу:
pawn Код:
forward BZUKABS();

public OnFilterScriptInit()
{
SetTimer("BZUKABS", 1000, true);
return 1;
}

public BZUKABS()
{
    new npcname[MAX_PLAYER_NAME];
   
    for(new b=0; b < MAX_PLAYERS; b++)
    {
    if(IsPlayerNPC(b))
    {
    GetPlayerName(b, npcname, sizeof(npcname));
    if(!strcmp(npcname, "NOME DO SEU NPC", true))
    {
    SetPlayerAttachedObject(b, 0, ID, coordenadas, etc, etc, etc);
    }
    }
    }
}
100% funcional.
Reply
#5

Quote:
Originally Posted by Detonador
Посмотреть сообщение
Assim nгo irб funcionar.
Eu mecho com NPCS, e tenho um cуdigo que funciona perfeitamente para afixar uma objeto nas costas dele.
No meu caso, й uma bazuca.
Jб fiz muitos testes. Isso sу dб certo com timer.
Veja sу:
pawn Код:
forward BZUKABS();

public OnFilterScriptInit()
{
SetTimer("BZUKABS", 1000, true);
return 1;
}

public BZUKABS()
{
    new npcname[MAX_PLAYER_NAME];
   
    for(new b=0; b < MAX_PLAYERS; b++)
    {
    if(IsPlayerNPC(b))
    {
    GetPlayerName(b, npcname, sizeof(npcname));
    if(!strcmp(npcname, "NOME DO SEU NPC", true))
    {
    SetPlayerAttachedObject(b, 0, ID, coordenadas, etc, etc, etc);
    }
    }
    }
}
100% funcional.
Vocк utilizando minha ideia, vocк utilizarб somente a funзгo para setar o AttachedObejct. Assim nгo sendo necessбrio SetTimer's.

PHP код:
if(IsPlayerNPC(playerid)) // Verifica se ele й um NPC. 

    
SetPlayerAttachedObject(b0IDcoordenadasetcetcetc); // Objeto
    
return 1

Sem precisar ficar verificando se o player й um NPC de um em um segundo.
Abraзos.
Reply
#6

Quote:
Originally Posted by Ley
Посмотреть сообщение
Vocк utilizando minha ideia, vocк utilizarб somente a funзгo para setar o AttachedObejct. Assim nгo sendo necessбrio SetTimer's.

PHP код:
if(IsPlayerNPC(playerid)) // Verifica se ele й um NPC. 

    
SetPlayerAttachedObject(b0IDcoordenadasetcetcetc); // Objeto
    
return 1

Sem precisar ficar verificando se o player й um NPC de um em um segundo.
Abraзos.
Negativo. O principal desse timer й atacar o objeto no NPC.
Ele tem que verificar sim pois, e se й um jogador no server com o nome do NPC?
Pode confiar amigo, jб fiz muitos testes, e este й o ъnico jeito.
Pro objeto aparecer, ele precisa atualizar, aliбs, nas outras versхes do samp, ele precisava ser atualizado a cara 100 milisegundos! Senгo o objeto nгo era atacado!
Tenho testes concretos disso aqui, e funciona muito bem. Uso a muito tempo, isso nunca deu lag, nem atrapalhou em nada ele checar se o cara й o NPC, com o nome correto, e atacar o objeto a cada um segundo.
Se nгo tiver o timer, nгo adianta sу mandar o objeto uma vez que o FS inicia ser atacado. Nгo funciona.
Pode confiar.
Quote:

Vocк utilizando minha ideia, vocк utilizarб somente a funзгo para setar o AttachedObejct. Assim nгo sendo necessбrio SetTimer's.

PHP Code:
if(IsPlayerNPC(playerid)) // Verifica se ele й um NPC.
{
SetPlayerAttachedObject(b, 0, ID, coordenadas, etc, etc, etc); // Objeto
return 1;
}
Sem precisar ficar verificando se o player й um NPC de um em um segundo.

Sua ideia nгo funcionarб sem a atualizaзгo de um em um segundo.
E tambйm, sem a verificaзгo, ele iria colocar o objeto em todos os jogadores.
Abraзos!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)