Skip to content
View in the app

A better way to browse. Learn more.

MagicDuel Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Images

Kaya

Member

Everything posted by Kaya

  1. The old story mode has been removed, but the new introduction is still under construction, leaving new characters in a short of limbo. If I'm not mistaken you should be offered a cube by the shade and then be ported to the park.
  2. Kaya replied to Muratus del Mur's topic in General Forum
    The only one who has been killed recently from that list as far as I know is Lightsage... I'm curious what the list looks like now though, after the recent Necrovion massacre.
  3. Kaya replied to Muratus del Mur's topic in General Forum
    I'm not sure what this list is supposed to be.. People who have recently been killed? Ordered by... Loyalty?
  4. In my opinion there are two major issues with land loyalty, both as it is now as well as how it used to be, namely that by only taking into account time it doesn't really mean much and that it is impossible for new players to catch up to old players due to the constant inflow of new loyalty without any outflow. Therefore I would like to propose the concept of land favors. The idea is quite simple, just like land loyalty citizens get one favor point a day, but unlike land loyalty they are expendable and can be traded. To prevent abuse I would suggest requiring players to have at least a minimum amount of favors before being able to give favors away (or if you prefer in game arguments, the land needs to be sure you're loyal before trusting your recommendations.) The trading part is simple, if you have at least an X amount of favors (say 250) you are able to give away any excess points in any quantity you want as quest rewards, political pacts, back alley deals, attempted takeovers and much more. Then land favors should be usable at the capital for certain land related features. For example: [spoiler] Feature (cost): Start citizen vote for self (5) Start remove citizen vote (50) Immediately become citizen (200) Remove citizen (The to be removed citizen's favors) [/spoiler] TL;DR: Old loyalty system, but you can spend loyalty on stuff and you can trade it.
  5. Kaya replied to Miq's topic in General Forum
    Very true, I suggest making AP cost to enter at least about 200 to prevent players from accidentally walking in there without knowing they might get stuck.
  6. Not possible in MDScript, which makes sense because there is no control over what code is saved inside the variable, allowing it to bypass all restrictions.
  7. Global is a restricted keyword (thrice even) so that doesn't work. As for passing in the methods, you can pass in the return values, but other than that not sure how it would work. (It is, for fairly obvious reasons, not possible to call a method stored in a variable, if that is what you mean.)
  8. The mds_template() function crashes on any value that evaluates to false: Example: [spoiler] content: Template values:<br/> 0:[[zero]]<br/> '0':[[zerostring]]<br/> '':[[mptystring]]<br/> null:[[null]]<br/> FALSE:[[false]]<br/> ' ':[[space]]<br/> code: (locations 1_-1x2_1) @tpl['zero'] = 0; @tpl['zerostring'] = '0'; @tpl['mptystring'] = ''; @tpl['null'] = null; @tpl['false'] = FALSE; @tpl['space'] = ' '; mds_template(@content[0], @tpl); output: [/spoiler] It seems like there is an isset() missing in the template code. One way to work around this is by appending a space to each value to make sure they are no longer empty. (As extra spaces are normally ignored in HTML)
  9. I tried playing around with MDScript a little more and apparently you can use functions. That being said I haven't found a way to use variables from outside a function (other than passing them as parameters and returning them) inside the function. In that sense it is more like functional programming than OOP. Also it doesn't appear to be possible to use MDScript specific methods inside a user defined function. e.g: function bar() { echo @vv; //Always echoes nothing @vv = 'bar'; } @vv = 'foo'; bar(); echo @vv; //echoes foo function baz(@vv) { @vv = 'baz'; return @vv; } baz(@vv); echo @vv; //still foo @vx = baz(@vv); echo @vv; //still foo echo @vx; //vx is now baz function err() { echo uv('id'); } err(); //Gives an error because uv is undefined
  10. The image still contains the $ dollar symbol as well.
  11. Also the map locations for all but a handful of locations in the east are about a centimeter off.
  12. Kaya replied to MRWander's topic in New Ideas
    A different but very much related idea, how about instead of hiding the scene you don't show the dots of people in scenes with high viscosity on the map. Say if viscosity is bigger than half the max viscosity they no longer show up on the map. This way it will also become possible to hide yourself once more.
  13. I made a very basic tutorial a while ago. It is far from complete (I have been planning on making a follow up) but should be able to help you get started. If there is anything in there that is unclear please do tell me so I can improve it :) http://magicduel.invisionzone.com/topic/16837-a-step-by-step-introduction-to-mdscript-for-absolute-beginners/#entry168233 Edit: Also, this probably belongs in the general MDScript discussion section.
  14. Not at all :) feeling a bit snarky myself as well, so I can fully understand where that was coming from. The bold is a reference to "<!-- the bold text is where your audio link goes to, this is currently a german internet radio -->". So unless you want to force your love for German radio (the irony) onto the rest of the world, you'll have to change the value of src into something else like: <audio id="player" autoplay loop src="http://remix.media.nin.com/data/uploads/1207088558g939.mp3"></audio> EDIT: By the time I found the song, it was already too late. Also realized that the most likely bold disappeared with the addition of the code tags.
  15. Please remove the "autoplay" from the first line. Nothing as horrific as randomly being attacked by music. Also, there is no bold text in here, instead you should replace the part after "src="
  16. There's a backslash at 7_localpub_1 and a missing apostroph at 7_intown_1.
  17. For many people who want to make a quest coding is a big hurdle. This tutorial is made to teach all needed to make simple quests in an easily understandable way. The tutorial covers displaying text, reading out user input and saving progress using keys. The result of the tutorial can be seen at the signs at the MBP and at Willow's shop using the keyword secret pass word. In order to make a clicky quest you need to have unlocked the ability to edit clickies. This can be purchased using your third WP, but is also occasionally given out to those deemed worthy. Step 1: Displaying text You can edit a clicky by opening it and clicking on the "edit own" button. Now you will get a screen with 4 text fields: The Title field at the top, the content field at the left, the Script field on the right and the password field at the bottom. In the first step we are just going to display some text. This step is really easy. Simply paste the following text into the content field and press "save&compile". Hello cube! This is the first step. Now you should see your text appear on the screen. While you're at it feel free to add an awesome title and a secret pass word to prevent people from spying on you. Step 2: First code Now let's start coding. For security reasons you need to define from what locations you're allowed to run the script. Right above the code field is a sentence that says something like "Add location setting: (locations 1_0x2_1)" copy the final part including the brackets and paste it on the first line of the code field. Your code won't work without this, so you better don't forget to add it. If there is anything in the code field, the content is no longer automatically displayed. In order to output our text we use the print command, which outputs the following text to the user. In this case we want to output the text from the content box. This text is conveniently saved in the variable @content[0]. Finally the command should be ended with a semicolon which will give us the following code: (locations 1_0x2_1) echo @content[0]; Now save and compile to see your new page. Done? Then you might have noticed something strange; all the enters are gone! This is because your content is now seen as HTML and HTML ignores enters. Instead to add them you should surround each paragraph with <p> and </p>, which will give you the following content: <p>Hello cube!</p> <p>This is the first step.</p> For more on formatting your page take a look at W3Schools. MDScript uses only the part between <body> and </body> Step 3: Interaction Our quest is still a bit boring, so let's add some user interaction. We are going to ask if they are ready to start the quest; if they are we show them some text that will help the player move on to the next part. First I will give you the code and then I will explain what everything does. Add the following at the bottom of the content field: <p>So you want to become a code wizard?<p> <form method="post"> <input type="submit" name="wizard" value="Yes"/> </form> <!-- content separator --> <p>Then go to the sign at Willow's shop to start your training.</p> And add the following code to the bottom of your code field: if(@input["wizard"] == "Yes") { echo @content[1]; } Almost all user input is done through forms, made by surrounding part of your content with <form method='post'> and </form>. In this case the page has one input field of type "submit", which is the code for a simple button. The value of the button contains the text on the button and is send back to the server along with the button's name. The <!-- content separator --> splits up our content in multiple parts so we can display them individually. @content[0] revers to the first part, @content[1] to the second etc. In our server code we can read out the user input using the @input variable. @input[<name>] contains the contains the value of the input field. In this case we look if @input["wizard"] is equal to "Yes". Only if that's the case, the code between the curly brackets is executed and we display the second content block. There are many other types of input on this page. Step 4: Progress You might have noticed that you have the Yes button again every time you open the page. While for the hint this isn't that bad, for our next riddle we don't want to trouble our questees with having to enter their answer again every time, so we're going to save their progress using keys. Below the content for the sign at Willow's shop: <p>The road to becoming a code wizard is hard, so let me test you.</p> <form method="post"> <p>What is 1 + 1? <input type="text" name="answer"/><input type="submit" value="Answer"/></p> </form> <!-- content separator --> <p>Exactly! 1 + 1 = 10, binary! Congratulations on completing your first steps to code wizardry.</p> <!-- content separator --> <p>I'm afraid that's not quite the answer I'm looking for.</p> <form method="post"> <input type="submit" value="Try again"/> </form> And the matching code: (locations 1_1x3_1) if(mds_has_rpcq_keys("SuperDuperSecretCodeKeyAboutBinaryCounting")) { print @content[1]; } else { if(isset(@input["answer"])) { if(@input["answer"] == "10") { print @content[1]; mds_give_rpcq_keys("SuperDuperSecretCodeKeyAboutBinaryCounting"); } else { print @content[2]; } } else { print @content[0]; } } This might seem like a lot of code, but most of the code we have already seen. The only new thing in the content section is the text input field, which (as the name suggests) allows the user to input text. The code once again starts with the locations tag, followed by a check to see if the user already completed the riddle using mds_has_rpcq_keys(). If they did, we show them the 'completed' text, if not, we do some more checks. With isset() we check if there is a value in @input["answer"]. If not, that means the page was just opened and the user hasn't answered the riddle yet, so we show him the riddle. If it is set, we take a look at his answer; if it's correct, we use mds_give_rpcq_keys() to give the player a key. Some more about keys The exact value of the key doesn't matter, it could be "SuperDuperSecretCodeKeyAboutBinaryCounting" or it could be "cat". What does matter is that your key is unique, as everyone's code would be able to check or set your keys if they were able to figure them out. As such "cat" is probably not the best idea. Instead it is recommended that you add a prefix to your key that only you would be able to come up with. For more on keys (for example how to remove them) I suggest you take a look at the MDScript manual's Keys page. As an exercise I'll leave it to you to try and make it in such a way that the riddle won't be visible unless the player has pressed the Yes button in the park and to create a clicky that removes the key to allow you to start all over. And we're done! And with that you have your first quest. Sure it contains only one riddle, but with some creativity this is enough to make a full quest. Any comments, questions and suggestions are highly appreciated. If there is enough interest I might make another tutorial, either a continuation or something more advanced.
  18. Kaya replied to Aethon's topic in Questions and Answers
    That would probably be up to the TC master.
  19. Good luck Chewett, seems like Mur pushed a red button and ran.
  20. I could do this, then at the same time I could finish writing the mouse over texts for the Tribunal. It would be nice to have a copy of the actual image on which the points should be project so I could give the actual coordinates instead of an approximation based on a screenshot. If I understand it right the entry for the TB gate (Coord: 7_gate_1) should be something along the lines of: $part[7]['gate'][1] = '290x500';
  21. Common items could be merged through the same means; the cauldron doesn't differentiate between resources and other items, and neither do other item combiners. Perhaps the archives could get a section with recipes used to combine common items. P.s. Magohi, add a link from water and branches to the teapot. :)

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.