Pokretna slova

Započeo Levu
10. Maj 2018. Zaključano
3,604
pregleda
21
postova
Levuâ„¢
5
Kingpin
10. Maj 2018.
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).

        new PokretnaSlova;
        //ongamemodeinit ili gde vec ucitavate mape
        PokretnaSlova = CreateDynamicObject(19366, 1468.65759, -2285.15405, 25.59300,  0.00000, 0.00000, -15.00000);
PokretnaSlova = CreateDynamicObject(19366, 1468.66138, -2288.23438, 25.59300,  0.00000, 0.00000, 15.00000);
PokretnaSlova = CreateDynamicObject(19366, 1470.21057, -2290.90356, 25.59300,  0.00000, 0.00000, 45.00000);
PokretnaSlova = CreateDynamicObject(19366, 1472.87488, -2292.42163, 25.59300,  0.00000, 0.00000, 75.00000);
PokretnaSlova = CreateDynamicObject(19366, 1475.98669, -2292.43579, 25.59300,  0.00000, 0.00000, 105.00000);
PokretnaSlova = CreateDynamicObject(19366, 1478.66187, -2290.89380, 25.59300,  0.00000, 0.00000, 135.00000);
PokretnaSlova = CreateDynamicObject(19366, 1480.22510, -2288.21167, 25.59300,  0.00000, 0.00000, 165.00000);
PokretnaSlova = CreateDynamicObject(19366, 1480.22705, -2285.10132, 25.59300,  0.00000, 0.00000, 195.00000);
PokretnaSlova = CreateDynamicObject(19366, 1478.66150, -2282.41748, 25.59300,  0.00000, 0.00000, 225.00000);
PokretnaSlova = CreateDynamicObject(19366, 1475.97339, -2280.87622, 25.59300,  0.00000, 0.00000, 255.00000);
PokretnaSlova = CreateDynamicObject(19366, 1472.89282, -2280.85986, 25.59300,  0.00000, 0.00000, 285.00000);
PokretnaSlova = CreateDynamicObject(19366, 1470.21033, -2282.43262, 25.59300,  0.00000, 0.00000, -45.00000);
SetDynamicObjectMaterialText(PokretnaSlova, 0, "{000000}A", 60, "Arial", 130, 1, -1, 0, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
SetDynamicObjectMaterialText(PokretnaSlova, 0, "{000000}B", 60, "Arial", 130, 1, -1, 0, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
SetDynamicObjectMaterialText(PokretnaSlova, 0, "{000000}C", 60, "Arial", 130, 1, -1, 0, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
SetDynamicObjectMaterialText(PokretnaSlova, 0, "{000000}D", 60, "Arial", 130, 1, -1, 0, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
SetDynamicObjectMaterialText(PokretnaSlova, 0, "{000000}E", 60, "Arial", 130, 1, -1, 0, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
SetDynamicObjectMaterialText(PokretnaSlova, 0, "{000000}F", 60, "Arial", 130, 1, -1, 0, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
SetDynamicObjectMaterialText(PokretnaSlova, 0, "{000000}G", 60, "Arial", 130, 1, -1, 0, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
SetDynamicObjectMaterialText(PokretnaSlova, 0, "{000000}H", 60, "Arial", 130, 1, -1, 0, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
SetDynamicObjectMaterialText(PokretnaSlova, 0, "{000000}I", 60, "Arial", 130, 1, -1, 0, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
SetDynamicObjectMaterialText(PokretnaSlova, 0, "{000000}J", 60, "Arial", 130, 1, -1, 0, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
SetDynamicObjectMaterialText(PokretnaSlova, 0, "{000000}K", 60, "Arial", 130, 1, -1, 0, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
SetDynamicObjectMaterialText(PokretnaSlova, 0, "{000000}L", 60, "Arial", 130, 1, -1, 0, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);


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.

new Float:PokretnaSlovaPos =
{
{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}
};


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.

task PokretnaSlova_Tajmer()//ponavljajuci tajmer na svake 4s
{
new Float:Pos;
for(new i = 0; i < 12; i++)//petlja za 12 objekata
{
GetDynamicObjectPos(PokretnaSlova, Pos, Pos, Pos); // 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 == PokretnaSlovaPos)  MoveDynamicObject(PokretnaSlova, PokretnaSlovaPos, PokretnaSlovaPos, PokretnaSlovaPos, 1.0, PokretnaSlovaPos, PokretnaSlovaPos, PokretnaSlovaPos);
if(Pos == PokretnaSlovaPos) MoveDynamicObject(PokretnaSlova, PokretnaSlovaPos, PokretnaSlovaPos, PokretnaSlovaPos, 1.0, PokretnaSlovaPos, PokretnaSlovaPos, PokretnaSlovaPos);
if(Pos == PokretnaSlovaPos) MoveDynamicObject(PokretnaSlova, PokretnaSlovaPos, PokretnaSlovaPos, PokretnaSlovaPos, 1.0, PokretnaSlovaPos, PokretnaSlovaPos, PokretnaSlovaPos);
if(Pos == PokretnaSlovaPos) MoveDynamicObject(PokretnaSlova, PokretnaSlovaPos, PokretnaSlovaPos, PokretnaSlovaPos, 1.0, PokretnaSlovaPos, PokretnaSlovaPos, PokretnaSlovaPos);
if(Pos == PokretnaSlovaPos) MoveDynamicObject(PokretnaSlova, PokretnaSlovaPos, PokretnaSlovaPos, PokretnaSlovaPos, 1.0, PokretnaSlovaPos, PokretnaSlovaPos, PokretnaSlovaPos);
if(Pos == PokretnaSlovaPos) MoveDynamicObject(PokretnaSlova, PokretnaSlovaPos, PokretnaSlovaPos, PokretnaSlovaPos, 1.0, PokretnaSlovaPos, PokretnaSlovaPos, PokretnaSlovaPos);
if(Pos == PokretnaSlovaPos) MoveDynamicObject(PokretnaSlova, PokretnaSlovaPos, PokretnaSlovaPos, PokretnaSlovaPos, 1.0, PokretnaSlovaPos, PokretnaSlovaPos, PokretnaSlovaPos);
if(Pos == PokretnaSlovaPos) MoveDynamicObject(PokretnaSlova, PokretnaSlovaPos, PokretnaSlovaPos, PokretnaSlovaPos, 1.0, PokretnaSlovaPos, PokretnaSlovaPos, PokretnaSlovaPos);
if(Pos == PokretnaSlovaPos) MoveDynamicObject(PokretnaSlova, PokretnaSlovaPos, PokretnaSlovaPos, PokretnaSlovaPos, 1.0, PokretnaSlovaPos, PokretnaSlovaPos, PokretnaSlovaPos);
if(Pos == PokretnaSlovaPos) MoveDynamicObject(PokretnaSlova, PokretnaSlovaPos, PokretnaSlovaPos, PokretnaSlovaPos, 1.0, PokretnaSlovaPos, PokretnaSlovaPos, PokretnaSlovaPos);
if(Pos == PokretnaSlovaPos) MoveDynamicObject(PokretnaSlova, PokretnaSlovaPos, PokretnaSlovaPos, PokretnaSlovaPos, 1.0, PokretnaSlovaPos, PokretnaSlovaPos, PokretnaSlovaPos);
if(Pos == PokretnaSlovaPos) MoveDynamicObject(PokretnaSlova, PokretnaSlovaPos, PokretnaSlovaPos, PokretnaSlovaPos, 1.0, PokretnaSlovaPos, PokretnaSlovaPos, PokretnaSlovaPos);
}
return 1;
}


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.

forward ResetSlova();
public ResetSlova()
{
for(new i = 0; i < 12; i++)
{
MoveDynamicObject(PokretnaSlova, PokretnaSlovaPos, PokretnaSlovaPos, PokretnaSlovaPos, 1.0, PokretnaSlovaPos, PokretnaSlovaPos, PokretnaSlovaPos);
}
return 1;
}


Kratko i lako, ali opet za neke bez logike komplikovano. Hvala na paznji i izvinjavam se na mogucim greskicama hehe  😄
RahimPAWNO
5
OG Legend
11. Maj 2018.
Od tebe ne mogu ocekivat nesto lose 🙂 Samo naprijed Levu 😄
FunnyGamingDay - FGD
6
OG Legend
11. Maj 2018.
Bašovski wrote on May 11, 2018, 6:50 pm:
Od tebe ne mogu ocekivat nesto lose 🙂 Samo naprijed Levu 😄

Former SA:MP server developer

Eldin Fratello
5
Forum Don
11. Maj 2018.
Odlično brate.
TerzaScripting
5
Underboss
11. Maj 2018.
Dobarrr
muamerkadusic
5
Godfather
11. Maj 2018.
Extraa 😁
Levuâ„¢
5
Kingpin
16. Maj 2018.
Hvala svima!  😄
PekiBrat
2
Street Runner
16. Maj 2018.
Cool 😎
cutura
5
Godfather
16. Maj 2018.
odlican tut
✩ BILI ✩
5
Underboss
16. Maj 2018.
тєяzι¢ wrote on May 11, 2018, 8:04 pm:
Dobarrr
Snajper
4
Enforcer
16. Maj 2018.
Lepo uradjeno.
Levuâ„¢
5
Kingpin
23. Maj 2018.
Hvala!
#Comi
4
Enforcer
11. Jun 2018.
Bašovski wrote on May 11, 2018, 6:50 pm:
Od tebe ne mogu ocekivat nesto lose 🙂 Samo naprijed Levu 😄
ZmajkoScript
3
Hustler
11. Jul 2018.
Korisno  😠
Muma Rascall
6
Forum Don
🔥4
13. Jul 2018.
Odlično. 😄

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha