Объекты NPC Обход
#1

спокойной ночи, ребята, Чтобы создать NPC, чтобы напасть на игрока, но NPC происходит через предметы, я попробовал несколько способов, чтобы исправить это с помощью ColAndreas, но не смог.


Code:
public FCNPC_OnUpdate(npcid)
{
    foreach(new i : Player)
    {
        if(!IsPlayerNPC(i) && IsPlayerConnected(i))
        {
            new Float:PosZ[3], Float:PosP[3];
            GetPlayerPos(npcid, PosZ[0], PosZ[1], PosZ[2]);
            GetPlayerPos(i, PosP[0], PosP[1], PosP[2]);
            if(IsPlayerInRangeOfPoint(i, 15.0, PosZ[0], PosZ[1], PosZ[2])) FCNPC_GoTo(npcid, PosP[0], PosP[1], PosP[2], MOVE_TYPE_RUN, 0.5, false, 0.0, true);
            if(IsPlayerInRangeOfPoint(i, 1.0, PosZ[0], PosZ[1], PosZ[2]))
            {
                FCNPC_Stop(npcid);
                FCNPC_MeleeAttack(npcid, -1, true);
            }
            else FCNPC_StopAttack(npcid);

            if(ChecarColisao(npcid,i))
                FCNPC_Stop(npcid), FCNPC_StopAttack(npcid);
        }
    }
    return 1;
}

stock ChecarColisao(npcid,playerid)
{
	new Float:x, Float:y, Float:z,Float: endx, Float:endy, Float: endz;
	FCNPC_GetPosition(npcid,endx,endy,endz);
	GetPlayerPos(playerid,x,y,z);
	if(CA_RayCastLine(x, y, z, endx, endy, z, x, y, z)) return 1;
	return 0;
}
Reply
#2

A* algorithm гугли
Reply
#3

Плагин PathFinder реализует A*. Поиск пути на рейкасте придётся писать самому.
Reply
#4

Quote:
Originally Posted by ZiGGi
View Post
Плагин PathFinder реализует A*. Поиск пути на рейкасте придётся писать самому.
Я попытался с PathFinder, но это не сработало
Reply
#5

Quote:
Originally Posted by JhefTFJ
View Post
Я попытался с PathFinder, но это не сработало
Ну я сомневаюсь, что здесь кто-то за тебя будет писать "мозги" ботам.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)