Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <sscanf2>
- #include <zcmd>
- #include <streamer>
- #define CreateObject CreateDynamicObject
- new execute = 1;
- new objects = 0;
- new bool:up_cam[MAX_PLAYERS];
- new Float:cX, Float:cY, Float:cZ, Float:ccX, Float:ccY;
- new aaa;
- GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance)
- {
- new Float:a;
- GetPlayerPos(playerid, x, y, a);
- GetPlayerFacingAngle(playerid, a);
- if (GetPlayerVehicleID(playerid))
- {
- GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
- }
- x -= (distance * floatsin(-a, degrees));
- y -= (distance * floatcos(-a, degrees));
- }
- CMD:xd(playerid, params[])
- {
- if(up_cam[playerid] == false)
- {
- GetPlayerPos(playerid, cX, cY, cZ);
- GetXYInFrontOfPlayer(playerid, ccX, ccY, 5.0);
- SetPlayerCameraPos(playerid, ccX, ccY, cZ+15);
- SetPlayerCameraLookAt(playerid, cX, cY, cZ, 2);
- up_cam[playerid] = true;
- SendClientMessage(playerid, -1, "Bekapcsolva");
- }
- else
- {
- SetCameraBehindPlayer(playerid);
- up_cam[playerid] = false;
- SendClientMessage(playerid, -1, "Kikapcsolva");
- }
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- if(up_cam[playerid] == true)
- {
- GetPlayerPos(playerid, cX, cY, cZ);
- GetXYInFrontOfPlayer(playerid, ccX, ccY, 5.0);
- SetPlayerCameraPos(playerid, ccX, ccY, cZ+15);
- SetPlayerCameraLookAt(playerid, cX, cY, cZ, 2);
- }
- }
- CMD:island(playerid, params[])
- {
- Generate_Map(5, 0, -3343.57, 194.34, 6.2, 2, 2);
- /*
- new w, h;
- if(sscanf(params, "ii", w, h)) SendClientMessage(playerid, -1, "/island <W> <H>");
- else
- {
- new Float:PP[3];
- GetPlayerPos(playerid, PP[0], PP[1], PP[2]);
- SetPlayerPos(playerid, PP[0], PP[1], PP[2]+6.00);
- Generate_Island(PP[0], PP[1], PP[2]+5.00, w, h);
- new str[128];
- format(str, 128, "%d (%i*%i)", objects, w, h);
- SendClientMessage(playerid, -1, str);
- }*/
- return 1;
- }
- CMD:car(playerid, params[]) // infernus
- {
- new Float:PP[3];
- GetPlayerPos(playerid, PP[0], PP[1], PP[2]);
- new veh = CreateVehicle(411, PP[0], PP[1], PP[2]+7.00, 0.00, 0, 0, 0);
- PutPlayerInVehicle(playerid, veh, 0);
- return 1;
- }
- CMD:info(playerid, params[]) // object információi
- {
- execute = 0;
- SelectObject(playerid);
- new Float:PP[3];
- GetPlayerPos(playerid, PP[0], PP[1], PP[2]);
- new str[256];
- format(str, sizeof str, "XYZ: %f.04, %f.04, %f.04", PP[0], PP[1], PP[2]);
- SendClientMessage(playerid, -1, str);
- return 1;
- }
- CMD:edit(playerid, params[]) // szerkesztés, tesztnek
- {
- execute = 1;
- SelectObject(playerid);
- return 1;
- }
- Float:CalculatePlotWidth(szelesseg) // szelesseg = hány telek egység
- {
- #define ROAD_SIZE 7.50
- #define PLOT_SIZE 140.00
- #define COACH_SIZE 70.00
- new Float:eredmeny;
- eredmeny = ((szelesseg-1) * (ROAD_SIZE + PLOT_SIZE)) + (ROAD_SIZE + PLOT_SIZE + ROAD_SIZE) + (COACH_SIZE * 2);
- return eredmeny;
- }
- SetDrawDistance_Osszes(Float:dist) // drawdistance állítása
- {
- new i;
- for(i = 0; i < Streamer_CountItems(STREAMER_TYPE_OBJECT)-1; i++)
- {
- Streamer_SetFloatData(STREAMER_TYPE_OBJECT, i, E_STREAMER_DRAW_DISTANCE, dist);
- Streamer_SetFloatData(STREAMER_TYPE_OBJECT, i, E_STREAMER_STREAM_DISTANCE, dist);
- }
- }
- CMD:drawdist(playerid, params[]) // drawdistance állítása
- {
- SetDrawDistance_Osszes( float(strval(params)) );
- return 1;
- }
- /* TESZT
- CMD:lel(playerid, params[])
- {
- new asd[123];
- format(asd, 123, "%f", CalculatePlotWidth(strval(params)));
- SendClientMessage(playerid, -1, asd);
- return 1;
- }*/
- CMD:tele(playerid, params[]) // odateleportál ahol a szigetek létrejönnek
- {
- SetPlayerPos(playerid, -3343.57 + random(2), 194.34 + random(2), 6.2);
- SetPlayerFacingAngle(playerid, 315);
- SetCameraBehindPlayer(playerid);
- return 1;
- }
- 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;
- }
- 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;
- }
- Generate_Island(Float:X, Float:Y, Float:Z, hossz=10, szelesseg=10) // Egy sziget legenerálása
- {
- #define PLOT_DIFF 140.0000
- #define SAND_DIFF 62.50
- new Float:COUNT_X = 0.00, Float:COUNT_Y = 0.00;
- new Float:xmin, Float:ymin, Float:xmax, Float:ymax;
- // Telek, út, homok része
- for(new i = 0; i < hossz; i++)
- {
- //Legutolsó sor generálása
- if(i == (hossz-1))
- {
- //Fennti rész
- Upside_Plot(X, Y + COUNT_Y, Z);
- //random fa
- xmin = X - ((PLOT_DIFF/2) - 15.0);
- ymin = (Y + COUNT_Y) - ((PLOT_DIFF/2) - 15.0);
- xmax= X + ((PLOT_DIFF/2) - 15.0);
- ymax = (Y + COUNT_Y) + ((PLOT_DIFF/2) - 15.0);
- Generate_Random_Tree(xmin, ymin, xmax, ymax, Z);
- //Sarok balfennt
- Leftside_Sarok_Plot( ( X - ( PLOT_DIFF * (szelesseg-1) ) ), Y + COUNT_Y, Z);
- //random fa
- xmin = ( X - ( PLOT_DIFF * (szelesseg-1) ) ) - ((PLOT_DIFF/2) - 15.0);
- ymin = (Y + COUNT_Y) - ((PLOT_DIFF/2) - 15.0);
- xmax= ( X - ( PLOT_DIFF * (szelesseg-1) ) ) + ((PLOT_DIFF/2) - 15.0);
- ymax = (Y + COUNT_Y) + ((PLOT_DIFF/2) - 15.0);
- Generate_Random_Tree(xmin, ymin, xmax, ymax, Z);
- //sarok
- Coach_Large( X, ((Y+COUNT_Y)+7.50) + (PLOT_DIFF/2), Z, 0.00, 0.00, 90.00);
- Coach_Small( X + (PLOT_DIFF/2) , ((Y+COUNT_Y)+7.50) + (PLOT_DIFF/2), Z, 0.00, 0.00, 90.00);
- //sarok2
- Coach_Large( ( X - ( PLOT_DIFF * (szelesseg-1) ) ), ((Y+COUNT_Y)+7.50) + (PLOT_DIFF/2), Z, 0.00, 0.00, 90.00);
- Coach_Small( ( X - ( PLOT_DIFF * (szelesseg-1) ) ) + (PLOT_DIFF/2), ((Y+COUNT_Y)+7.50) + (PLOT_DIFF/2) , Z, 0.00, 0.00, 90.00);
- //legszéle
- Coach_Small( ( X - ( PLOT_DIFF * (szelesseg-1) ) ) - (PLOT_DIFF/2), ((Y+COUNT_Y)+7.50) + (PLOT_DIFF/2), Z, 0.00, 0.00, 90.00);
- //sarkok
- Corner(X + (PLOT_DIFF/2) + 7.50, ((Y+COUNT_Y)+7.50) + (PLOT_DIFF/2), Z, 0.00, 0.00, 0.00);
- Corner(( X - ( PLOT_DIFF * (szelesseg-1) ) ) - (PLOT_DIFF/2) - 7.50, ((Y+COUNT_Y)+7.50) + (PLOT_DIFF/2), Z, 0.00, 0.00, 90.00);
- }
- else
- {
- Rightside_Plot(X, Y + COUNT_Y, Z);
- //random fa
- xmin = X - ((PLOT_DIFF/2) - 15.0);
- ymin = (Y + COUNT_Y) - ((PLOT_DIFF/2) - 15.0);
- xmax= X + ((PLOT_DIFF/2) - 15.0);
- ymax = (Y + COUNT_Y) + ((PLOT_DIFF/2) - 15.0);
- Generate_Random_Tree(xmin, ymin, xmax, ymax, Z);
- Leftside_Plot( ( X - ( PLOT_DIFF * (szelesseg-1) ) ), Y + COUNT_Y, Z);
- //random fa
- xmin = ( X - ( PLOT_DIFF * (szelesseg-1) ) ) - ((PLOT_DIFF/2) - 15.0);
- ymin = (Y + COUNT_Y) - ((PLOT_DIFF/2) - 15.0);
- xmax= ( X - ( PLOT_DIFF * (szelesseg-1) ) ) + ((PLOT_DIFF/2) - 15.0);
- ymax = (Y + COUNT_Y) + ((PLOT_DIFF/2) - 15.0);
- Generate_Random_Tree(xmin, ymin, xmax, ymax, Z);
- // Két első szél
- if(i == 0)
- {
- Coach_Small( ( X + (X_DIFF + 7.50) ), (Y + COUNT_Y) - (PLOT_DIFF/2), Z, 0.00, 0.00, 0.00);
- Coach_Small( (( X - ( PLOT_DIFF * (szelesseg-1) ) ) - (PLOT_DIFF/2)) - 7.50, (Y + COUNT_Y) - (PLOT_DIFF/2), Z, 0.00, 0.00, 180.00);
- //egyk sarok
- Coach_Large( (X - COUNT_X), ((Y-COUNT_Y)-7.50) - (PLOT_DIFF/2), Z, 0.00, 0.00, 270.00);
- Coach_Small( ( (X - COUNT_X) - (PLOT_DIFF/2) ), ((Y-COUNT_Y)-7.50) - (PLOT_DIFF/2) , Z, 0.00, 0.00, 270.00);
- //másik
- Coach_Large( ( X - ( PLOT_DIFF * (szelesseg-1) ) ), ((Y-COUNT_Y)-7.50) - (PLOT_DIFF/2), Z, 0.00, 0.00, 270.00);
- Coach_Small( ( X - ( PLOT_DIFF * (szelesseg-1) ) ) - (PLOT_DIFF/2), ((Y-COUNT_Y)-7.50) - (PLOT_DIFF/2) , Z, 0.00, 0.00, 270.00);
- //legszéle
- Coach_Small( ( (X - COUNT_X) + (PLOT_DIFF/2) ), ((Y-COUNT_Y)-7.50) - (PLOT_DIFF/2) , Z, 0.00, 0.00, 270.00);
- //sarkok
- Corner((X + COUNT_X) + (PLOT_DIFF/2) + 7.50, ((Y-COUNT_Y)-7.50) - (PLOT_DIFF/2), Z, 0.00, 0.00, 270.00);
- Corner(( X - ( PLOT_DIFF * (szelesseg-1) ) ) - (PLOT_DIFF/2) - 7.50, ((Y-COUNT_Y)-7.50) - (PLOT_DIFF/2), Z, 0.00, 0.00, 180.00);
- }
- }
- // Szélek jobb (2 nagy, 1 kicsi)
- Coach_Large( ( X + (X_DIFF + 7.50) ), ( (Y + COUNT_Y) ), Z, 0.00, 0.00, 0.00);
- Coach_Small( ( X + (X_DIFF + 7.50) ), (Y + COUNT_Y) + (PLOT_DIFF/2), Z, 0.00, 0.00, 0.00);
- // Szélek bal
- Coach_Large( (( X - ( PLOT_DIFF * (szelesseg-1) ) ) - (PLOT_DIFF/2)) - 7.50, ( (Y + COUNT_Y) ), Z, 0.00, 0.00, 180.00);
- Coach_Small( (( X - ( PLOT_DIFF * (szelesseg-1) ) ) - (PLOT_DIFF/2)) - 7.50 , (Y + COUNT_Y) + (PLOT_DIFF/2), Z, 0.00, 0.00, 180.00);
- COUNT_X = 140.0000;
- for(new a = 1; a < (szelesseg-1); a++)
- {
- if(i == (hossz-1))
- {
- Upside_Plot(X-COUNT_X, Y+COUNT_Y, Z);
- //random fa
- xmin = (X-COUNT_X) - ((PLOT_DIFF/2) - 15.0);
- ymin = (Y + COUNT_Y) - ((PLOT_DIFF/2) - 15.0);
- xmax= (X-COUNT_X) + ((PLOT_DIFF/2) - 15.0);
- ymax = (Y + COUNT_Y) + ((PLOT_DIFF/2) - 15.0);
- Generate_Random_Tree(xmin, ymin, xmax, ymax, Z);
- Coach_Large( ( (X - COUNT_X)), ((Y+COUNT_Y)+7.50) + (PLOT_DIFF/2), Z, 0.00, 0.00, 90.00);
- Coach_Small( (X - COUNT_X) + (PLOT_DIFF/2) , ((Y+COUNT_Y)+7.50) + (PLOT_DIFF/2), Z, 0.00, 0.00, 90.00);
- }
- else
- {
- Rightside_Plot( X-COUNT_X, Y+COUNT_Y, Z);
- //random fa
- xmin = (X-COUNT_X) - ((PLOT_DIFF/2) - 15.0);
- ymin = (Y + COUNT_Y) - ((PLOT_DIFF/2) - 15.0);
- xmax= (X-COUNT_X) + ((PLOT_DIFF/2) - 15.0);
- ymax = (Y + COUNT_Y) + ((PLOT_DIFF/2) - 15.0);
- Generate_Random_Tree(xmin, ymin, xmax, ymax, Z);
- if(i == 0)
- {
- Coach_Large( ( (X - COUNT_X)), ((Y-COUNT_Y)-7.50) - (PLOT_DIFF/2), Z, 0.00, 0.00, 270.00);
- Coach_Small( ( (X - COUNT_X) - (PLOT_DIFF/2) ), ((Y-COUNT_Y)-7.50) - (PLOT_DIFF/2) , Z, 0.00, 0.00, 270.00);
- }
- }
- COUNT_X += PLOT_DIFF;
- }
- COUNT_Y += PLOT_DIFF;
- }
- return 1;
- }
- public OnPlayerSelectObject(playerid, type, objectid, modelid, Float:fX, Float:fY, Float:fZ)
- {
- if(execute == 1)
- {
- EditObject(playerid, objectid);
- }
- else
- {
- new str[256];
- new Float:rx, Float:ry, Float:rz;
- GetObjectRot( objectid, rx, ry, rz );
- format(str, sizeof str, "ID: %i, XYZ: %f.04, %f.04, %f.04, RXYZ: %f.04, %f.04, %f.04, MODELID: %i", objectid, fX, fY, fZ, rx, ry, rz, modelid);
- SendClientMessage(playerid, -1, str);
- }
- return 1;
- }
- Generate_Map(numberx, numbery, Float:X, Float:Y, Float:Z, w, h)
- {
- #define ROAD_DIFF 70.0
- new Float: DIFF = CalculatePlotWidth(w)-22.50, Float:X_COUNTER, Float:ROAD_COUNTER;
- X_COUNTER = 0.00, ROAD_COUNTER = 0.00;
- for(new i = 0; i < numberx; i++)
- {
- Generate_Island(X-X_COUNTER, Y, Z, w, h);
- //utak generálása
- if( i < (numberx-1) )
- {
- for(new k = 0; k <= h; k++)
- {
- CreateObject(19532, (X-(X_COUNTER+280.00)), (Y - ROAD_DIFF) + ROAD_COUNTER, Z+0.02, 0.00, 0.00, 90.00); //alsó út
- ROAD_COUNTER += ROAD_DIFF*2;
- printf("%i", k);
- }
- }
- ROAD_COUNTER = 0.00;
- X_COUNTER += DIFF;
- }
- new str[128];
- format(str, 128, "%d objects created. (%i*%i)", objects, w, h);
- printf(str);
- }
- public OnFilterScriptInit()
- {
- return 1;
- }
- public OnFilterScriptExit()
- {
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement