SA-MP Forums Archive
[Ajuda] Objetos em npcs - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Objetos em npcs (/showthread.php?tid=450212)



Objetos em npcs - Lessk - 12.07.2013

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?


Re: Objetos em npcs - Ley - 12.07.2013

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.


Re: Objetos em npcs - Lessk - 12.07.2013

Ok! Valeu!


Re: Objetos em npcs - Detonador - 12.07.2013

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.


Re: Objetos em npcs - Ley - 12.07.2013

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.


Re: Objetos em npcs - Detonador - 12.07.2013

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!