Pokretna slova

Započeo Levu, Maj 10, 2018, 22:37:22 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Pozdrav svima, retko sta vam izbacujem od svojih radova, sta vise skoro nista... Pa sam zbog toga odlucio da vam napravim tutorial za jednu foricu koja mnoge zanima, a ne znaju kako da urade...
Naime rec je o pokretnim slova tj konkretno cu vam pokazati kako napraviti da se slova vrte u krug kao sto je vecina vas videla na BloodMoneyu, BlackStreetu i slicnim serverima.
Primer: http://www.deviantpics.com/images/2018/05/10/sa-mp-382.png - slova se vrte oko zgrade

Tutorial nije namenjen bas za pocetnike jer moraju da se znaju neke stvari koje necu objasnjavati... U tutorialu cu koristiti YLESS-ove tajmere.




Pre svega treba u MapEditoru, ili preko cega vec mapate, da izmapate objekte na kojima ce biti text u krug, odnosno da ih povezete tako da oni cine krug...
Primer: http://www.deviantpics.com/images/2018/05/10/image.png

Nakon toga uzmete kodove iz editora i stavite ih u notepad/pawno i na svaki stavite zeljeni text tj slovo u ovom slucaju(Necu objasnjavati postavljanje texta, imate razne tutorijale za to).
[pawn]
        new PokretnaSlova[12];
        //ongamemodeinit ili gde vec ucitavate mape
        PokretnaSlova[0] = CreateDynamicObject(19366, 1468.65759, -2285.15405, 25.59300,   0.00000, 0.00000, -15.00000);
   PokretnaSlova[1] = CreateDynamicObject(19366, 1468.66138, -2288.23438, 25.59300,   0.00000, 0.00000, 15.00000);
   PokretnaSlova[2] = CreateDynamicObject(19366, 1470.21057, -2290.90356, 25.59300,   0.00000, 0.00000, 45.00000);
   PokretnaSlova[3] = CreateDynamicObject(19366, 1472.87488, -2292.42163, 25.59300,   0.00000, 0.00000, 75.00000);
   PokretnaSlova[4] = CreateDynamicObject(19366, 1475.98669, -2292.43579, 25.59300,   0.00000, 0.00000, 105.00000);
   PokretnaSlova[5] = CreateDynamicObject(19366, 1478.66187, -2290.89380, 25.59300,   0.00000, 0.00000, 135.00000);
   PokretnaSlova[6] = CreateDynamicObject(19366, 1480.22510, -2288.21167, 25.59300,   0.00000, 0.00000, 165.00000);
   PokretnaSlova[7] = CreateDynamicObject(19366, 1480.22705, -2285.10132, 25.59300,   0.00000, 0.00000, 195.00000);
   PokretnaSlova[8] = CreateDynamicObject(19366, 1478.66150, -2282.41748, 25.59300,   0.00000, 0.00000, 225.00000);
   PokretnaSlova[9] = CreateDynamicObject(19366, 1475.97339, -2280.87622, 25.59300,   0.00000, 0.00000, 255.00000);
   PokretnaSlova[10] = CreateDynamicObject(19366, 1472.89282, -2280.85986, 25.59300,   0.00000, 0.00000, 285.00000);
   PokretnaSlova[11] = CreateDynamicObject(19366, 1470.21033, -2282.43262, 25.59300,   0.00000, 0.00000, -45.00000);
   SetDynamicObjectMaterialText(PokretnaSlova[0], 0, "{000000}A", 60, "Arial", 130, 1, -1, 0, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
   SetDynamicObjectMaterialText(PokretnaSlova[1], 0, "{000000}B", 60, "Arial", 130, 1, -1, 0, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
   SetDynamicObjectMaterialText(PokretnaSlova[2], 0, "{000000}C", 60, "Arial", 130, 1, -1, 0, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
   SetDynamicObjectMaterialText(PokretnaSlova[3], 0, "{000000}D", 60, "Arial", 130, 1, -1, 0, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
   SetDynamicObjectMaterialText(PokretnaSlova[4], 0, "{000000}E", 60, "Arial", 130, 1, -1, 0, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
   SetDynamicObjectMaterialText(PokretnaSlova[5], 0, "{000000}F", 60, "Arial", 130, 1, -1, 0, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
   SetDynamicObjectMaterialText(PokretnaSlova[6], 0, "{000000}G", 60, "Arial", 130, 1, -1, 0, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
   SetDynamicObjectMaterialText(PokretnaSlova[7], 0, "{000000}H", 60, "Arial", 130, 1, -1, 0, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
   SetDynamicObjectMaterialText(PokretnaSlova[8], 0, "{000000}I", 60, "Arial", 130, 1, -1, 0, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
   SetDynamicObjectMaterialText(PokretnaSlova[9], 0, "{000000}J", 60, "Arial", 130, 1, -1, 0, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
   SetDynamicObjectMaterialText(PokretnaSlova[10], 0, "{000000}K", 60, "Arial", 130, 1, -1, 0, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
   SetDynamicObjectMaterialText(PokretnaSlova[11], 0, "{000000}L", 60, "Arial", 130, 1, -1, 0, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
[/pawn]

Kada ste to uradili sada treba od svakog objekta da uzmete X,Y,Z,rX,rY,rZ kordinate i stavite u jedan enum. To radimo da bi imali pozicije na koje treba da saljemo odredjeno slovo tj objekat.
[pawn]
new Float:PokretnaSlovaPos[12][6] =
{
   {1468.65759, -2285.15405, 25.59300, 0.00000, 0.00000, -15.00000},
   {1468.66138, -2288.23438, 25.59300, 0.00000, 0.00000, 15.00000},
   {1470.21057, -2290.90356, 25.59300, 0.00000, 0.00000, 45.00000},
   {1472.87488, -2292.42163, 25.59300, 0.00000, 0.00000, 75.00000},
   {1475.98669, -2292.43579, 25.59300, 0.00000, 0.00000, 105.00000},
   {1478.66187, -2290.89380, 25.59300, 0.00000, 0.00000, 135.00000},
   {1480.22510, -2288.21167, 25.59300, 0.00000, 0.00000, 165.00000},
   {1480.22705, -2285.10132, 25.59300, 0.00000, 0.00000, 195.00000},
   {1478.66150, -2282.41748, 25.59300, 0.00000, 0.00000, 225.00000},
   {1475.97339, -2280.87622, 25.59300, 0.00000, 0.00000, 255.00000},
   {1472.89282, -2280.85986, 25.59300, 0.00000, 0.00000, 285.00000},
   {1470.21033, -2282.43262, 25.59300, 0.00000, 0.00000, -45.00000}
};[/pawn]

I sada sve sto treba da uradite je da uradite funkciju koja ce objekat da pomera sa mesta na mesto, ja sam to uradio ovako.
[pawn]
task PokretnaSlova_Tajmer[4000]()//ponavljajuci tajmer na svake 4s
{
   new Float:Pos[3];
   for(new i = 0; i < 12; i++)//petlja za 12 objekata
   {
      GetDynamicObjectPos(PokretnaSlova, Pos[0], Pos[1], Pos[2]); // uzimamo poziciju objekta i donjim kodom proveravamo na kom je mestu, zatim ga saljemo na sledece
                //nisam koristio else if kasnije jer sam imao slucajeva da mi zabada na raznim skriptama, pawn jbg
      if(Pos[0] == PokretnaSlovaPos[0][0])  MoveDynamicObject(PokretnaSlova, PokretnaSlovaPos[1][0], PokretnaSlovaPos[1][1], PokretnaSlovaPos[1][2], 1.0, PokretnaSlovaPos[1][3], PokretnaSlovaPos[1][4], PokretnaSlovaPos[1][5]);
      if(Pos[0] == PokretnaSlovaPos[1][0]) MoveDynamicObject(PokretnaSlova, PokretnaSlovaPos[2][0], PokretnaSlovaPos[2][1], PokretnaSlovaPos[2][2], 1.0, PokretnaSlovaPos[2][3], PokretnaSlovaPos[2][4], PokretnaSlovaPos[2][5]);
      if(Pos[0] == PokretnaSlovaPos[2][0]) MoveDynamicObject(PokretnaSlova, PokretnaSlovaPos[3][0], PokretnaSlovaPos[3][1], PokretnaSlovaPos[3][2], 1.0, PokretnaSlovaPos[3][3], PokretnaSlovaPos[3][4], PokretnaSlovaPos[3][5]);
      if(Pos[0] == PokretnaSlovaPos[3][0]) MoveDynamicObject(PokretnaSlova, PokretnaSlovaPos[4][0], PokretnaSlovaPos[4][1], PokretnaSlovaPos[4][2], 1.0, PokretnaSlovaPos[4][3], PokretnaSlovaPos[4][4], PokretnaSlovaPos[4][5]);
      if(Pos[0] == PokretnaSlovaPos[4][0]) MoveDynamicObject(PokretnaSlova, PokretnaSlovaPos[5][0], PokretnaSlovaPos[5][1], PokretnaSlovaPos[5][2], 1.0, PokretnaSlovaPos[5][3], PokretnaSlovaPos[5][4], PokretnaSlovaPos[5][5]);
      if(Pos[0] == PokretnaSlovaPos[5][0]) MoveDynamicObject(PokretnaSlova, PokretnaSlovaPos[6][0], PokretnaSlovaPos[6][1], PokretnaSlovaPos[6][2], 1.0, PokretnaSlovaPos[6][3], PokretnaSlovaPos[6][4], PokretnaSlovaPos[6][5]);
      if(Pos[0] == PokretnaSlovaPos[6][0]) MoveDynamicObject(PokretnaSlova, PokretnaSlovaPos[7][0], PokretnaSlovaPos[7][1], PokretnaSlovaPos[7][2], 1.0, PokretnaSlovaPos[7][3], PokretnaSlovaPos[7][4], PokretnaSlovaPos[7][5]);
      if(Pos[0] == PokretnaSlovaPos[7][0]) MoveDynamicObject(PokretnaSlova, PokretnaSlovaPos[8][0], PokretnaSlovaPos[8][1], PokretnaSlovaPos[8][2], 1.0, PokretnaSlovaPos[8][3], PokretnaSlovaPos[8][4], PokretnaSlovaPos[8][5]);
      if(Pos[0] == PokretnaSlovaPos[8][0]) MoveDynamicObject(PokretnaSlova, PokretnaSlovaPos[9][0], PokretnaSlovaPos[9][1], PokretnaSlovaPos[9][2], 1.0, PokretnaSlovaPos[9][3], PokretnaSlovaPos[9][4], PokretnaSlovaPos[9][5]);
      if(Pos[0] == PokretnaSlovaPos[9][0]) MoveDynamicObject(PokretnaSlova, PokretnaSlovaPos[10][0], PokretnaSlovaPos[10][1], PokretnaSlovaPos[10][2], 1.0, PokretnaSlovaPos[10][3], PokretnaSlovaPos[10][4], PokretnaSlovaPos[10][5]);
      if(Pos[0] == PokretnaSlovaPos[10][0]) MoveDynamicObject(PokretnaSlova, PokretnaSlovaPos[11][0], PokretnaSlovaPos[11][1], PokretnaSlovaPos[11][2], 1.0, PokretnaSlovaPos[11][3], PokretnaSlovaPos[11][4], PokretnaSlovaPos[11][5]);
      if(Pos[0] == PokretnaSlovaPos[11][0]) MoveDynamicObject(PokretnaSlova, PokretnaSlovaPos[0][0], PokretnaSlovaPos[0][1], PokretnaSlovaPos[0][2], 1.0, PokretnaSlovaPos[0][3], PokretnaSlovaPos[0][4], PokretnaSlovaPos[0][5]);
   }
   return 1;
}
[/pawn]

U slucaju da neko slovo zabode ili dodje do nekih problema, u slucaju laga i sl mozete i da uradite komandu koja ce pozvati ovu funkciju za vracanje slova na pocetne polozaje.
[pawn]
forward ResetSlova();
public ResetSlova()
{
   for(new i = 0; i < 12; i++)
   {
      MoveDynamicObject(PokretnaSlova, PokretnaSlovaPos
  • , PokretnaSlovaPos[1], PokretnaSlovaPos[2], 1.0, PokretnaSlovaPos[3], PokretnaSlovaPos[4], PokretnaSlovaPos[5]);
       }
       return 1;
    }
    [/pawn]

    Kratko i lako, ali opet za neke bez logike komplikovano. Hvala na paznji i izvinjavam se na mogucim greskicama hehe  :D

exDeveloper | Generation, Zara Gaming, Meanwhile |
"If nobody hates you, you're doing something wrong."


Citat: TheP4vO poslato Jul 29, 2014, 20:42:16 POSLE PODNE
Glasao sam ali ovo je vrlo [cenzura]o svima je favorit neprikosloveni levu :D

Od tebe ne mogu ocekivat nesto lose :) Samo naprijed Levu :D


bilo je lijepo dok je trajalo.


Citat: Bašovski poslato Maj 11, 2018, 20:50:41 POSLE PODNE
Od tebe ne mogu ocekivat nesto lose :) Samo naprijed Levu :D
• Website: www.vasic.dev
Web Development & Cyber Security

Odlično brate.
• Sve sam u stanju da pustim da ide
Nisam od onih što svima se svide. •



Hvala svima!  :D

exDeveloper | Generation, Zara Gaming, Meanwhile |
"If nobody hates you, you're doing something wrong."


Citat: TheP4vO poslato Jul 29, 2014, 20:42:16 POSLE PODNE
Glasao sam ali ovo je vrlo [cenzura]o svima je favorit neprikosloveni levu :D




Lepo uradjeno.
SA:MP scripter & TeamSpeak3 developer

Hvala!

exDeveloper | Generation, Zara Gaming, Meanwhile |
"If nobody hates you, you're doing something wrong."


Citat: TheP4vO poslato Jul 29, 2014, 20:42:16 POSLE PODNE
Glasao sam ali ovo je vrlo [cenzura]o svima je favorit neprikosloveni levu :D

Citat: Bašovski poslato Maj 11, 2018, 20:50:41 POSLE PODNE
Od tebe ne mogu ocekivat nesto lose :) Samo naprijed Levu :D
{ 'HTML, PHP, CSS, JAVASCRIPT, PAWN, C#' }

while(alive) code;

Korisno   >:(
Ver Mont Skripter