Sziasztok! Információk: Mivel ezt a funkciót csak egyszer használtuk/használjuk, megosztanám Veletek is, hátha jól jön még valakinek. Mit tud? Tetszőleges méretű, és tetszőleges számú szigetkomplexumot létrehozni parttal, utakkal együtt, vagy ha szeretnéd hogy a telkeken legyenek fák is, random pozíciókra legenerálja a fákat telkeken belül. A régi verzióban generált kerítést is, csak nem működött megfelelően ezért kivettem. (kép róla lent) Képek, videó (a videón egy régebbi verzió látható, ami kicsit hibásan működött): [hs width=300 height=300]http://i.imgur.com/Z5TVHZsl.jpg[/hs] [hs width=300 height=300]http://i.imgur.com/9K0ZhSil.jpg[/hs] [hs width=300 height=300]http://i.imgur.com/9cOxYj2l.jpg[/hs]
Kód(ok): Külön-külön is kiszedem, és a legvégén egybe a szkriptet. Elemek létrehozására szolgáló kód
stock Upside_Plot(Float:X, Float:Y, Float:Z) // fennti telek { #define X_DIFF 70.0000 #define Y_DIFF 70.0000 CreateObject(19529, X, Y, Z, 0.00, 0.00, 90.00); // ALAP CreateObject(19532, X, ( Y + Y_DIFF ), Z, 0.00, 0.00, 90.00); //fennti út CreateObject(19532, X, ( Y - Y_DIFF ), Z, 0.00, 0.00, 90.00); //lennti út CreateObject(19532, ( X + X_DIFF ), Y, Z, 0.00, 0.00, 0.00); //jobb út CreateObject(19534, ( X + X_DIFF ), ( Y + Y_DIFF ), Z, 0.00, 0.00, 90.00); //sarok CreateObject(19534, ( X + X_DIFF ), ( Y - Y_DIFF ), Z, 0.00, 0.00, 90.00); //sarok objects += 6; return 1; } stock Rightside_Plot(Float:X, Float:Y, Float:Z) // jobb oldali telek { #define X_DIFF 70.0000 #define Y_DIFF 70.0000 CreateObject(19529, X, Y, Z, 0.00, 0.00, 90.00); // ALAP CreateObject(19532, X, ( Y - Y_DIFF ), Z, 0.00, 0.00, 90.00); //lennti út CreateObject(19532, ( X + X_DIFF ), Y, Z, 0.00, 0.00, 0.00); //jobb út CreateObject(19534, ( X + X_DIFF ), ( Y - Y_DIFF ), Z, 0.00, 0.00, 90.00); //sarok objects += 4; return 1; } stock Leftside_Plot(Float:X, Float:Y, Float:Z) //bal oldali { #define X_DIFF 70.0000 #define Y_DIFF 70.0000 CreateObject(19529, X, Y, Z, 0.00, 0.00, 90.00); // ALAP CreateObject(19532, X, ( Y - Y_DIFF ), Z, 0.00, 0.00, 90.00); //alsó út CreateObject(19532, ( X - X_DIFF ), Y, Z, 0.00, 0.00, 0.00); //bal út CreateObject(19532, ( X + X_DIFF ), Y, Z, 0.00, 0.00, 0.00); //jobb út CreateObject(19534, ( X - X_DIFF ), ( Y - Y_DIFF ), Z, 0.00, 0.00, 270.00); //sarok CreateObject(19534, ( X + X_DIFF ), ( Y - Y_DIFF ), Z, 0.00, 0.00, 270.00); //sarok objects += 6; return 1; } stock Leftside_Sarok_Plot(Float:X, Float:Y, Float:Z) //utolsó amit lerak { #define X_DIFF 70.0000 #define Y_DIFF 70.0000 CreateObject(19529, X, Y, Z, 0.00, 0.00, 90.00); // ALAP CreateObject(19532, X, ( Y + Y_DIFF ), Z, 0.00, 0.00, 90.00); //fennti út CreateObject(19532, X, ( Y - Y_DIFF ), Z, 0.00, 0.00, 90.00); //alsó út CreateObject(19532, ( X - X_DIFF ), Y, Z, 0.00, 0.00, 0.00); //jobb út CreateObject(19532, ( X + X_DIFF ), Y, Z, 0.00, 0.00, 0.00); //bal út CreateObject(19534, ( X - X_DIFF ), ( Y - Y_DIFF ), Z, 0.00, 0.00, 90.00); //keresztezodes jobbfennt CreateObject(19534, ( X - X_DIFF ), ( Y + Y_DIFF ), Z, 0.00, 0.00, 180.00); //sarok jobblent CreateObject(19534, ( X + X_DIFF ), ( Y + Y_DIFF ), Z, 0.00, 0.00, 180.00); //sarok ballent CreateObject(19534, ( X + X_DIFF ), ( Y - Y_DIFF ), Z, 0.00, 0.00, 270.00); //keresztezodes fent objects += 9; return 1; } stock Coach_Large(Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ) //Part1 { CreateObject(19542, X, Y, Z, rX, rY, rZ); objects++; return 1; } stock Coach_Small(Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ) //part2 { CreateObject(19541, X, Y, Z, rX, rY, rZ); objects++; return 1; } stock Corner(Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ) //sarok { CreateObject(19540, X, Y, Z, rX, rY, rZ); objects++; return 1; }
Fák létrehozása
Generate_Random_Tree(Float:xmin, Float:ymin, Float:xmax, Float:ymax, Float:Z, max_darab = 5) //Adott területen belül letesz \'max_darab\' számú fát, random helyre { new Float:xx, Float:yy, max_fa; max_fa = random(max_darab); if(max_fa == 0) return 0; for(new i = 0; i < max_fa; i++) { xx = random(floatround(xmax, floatround_floor) - floatround(xmin, floatround_floor)) + floatround(xmin, floatround_floor); yy = random(floatround(ymax, floatround_floor) - floatround(ymin, floatround_floor)) + floatround(ymin, floatround_floor); CreateObject( 618, xx, yy, Z, 0.00, 0.00, 0.00); } return 1; }