#include #define Type_Object 1 #define Type_Pickup 2 #define Type_Vehicle 3 forward Timer(); new Menu:StartMenu, Menu:ObjectMenu, Menu:PickupMenu, Menu:VehicleMenu; new counter; new type, menu_type, dobject; enum PosInfo { Float:posx, Float:posy, Float:posz } new pos[PosInfo]; enum RotInfo { Float:rotx, Float:roty, Float:rotz } new rot[RotInfo]; new Objects_Roads[] = { 1320, 1321, 1322, 1323, 1324, 1422, 1423, 1424, 1427, 1434, 1435 }; new Timers[MAX_PLAYERS]; public OnFilterScriptInit() { print("\n--------------------------------------"); print(" Blank Filterscript by your name here"); print("--------------------------------------\n"); StartMenu = CreateMenu("rObject", 1, 250.0, 8.0, 70.0, 50.0); if (IsValidMenu(StartMenu)) { SetMenuColumnHeader(StartMenu, 0, "Options"); AddMenuItem(StartMenu, 0, "Objects"); AddMenuItem(StartMenu, 0, "Pickups"); AddMenuItem(StartMenu, 0, "Vehicles"); AddMenuItem(StartMenu, 0, "Test Session"); } ObjectMenu = CreateMenu("rObject", 1, 250.0, 8.0, 70.0, 50.0); if (IsValidMenu(ObjectMenu)) { SetMenuColumnHeader(ObjectMenu, 0, "Object Mapping"); AddMenuItem(ObjectMenu, 0, "Roads"); AddMenuItem(ObjectMenu, 0, "Ramps"); AddMenuItem(ObjectMenu, 0, "Trees"); AddMenuItem(ObjectMenu, 0, "Buildings"); AddMenuItem(ObjectMenu, 0, "Misc"); AddMenuItem(ObjectMenu, 0, "Your own ID"); } PickupMenu = CreateMenu("rObject", 1, 250.0, 8.0, 70.0, 50.0); if (IsValidMenu(PickupMenu)) { SetMenuColumnHeader(PickupMenu, 0, "Pickup Mapping"); AddMenuItem(PickupMenu, 0, "Commonly Used"); AddMenuItem(PickupMenu, 0, "Your own ID"); } VehicleMenu = CreateMenu("rObject", 1, 250.0, 8.0, 70.0, 50.0); if (IsValidMenu(VehicleMenu)) { SetMenuColumnHeader(VehicleMenu, 0, "Vehicle Mapping"); AddMenuItem(VehicleMenu, 0, "Cars"); AddMenuItem(VehicleMenu, 0, "Your own ID"); } return 1; } public OnFilterScriptExit() { return 1; } public OnPlayerRequestClass(playerid, classid) { SpawnPlayer(playerid); return 1; } public OnPlayerRequestSpawn(playerid) { return 1; } public OnPlayerConnect(playerid) { if (IsValidMenu(StartMenu)) ShowMenuForPlayer(StartMenu, playerid); return 1; } public OnPlayerDisconnect(playerid, reason) { return 1; } public OnPlayerSpawn(playerid) { return 1; } public OnPlayerDeath(playerid, killerid, reason) { return 1; } public OnVehicleSpawn(vehicleid) { return 1; } public OnVehicleDeath(vehicleid, killerid) { return 1; } public OnPlayerText(playerid, text[]) { return 1; } public OnPlayerPrivmsg(playerid, recieverid, text[]) { return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/ostart", cmdtext, true, 10) == 0) { // Do something here return 1; } return 0; } public OnPlayerInfoChange(playerid) { return 1; } public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) { return 1; } public OnPlayerExitVehicle(playerid, vehicleid) { return 1; } public OnPlayerStateChange(playerid, newstate, oldstate) { return 1; } public OnPlayerEnterCheckpoint(playerid) { return 1; } public OnPlayerLeaveCheckpoint(playerid) { return 1; } public OnPlayerEnterRaceCheckpoint(playerid) { return 1; } public OnPlayerLeaveRaceCheckpoint(playerid) { return 1; } public OnRconCommand(cmd[]) { return 1; } public OnObjectMoved(objectid) { return 1; } public OnPlayerObjectMoved(playerid, objectid) { return 1; } public OnPlayerPickUpPickup(playerid, pickupid) { return 1; } public OnPlayerSelectedMenuRow(playerid, row) { new Menu:Current = GetPlayerMenu(playerid); if(Current == StartMenu) { switch(row) { case 0: if (IsValidMenu(ObjectMenu)) ShowMenuForPlayer(ObjectMenu, playerid); case 1: if (IsValidMenu(PickupMenu)) ShowMenuForPlayer(PickupMenu, playerid); case 2: if (IsValidMenu(VehicleMenu)) ShowMenuForPlayer(VehicleMenu, playerid); } } if(Current == ObjectMenu) { switch(row) { case 0: { HideMenuForPlayer(ObjectMenu, playerid); Timers[playerid] = SetTimer("Timer", 300, true); type = Type_Object, menu_type = row; DestroyObject(dobject); dobject = CreateObject(Objects_Roads[counter], pos[posx], pos[posy], pos[posz], rot[rotx], rot[roty], rot[rotz]); counter++; ChangeView(playerid, dobject); } } } return true; } public OnPlayerExitedMenu(playerid) { return 1; } public Timer() { for(new i; i < MAX_PLAYERS; i++) { if(!IsPlayerConnected(i)) continue; new keys, updown, leftright; GetPlayerKeys(i, keys, updown, leftright); switch(keys) { case KEY_FIRE: { switch(type) { case Type_Object: { switch(menu_type) { case 0: { DestroyObject(dobject); dobject = CreateObject(Objects_Roads[counter], pos[posx], pos[posy], pos[posz], rot[rotx], rot[roty], rot[rotz]); counter++; ChangeView(i, dobject); } } } } } case KEY_LOOK_LEFT: { pos[posz] += 7.5; SetObjectPos(dobject, pos[posx], pos[posy], pos[posz]); ChangeView(i, dobject); } case KEY_LOOK_RIGHT: { pos[posz] -= 7.5; SetObjectPos(dobject, pos[posx], pos[posy], pos[posz]); ChangeView(i, dobject); } } if(leftright == KEY_LEFT) { pos[posx] -= 7.5; SetObjectPos(dobject, pos[posx], pos[posy], pos[posz]); ChangeView(i, dobject); } if(leftright == KEY_RIGHT) { pos[posx] += 7.5; SetObjectPos(dobject, pos[posx], pos[posy], pos[posz]); ChangeView(i, dobject); } if(updown == KEY_UP) { pos[posy] += 7.5; SetObjectPos(dobject, pos[posx], pos[posy], pos[posz]); ChangeView(i, dobject); } if(updown == KEY_DOWN) { pos[posy] -= 7.5; SetObjectPos(dobject, pos[posx], pos[posy], pos[posz]); ChangeView(i, dobject); } } } GetXYBehindObject(objectid, &Float:x, &Float:y, Float:distance) { new Float:a, Float:r[2]; GetObjectPos(objectid, x, y, a); GetObjectRot(objectid, a, r[0], r[1]); x -= (distance * floatsin(-a, degrees)); y -= (distance * floatcos(-a, degrees)); } ChangeView(playerid,objectid) { new Float:opos[2]; GetXYBehindObject(objectid, opos[0], opos[1], 5.0); SetPlayerCameraPos(playerid, opos[0], opos[1], pos[posz] + 3.0); SetPlayerCameraLookAt(playerid, pos[posx], pos[posy], pos[posz]); TogglePlayerControllable(playerid, false); SetPlayerPos(playerid, pos[posx], pos[posy], pos[posz] + 25.0); }