PARTNERI:

* Marketing

-UPOZORENJE-

Samo registrovani članovi mogu da vide/koriste forum u celini.
Prijavite se ili registrujte nalog na Balkan SA-MP forumu.


Autor Tema: [Tutorial] Kreiranje Actora sa Animacijama i Labelima  (Pročitano 1197 puta)

0 članova i 1 gost pregledaju ovu temu.

Van mreže Hulk.png

Kreiranje Actora sa Animacijama i Labelima
« poslato: Avgust 22, 2018, 23:49:47 posle podne »
Dobar dan jos jednom svima  :P :P :P 8)
Evo jos jedan Tutorial od mene: Kreiranje Actora InGame sa animacijama i labelima

Pa da krenemo prvo sta moramo da definisemo su include

Pawno Code: [Izaberi]
#include <a_samp>
#include <a_actor>
Sad include za komande onaj koji vi najvise volite ja koristim Pawn.CMD

Drugi korak je definisanje enuma za cuvanje aktora, file u koji ce se spremati i dialoge...

Pawno Code: [Izaberi]
#define MAX_ACTOR                   50 // Max actora koliko mozete kreirati ingame
#define ACTOR_FILE                  "Aktori/Actor_%d.ini" // Folder u koji ce se spremati Actori

enum ActorsData
{
ActorIme[30],
ActorSkinID,
ActorAnimID,
Float:APos_X,
Float:APos_Y,
Float:APos_Z,
Float:APos_Rot,
ActorID
};
new ActorInfo[MAX_ACTOR][ActorsData];
new Text3D:Actor3DText[MAX_ACTOR]; // Define koji ce nam trebati za Label Actora

#define D_NAPRAVIACTORA  1 // Vi ovaj broj stavite koji vama nije definisan dialog
#define D_ACTORANIM         2
#define D_ACTORIMELABEL  3

Ovo dodajte pod OnGameModeInit to ce vam sluziti za ucitavanje Actora, Labela i Animacija

Pawno Code: [Izaberi]
for(new id = 0; id < MAX_ACTOR; id++)
{
        new actorFile[50];
        format(actorFile, sizeof(actorFile), ACTOR_FILE, id);
        if(fexist(actorFile))
{
            INI_ParseFile(actorFile, "UcitajActore", .bExtra = true, .extra = id);
            ActorInfo[id][ActorID] = CreateActor(ActorInfo[id][ActorSkinID], ActorInfo[id][APos_X], ActorInfo[id][APos_Y], ActorInfo[id][APos_Z], ActorInfo[id][APos_Rot]);
            if(ActorInfo[id][ActorAnimID] == 0) { ClearActorAnimations(ActorInfo[id][ActorID]);} // Animacija koja ne radi nista odnosno nema je
            else if(ActorInfo[id][ActorAnimID] == 1) { ApplyActorAnimation(ActorInfo[id][ActorID], "COP_AMBIENT", "Coplook_loop", 4.0, 0, 1, 1, 1, -1); } // Ostale animacije koje ce actori izvoditi kada ih kreirate
            else if(ActorInfo[id][ActorAnimID] == 2) { ApplyActorAnimation(ActorInfo[id][ActorID], "RAPPING", "RAP_A_Loop", 4.0, 1, 0, 0, 0, 0); } // Vi ih mozete dodati jos
            else if(ActorInfo[id][ActorAnimID] == 3) { ApplyActorAnimation(ActorInfo[id][ActorID], "PED", "IDLE_CHAT", 4.1, 1, 0, 0, 0, 0); }
            SetActorInvulnerable(id, true);
Actors3DText();
}
}

Sljedece pravimo dialoge kojima ce mo kreirati Actora, izvinite nisam mogao sve objasniti zato ga ni nisam napravio prije, a trazili ste ZURI8....  :P


Pawno Code: [Izaberi]
if(dialogid == D_NAPRAVIACTORA)
{
if(!response) return 1;
if(response)
{
    if(strval(inputtext) < 0 && strval(inputtext) > 311) return SPD(playerid, D_NAPRAVIACTORA, DSI, "Kreiraj Actora", "Upisite ID skina za Actor-a:", "Napravi", "Zatvori");
for(new id = 0; id < MAX_ACTOR; id++)
{
    new actorfilee[50];
format(actorfilee, sizeof(actorfilee), ACTOR_FILE, id);
if(!fexist(actorfilee))
{
    new Float:x, Float:y, Float:z, Float:rot;
ActorInfo[id][ActorSkinID] = strval(inputtext);
GetPlayerPos(playerid, x, y, z);
GetPlayerFacingAngle(playerid, rot);
    ActorInfo[id][APos_X] = x; ActorInfo[id][APos_Y] = y; ActorInfo[id][APos_Z] = z; ActorInfo[id][APos_Rot] = rot;
SPD(playerid, D_ACTORANIM, DSI, "Kreiraj Actora", "Upisite ID animacije za Actor-a:\n\nNazivi animacija:\n0. Bez animacije\n1. Stav\n2. Rep\n3. Chat", "Napravi", "Zatvori");
break;
}
}
}
}
if(dialogid == D_ACTORANIM)
{
    if(!response) return 1;
    if(response)
    {
if(strval(inputtext) < 0 || strval(inputtext) > 3) return SPD(playerid, D_ACTORANIM, DSI, "Kreiraj Actora", "Upisite ID animacije za Actor-a:\n\nNazivi animacija:\n0. Bez animacije\n1. Stav\n2. Rep\n3. Chat", "Napravi", "Zatvori");
        for(new id = 0; id < MAX_ACTOR; id++)
{
    new actorfille[50];
format(actorfille, sizeof(actorfille), ACTOR_FILE, id);
if(!fexist(actorfille))
{
            ActorInfo[id][ActorAnimID] = strval(inputtext);
    if(ActorInfo[id][ActorAnimID] == 0) { ClearActorAnimations(ActorInfo[id][ActorID]); }
            else if(ActorInfo[id][ActorAnimID] == 1) { ApplyActorAnimation(ActorInfo[id][ActorID], "COP_AMBIENT", "Coplook_loop", 4.0, 0, 1, 1, 1, -1); }
            else if(ActorInfo[id][ActorAnimID] == 2) { ApplyActorAnimation(ActorInfo[id][ActorID], "RAPPING", "RAP_A_Loop", 4.0, 1, 0, 0, 0, 0); }
            else if(ActorInfo[id][ActorAnimID] == 3) { ApplyActorAnimation(ActorInfo[id][ActorID], "PED", "IDLE_CHAT", 4.1, 1, 0, 0, 0, 0); }
            SPD(playerid, D_ACTORIMELABEL, DSI, "Kreiraj Actora", "Upisite naziv Actora koji ce se pojaviti na Labelu", "Napravi", "Zatvori");
      break;
}
}
    }
}
if(dialogid == D_ACTORIMELABEL)
{
    if(!response) return 1;
    if(response)
    {
        new actorimelabel[30];
if(sscanf(inputtext, "s[30]", actorimelabel)) return SPD(playerid, D_ACTORIMELABEL, DSI, "Kreiraj Actora", "Upisite naziv Actora koji ce se pojaviti na Labelu", "Napravi", "Zatvori");
        for(new id = 0; id < MAX_ACTOR; id++)
{
    new actorfiile[50];
format(actorfiile, sizeof(actorfiile), ACTOR_FILE, id);
if(!fexist(actorfiile))
{
    strmid(ActorInfo[id][ActorIme], actorimelabel, 0, strlen(actorimelabel), 50);
    SendClientMessage(playerid, -1, "Završili ste kreiranje Actor-a.");
ActorInfo[id][ActorID] = CreateActor(ActorInfo[id][ActorSkinID], ActorInfo[id][APos_X], ActorInfo[id][APos_Y], ActorInfo[id][APos_Z], ActorInfo[id][APos_Rot]);
                    SacuvajActore(id);
  SetActorInvulnerable(id, true);
  Actors3DText();
      break;
}
}
    }
}

S ovom funkciom ce mo azurirati nas label i animacije....

Pawno Code: [Izaberi]
forward Actors3DText();
public Actors3DText()
{
for(new id = 0; id < MAX_ACTOR; id++)
{
  new actorfile[50];
format(actorfile, sizeof(actorfile), ACTOR_FILE, id);
if(fexist(actorfile))
{
    if(ActorInfo[id][ActorAnimID] == 0) { ClearActorAnimations(ActorInfo[id][ActorID]); }
            else if(ActorInfo[id][ActorAnimID] == 1) { ApplyActorAnimation(ActorInfo[id][ActorID], "COP_AMBIENT", "Coplook_loop", 4.0, 0, 1, 1, 1, -1); }
            else if(ActorInfo[id][ActorAnimID] == 2) { ApplyActorAnimation(ActorInfo[id][ActorID], "RAPPING", "RAP_A_Loop", 4.0, 1, 0, 0, 0, 0); }
            else if(ActorInfo[id][ActorAnimID] == 3) { ApplyActorAnimation(ActorInfo[id][ActorID], "PED", "IDLE_CHAT", 4.1, 1, 0, 0, 0, 0); }
new string[40];
    format(string, sizeof(string), "[ Actor - (%d) ]\n[ %s ]", id, ActorInfo[id][ActorIme]);
Actor3DText[id] = Create3DTextLabel(string, -1, ActorInfo[id][APos_X], ActorInfo[id][APos_Y], ActorInfo[id][APos_Z]+1, 10, 0, 1);
}
}
return 1;
}

Spremanje i Ucitavanje Actora

Pawno Code: [Izaberi]
forward UcitajActore(actorid, name[], value[]);
public UcitajActore(actorid, name[], value[])
{
    INI_String("ActorIme", ActorInfo[actorid][ActorIme], 30);
INI_Int("ActorSkinID", ActorInfo[actorid][ActorSkinID]);
INI_Int("ActorAnimID", ActorInfo[actorid][ActorAnimID]);
INI_Float("APos_X", ActorInfo[actorid][APos_X]);
INI_Float("APos_Y", ActorInfo[actorid][APos_Y]);
INI_Float("APos_Z", ActorInfo[actorid][APos_Z]);
INI_Float("APos_Rot", ActorInfo[actorid][APos_Rot]);
INI_Int("ActorID", ActorInfo[actorid][ActorID]);
return 1;
}

forward SacuvajActore(actorid);
public SacuvajActore(actorid)
{
    new dFile[50];
format(dFile, sizeof(dFile), ACTOR_FILE, actorid);
new INI:File = INI_Open(dFile);
INI_WriteString(File, "ActorIme", ActorInfo[actorid][ActorIme]);
INI_WriteInt(File, "ActorSkinID", ActorInfo[actorid][ActorSkinID]);
INI_WriteInt(File, "ActorAnimID", ActorInfo[actorid][ActorAnimID]);
INI_WriteFloat(File, "APos_X", ActorInfo[actorid][APos_X]);
INI_WriteFloat(File, "APos_Y", ActorInfo[actorid][APos_Y]);
INI_WriteFloat(File, "APos_Z", ActorInfo[actorid][APos_Z]);
INI_WriteFloat(File, "APos_Rot", ActorInfo[actorid][APos_Rot]);
INI_WriteInt(File, "ActorID", ActorInfo[actorid][ActorID]);
INI_Close(File);
return 1;
}

I komanda s kojom zapocinjemo kreiranje Actora

Pawno Code: [Izaberi]
CMD:kreirajactora(playerid, params[])
{
    SPD(playerid, D_NAPRAVIACTORA, DSI, "Kreiraj Actora", "Upisite ID skina za Actor-a:", "Napravi", "Zatvori");
    return 1;
}

Ljudi izvinite sto nisam sve objasnio, eto nadam se da ce vam pomoci...
Ne zamjerite na greskama..

Profesija: Mapper [ BIO ], Scripter, Web Designer

Kontakt: https://www.facebook.com/cardosohulk

 

Van mreže sparrowww.aMx

Odg: Kreiranje Actora sa Animacijama i Labelima
« Odgovor #1 poslato: Avgust 22, 2018, 23:53:47 posle podne »
Ovako ima na Ultimate Project modu moze se izvaditi, fino fino samo si trebo to detaljnije i bolje objasniti za početnike :)
• UnderWorld OGC 2018 DEVELOPER  •
 

Van mreže Hulk.png

Odg: Kreiranje Actora sa Animacijama i Labelima
« Odgovor #2 poslato: Avgust 22, 2018, 23:55:35 posle podne »
na ultimate ne rade animacije kako treba i nema labela nisam htio ni objavljivat al trazili su pa nisam objasnio sve zato

Profesija: Mapper [ BIO ], Scripter, Web Designer

Kontakt: https://www.facebook.com/cardosohulk

 

Van mreže sparrowww.aMx

Odg: Kreiranje Actora sa Animacijama i Labelima
« Odgovor #3 poslato: Avgust 23, 2018, 00:12:47 pre podne »
Ja sam testirao i rade anmijacije, na njemu pise Diler Marko i rob sam te i te organizacije :)
• UnderWorld OGC 2018 DEVELOPER  •
 

Van mreže Hulk.png

Odg: Kreiranje Actora sa Animacijama i Labelima
« Odgovor #4 poslato: Avgust 23, 2018, 00:20:52 pre podne »
Pa to nije to ti si dilere testiro

Profesija: Mapper [ BIO ], Scripter, Web Designer

Kontakt: https://www.facebook.com/cardosohulk

 

Van mreže sparrowww.aMx

Odg: Kreiranje Actora sa Animacijama i Labelima
« Odgovor #5 poslato: Avgust 23, 2018, 00:25:53 pre podne »
Pa to nije to ti si dilere testiro
Isti je princip ja mislim kao i sa dilerima, samo sto na njiam ne pise ja sam marko diler tog i tog :D
• UnderWorld OGC 2018 DEVELOPER  •
 

Van mreže Hulk.png

Odg: Kreiranje Actora sa Animacijama i Labelima
« Odgovor #6 poslato: Avgust 23, 2018, 00:28:59 pre podne »
ja sam testo  animacije nisu radile na actorima ja sam drugacije onda napravio

Profesija: Mapper [ BIO ], Scripter, Web Designer

Kontakt: https://www.facebook.com/cardosohulk

 

Van mreže Skorpija

Odg: Kreiranje Actora sa Animacijama i Labelima
« Odgovor #7 poslato: Avgust 23, 2018, 06:36:39 pre podne »
lepo
Vandals Project OGC
[size=11.25pt]Vandals Project OGC[/size][/font]
[/color]
 

Van mreže Hulk.png

Odg: Kreiranje Actora sa Animacijama i Labelima
« Odgovor #8 poslato: Avgust 23, 2018, 09:34:32 pre podne »
Hvala

Profesija: Mapper [ BIO ], Scripter, Web Designer

Kontakt: https://www.facebook.com/cardosohulk

 

Van mreže Joey.pwN

Odg: Kreiranje Actora sa Animacijama i Labelima
« Odgovor #9 poslato: Avgust 23, 2018, 09:54:25 pre podne »
Kolko tesko uraditi  :D :D
Pohvale hulkicuu samo cekam komentare sa 100 errora

Van mreže Hulk.png

Odg: Kreiranje Actora sa Animacijama i Labelima
« Odgovor #10 poslato: Avgust 23, 2018, 09:56:55 pre podne »
Kad sam vadio iz svog moda zaboraviosam sve stavit da ne bude skraceno ebiga sad

Profesija: Mapper [ BIO ], Scripter, Web Designer

Kontakt: https://www.facebook.com/cardosohulk

 

Van mreže Mumi.je.

Odg: Kreiranje Actora sa Animacijama i Labelima
« Odgovor #11 poslato: Avgust 23, 2018, 10:28:27 pre podne »
Dobar ;D
 

Van mreže Hulk.png

Odg: Kreiranje Actora sa Animacijama i Labelima
« Odgovor #12 poslato: Avgust 23, 2018, 10:44:59 pre podne »
hvala mogo sam i bolje al zuri8

Profesija: Mapper [ BIO ], Scripter, Web Designer

Kontakt: https://www.facebook.com/cardosohulk

 

Van mreže Timur Script

Odg: Kreiranje Actora sa Animacijama i Labelima
« Odgovor #13 poslato: Septembar 05, 2018, 21:58:55 posle podne »
Hvala
 

Van mreže ₳₥₵ł

Odg: Kreiranje Actora sa Animacijama i Labelima
« Odgovor #14 poslato: Oktobar 11, 2018, 15:54:29 posle podne »
635 : for(new id = 0; id < MAX_ACTOR; id++)
   {
        new actorFile[50];
638: format(actorFile, sizeof(actorFile), ACTOR_FILE, id);
639: if(fexist(actorFile))
      {
641:            INI_ParseFile(actorFile, "UcitajActore", .bExtra = true, .extra = id);
              ActorInfo[id][ActorID] = CreateActor(ActorInfo[id][ActorSkinID], ActorInfo[id][APos_X], ActorInfo[id][APos_Y], ActorInfo[id][APos_Z], ActorInfo[id][APos_Rot]);
643:              if(ActorInfo[id][ActorAnimID] == 0) { ClearActorAnimations(ActorInfo[id][ActorID]);}
              else if(ActorInfo[id][ActorAnimID] == 1) { ApplyActorAnimation(ActorInfo[id][ActorID], "COP_AMBIENT", "Coplook_loop", 4.0, 0, 1, 1, 1, -1); } // Ostale animacije koje ce actori izvoditi kada ih kreirate
              else if(ActorInfo[id][ActorAnimID] == 2) { ApplyActorAnimation(ActorInfo[id][ActorID], "RAPPING", "RAP_A_Loop", 4.0, 1, 0, 0, 0, 0); } // Vi ih mozete dodati jos
              else if(ActorInfo[id][ActorAnimID] == 3) { ApplyActorAnimation(ActorInfo[id][ActorID], "PED", "IDLE_CHAT", 4.1, 1, 0, 0, 0, 0); }
              SetActorInvulnerable(id, true);
         Actors3DText();
      }
   }
Tu je error pise mi kad save ovaj error
C:\Users\Amci\Desktop\Castro by Amci\gamemodes\Castro.pwn(635) : error 010: invalid function or declaration
C:\Users\Amci\Desktop\Castro by Amci\gamemodes\Castro.pwn(638) : error 021: symbol already defined: "format"
C:\Users\Amci\Desktop\Castro by Amci\gamemodes\Castro.pwn(639) : error 010: invalid function or declaration
C:\Users\Amci\Desktop\Castro by Amci\gamemodes\Castro.pwn(641) : error 021: symbol already defined: "INI_ParseFile"
C:\Users\Amci\Desktop\Castro by Amci\gamemodes\Castro.pwn(641) : error 017: undefined symbol "bExtra"
C:\Users\Amci\Desktop\Castro by Amci\gamemodes\Castro.pwn(641) : error 010: invalid function or declaration
C:\Users\Amci\Desktop\Castro by Amci\gamemodes\Castro.pwn(641 -- 643) : fatal error 107: too many error messages on one line