Jump to content

Muratus del Mur

Root Admin
  • Posts

    4,084
  • Joined

  • Last visited

  • Days Won

    293

Everything posted by Muratus del Mur

  1. (To be moved in a poll maybe if you think its important) Should alt check be availabe in script? Something if(is_alt('id or playername of main')){... Alt checks could have a few points of accuracy, like no way, might be, defenetly ... Consider someone could collect data with it and display a Alt list for public review or for his own. Alts as you know are allowed, but using them to boos your main is not (meaning you can use them though but within decent limits and only for the purpose of playing an other character/personality) I am sure this is useful for preveting quest cheating but its also a serious threat to privacy. An alternative could be to provide a function to change activation keys automaticaly on a range of items, that way you could "reset" your quest automaticaly when someone wins...but its more difficult to use i think and requires changes in the quest logic (like to base them on generated codes not on nice pass or activation words) Think about it, if its a issue that should be discussed transfer it to a poll , if not, i will move on and consider there should not be such a function.
  2. People ... your previous code wont work anymore, i forgot to mention that little detail. You will have to rewrite it with the new syntax, thats actualy plain php, which is better. Learning md code means learning php basics so you might find a use for that later on in life No more default_content:.. use echo @content[0]; Rendril, just awsome, BUT PLEASE do me a favor and write if else statements like this: [code] if(){ .. }else{ .. } //with brackets - GOOD [/code] NOT LIKE THIS [code] if() .. else .. //without brackets - NOT GOOD PRACTICE [/code] Please, it hurts my programmer eyes when i see that. Even if it works and its shorter , its a coarse to debug and its very easy to mess in a bigger logic structure. store() an retrieve() functions are wrong used in the above examples. When i finish fixing the mds_storage() function you will be able to have more complex solutions. The two simplified functions should be used to start and to end your code, one call per page. They save an array and retrieve an array, all your handling is done with that array not with these functions. If you use them multiple times they will overwrite that array each time (and they limited too) I'll be fixing things on the way, some functions that are in the allowed list cant be used due to the paranoid checks i put, but they will be fine in time. We should do that new forum organizing sooner, any mod there??? Guess not. Once we have that i suggest having a category for "validated samples" meaning code that works, was tested on items and can be copy pasted to use in quests. A lot of people would love to have an entire quest structure or application to put on items and just change it so to fit their needs or customize it further. The start is difficult. This is a good opportunity for people with programming skills to get wp codes for good activity with this (samples, help with documenting, help with answering questions about this here on forum etc). Its also a good opportunity for those that get involved to gain the editing ability for free, i dont plan to keep it hard to reach just because i am an evil Mur .. there are two ways to get to it.. be active and involved in md (= gain wishpoints) OR be a programmer and prove you are involved. Programmers are not always good quest solvers or have abilities to help them gain wishpoints, but they could do miracles with such a feature ..so i am open to suggestions.. if you understand what i say here. Ex rpcs gaining scripting ability...well..i will think about it. Wp being rare for now ... not so rare actualy... my plan is to give wp codes to any good quest creator i see. The problem is there is no well organised way for me to see who received and who not and what quests are there. I dont have time to check each one. So, maybe have asigned people that will go and hunt for good quest creators, maybe have a better organized forum section for that ... idk..you jump with the method, i jump with the codes Kings will have a BIG bunch of codes too, to give to the ones within their land that are good quest creators. I was thinking 100codes per land given to the king for both giving to quest creators and rewarding wishpoints directly. But..that might be a too stressful responsability on the king ..you know all those asskissers or close friends that will keep demanding..its a sad truth. Idea is, i want to give out codes, but not to "friends" or people that try to get close to me daily, i am alergic to that. I also dont want to give codes to people that do bad quests and i dont have time to check. I also dont want to miss people that do good quests but are bad at advertising them or are to (insert(opposite of rude)) to bug me about it. Rendril you could collect applications for those that have programming skills and want to get the feature for free. They can submit a sample MDSCRIPT to you (so not any script) and you can evaluate it for how interesting it is and how well its written. You helpmed me a lot with testing it so i think you can handle this. only ppl that i heard about in game are alowed, so no anonimous alts please. After rendril filters them out i will check if they are trustable enough and then give them scripting feature free. Also best samples that work should get rewarded with wp codes. Consider it a promotion time
  3. If you ask where to get a Q doc, you go in the archives at the document dispatcher and you can get one if you gave enough wishpoints to others. wp you can give by making quest and receive as reward wishpoint codes that wnable you to give wp rewards
  4. [b]Status update[/b] Still to be documented: - functions - data storage - user input - useful php functions guide - working with arrays - sample scripts Updated todo list : - creature transfers - item transfers - check for fight counts against a player - check for letters in a location - check for creatures - add name of editor to the item entry - hide item entries without activation words of users inactive over x days Ideas that will remain for later: - pseudo SQL to handle data in arrays like they are a database - fights triggered by script, trackable by script - ability to give heat to the objects - alt check - item and creature transfer history logs Ideas for when i will find a good way to prevent abuse: - wp awarding by script - magic spells triggered by script - illusions triggered by script - ability to store creatures, items and more on a clickable - add functions that allow user vars changes, teleportation, item creation and more drastic actions. ----- Offtopic (to be moved?) I am open to suggestions regarding the distribution of the ability to edit clickables. Currently only 16 ppl can edit items, thats too low. What should be increased? wp price - means more smart ppl active days - more loyal, active and constant ppl consumed wp - ppl with a strong bg On what other base should this ability be given, considering it can change the realm a lot and i plan much more for it
  5. I have the data storage functions to document , but tomorow. I suggest we keep MDScript documented on the forum, in a private group. Private group because i dont want curious people over the internet to look into it So anyone "known" around here, or with enough posts can look into it, and defenetly anyone with access to edit script. Keping it on forum is good because its easy to organize in a separate forum with examples, sugestions, bug tracking etc. SAMPLE SCRIPTS is the key for a widely used mdscript and interesting quests and applications built with it. I put great hope in this direction of MD. I know not many have any programming skills but most have good logic and thats the first and most important step. Those that do have programming background or at least a clue of it, will do amazing things i am sure. By providing sample scripts for all to see, a lot more players could use this feature. Btw, did i mention editing clickables will be added in WP shop at a decent requirement? maybe anyone with a Q doc ... idk now..to tired to think of it right. Feel free to move the docs i am writing here in a more organized structure or section I am reading all your suggestions , some will get implemented. A lot of things that are now on standby and unused, like letters, OR NIGHT TIME schedule, can be added to mdscript and given a chance for fast evolution, in a different dierection its true. Once i find a good way to balance use vs abuse, and reusability, i will be able to place much more features in the script. Right now MDScript is not fluid enough, it requires a human to supervise a quest, its rewards and what the script does. I hope i can make it so that something programmed in it will be functional and useful even long after the editor has left. There is also the issue with not being able to edit scripts of ex=players .. not sure how to fix that and still keep secrecy of keys and quests. Anyway, i will go on with the things i consider fun to do like always, and we shall see where it takes. ..but .. i will have a short time off soon, so expect more features when i return. I will enable clickables tomorow. Dont ruin it if you find ways to do so ..i put a bounty for finding exploits..better get rewarded than punished i think This is the list of available PHP functions, someone maybe can help writing documentation taken from php.net and adapted to mdscript usage . Rendril prepared the short description for each of them, but i realised its way to much to ask him to prepare sample code for each. Sample code should have some kind of originality and give a creative idea , quest related..not some copy pasted useless and faded programing examples...if you know what i mean.. Also if anyone spots a possible abuse with any of the functions, let me know, i didnt checked ALL of them so i might have missed some with issues. //math 'abs','acos','acosh','asin','asinh','atan2','atan','atanh','base_convert','bindec','ceil','cos','cosh', 'decbin','dechex','decoct','deg2rad','exp','expm1','floor','fmod','getrandmax','hexdec','hypot','is_finite', 'is_infinite','is_nan','lcg_value','log10','log1p','log','max','min','mt_getrandmax','mt_rand','mt_srand', 'octdec','pi','pow','rad2deg','rand','round','sin','sinh','sqrt','srand','tan','tanh', //string 'print','echo','count_chars','crc32','crypt','explode','chunk_split','htmlspecialchars','htmlspecialchars_ decode', 'get_ html_ translation_ table','printf','implode','md5','number_format','ord','chr','chop','lcfirst', 'similar_text','str_pad','str_ireplace','str_repeat','str_replace','str_rot13','str_shuffle','str_split', 'str_word_count','strcasecmp','strchr','strcmp','strip_tags','strcspn','stripos','stripslashes','stristr', 'strlen','strnatcasecmp','strnatcmp','strncasecmp','strncmp','strpbrk','strpos','strrchr','strrev','strrev', 'strrpos','strspn','strstr','strtok','strtolower','strtoupper','strtr','substr_compare','substr_count', 'substr_replace','substr','trim','ucfirst','ucwords','vfprintf','vprintf','vsprintf','wordwrap', //arrays 'array_change_key_case','array_chunk','array_combine','array_count_values','array_diff_assoc','array_diff_key', 'array_diff','array_fill_keys','array_fill','array_flip', 'array_intersect_assoc','array_intersect_key','array_intersect', 'array_key_exists','array_keys','array_merge_recursive','array_merge','array_multisort','array_pad', 'array_pop','array_product','array_push','array_rand','array_replace_recursive','array_replace', 'array_reverse','array_search','array_shift','array_slice','array_splice','array_sum', 'array_unique', 'array_unshift','array_values','array','arsort','asort', 'count','current','each','end','in_array','key','krsort','ksort','list','natcasesort','natsort','next', 'pos','prev','range','reset','rsort','shuffle','sizeof','sort','uasort', //variables 'is_array','is_binary','is_bool','is_float','is_double','is_int','is_integer','is_null','is_numeric','is_string', 'is_scalar','isset','serialize','unserialize','unset',//var_dump //date time 'date','time','date_add','date_create','date_diff','date_format','date_interval_format', 'date_modify','date_offset_get','date_parse','date_sub','date_sun_info','date_sunrise','date_sunset', 'date_timestamp_get','date_timezone_get','getdate','gettimeofday', 'gmdate','gmmktime','gmstrftime','idate','localtime','microtime','mktime','strftime','strptime','strtotime', 'timezone_location_get','timezone_name_get','timezone_offset_get','timezone_open','timezone_transitions_get', //encrypt 'mcrypt_ecb','mcrypt_cfb','mcrypt_cbc','mcrypt_ofb','hash', //url 'url','urldecode','urlencode','base64_decode','base64_encode', //country 'geoip_country_code_by_name','geoip_country_name_by_name','geoip_time_zone_by_country_and_region', //regular expressions 'preg_filter','preg_last_error','preg_match_all','preg_match','preg_quote','preg_replace_callback','preg_replace','preg_split', ps@awi plenty of time features to play with, some are realy creative too Btw, MD day is given by echo date('z');
  6. [b]User Vars[/b] Properties of the user accessing the script are available to the script. Don't worry, private info is not available to the script. Function to read user vars: mds_read_uvars(var); uv(var); The uv() function is much shorter and easyer to use. What it does is actualy call the mds_read_uvars() function in turn. Parameters: var = a keyword that indicates what value you want to know about that player. Available vars: 'id' = player id 've' = vitality 'vp' = value points 'xpl' = exploring points 'maxve' = maximum vitality 'maxvp' = maximum value points 'land' = land id, 'alliance' = allaince/guild id 'age' = active days 'loyalty' = loyalty points 'honor' = honor points 'name' = playername 'mp' = mindpower 'heads' = heads 'won' = won fights 'lost' = lost fights 'avatar_level' = avatar level 'avatar' = avatar id 'xp' = experience, 'kills' = kills during torch competition 'illusion' = set if player in an illusion [code] if(uv('ve')>10000){ if(uv('heads')>1000){ echo 'Run, hide, protect your head..sss'; }else{ echo 'You are alive, but you don't have so many heads with you '; } }elseif(uv('won')-uv('lost')>300){ echo 'Well you are wery weak but you won a lot of fights so...'; }else{ echo 'get lost'; } [/code] [code] echo "Hello ".uv('name')." "; [/code] This function can not be used to change user variables.
  7. [b]Key Control[/b] Keys are what decide what users can access in game. They are like flags to indicate all sorts of things and to track what player did and achieved. A special category of keys are the ones that you can set from the MDScript. They are just like the keys used to setup the entire realm, just that they have a prefix "rpcq-". You might notice that the same prefix is set on the Clickable items, well its no coincidence. Clickable items run as clickables if you don't have the key to access them and run as something else if you do have the key. Currently there are no clickables that have something behind them to run, but some important clickables that had are the Loreroot back entrance and the Drachorn Cave, meaning that if you got the key from a mdscript you could have entered the cave and get plenty of drachorns or have permanent access to LR back entrance. So pay attention to MDScript, it might be more interesting than you think. Enabling more clickable items to do something behind their keys will be done if i see people realy understand how to use and not ab(use) them. Combining strict rules with total freedom might not be possible afterall, anyway the system allows it right now so who knows what will be in the future of MD. For now, scripted keys are excelent way to track quest progress, and make scripts "know" what the player evolution with that script is. There is a new feature for data storage, that could be used just the same way, but i strongly think that keys have a major use along with that. Data storage and keys will have different evolution path because they are tehnicaly different things. Keys are saved with the user, data is separated. [b]Differences between data storage and keys[/b] Data storage, unlike keys, can store lots of data of all sorts, but they also get deleted once they get empty. Its no way to track what data a user has outside the clickable objects or MDScript. Keys can be tracked in game interface and used under many circumstances. Keys are very bad for holding actual data, they are just flags that are on or off. Only info keys hold is the time and place they were received and thats for logging reasons mostly. Both keys and data storage have their advantages and disadvantages and their different uses. They are not one and the same thing, even if under current situation they have similar use. [b]Function to manage keys:[/b] mds_give_rpcq_keys(keys); Gives the keys to the player. mds_take_rpcq_keys(keys); Removes/takes the keys from the player mds_has_rpcq_keys(keys); Checks if the player has specific keys, returns true if all keys are in the players possession , false otherwise Parameters: keys = a string with all the keys you want to give , take, or check. It doesnt support arrays, the parameter should be a string with comma separated values Examples: [code] if(mds_has_rpcq_keys('key1,key2,someotherkey')){ echo "Congrats you have all the keys"; }else{ echo "You do not have all needed keys"; } [/code] [code] if(..some rule here...){ @vk[] = 'key1'; } if(..some other rule...){ @vk[] = 'key2'; } @vs = implode(",",@vk); mds_give_rpcq_keys(@vs); [/code] [code] //replace keys //for example player just delivered a package and rceived next task if(mds_has_rpcq_keys('someotherkey')){ //takes initial key away, so it wont be used again mds_take_rpcq_keys('someotherkey'); //gives other keys in replace to continue mds_give_rpcq_keys('key1,key2'); } //final key could trigger a reward [/code] [b]Sharing keys[/b] Keys are global. A key named "greenbox" will be the same for that player if checked by any item or script in the realm. TO avoid key collisions you should name your keys in original way or even better , you should add a prefix to them. Example of good key names: playername-greenbox , or zzg3-greenbox, greenbox-tree-quest23 Example of bad key names: box, package, key1, somekey, general, .. Sharing keys is very interesting when multiple editors want to syncronize their quests. For example an item scripted by an editor could check for a key given by an other editor/quest to see if that user finished that quest first. [b]Key secrecy[/b] Because keys can be set by any editor, keeping your keys named complicated and secret is most important to avoid cheating. If you trust all the other editors, you can ignore that advice. Other editors can not see your code, except if you script on public items (there is a special category of items that share content and script across any editor).
  8. [b]Debugging Your Code[/b] Debugging is not some weird activity programmers do...well it is but if you want to do interesting things with MDScript you have to know about it. Seeing what is inside the variables you are working with is very important to understand what you should do with them next. Simple variables are easy to check, you just output them and see what value they have: [code]print @va;[/code] (i usualy use 'echo' instead of 'print' , they do same thing, but print sounds easier to remember) Best practice is to put some other value next to the one you are looking for, so that if the variable is empty, you will see that and not just an empty page not knowing if it was output or not. [code]print "V=".@va;[/code] This will output V=something or V= if @va has no value. Better than nothing at all. Arrays are harder to debug by just using simple output. Multidimensional arrays are even worse. Fortunately there are functions to help you see exactly what is inside a variable. [b]Debug Function:[/b] mds_debug(variable,label); Parameters: variable = any kind of variable simple or multidimensional array with or wihout data label = a label to help you identify the debug output, optional (means you can use just the variable parameter) [code]debug(@va);[/code] This will be your best friend when trying to understand what data you have in all those variables. It will generate a nice colored box with all the details you need about the internal structure of the variable you are trying to analyze
  9. did i say SHORT? oh well.. [b]Restrictions and Errors[/b] There are a lot of usual words that you are not allowed to use in your scripts. Try to rename them and avoid warnings. It is not a syntax check, its a broad check over what you type there in your little green scripting box to avoid exploits. Most red errors mean your script was not parsed because it did not pass the security checks. If your script gets parsed but you run into a nasty fatal error that stops loading the page, you will have a blue "edit in case of error" link so you can edit and fix the script. [b][STRICT RESTRICTION] Errors[/b] You used words or signs that are not allowed, simply rename them [b][GENERAL RESTRICTION] Errors[/b] Same as above. They cover a larger number of words and letter combinations. Same issue may cause an error in multiple error groups, but once you fix it they will all dissapear. [b][LANGUAGE RESTRICTION] Errors[/b] This means you tried to use a php function or keyword that is not supported. About 250 php functions are supported, out of thousands probably. You should have plenty of tools to play with but some things are just not safe for general use. If you think a function you could use is not available and its harmless, make a request and i will analyze it. [b][SEQUENCE RESTRICTION] Errors[/b] These are odd errors, but they are needed. Sometimes it makes no sense why you can't use a group of characters one after an other, but its mainly to prevent abuses you never dreamed of. Try to use something else, rename, reorder, etc. [b]Fatal Errors and Parse Errors[/b] These could be black ugly errors or red errors. This mean your script was compiled but failed to run. If you get a line number out of it, lucky you. Search that line for a possible mistake, a lost quote, a missing bracket or a missing ";" at the end of the line, etc. If the line is the last one in your script, you probably left a bracket open, see that all open brackets { match a closing bracket }. Not all the time the error that is written is helpful to know what happend. You should check your script open minded and not got stuck in the hint that the error message gives. [b]MDScript Warnings[/b] These are very useful warnings to tell you things that happen with your script. The errors are very targeted and explain most of what is going on. You should read them and try to fix the script so that you won't get any. In case the warnings can not be fixed or should not be fixed, there is a bypass function to hide the warnings, but use it ONLY when you are sure you understand all of them and you are sure they do not affect the functionality of the script. [b]Hide MDScript Warnings Function:[/b] mds_no_warnings(); //place it anywhere in the code This will not stop other errors than MDScript Warnings ------- [b]Variables[/b] Variables are what store data. In normal PHP language they are almost any string that starts with a dollar sign $. In MD script i had to change that for security reasons and make variables start with @ and have a predefined na,e. You can use only a few predefined variable names, use them wisely and they will be sufficient. You can use arrays too so you could fit an unlimited number of keys into one array if you are realy in big need of a large number of variables. 26 general use variables @va to @vz 3 dedicated variables named more conveniently so you have things easyer to follow They are tehnicaly the same as the 26 general use variables, they just have nice names @tpl , to be used for template replacement values @temp to be used for temporary things like loading values and then storing them into an other array @log to be used for storing logs during script execution or anything else that fits the name 3 special variables @input , this will get filled automaticaly with anything sent from a FORM (user input!) @content, this is an array that hold each of the content sections that you separate by the content separator in the content editing field, the other field besides the script editing field. @storage, gets loaded with data by the mds_storage() function. All data in this array gets saved to the database as a storage. Set data in the right indexes and after initiating storage or your script will get warnings if you set this var chaoticaly. ------ [b]Managing Content Sections[/b] In the content sections you put all text, stories, forms, templates, javascript and all things that are not MDScript code. Instead of putting all content in one big piece, you can separate it by placing a content separator, thats exactly this string: [i]<!-- content section -->[/i] All the pieces of content separated by such a separator, will be available for use in the MDScript under the @content array starting at index zero. Example: [code] Content part 1 <!-- content section --> Some other content <!-- content section --> A template [[test]] with variables <!-- content section --> A form <form ...> ... </form> [/code] This will be in the MDScript seen as: [code] @content[0] = Content part 1; @content[1] = A template ... with variables; @content[2] = A form <form ...> ... </form>; [/code] This way of separating content is very useful. You could display different content sections depending on different rules you set in the script. Also its very important when you use templates. [b]Templates[/b] Function: mds_template(template,data,return,columns,attributes); Parameters: template = template to use for each data displayed. Variables in this template should be noted as [[somename]] where 'somename' can be anything data = can be an array with keys named like the strings enclosed in [[...]] in the template or a multidimensional array for more records. Such an array has each of its items as an array with values return = if its true, function will return the string so it can be used in the script, if its false, it will display the result directly. columns = for multidimensional arrays, this parameter tells on how many columns they should be displayed. If its false or 1 the records will be displayed one per row. It has no use if the data array does not contain multiple records. attributes = when displaying multiple records, they get organized in a table. The attributes parameter can contain a string to be placed inside the <td ...> tag of each cell. This could be a style an attribute but also javascript or anything that is html valid. You can use bits of content as templates with variables. @content[1] is the content after the first content separator lets say for this example template code contains: [code] <b>[[name]]</b><br>[[rowinfo]]<br>Details: [[more]] [/code] Script to use this template: [code] //make sure @tpl its empty @tpl = array(); //do something 20 times for(@va=0;@va<20;@va++){ @tpl[@va]['name'] = "Record {@vk}"; @tpl[@va]['rowinfo'] = "Row {@vk} has value".@vv; @tpl[@va]['more'] = "more values ..."; } //call template function mds_template(@content[1],@tpl,true,3,'style="border:1px solid"'); [/code] This will display the content in @tpl, on 3 columns, each time parsing the template in @content[1]. The style indicated in the last parameter will be used on each of the 20 table cells created. ---------- more coming soon...
  10. - user input (forms) DONE you can now use forms in your scripts and process user input O.o Combine that with template loops, and data storage and you build your own store within md, with cart and product categories .... but without payments Unless your creativity comes up with somehting untill i do the rest of the features SHORT tutorial coming up now, sciprt gets public after the tutorial, tonight, no more tests, if you erase md from the server, so be it Have fun
  11. exirable keys are not an option. You can achieve same by changing the key you are checking for. Addin a limit to number of keys could be useful to prevent abuses but will also limit things a lot. I can add a limit for giving someone a key to many times within same script. For example an abuse script would give an other player 1000000 keys just to overload his keyholder and crash his account. Anythign is possible, mdscript does not restrict at all all possible abuses ..for some of them other types of restrictions are required (like hunt and kill/ip ban for main an alts type of thing). sending data to flash is possible by using current tools. Just do a template for the output string, replace it with the values you want, and you have your data to load in flash. Sit down, please, here goes SF-MD-PHP-Sript Updated planed features list: - creature transfers by mdscript - item transfers - user input (forms) - fights triggered by script, trackable by script (not sure if i can) (good for checkpoints, trials, competitions) - check for player creature, vitality, xp, type, tokens, level, etc (assamble army missions, creature collector, etc) - check for fight counts against a player (search and destroy missions, bounty, etc) - add name of editor to the entry title for the item, indicating if it has script on it or not, and how many lines it has. - pseudo SQL to handle data in arrays like they are a database, useful for user created filters and more, not sure how much memmory that will eat - wp awarding by script - magic spells triggered by script (turns items into healing shrines, and such, unlimited possibilities) - illusions triggered by script (like you kiss the prince and it turns into a frog, or ..the opposite) - ability to give things to the objects, like send creature or item to an object and that item becomes available to use by script (automated markets, take and give quests, package delivery, etc) - ability to give heat to the objects and objects to count that cross user. (unlimited possibilies of use in combination with the other features) - more? maybe needed: - treasure chests , sort of "things" to hold items, creatures or even ritual configurations for use by script so that they don't get deleted by owner. For example if you want to give an item by script, you have to place it in a treasure chest, and you cant take it back from there (you can by script if you realy want to) - mixing fighting NPCs with clickable objects, not sure if possible. Right now the Loreroot guards do this, but in a very customized way. - rating stars for item entries The current changes are major, so i move it from v0.1 to v1.0 ... but if i manage to do those things listed above or some of the most important of them, it will get 2.0 directly. Heat thing, figthing, and item storage on clickables are the most difficult and i am not sure if they will get done. It might be that the most complicated things to motivate me the most and get done before the simple ones, we shall see. Main issue with these features is preventing abuse. Anyway, i plan to launch it soon, as it is, because i will take about a week of vacation and i dont think i can finish anything of those before that. I need testers for a preliminary test before i make whats allready done public. I need people willing to try to abuse it and find issues with it, experienced with coding is best. I also need creative people that can write example codes of interesting you coudl do with the current features.
  12. KEYS FIXED now the 3 functions for key handling are: mds_give_rpcq_keys mds_take_rpcq_keys mds_has_rpcq_keys keys can be anything, if one editor sets the rpcq-test123 key then an other editor can check for it or change it in his scripts too. rpcsq keys are just the same as the keys used to lock locations and do all sorts of things in the realm, but compared to hardcoded keys. the rpcq keys have "rpcq-" in front of them. mds_give_rpcq_keys('test123'); for example , will actualy set key rpcq-test123 to that user. Keys are flags, not value storages. Clickable items can be restricted by such keys, meaning you cant click it or access its scripts unless you have that key, same as access points are blocked on the map if you dont have the right key for them. I am telling you all this so you will know what to ask regarding items and restrictions to them. Next in work: - creature transfers by mdscript - item transfers - user input thats all i think If you have anymore wishes for the script, let me know. EDIT: just remembered .. integrate magic (maybe illusions too) with mdscript, like spells you could trigger from script .. i am not sure of how to control overuse yet...
  13. I think i fixed most of them, if you see any again, repost. I those things after the nice error text , the urls. Thnx
  14. the function above changed a bit, in good of course. You will see it again in the docs. Except that "advanced" function, i made a very simple one to be used as a fast save and load. Unfortunalty i can use save and load as words in the code due to security issues, so i had to name them store and retrieve. look at this..cant get anymore simpler that that realy: [code] //code in item A @vh = "wow thats simple"; store(@vh); //code in item B retrieve(@vh); echo @vh; //will output "wow thats simple" //can be used to store and load entire arrays of data. [/code] happy now dst? ps. retrieve() or restore(), what sounds better?
  15. Some more: this is the short documentation of the current storage types. Did i miss any situation? or do you think the storage scope and structure needs something more (or less)? The final info will be available in the docs, this is just a short copy paste from the current code comments so you can get a general clue of whats there. Name of the function might change also in the final script: [code] /* Initiate data storage This will check if storage is indeed valid, will create one if none exists yet name = simple alphanumeric string used to name the storage and separate them from eachother type = keyword that determines the scope and sharing level of the storage totu: shared only for this object and this user toau: shared only for this object but for all users accessing it aoau: shared across all object and all users, separated by editor aotu: shared across all object but only for this user Storages do not share data between them, even if they have same name but different type/scope. Storages do not access data from one editor to an other regardless of naming or scope. To access storages across editors use the remote storage access functions */ @storage = mds_storage_load("myfirstquest",'aotu'); //this will create a storage where you can hold and change data of all sorts across objects for a individual player accessing them. @vx = array('abc','123','lala'); mds_storage_add(@storage,'somename',@vx); //calling this in any object you edit will retrieve same data for a given user //you still have to call @storage = mds_storage_load("myfirstquest",'aotu'); in that object first @vx = mds_storage_read(@storage,'somename'); //@storage could be used as array for accessing multiple storages, or so could any other variable @va to @vz, @temp or other [/code] Hmm.. do i feel like there might be a need of a centralised tracking page to see who accessed what and the state of the storages realm-wide ? ..we shall see..
  16. Some teasing: [code] @tpl = array(); for(@vi=0;@vi<7;@vi++){ @temp = array(); @temp['name'] = uv(name).@vi; @temp['vit'] = uv(ve).@vi; @tpl[] = @temp; } debug(@tpl); mds_template(content[1],@tpl,false,3,'style="border:1px solid;"'); [/code]
  17. One more thing ..templates for content. Imagine you could use something like [code] //pseudo code, will look different foreach("creatures i own"){ if("creature is available"){ show(content["creature template"]); } } [/code] and content1 is a html defined in the content section and can have variables in it. For example you could organize an automated auction in that way or display rules of your quest generated based on rules and directly into your content. Usage is actualy unlimited...so is abuse..unfortunatly. Future use (science-fiction at this point) will be to script your own creature abilities, enhance rituals, and even much more. I am thinking in that direction but first the basics ..if you could call basics something that big
  18. so childish features compared to what else will be there i'm just kidding of course ..keys are one of the main things used in organizing lands and access to things (yes game itself uses them too, just different names) I thik the hottest features will be keys, save/load data and ability to share it across objects, and ... warehouse. This warehouse thingy will cause a change in the interface too. I want players to be able to load rewards into objects and those rewards to remain there. For example you could load items, creatures, credits, and maybe more into an object..those items dissapear from your inventory but they are available through scripting inside the object(s?). I MIGHT add a way to convert wps to items or creatures and that way to allow perpetual rewards for quests, it all depends what i can and cant do while i will be working on it. Anyway, a lot of plans, like always...we shall see what realy comes out of it. Rendril is working on the manual, and helping me with testing it in a real useful way. I think the manual will be out much sooner than the script so you can see what it can do. Also he will work on sample code so you know where to start in different situations, but in time i expect sample codes from more of you that will begin to "master" it.
  19. I must agree that IQ is just a stupid number used to differentiate people on criterias that are actualy irelevant. You could think serial and be able to go realy deep into matters, solve math things and so on, or you could think parallel and have an unbelievable intuition and simple DO things ... iq test wont cover that. Most of all, IQ test will NEVER cover things like endurance, how you are as a person, capacity to learn, devotion to a task, passion and so on, things that are far more important than a brisk spark of so called intelligence. IQ is also a good marketing trick, unfortunatly i relaised that after that newspaper where it came out in a very bad way, but my intention was not to put IQ as a main difference between md players and other players... but i had no other words for it. Its irelevent for example that i have a high or a low IQ. Compare that number to the actual achievemtns of that person in terms of career, FRIENDS, love, personal evolution and you will see it has close to no connection with them...and those are the things that matter. If you have a low iq, like very low, it a sign that there is indeed something not so good going on in your head, but that can only be confirmed after checking with your actual achievemtns..if they are good..it was a stupid test..if they are bad..the test had a point...so you see, everything is subjective afterall. Why should i be any smarter if i know that a cow is to milk as a chicken is to an egg, but i dont know how to cook at all. I could be an awsome cook and look at the question completely confused, without being retarded or anything. I wont even mention the math riddles or the langue questions that in my opinion "are for intelligence as cup of tee is to the cosmos" Looking forward to see how many will select over 170 (probably not having a clue that 130+ is genius and 170 rarly is there anyway)
  20. Most ppl want to "be safe", to be able to jump from one land to an other or to excuse their actions by saying they belong to more lands...to avoid responsability in a way. Also some already think of ways to dethrone the kings hoping for new ones. It happens in politics, it happens all the time. I am sorry for them.
  21. Its a delicate question "Citizens" obey the rules of the land. You should be able to change citizenship if you so want but in a way that will not alow you to flee the laws of your land whenever you crossed them. Right now, i am thinking of a citizenship score For example you have 10 points LR, 5 GG, 0 MB and 30 Necro .. indicating your evolution as a citizen of those lands. I am still far from a just system... but we dont need a just system, unjust systems are fun too, in their own malefic way. At the end is about how you can get punished or cought and what harm you can actualy do. I should remind you that the citizenship rules or land laws call them however, will not be reinforced by me but by the land, represented by its king and other citizens We shall see...
  22. just AWESOME can't wait to see more pics. Maybe we make it like a sort of default test to pass to get a wp (game integrated i mean). Imagine that, we will be the weirdest game on the net asking players to picture themselves as one of the odd creatures around here MUHAHAHHAHAaaaaa take over the tomato ..arrr ..world ...net, whatever ))))) Tomato creature should defenetly be added
  23. Of course, in fact, you should do the chosing. I just posted the announcement so to say.
  24. I am putting a former Necrovion Alliance, long deserted, up for a new leader. Those of you that want to get "[b]Tainted Warriors[/b]" (and a good amount of loyalty points) please post here what your plans are for the ally, why you should be its leader, etc etc .. like with the Tribunal alliances, you know how it goes. No suggestions about what the ally should do at this time, i am open to creative suggestions. It would be best if someone would keep this post updated with a list of clear "candidacies" and the plans so that they wont get lost over multiple pages. [b]Updated with possible leaders:[/b] [u][b]ledah:[/b][/u] [quote]I think I can add to Necro, I plan to make the ally known and feared (even to dst and her minions) might even make it into an alliance like the arcgivists... storing all the info I can get in a place in Necro ^^ Necrovion's own Archives.[/quote] [u][b]stormrunner:[/b][/u] [quote]like the tainted warrior illusion says/said a elite force devoted to defending necrovion. the main difference form the sentinels would be the tainted warriors though as a necrovion alliance would support the queen/king they would not listen. if they felt a action needed to be done for the good of necrovion, they'd do it even against orders.[/quote] [u][b]Azrael Dark:[/b][/u] [quote]So in summary, they would be like a national security force in protection of the Monarch and in charge of building a Necrovion Archive.[/quote] [u][b]Nex:[/b][/u] [quote]the tainted warriors should represent the wild nature of necrovion, the nature of shades. an alliance of those who try to overcome their human perception, to step beyond human doubt, human moral, to act 'ziran', in sync with the pulse of necrovion itself.[/quote] [u][b]Pipstickz:[/b][/u] [quote]So, to summarize, my idea is that the Tainted Warriors are a more behind the scenes alliance that experiments to become stronger. Brains before brawn, and a group of members that are familiar with each other, and trust each othe[/quote]
  25. The story is to describe the future not the past..in this case.
×
×
  • Create New...