Recent Posts

Pages: 1 2 3 [4] 5 6 ... 10
31
General Discussions / Re: 4D
« Last post by Kvetch on December 25, 2015, 04:48:39 pm »
Depends on what you mean by active.
32
General Discussions / Re: 4D
« Last post by erwin on December 22, 2015, 03:25:08 pm »
probably
33
Suggestions & Ideas / Re: Questjournal v1
« Last post by erwin on December 21, 2015, 12:58:21 pm »
Update 21st December (or when Molly puts it in)

Two questcards added to the journal, card 34 and card 37. Logic works better with these two quests. If you don't have the quest journal, it might be a good time to get it, as you can't skip steps anymore. 

There are 15 more questcards to go before the entire Prehistoric dimension is done.
34
General Discussions / 4D
« Last post by aeirman on December 18, 2015, 01:56:22 pm »
I absolutely love that 4D still exists.  Is there still an active player base?
35
Suggestions & Ideas / Re: Questjournal v1
« Last post by erwin on December 18, 2015, 11:37:38 am »
Update 18th December (or when Molly puts it in)

Two questcards added to the journal, card 36 and card 38. Logic works better with these two quests.
36
Suggestions & Ideas / Re: Questjournal v1
« Last post by erwin on December 12, 2015, 10:38:32 pm »
Update 12th December (or when Molly puts it in)

Two questcards added to the journal, card 56 and card 57. Some bugs fixed with the Hades quest. If you can't do it before, you can now. If you have an imm char, the annoying message in a lot of rooms
Code: [Select]
[ Room 76xx :: wdamage: bad syntax ]
has been fixed.
37
Suggestions & Ideas / Re: Questjournal v1
« Last post by erwin on December 09, 2015, 12:55:07 am »
Update: 9th December (or when Molly puts it in)

One questcard added to the questjournal, Questcard 55, plus some fun stuff.

Polyphemos works better now.
38
Suggestions & Ideas / Re: Questjournal v1
« Last post by erwin on December 08, 2015, 04:09:10 pm »
Added a feature in the Quest Journal, but only for (certain) imms:

If you think a quest in the Quest Journal is bugged, you can also ask an imm to type: questcheck card<num> debug <your player character's name>.

Example: questcheck card3 debug stile

They will then see the respective quest flags that you have, plus (some) commentary about the status / where you are at during the quest. 
39
Scripting Board / Suggested Practices for Scripting
« Last post by erwin on December 05, 2015, 11:42:32 pm »
In the past, we had lots of good practices for scripting.

For example, here's some best practices in the past:

1. The difference between set and eval and when to use them
2. The difference between %actor% versus %actor.name%, and when to use them.
3. mjunk an object (instantly) when the player gives it to a mob so he can't steal it back
4. Setting a flag when the player completes the quest, so the rewards are lesser the second / subsequent time the player completes it

However, I think we can have more "suggested practices for scripting", as well as use the 4D only DG functions which Mordecai / Rynald / others have coded in for future best practices.

These "suggested practices" will be focused on debugging and understanding scripts, in the context of the builder fixing his/her own scripts a few weeks / months after he/she worked on it, as well as someone else fixing the script if the previous builder has retired.

I will first describe what imms face when debugging. For example, Molly made a post here

http://4dimensions.org/forum/index.php/topic,682.msg5045.html#msg5045

which shows the questflags a player has. Here's some potential issues (maybe):

a) The list is quite long
b) Some variable names are not intuitive. For example, the variable zeddletter versus jack versus asking. For the first variable, this depends on how much the person knows about the MUD. He might make a guess that it's from the Midlands zone, and is given to the player when he interacts with Zedd about a letter (giving a letter / receiving a letter / asking him to write a letter?). Having knowledge about the quests in the MUD would give the player the knowledge of what the variable does, so that's fine.

How about the other two variables? Well, a solution would be to tsearch all jack, or tsearch all asking to find the respective scripts, and then try to figure out what they do. That takes effort, but can we do better?

Thus: Suggested Practices for Scripting shall be about intuitive variable names, and intuitive variable values. I'll try to present this in a way of "Problem", and then the "Solution", as suggested best practices.

Problem: Variable names are not intuitive. For example, asking is less intuitive than zeddletter

Solution: Create intuitive variable names

Problem: There are five helper vouchers. Suppose upon picking each one up, we store the value as 1, and we have the five variables

Code: [Select]
helper_voucher_1: 1
helper_voucher_2: 1
helper_voucher_3: 1
helper_voucher_4: 1
helper_voucher_5: 1

on the player. Once goes through the Newbie School, he is convinced he picked up all 5 vouchers, but lost them in a DT. Poor Once. He tells Kvetch: You can vstat me, and search for these 5 variables. Unfortunately, vstat doesn't show the variables in alphabetical order, nor the time the variable was created. Must Kvetch painstakingly look at all his variables and find the 5 of them in 15 pages? What if Once didn't get the 4th voucher, but Kvetch thinks he has, so she tries to find it? Or worse, what if Once did get the 4th voucher, but because of the spam, Kvetch didn't see it?

Solution 1: Ask a coder to fix vstat to show whether the player has the variable or not.
Solution 2: Use an array and store the values in one variable, called helper_voucher

Code: [Select]
helper_voucher: found found not_found found not_foundor
Code: [Select]
helper_voucher: 1 0 1 1 0

Problem: Once goes to the Midlands, and does a quest. He thinks it's bugged, and he wants to know the variables relating to the zone, so he can fix it himself in the BP. Unfortunately, apart from zeddletter, he doesn't know what other variables on his pfile relate to the Midlands. He wonders if he should search through the "quest actions" done, or the names of the mobs in the Midlands just in case the builder used that as a variable?

Solution: Have the variable name include the zone as well. Even if the builder / imm online doesn't know anything about the quest, he or she can say: "This is the variable / these are the variables related to the zone, I'll send this on to another imm."

In other words, incorporate the zone name in the variable.

Examples of two variables:
Code: [Select]
crete_zone: not_killed_minotaur killed_theseus bullgirl_not_done
and
Code: [Select]
crete_zone: killed_minotaur killed_theseus bullgirl_done

Most imms / players who see that flag would immediately know what the player has done (or not done) in the zone. 

Thus, a suggested practice for scripting is to minimize the number of variables by using arrays, and replace_word.
40
Suggestions & Ideas / Re: Questjournal v1
« Last post by erwin on December 04, 2015, 12:56:45 am »
Update: 4th December (or when Molly puts it in)

One questcard added to the questjournal, Questcard 3, plus some fun stuff.

Some key changes:

1) Trading mobs in Greek Archipelago (Cyclades) will now remember what you have given them over reboots and copyovers (yay).

2) The quest Cyrene's Lover did not have any flags at all, so with the quest journal, a flag has been added on to the bracelet in order to show the quest has been completed. This means you should go re-do the quest to get the flag, as removing the bracelet and re-wearing it will not work. However, the item will not poof.


3) There's two major typos / bugs fixed in (some) trading mobs in the Cyclades. Some of you might have spotted the first, the second is what Virisin and Erwin used to exploit. Maybe.
Pages: 1 2 3 [4] 5 6 ... 10