[ TUTORIAL ] Kako napraviti šetajućeg aktora / NPC

Započeo sparoWWW
7. Feb. 2026.
142
pregleda
5
postova
Foxyyy
10
Made Man
🔥52
7. Feb. 2026.

TEORETSKI DIO:

Kreiraš aktora na početnoj poziciji (CreateActor ili CreateDynamicActor).

Postaviš timer koji u određenim intervalima (npr. svake 200–500 ms) poziva SetActorPos / SetDynamicActorPos na sledeću tačku na putanji.

Mijenjaš ugao okretanja (SetActorFacingAngle / SetDynamicActorFacingAngle) da aktor gleda u pravcu kretanja.

Opciono: puštaš animaciju hodanja (ApplyActorAnimation / ApplyDynamicActorAnimation) da izgleda prirodnije.

POTREBNE FUNKCIJE: NATIVE SAMP - STREAMER

• CreateActor → CreateDynamicActor

• SetActorPos → SetDynamicActorPos

• SetActorFacingAngle → SetDynamicActorFacingAngle

• ApplyActorAnimation → ApplyDynamicActorAnimation

• ClearActorAnimations → ClearDynamicActorAnimations

• DestroyActor → DestroyDynamicActor

PRIMJER – AKTOR ŠETA DUŽ NIZA TAČKI:

// Na vrhu moda
new WalkingActorID = INVALID_ACTOR_ID;
new WalkingActorStep = 0;
new WalkingActorTimer = 0;

// Putanja – niz koordinata X, Y, Z (možeš dodati koliko hoćeš tačaka)
#define MAX_WALK_POINTS 6
new Float:WalkPath[MAX_WALK_POINTS][3] = {
    { 1480.0, -1020.0, 23.8 },
    { 1490.0, -1020.0, 23.8 },
    { 1490.0, -1010.0, 23.8 },
    { 1480.0, -1010.0, 23.8 },
    { 1475.0, -1015.0, 23.8 },
    { 1480.0, -1020.0, 23.8 }   
};

forward Timer_WalkingActor();
public Timer_WalkingActor()
{
    if (WalkingActorID == INVALID_ACTOR_ID) return;

    new Float:x = WalkPath[WalkingActorStep][0];
    new Float:y = WalkPath[WalkingActorStep][1];
    new Float:z = WalkPath[WalkingActorStep][2];

    SetActorPos(WalkingActorID, x, y, z);

    // Računanje ugla prema sledećoj tački (da aktor gleda u pravcu hodanja)
    new next = (WalkingActorStep + 1) % MAX_WALK_POINTS;
    new Float:nextX = WalkPath[next][0];
    new Float:nextY = WalkPath[next][1];
    new Float:angle = atan2(nextY - y, nextX - x) - 90.0;
    if (angle < 0.0) angle += 360.0;
    SetActorFacingAngle(WalkingActorID, angle);

    WalkingActorStep = (WalkingActorStep + 1) % MAX_WALK_POINTS;
}

// U OnGameModeInit (ili kad želiš da aktor krene da šeta):
WalkingActorID = CreateActor(124, WalkPath[0][0], WalkPath[0][1], WalkPath[0][2], 0.0);
ApplyActorAnimation(WalkingActorID, "PED", "WALK_player", 4.1, 1, 1, 1, 1, 0);
WalkingActorStep = 1;
WalkingActorTimer = SetTimer("Timer_WalkingActor", 800, true);  // svakih 800 ms

// Kad gasiš ili želiš da prestane (npr. u OnGameModeExit):
KillTimer(WalkingActorTimer);
if (WalkingActorID != INVALID_ACTOR_ID) {
    DestroyActor(WalkingActorID);
    WalkingActorID = INVALID_ACTOR_ID;
}

ANIMACIJE ZA HODANJE (PED):

• "PED", "WALK_player" – normalan hod

• "PED", "WALK_fat" – hod debelog npc

• "PED", "WALK_armed" – hod sa oružjem

• "PED", "WALK_civi" – kulturica hod

HINT:

Brzina zavisi od intervala timera i rastojanja između tačaka.

Kraći interval (npr. 300–500 ms) = brži pomjer; duži (npr. 800–1000 ms) = sporiji.

Ako su tačke daleko, povećaj broj međutačaka da kretanje ne izgleda teleportovanje.

Nodze
8
Crime Lord
7. Feb. 2026.

Odličan tutorijal, pomoći će mnogima 🔥

Mogao bih sljedeći tut ako aktora odvalis pesnicom da krene da te napada

Vlasnik Zajednice: Ghost Town since 2016

Vlasnik Zajednice : Spotify Ogc since 2018

Foxyyy
10
Made Man
🔥52
7. Feb. 2026.
Dzenan Levic wrote on February 7, 2026, 5:25 am:

Odličan tutorijal, pomoći će mnogima 🔥

Mogao bih sljedeći tut ako aktora odvalis pesnicom da krene da te napada

Trenutno radim na sistemu aktora koji razvija pitu, jedan tijesto mijesi, a drugi posipa meso odozgo jer je u pitanju burek

RIDLIIII ADRIA
4
Rookie
7. Feb. 2026.
sparrowww.aMx wrote on February 7, 2026, 7:18 am:
Dzenan Levic wrote on February 7, 2026, 5:25 am:

Odličan tutorijal, pomoći će mnogima 🔥

Mogao bih sljedeći tut ako aktora odvalis pesnicom da krene da te napada

Trenutno radim na sistemu aktora koji razvija pitu, jedan tijesto mijesi, a drugi posipa meso odozgo jer je u pitanju burek

Kad ce aktor ( rostilj majstor ) 😂

Foxyyy
10
Made Man
🔥52
8. Feb. 2026.
RIDLIIII wrote on February 7, 2026, 7:49 am:
sparrowww.aMx wrote on February 7, 2026, 7:18 am:
Dzenan Levic wrote on February 7, 2026, 5:25 am:

Odličan tutorijal, pomoći će mnogima 🔥

Mogao bih sljedeći tut ako aktora odvalis pesnicom da krene da te napada

Trenutno radim na sistemu aktora koji razvija pitu, jedan tijesto mijesi, a drugi posipa meso odozgo jer je u pitanju burek

Kad ce aktor ( rostilj majstor ) 😂

Dok dodje malo ljepse vrijeme, jos je pohladno

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha