Page 1 of 2

Bugs in Towel system ?

Posted: 18 Apr 2014, 10:03
by Nard
  • Stranger:
    ManaPlus_Screenshot_server.themanaworld.org_2014-04-17_18-16-11_2.png
    ManaPlus_Screenshot_server.themanaworld.org_2014-04-17_18-16-11_2.png (259.29 KiB) Viewed 12050 times
    I ordered an orange Towel, Stranger deletes items in wrong order, and gives me a blue one.
  • Not sure it is a bug: The first time I tried to use a towel after the update,
    1. It didn't work
    2. All my 6 towels were replaced by a grey one
On another side (at first sight):
The purpose of the Stranger's quest was to incite players to read the Hitchhikers guide to the Galaxy. (which I now did). How those new towels are consistent with the original idea? Wouldn't it be simpler to sell teleportation vouchers?

Re: Bugs in Towel system

Posted: 18 Apr 2014, 11:05
by Chay

Code: Select all

unction|script|MultiWarpTowel|,
{
    setarray $@warpTowels$, "HitchhikersTowel", "WhiteHitchhikersTowel", "RedHitchhikersTowel", "GreenHitchhikersTowel", "BlueHitchhikersTowel", "YellowHitchhikersTowel", "PurpleHitchhikersTowel", "OrangeHitchhikersTowel", "PinkHitchhikersTowel", "TealHitchhikersTowel", "LimeHitchhikersTowel";
    set @towel_count, 0;
    set @towel_loop, 0;
    goto L_CountTowelLoop;

L_CountTowelLoop:
    set @towel_count, (@towel_count + countitem($@warpTowels$[@towel_loop]));
    delitem $@warpTowels$[@towel_loop], countitem($@warpTowels$[@towel_loop]);
    goto L_DelLoopAgain;

L_DelLoopAgain:
    if((@towel_loop + 1) == getarraysize($@warpTowels$))
        goto L_Return;
    set @towel_loop, (@towel_loop + 1);
    goto L_CountTowelLoop;

L_Return:
    if (@towel_count > 0)
        set @warpTowelName$, $@warpTowels$[rand(getarraysize($@warpTowels$))];
    cleararray $@warpTowels$, "", getarraysize($@warpTowels$);
    return;
}
this function is called every time right before the towel gets handed out, looks like all your towels get deleted,and the color you initially chose is changed to something random, then, depending on a bunch of stuff you get some towel... probably. using your terms that rather qualifies as a virus than a bug. I think it is what wushin described as the "infinite probability engine" which (parn i trust you there) is a hitchikers' reference which might need a little more verbosity to be recognizable in that quest :alt-9:

Re: Bugs in Towel system

Posted: 18 Apr 2014, 11:10
by wushin
Yes it does trigger the "Infinite Probability Engine" the plan in the future to make it also so other fun things, like turn the player into a bowl of petunia's temporarily.

Re: Bugs in Towel system ?

Posted: 18 Apr 2014, 17:33
by Nard
I added a question mark to the title because it seems that it is not a bug but a completely different vision of the towel use.
Quoting the script is useless to players, a quote from the book would be better. The new concept would require some enlightment or you will have other similar recurrent bug reports such as this one viewtopic.php?f=3&t=18210.

Re: Bugs in Towel system ?

Posted: 18 Apr 2014, 20:35
by wushin
1 towel per character. If you try to dye or use or get another towel with multiple towels I delete them all and hand you back a random one. At some point I hope we have server code to force these as Unique to the individual player.

They are now a default game mechanic that needs to be controlled.

Re: Bugs in Towel system ?

Posted: 18 Apr 2014, 21:09
by Nard
When the previous quest was released, I already wondered why a character could only get one of them. May I ask the underlying reason for this choice? I don't get it by myself.

Re: Bugs in Towel system ?

Posted: 18 Apr 2014, 21:54
by wushin
Travel needs to cost a resource. Time or Something else.
With multiple towels a person can avoid the travel penalty.
Death was another way people avoided walking.

The Ship is slow, but free.
Death as travel was removed.
The Towels are free but have a cool down and limited to 1, but you choose the destination .
Travelers are fast but you need to have been there and cost money.
Otherwise you can now walk anywhere in the world without paying a single time, but that takes a lot of time.

Thus, More ways to travel at different speeds, costs and none overtly advantages over the other. Thus... Balanced travel.

P.S. o11c fixed the bug during dying the towel.

Re: Bugs in Towel system ?

Posted: 19 Apr 2014, 00:27
by Crush
Moved from Player Talk to General Support.

Re: Bugs in Towel system ?

Posted: 24 Apr 2014, 16:59
by Nard
wushin wrote:The Towels are free but have a cool down and limited to 1, but you choose the destination .
Dyed towels have a cost, even if the initial costs in time and money have been reduced to zero:
Average cost:= (GemPowderCost1+ GemPowderCost2 + WaterBottlecost) * P (
Where P is the probability that towel returns to grey.
thus roughly 13% to 20 % of GemPowderCost .
My remarks if you care:
The new transport system lowers the intersest of towels a lot, since you are warped not far from the location where you die, which was their major use, with the exception of Nivalis. The death penalty in Blue Sage was to have to run the whole way again, which was not a small one for a level 60 player. About The yellow Towel: I used it for fast help (mostly newbies and speed skill) and arrow refill. Since the arrows are now much closer to the port, boat is almost as fast as the towel. I used the red one, occasionally, to return from Nivalis or Tulim areas, the only thing I find annoying is that I can't carry a yellow and a red one and have to make a stop in Tulim store to change it.

Re: Bugs in Towel system ?

Posted: 24 Apr 2014, 18:46
by wushin
The undyed towel returns you to the soul menhir you are bound too for 0 cost.
And of course the dyed towels have a cost, the are better than default undyed.

Re: Bugs in Towel system ?

Posted: 26 Apr 2014, 18:12
by Amarynthus
I've noticed that if you try to use a towel before the 15 minute timeout, not only does it fail, but it *resets* the timer.

So even if I intended to wait 15 minutes, but accidentally try to use my towel after 14:55, then I'm stuck waiting *another* 15 minutes before I can use a towel.

Is this intended? This bit seems impractical as I have to keep a very close eye on the time so I don't accidentally try to use a towel early.

Re: Bugs in Towel system ?

Posted: 26 Apr 2014, 21:30
by o11c
Amarynthus wrote:I've noticed that if you try to use a towel before the 15 minute timeout, not only does it fail, but it *resets* the timer.

So even if I intended to wait 15 minutes, but accidentally try to use my towel after 14:55, then I'm stuck waiting *another* 15 minutes before I can use a towel.

Is this intended? This bit seems impractical as I have to keep a very close eye on the time so I don't accidentally try to use a towel early.
Doesn't look like it does that to me:

Code: Select all

L_WarpChecks:                                                               
    if (TowelLastUsed > (gettimetick(2) - 1800))                            
        goto L_DontPanic;                                                   
    if (isin("botcheck.gat",25,27,51,47))                                   
        goto L_Prison;                                                      
    if (getmapflag(getmap(), MF_NOSAVE))                                    
        goto L_Forbid;                                                      
    goto L_WarpPlayer;                                                      
                                                                            
L_WarpPlayer:                                                               
    set TowelLastUsed, gettimetick(2);                                      
    warp @NextLocationMap$,@NextLocationX,@NextLocationY;                   
    goto L_BreakChance;                                                     

Re: Bugs in Towel system ?

Posted: 27 Apr 2014, 21:43
by Amarynthus
In the DontPanic block it calls getitem for a "new" towel of the same color. The counter for this new towel is not set to the current towel's timer - so the countdown does start again.

This is also very easy to confirm in game.

Re: Bugs in Towel system ?

Posted: 27 Apr 2014, 22:07
by o11c
Individual towels don't ahve timers, it's attached to the player.

Re: Bugs in Towel system ?

Posted: 27 Apr 2014, 22:37
by Amarynthus
o11c wrote:Individual towels don't ahve timers, it's attached to the player.
OK - that doesn't change anything.

The timer is still reset when that player gets a new towel.