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.
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 😄


