This shows you the differences between two versions of the page.
|
lua:scripting:examples:scriptingolc [2014/12/24 05:40] vodur created |
— (current) | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | Using the CH:olc() command we can script olc editing if desired. | ||
| - | |||
| - | Let's set all rooms in Bastion to be no_teleport. | ||
| - | |||
| - | For this script, we will not use a trigger, but instead use the 'mprun' command to run the script on ourselves. | ||
| - | So we just need an mprog vnum and we're good to go. I will use my favorite one, which is 31404. | ||
| - | <code lua> | ||
| - | local rooms=mob.room.area.rooms | ||
| - | local cnt=0 | ||
| - | for _,room in pairs(rooms) do | ||
| - | -- Maybe it is already no_teleport, need to check. | ||
| - | if not(room:flag("no_teleport")) then | ||
| - | goto(room.vnum) | ||
| - | mdo("redit") | ||
| - | olc("room no_teleport") | ||
| - | olc("done") | ||
| - | cnt=cnt+1 | ||
| - | end | ||
| - | end | ||
| - | sendtochar(mob, "Updated %d rooms\n\r", cnt) | ||
| - | </code> | ||
| - | |||
| - | Remember that since you are using mprun, 'mob' will actually be you in this case. | ||
| - | In our script we choose the area based on the mob location, so need to make sure we're in Bastion when we run it. | ||
| - | |||
| - | <code> | ||
| - | goto 10204 | ||
| - | The Palace Square [Room 10204 city] | ||
| - | You stand in the common area of the walled city of Bastion. Shops and | ||
| - | buildings line the streets in all directions. Some distance away, in the | ||
| - | four cardinal directions, roads meet the square and continue outward into | ||
| - | the rest of the city. Looking up you see a complex system of support beams, | ||
| - | columns, and stone work that supports the "floating palace." This palace | ||
| - | earned its name long before the walls of Bastion were built, when the palace | ||
| - | seemed to float above the rest of city and was visible from anywhere on the | ||
| - | island. In the four corners of the square you notice spiral staircases | ||
| - | leading up into the palace. The square is paved for pedestrian shopping | ||
| - | with white marble tiles, decorated in the patterns of the island. Under | ||
| - | your feet in the center of the square is a great gold seal, and the donation | ||
| - | pit is through a hole down from here. | ||
| - | |||
| - | [Exits: north east south west up down northeast southeast southwest northwest] | ||
| - | |||
| - | mprun 31404 | ||
| - | Running mprog 31404 on Ranglor(0) in room The Palace Square(10204) | ||
| - | Room flags toggled. | ||
| - | Room flags toggled. | ||
| - | ... | ||
| - | ... | ||
| - | Room flags toggled. | ||
| - | Updated 275 rooms | ||
| - | Mprog completed. | ||
| - | </code> | ||
| - | |||
| - | Now, if it worked right, we should be able to run it again and have 0 updates. | ||
| - | |||
| - | <code> | ||
| - | mprun 31404 | ||
| - | Running mprog 31404 on Ranglor(0) in room Before a Shadowed Throne(10505) | ||
| - | Updated 0 rooms | ||
| - | Mprog completed. | ||
| - | </code> | ||
| - | |||