Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //--------------------------------------------------------------------------------------------------
- //--------------------------------------------------------------------------------------------------
- //--------------------------------------Labirinth v.0.1---------------------------------------------
- //--------------------------------------------------------------------------------------------------
- //------------------------------------------By Vinny------------------------------------------------
- //--------------------------------------------------------------------------------------------------
- #include <a_samp>
- #define makeeven(%1) (%1 & 0xFE)
- #define myrand(%1) (%1?random(%1):0)
- #define myevenrand(%1) (myrand(%1) & 0xFE)
- #define evenmax(%1) (%1 & 0xFE)
- #define evenaverage(%1) ((evenmax(%1)/2)&0xFE)
- #define myoddrand(%1) (myrand(%1) | 0x01)
- new a[256*16], cycle = 0, nobj = 0;
- public OnPlayerCommandText(playerid, cmdtext[]) {
- if (!strcmp(cmdtext, "/creat")) {
- nobj = 4;
- CreateObject(4938, 3500.0, 0.0, 10.0, 0.0, 0.0, 0.0);
- CreateObject(4938, 3500.0+180, 0-180.0, 10.0, 0.0, 0.0, 0.0);
- CreateObject(4938, 3500.0, 0.0-180.0, 10.0, 0.0, 0.0, 0.0);
- CreateObject(4938, 3500.0+180.0, 0.0, 10.0, 0.0, 0.0, 0.0);
- createLab(3405, 80, 30, 58, 80);
- printf("%d", nobj);
- return 1;
- }
- if (!strcmp(cmdtext, "/ts")) {
- SetPlayerPos(playerid, 3410.0, 90.0, 12.0);
- CreateVehicle(522, 3405.0, 88.0, 12.0, 0.0, -1, -1, 99999);
- return 1;
- }
- if (!strcmp(cmdtext, "/c1")) {
- SetPlayerCameraPos(playerid, 3500.0, 0.0, 200.0);
- SetPlayerCameraLookAt(playerid, 3500.0, 5.0, 0.0);
- return 1;
- }
- if (!strcmp(cmdtext, "/c2")) {
- SetPlayerCameraPos(playerid, 3500.0+180.0, -180.0, 200.0);
- SetPlayerCameraLookAt(playerid, 3500.0+180.0, -180.0+5.0, 0.0);
- return 1;
- }
- if (!strcmp(cmdtext, "/c3")) {
- SetPlayerCameraPos(playerid, 3500.0, 0.0-180.0, 200.0);
- SetPlayerCameraLookAt(playerid, 3500.0, 0.0-180.0+5.0, 0.0);
- return 1;
- }
- if (!strcmp(cmdtext, "/c4")) {
- SetPlayerCameraPos(playerid, 3500.0+180.0, 0.0, 200.0);
- SetPlayerCameraLookAt(playerid, 3500.0+180.0, 5.0, 0.0);
- return 1;
- }
- if (!strcmp(cmdtext, "/cr")) {
- SetCameraBehindPlayer(playerid);
- return 1;
- }
- return 0;
- }
- public OnFilterScriptExit() {
- for (new i=0;i <= nobj;i++)
- DestroyObject(i);
- }
- stock createLab(x, y, w, h, len) {
- new size;
- len = (len == 0)?70:len;
- h++; w++;
- size = h * w;
- cycle = 0;
- for (new i=0;i < 256*16;i++)
- a[i] = 0;
- createborder(size, w, h);
- createdoors(size,w);
- new i = 0, z = 0;
- cycle += size + size / 2;
- while (getrandom(w,h, i) > 0) {
- if (a[i] == 1) continue;
- z = getdirection(w);
- do {
- if (a[i] == 0) a[i] = 1;
- i += z;
- if (random(100) > len) break;
- } while (a[i] == 0);
- }
- new tx = x;
- for (i = 0;i < size;i++) {
- if (i > 0 && i % w == 0) {
- y -= 6;
- x = tx;
- }
- if (a[i] == 1 && nobj < MAX_OBJECTS) {
- CreateObject(16096, x, y, 12.5, 0.0, 0.0, 0.0, 400.0);
- nobj++;
- }
- x += 6;
- }
- }
- stock createborder(size, w, h) {
- for (new i=0;i < size; i++) {
- if ((i < w) ||
- (i % w == 0) ||
- (i % w == (w - 1)) ||
- (i > w * (h - 1)))
- a[i] = 1;
- }
- }
- stock createdoors(size, w) {
- new t;
- do{ t = oddbetween(0,w); }while(t == 0 || t == w);
- a[t] = 0x2F;
- do{ t = oddbetween(size - w, size); }while(t == size || a[t] == 0);
- a[t] = 0x2F;
- }
- stock getdirection(w) {
- new z = random(4);
- return ((z == 0)?-1:(z==1)?1:(z==2)?w:-w);
- }
- stock oddbetween(n1, n2) {
- new t = myoddrand(n2);
- return ((t > n1)?t:oddbetween(n1, n2));
- }
- stock evenbetween(n1, n2) {
- new t = myevenrand(n2);
- return ((t > n1)?t:evenbetween(n1, n2));
- }
- stock getrandom(w, h, &x) {
- new row = evenbetween(0, h),
- col = evenbetween(0, w);
- x = w * row + col;
- if ((x % w) % 2 != 0)
- getrandom(w, h, x);
- return cycle--;
- }
Advertisement
Add Comment
Please, Sign In to add comment