Jump to content
Udgard

Clickable Objects Features

Recommended Posts

[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

Share this post


Link to post
Share on other sites
damn you're being busy

On an oh so slightly selfish note - allow ex-rpc's to still be able to edit the items? That would increase, in the short run, the amount of people who can edit them, and i know various ones who were part way through quests using them anyway, so they'd be appreciative, certainly. On the other hand, now we've been retired, why shouldnt we earn the WP's like everyone else?

For the long run I don't know...you're making the use of the items more attractive to players, and after you've "finished" sorting all the coding out, i would think more people would go after getting the Wish, so the number would go a little higher, on the other hand, there's now not that many WP's (relatively speaking) and they're not regenerable, so people will be less willing to give them to people as rewards, so people will find it harder to unlock that ability to edit.

Because it's a quest addition thing, you could have it in a similar way to the QP, where you have to have given out WP's to be able to do it. A sort of, you've proven you can make a quest, here's some more tools, go play.



I'm not saying to lower the price here, but if there's too few people who can edit the items, why are you talking about increasing the price?

Share this post


Link to post
Share on other sites
i got another pretty selfish idea ^^

If edit-ability gets more interesting, more people will try and get it.
To achieve that, they will need WPs, which are harder to get now.
So, why not combine those two?

People who have the edit-ability AND set decent quests get regenerable, though GAME-wide limited, WPs to give out, as example, i'll go for 32 WPs.
Meaning, 32 WP-codes are given out every month, devided up evenly amongst the people who have edit-ability and have used it to set quests (not sure how to get a system recognizing if it's a quest or just bs they wrote in their items, maybe someone can find a clean solution, else it might have to be judged by someone)

That way, more WPs will be available (right now, 2 from every person with coding-ability [assuming they all set quests], lateron less, maybe one every two months or such, but game-wide always 32 per month), and more people will try and get the feature to get WP-rewards.

Another idea might be combining edit-ability with some other advantage, like more spells per counter-recharge, though that would somewhat miss the point of making people _use_ their edit-ability to edit the game... without spamming the items, though :/

On another note, i can think of a lot of people who will want to have the ability for roleplay, not for setting quests, so what is the direction the items should take? will hidden quest info soon be a neglectable part of them, and most of them just enhance someone's role? or are people supposed to store info and treasures in the items, so other people can 'find' them? i'm slightly confused on how all those functions will be valueable...

while i fully grasp how keys and uvars make people do full quests instead of bypassing half the things with some help, and coded combat will make some extraordinarily cool quests, i fail to see how stored heat, creatures, items or spells on an item do anything useful, 'cept for giving a major advantage to those who know how to activate it...

Share this post


Link to post
Share on other sites
[quote name='dst' date='28 October 2009 - 01:25 AM' timestamp='1256718318' post='45937']
Awi:you realize that it's not a good idea with the thumbs up/down. A code is a code. It can be badly written but do amazing things or it can be extremely neat and do nothing except print your name. The quest is important here not the way it was written.
[/quote]

Perhaps I wasn't clear in what I meant. People wouldn't be able to view the code ever, only the output. Based on the output, you would give it a thumbs up or thumbs down.

Thumbs down should be reserved for things that don't make sense or are purposeless.

Awi

Share this post


Link to post
Share on other sites
Hmm...no Awi. Great output resides also on the graphical presentation. That one is catchy. It can be a crapy code but with great presentation or it could be a good code but not that spectacular. As I said: rate the quests not the code. Nobody knows (except the owner) what's behind so how will yo rate the code?

Share this post


Link to post
Share on other sites
[quote name='dst' date='28 October 2009 - 12:29 PM' timestamp='1256758190' post='45969']
Hmm...no Awi. Great output resides also on the graphical presentation. That one is catchy. It can be a crapy code but with great presentation or it could be a good code but not that spectacular. As I said: rate the quests not the code. Nobody knows (except the owner) what's behind so how will yo rate the code?
[/quote]

I suppose that is true.

Well, if that is the case, then perhaps we can get the Quest Rating working on the Wishpoint page? I seem to remember something about being able to rate the quests that you were rewarded for.

Awi

Share this post


Link to post
Share on other sites

Here is some sample code.
Remember to remove the comments (some have script restricted words)

This code will allow the user the recieve the "Noon Key" only at midday.
[code]
@vz = "rendrilrevant-";//the key prefix to use
if(mds_has_rpcq_keys(@vz. "noon-key")){//check if the player is carrying the key already
echo "The Sun smiles upon you, you are carrying the Noon Key";
}
else
{
//check that the current time is between 11:30 and 12:30
if(time() > mktime(11, 30, 0, date("m") , date("j"), date("Y")) && time() < mktime(12, 30, 0, date("m") , date("j"), date("Y")))
{
mds_give_rpcq_keys(@vz . "noon-key");
echo "Rays of light shimmer across the water, materialising into the Noon Key.<br/>You take the key and move on with your quest.";
}
else
{
echo "You look into the pool of water and see only your own reflection.<br/>Words of the poem linger in your thoughts<br/><br/>\"<i>Only at the Sun's zenith will you see the light</i>\"";
}
}
[/code]

A game of roll the dice agaisnt a gambler

Content:
[code]
<br/>Roll the dice, winning is nice
<!-- content separator -->
[[name]] rolled<br />[[di1]] and [[di2]]<br />Total: [[sum]]
[/code]

Code:
[code]
@vp = array(rand(1, 6), rand(1, 6));//create player's dice rolls
@vg = array(rand(3, 6), rand(2, 6));//create gambler's dice rolls and give him a slight advantage :)
@vs[0] = @vp[0] + @vp[1];//sum of player's rolls
@vs[1] = @vg[0] + @vg[1];//sum of gamberl's rolls

@vk = 0;//intialize player counter, could support more players in the game
@tpl = array();//amke sure @tpl is clear
//assign values to @tpl
@tpl[@vk]['di1'] = @vp[0];
@tpl[@vk]['di2'] = @vp[1];
@tpl[@vk]['name'] = uv('name');
@tpl[@vk]['sum'] = @vs[@vk];

++@vk;//increment player counter
@tpl[@vk]['di1'] = @vg[0];
@tpl[@vk]['di2'] = @vg[1];
@tpl[@vk]['name'] = "Gambler";
@tpl[@vk]['sum'] = @vs[@vk];

mds_template(@content[1],@tpl,false,2,'style="width:180;border:1px solid"');//call template function
retrieve(@vd);//get the player's scorign array
if(@vd == null)//check if the score were initialized yet, if not, initiliaze them
@vd = array(0, 0, 0);
//check for wins, losses or draws and increment appropriate counter
if(@vs[0] > @vs[1])
{
echo "You have won!";
@vd[0]++;
}
else if(@vs[0] < @vs[1])
{
echo "You lost =(";
@vd[1]++;
}
else
{
echo "It was a tie";
@vd[2]++;
}
store(@vd);//save the player's progress
//output the score
echo "<br/><br/>Your progress against the gambler<br/>";
echo "Wins: " . @vd[0] . "<br/>Losses: " . @vd[1] . "<br/>Draws: " . @vd[2];
[/code]



This is an example of a bank and market. Once the aoau type works and the creature/item transaction is added, it can become fully automated.

[code]
function transfer(@vi, @vv)
{
(prepare function)
retrieve(@va);
@va['bank'][@vi]['balance'] = @va['bank'][@vi]['balance'] + @vv;
@va['bank'][@vi]['last_transaction'] = time();
store(@va);
return @va['bank'][@vi]['balance'];
}

function add_creature(){
(prepare function)
@vc = array();
@vc['id'] = (int) @input['id'];
@vc['name'] = @input['name'];
@vc['ctc'] = @input['ctc'];
@vc['price'] = (int) @input['price'];
retrieve(@va);
@va['market'][@vc['id']] = @vc;
store(@va);
}

function buy(@vi)
{
(prepare function)
retrieve(@va);
@vc = @va['market'][@vi];
@vb = transfer(uv('id'), -1 * @vc['price']);
@va['market'] = take_creature(@va['market'], @vc['id']);
store(@va);
echo "Purchased the <b>" . @vc['name'] . "</b><br/>Account balance: <b>" . @vb . "</b><br/>CTC: <b><font color='red'>" . @vc['ctc'] . "</font></b><br/>Please store it immediatly";
return @va;
}

function take_creature(@va, @vi)
{
(prepare function)
@vn = array();
foreach(@va as @vc){
if(@vc['id'] != @vi)
@vn[@vc['id']] = @vc;
}
return @vn;
}

echo @content[1];
retrieve(@va);
if(@va == null)
{
@va = array('market' => array(), 'bank' => array());
echo "storage was null";
}
if(in_array(uv('id'), array(44582, 1028))){
echo @content[2];
if(@input)
if(@input['action'] == "add_creature"){
add_creature();
@temp = count(@va['market']);
retrieve(@va);
if(@temp < count(@va['market']))
echo "Creature was added to the market<br/>";
else
echo "Creature was not added<br/>";
}
else if(@input['action'] == "add_funds"){
@vb = transfer(@input['id'], @input['amount']);
echo "Current balance for <b>". @input['id'] ."</b> is <b>" .@vb. "</b>";
}
}
if(isset(@input['buy_creature']) && (@input['cid']))
{
@va = buy(@input['cid']);
}

retrieve(@va);
echo @content[4];
@vu = @va['bank'];
if(@vu[uv('id')]['balance'] == null){
@vu[uv('id')]['balance'] = 0;
@vu[uv('id')]['last_transaction'] = 0;
@va['bank'] = @vu;
store(@va);
echo "Account created for " . uv('name') . "(" . uv('id') . ")<br/>";
}
echo "Hello " . uv('name') . " (ID: " . uv('id'). ")<br/>Account balance: " . @vu[uv('id')]['balance'] . "<br/>Last transaction: " . @vu[uv('id')]['last_transaction'] . "<br/>";


echo @content[3];
if(@va['market']){
@tpl = array();
@vk = 0;
foreach(@va['market'] as @vc){
@tpl[@vk]['name'] = @vc['name'];
@tpl[@vk]['id'] = @vc['id'];
@tpl[@vk++]['price'] = @vc['price'];
}
mds_template(@content[5],@tpl,false,4,'style="width:180;border:1px solid"');
}
else{
echo "The market does not have creatures";
}
[/code]

I have set up a live example of the bank and market at the signpost in front of the labyrinth. Please note that changes you make are only visible to you and if you enter garbage, it will have garbage. The bank itself is simple, extra features could be interest rate, limited credit borrowing, transaction fees etc.

I will add some more scripts here when I finish them (sending over phone right now)

Edited by Rendril

Share this post


Link to post
Share on other sites

i'm having issues with "default_content" as i'm trying to make it just so the content shows up in 3 clickables i have in goe... because they are a lead in to what i am working on. if i use the content seperator the content doesn't show up when the activation word is entered, but if i dont use the content seperator the i get a parse or sysntax error on line 2(default_content) but the content shows up. i'm not going to pretend i know a heck of a lot about scripting(cause i haven't read up on php) i suppose i need to start reading up on it. if i'm reading this correctly(i hope) i should be able to make it so someone can't skip in between clickables like it has been done in the past? (ex. you cannot get to part 2 of my story without first getting part 1.) And yes i am having fun trying to learn something new. :) oh and your supposed to enter as such?(the first part is a general and would require no activating things other than the activating word)

IF
...
DO
default_content:1
END

On a side not i want to utilize every new feature into The DracHorn Story one way or another. With the stories current start taking several paths is optionalable(yea not a real word, i know) and it could be used for informative purposes to others learning scripting(like a real working example to go by)
And i do have the next part ready but i wanna get the first 3 working properly first.

Share this post


Link to post
Share on other sites

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 :D
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 :)

Share this post


Link to post
Share on other sites

Question about storeable variables: if I understood correct, keys are internally stored (using OO syntax) as boolean player.key and variables as var creator.player.var ? Is there a creator.var too? You could dump those in creator.creator.var probably, but that might make trial runs more difficult. All three types of variables have uses imo.

Cleanup and access are tricky subjects. It should be possible to keep track of when code was last executed and then assign a cleaning comity to review old code. Of course the comity would have less work if functions that are related to a single quest/feature are grouped as such even if the code is spread over different clickies.
Not all quest creators are good quest solvers and vice versa. One way to deal with this is to let aspiring creators seek out a master creator that trusts them and have the master introduce him into the quest creator circle. The aspirant then gets limited access and the senior members vote on his/her masterwork quest, after which the aspirant hopefully gets full access. I guess that everybody that has 100 AD should know at least one former RPC or someone else with quest creating abilities.
The above could perhaps be extended to RP use of clickies, or combined with a pay option. Although I wonder how people would use clickies for RP, I'd prefer to make a talking NPC bot... which I've been wanting to do for a long time and since it's a browser game I probably could, but botting is usually frowned upon due to exploitability and the way I have in mind is not really efficient for overhead and such :)

*edit* my php is a bit rusty, but if there are few programming people available, I'll see what I can do to help. I have no idea when inspiration will strike me though, so it might be a good idea to (in a separate thread) have people that can't program put requests for template functions?

Edited by Kafuuka

Share this post


Link to post
Share on other sites

Mur, I'm not sure what happened to the braces *cough*ide-messes-up-my-braces*cough*
I agree with this completely, always put the braces in your code blocks.
You will appreciate it in the long run :)
I'll add them in a few minutes.

Also I will fix the storage use when the functions are updated.

Kafuuka, you raise a very important point. The cleanup is sorely lacking for both keys and storage. Yes, the empty storage removes itself but things like "tests" with data in them stay behind, I think a storage list which shows the names of your storages would be useful (even if you just get them in an array)


For anyone interested in submitting code, please label it clearly and be descriptive about it.
Commenting on your code is helpful but not a necessity.
Send submissions in whatever way you can contact me (forum messages will be read but with much less frequency)

Feel free to ask if you have any questions about the MDScript or would like help in writing something. I am not a php expert but I might be able ot shed some light.

Are there any requests for a particular example?
I will add sample code as I create it.

Share this post


Link to post
Share on other sites
(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.

Share this post


Link to post
Share on other sites
Is it possible to have a sort of 'hidden' list which the person who put the code in, can see who has activated it?

So like i could see who has got how far in the quest, or something?

Share this post


Link to post
Share on other sites

@ Mur's last post. Can you make it so, like the quest log kinda(where it resets after 7 days) but instead of resetting after a time limit reset when the key has been activated. Meaning the quest maker has to go back and reset the key. not sure if that makes much sense. Since the idea is to make quests automatic why have the questmaker still have to do work after it's complete lol. Also i'm reading up on php... should be up to speed on all php codes by thanksgiving(Nov 26th) and thnks for those that offered to help me a bit :)

Share this post


Link to post
Share on other sites

@Mur: An alt check would be very useful but I think too invasive of a player's privacy. Not to mention it cannot guarentee accuracy.
It would be too easy for the editor to make a script which stores a list of all participants and their alts.
However, some might what to have a way of limiting alt use, how about a simple is_alt() fucntion (no parameters) it could still be used to compile a list but you won't know who the alt belongs to.
If a mistake is made about a player being an alt, they can contact the editor and have an exception made for that particular ID?

@Grido: You could use the storage to track both number of item uses and quest progress for a player. You can do either local item logging (toau) or a quest-wide log (aoau), I'm not sure if both types work yet.
There is even a @log variable you can use as an array for it :)

@RJ: Make a storage which holds an enable/disable. It can be changed on a quest event, using a timed trigger or even manually by the editor.

Share this post


Link to post
Share on other sites

WARNING: POST TOO LONG, read only if you are not tired :)

[quote name='Muratus del Mur' date='27 October 2009 - 11:40 PM' timestamp='1256679637' post='45913']
[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.
[/quote]
There is the need to keep cross click-able information, but as Rendril said to Grido:
[quote name='Rendril']
@Grido: You could use the storage to track both number of item uses and quest progress for a player. You can do either local item logging (toau) or a quest-wide log (aoau), I'm not sure if both types work yet.
[/quote]
Can you explain a bit the difference between the 2 and how to set them (if there is a difference).



[quote name='awiiya' date='28 October 2009 - 02:33 AM' timestamp='1256689991' post='45927']
I thought about the issue of scripts and items, and you could create either the roll of the Garbage Man (who has access to all scripts, and deletes those seeming useless). That might give too much power to one person, so you could make a more automated version.

Since you seem to like the vote system, I suggest that for all those who are able to edit Clickable Items, there be a thumbs up, thumbs down next to the script. [/quote]
Code should not be available to another to check if it was intended like that. Depending on the skills and generosity of the coder, CTCs/WP could be in there.


[quote name='Muratus del Mur' date='28 October 2009 - 01:11 PM' timestamp='1256728278' post='45941']
[b]Status update[/b]

Still to be documented:
- functions
- data storage
- user input
- useful php functions guide
- working with arrays
- sample scripts
[/quote]
I'm waiting for a clean documentation no other interference from other players

[quote name='Muratus del Mur' date='28 October 2009 - 01:11 PM' timestamp='1256728278' post='45941']
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

[/quote]
Can you add the "list of creatures" to the "to do" list ?
For "collection" reason, there would be needed only creature_type, level.
But for "top creatures" would be required also private information like : tokens, age, wins, exp, nb transfers, creature value.
Also, for collection would be nice to have also the other information (if spoiling is not taken into consideration) : targets / abilities / power/ attack / defense /regeneration / special skils.

[quote name='Muratus del Mur' date='28 October 2009 - 01:11 PM' timestamp='1256728278' post='45941']
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
[/quote]

What happen with the items that you store ? is it removed from your inventory ?
If so : POSSIBLE ABUSE: store creatures for yourself and get them back when they are aged.

[quote name='Muratus del Mur' date='28 October 2009 - 01:11 PM' timestamp='1256728278' post='45941']
-----
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
[/quote]
As suggested, a master programmer could approve a wannabe quester and after certain time, the quester could become a master programmer himself.
Otherwise ... WP cost should not be lowered as we don't want millions of test codes in there, just a few good codes that can be considered as FEATURES.


[quote name='Grido' date='28 October 2009 - 01:42 PM' timestamp='1256730120' post='45946']
damn you're being busy

On an oh so slightly selfish note - allow ex-rpc's to still be able to edit the items? That would increase, in the short run, the amount of people who can edit them, and i know various ones who were part way through quests using them anyway, so they'd be appreciative, certainly. On the other hand, now we've been retired, why shouldnt we earn the WP's like everyone else?
[/quote]
I will also be selfish: some RPCs never used that ability and ... there is no reason for them to keep it.
BUT, best thing would be give them the possibility to get the script access for the normal cost without any other requirement.


[quote name='Muratus del Mur' date='29 October 2009 - 01:55 AM' timestamp='1256774143' post='46016']
(To be moved in a poll maybe if you think its important)

Should alt check be availabe in script?
[/quote]
If you really want to ... ok, but how will you check them ? By IP ? Do consider that you are not the only one that helped other players (used the other accounts for a limited time).

Also, it was already discussed that the "alt police" is difficult and will raise a lot of problems.

[quote name='Grido' date='29 October 2009 - 02:50 AM' timestamp='1256777403' post='46023']
Is it possible to have a sort of 'hidden' list which the person who put the code in, can see who has activated it?

So like i could see who has got how far in the quest, or something?
[/quote]

[quote name='Rendril' ]
@RJ: Make a storage which holds an enable/disable. It can be changed on a quest event, using a timed trigger or even manually by the editor.
-> make the list of codes in a log and then access it
[/quote]
I think that it is possible for each "scripter" (person that writes a script) can create a log that can keep a trace of keys created / used on his scripts.
BUT, it will be redundant to implement it by every "scripter". Somehow, there should be a way to track the script owner and key changes and then make the list available to the owner.

As I don't know if it exists yet : if the function of "log of key / storage change" is already created, there can be a MDScript that can display all of them. I propose the MDScript for this as Mur will not want to change it for every new feature that he creates and a person like Rendril can modify it and improve it and could take care of all abuses.


Enough for now.



PS: ANTI-ABUSE : put automatic logs, create versions (just the number of increment) of script / owner, create a "nolog" feature that will require some script overview / approval of a SCRIPT-SUPERVISOR so that no log is created.
Such "nolog" can be used for a "creation collection" where keys / stores are used but there should be no interaction with the other players.


PS2: Mur, prepare for next stage of MD :D features created by players :)

Edited by No one

Share this post


Link to post
Share on other sites

i'll certainly try and figure out about being able to do that once i get the editing ability again :)

Another thing, is it possible to put a sort of timer on a Key? So that a player has to get from point A (where the key is activated) to point B, and access the clickable before a certain time is up?

i know there's the clock thing so that you can only activate stuff at a certain time of day, so wondered if this was possible as an addition to it?

Share this post


Link to post
Share on other sites

[quote name='Grido' date='29 October 2009 - 02:46 PM' timestamp='1256820394' post='46047']
i'll certainly try and figure out about being able to do that once i get the editing ability again :)

Another thing, is it possible to put a sort of timer on a Key? So that a player has to get from point A (where the key is activated) to point B, and access the clickable before a certain time is up?

i know there's the clock thing so that you can only activate stuff at a certain time of day, so wondered if this was possible as an addition to it?
[/quote]

I think that what Rendril suggested is to use a storage along with the key.

Share this post


Link to post
Share on other sites
i admit i dont know php that much, but how does that give me a timer?

as an e.g. say i wanted someone to figure out what the next step of the quest was within 30 mins after seeing the info. They would view clickable A and the info there, recieving the key as well, the info would lead them to clickable B, but if they hadnt got there in 30 minutes then they wouldnt be able to proceed, as the key wouldnt work after 30 minutes.

Or i want the person to get there between 15 and 20 minutes after, or something

Share this post


Link to post
Share on other sites

[quote name='No one' date='29 October 2009 - 01:51 PM' timestamp='1256817117' post='46046']
Can you explain a bit the difference between the 2 and how to set them (if there is a difference).[/quote]


The types are specified like this: [access level for objects][access level for users]
So toau = this object all users and aoau = all objects all users.

I could be mistaken but this is how I understand their uses.
toau will allow the storage to only be accessed from the object it was created on but will have the data available to all users that access it.
aoau allows all objects to to share the storage and all users to have access to the data as well.

In a way, only the aoau is needed because you could limit the use through the script itself, it just makes our lives easier :)



[quote name='No one' date='29 October 2009 - 01:51 PM' timestamp='1256817117' post='46046']
I'm waiting for a clean documentation no other interference from other players[/quote]

Chewett organised it into sections last night in the script manual section.


[quote name='No one' date='29 October 2009 - 01:51 PM' timestamp='1256817117' post='46046']
What happen with the items that you store ? is it removed from your inventory ?
If so : POSSIBLE ABUSE: store creatures for yourself and get them back when they are aged.
[/quote]

Interesting point. Rather than storing the the creature in the clickable, I think it should use a direct transfer.
Useage: transfer_creature(ctc, receiver)
Returns true on successful transfer or a error code if it could not be done
For example:
0 - Invalid CTC
1 - Receiving player creature slots full

Yes, I could still be transfered to an alt but that is an issue with alt abuse, not the script.

You could also include the giver as a parameter, that would minimize people using alts to store the creature and send a CTC off them.

For transfering items, I think the items should has their own unique hashes to use for transfers, sending only be ID is too easy to forge.

A handy fucntion would also be is_valid_ctc(ctc)

[quote name='No one' date='29 October 2009 - 01:51 PM' timestamp='1256817117' post='46046']
If you really want to ... ok, but how will you check them ? By IP ? Do consider that you are not the only one that helped other players (used the other accounts for a limited time).

Also, it was already discussed that the "alt police" is difficult and will raise a lot of problems.[/quote]

I agree with you fully, there is simply no way of certainty or success without a level of human interaction.



[quote name='No one' date='29 October 2009 - 01:51 PM' timestamp='1256817117' post='46046']
I think that it is possible for each "scripter" (person that writes a script) can create a log that can keep a trace of keys created / used on his scripts.
BUT, it will be redundant to implement it by every "scripter". Somehow, there should be a way to track the script owner and key changes and then make the list available to the owner.

As I don't know if it exists yet : if the function of "log of key / storage change" is already created, there can be a MDScript that can display all of them. I propose the MDScript for this as Mur will not want to change it for every new feature that he creates and a person like Rendril can modify it and improve it and could take care of all abuses.
[/quote]

I don't see the need for logs to be made by the script automatically (the server does make them to some level as with all use but forcing the script parser to generate and store into MySQL is not needed for every running script)
Perhaps I am mistaken but I think it is easy enough to make a "log" template that one can use. I plan on making such an example once the access levels are fully functional.

Rather than copying script over all the time however, I woudl like a way to "include()" template code. The base include() function itself is too dangerous, but maybe we can store reusable code in one place and simply send a call ofr it from elsewhere?
I'm thinking along the lines of a string stored somewhere on MD server which has been run through the parser, you give it that code's identifier, it loads from server and prefixes it to the current code.

I already know of a way in whch to do this but for constant use it is ineffective.


[quote name='No one' date='29 October 2009 - 01:51 PM' timestamp='1256817117' post='46046']
PS2: Mur, prepare for next stage of MD :) features created by players :)[/quote]

This is the intended direction, I can hardly wait :D


[quote name='Grido' date='29 October 2009 - 03:33 PM' timestamp='1256823226' post='46052']
i admit i dont know php that much, but how does that give me a timer?

as an e.g. say i wanted someone to figure out what the next step of the quest was within 30 mins after seeing the info. They would view clickable A and the info there, recieving the key as well, the info would lead them to clickable B, but if they hadnt got there in 30 minutes then they wouldnt be able to proceed, as the key wouldnt work after 30 minutes.

Or i want the person to get there between 15 and 20 minutes after, or something
[/quote]

I'll add an example of a "timer" to the samples.
It will pretty much work like the time-check example.

Edited by Rendril

Share this post


Link to post
Share on other sites
[quote name='Muratus del Mur' date='28 October 2009 - 06:11 PM' timestamp='1256728278' post='45941']

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
[/quote]

I would like to comment on the ability to edit all clickables part. Right now it costs 2 WP and 5 consumed, which means someone has to have 7 WP in order to gain access there. Right now in the whole realm there are only 12 people with at least 7 WP, and one of them is the debug account =\ I don't think the total WP requirements is too hardt, but the 2 WP cost is pretty steep, especially since people who want the feature is quest makers, and it'd be hard to balance the time quest-making and quest-solving to cover the steep WP cost. Considering that people use WP not only to gain quest-making abilities, but also for other features (restricted place entry, spells), I'd like to suggest making the cost the same 1 WP as with all other wish.

Share this post


Link to post
Share on other sites
hmmm.... if only i knew anything..... cept now i am confused........ the posts are too long for me to pay attention to and be able to read...... anyone willing to help? i already have acess to the items.

and it isn't the same as all other wishes, there is another that costs 2 wp...... but shouldn't it only cost 1 wp if you have already gotten the grade 4 editing? or 3 if you haven't? Edited by I am Bored

Share this post


Link to post
Share on other sites
[quote name='Muratus del Mur' date='28 October 2009 - 11:11 AM' timestamp='1256728278' post='45941']
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 pplactive days - more loyal, active and constant pplconsumed wp - ppl with a strong bgOn what other base should this ability be given, considering it can change the realm a lot and i plan much more for it
[/quote]

Surely anyone who can prove their worth with such items should be able to code for them? Having someone like Ren who can validate someones skill, would be useful for people like me (yes big headed) Who dont have time to quest and do other things for the game.

Or perhaps give it Quest doc style, Free for anyone who asks but only if they make a really good use of it. It seems unfair to not give people who could use it the ability just because they dont want to gain 7 wishpoints

[quote name='Muratus del Mur' date='28 October 2009 - 11:55 PM' timestamp='1256774143' post='46016']
(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.
[/quote]

Alt check eh? Bring on the data scraping. It would be much too easy to pull data from this, By using a script, it could be done automatically, And if its php... there is no end to the data that can be pulled from the system

Assigning keys to each player, will mean they will at least have to complete it twice, Perhaps also by generating a code for people to give you, so you can check and talk with them and see if they are an alt.

Just providing a function would be a little invasive, and also considering that many players have "leant" their account to others for active days (*cough* grido), and it would consequently show as an alt

Share this post


Link to post
Share on other sites
A note on user variables, the current list of variables which can be accessed through MDscript miss a couple of useful possibilities.

Now that principles can be changed and have a maximum value of 4000, knowing what principles a user actually have could be useful for quests and not just as a battle booster. It would be great if there was a function which could test if a user has a particular principle. It could even be done as:

mds_has_principle('light');

for example in the same vein as testing for keys. To me it doesn't really matter what the value of the principle is just whether someone has it or not. Some really interesting quest possibilities could be linked in to let people with the proper "skill set" pursue different quest threads.

I think this addition would be a great move towards making principles actually have a more general value than just attack boosting.

Another function which seems missing is MD year. you can get the day with date('z') but when the newyear comes all of my date scripts will stop working since the day will go back to 0. having something give the year would resolve this Y2K type issue.


Cheers,

Cutler Edited by cutler121

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Forum Statistics

    15,832
    Total Topics
    173,490
    Total Posts
  • Recently Browsing

    No registered users viewing this page.

  • Upcoming Events

    No upcoming events found
  • Recent Event Reviews

×
×
  • Create New...