Register to post in forums, or Log in to your existing account
 

Play RetroMUD
Post new topic  Reply to topic     Home » Forums » CMUD General Discussion
hpoonis2010
Adept


Joined: 18 Jun 2019
Posts: 279

PostPosted: Sun Mar 28, 2021 3:05 pm   

Any ideas how to track this?
 
Once again, these were working without fail until today. I thought it was gmcp problem. I quit and restarted client and all worked well for a couple of ticks then nothing.

Code:
You slowly float to the ground.
{affoff}125
[~{affoff~}(%d)-> #IF (@abReports.gagAbAffectOffTag="on") {#GAG} {#CAP TALENTS}
// Trigger on ability expire.  For spells a simple cast of the input
// works (cast %1) but for skills the ability name is required.
#LOCAL $type
#LOCAL $abilityRec
#LOCAL $hText

#IF (%ismember(%1,%dbkeys(@spellTbl))) {
  $type=1
  $abilityRec=%db(@sp_VARS/spellTbl,%1)
  $hText="SP:"
  #IF (%1!=58) {cast %1}
  }

#IF (%ismember(%1,%dbkeys(@skillTbl))) {
  $type=2
  $abilityRec=%db(@sk_VARS/skillTbl,%1)
  $hText="SK:"
  #IF (%1!=311) {#SEND $abilityRec.syntax}
//  #IF (%lower(%gmcp.char.status.pos)="fighting") {
//    #ADDITEM popSkillList $abilityRec.syntax
//    }
  }

$ability=%db($abilityRec,name)

// Write a message to the TALENTS window if messages for 'affoff' triggers is set.
#IF (@abReports.showAbilitiesOff="on") {#WIN TALENTS @abTimestamp $hText $ability "- OFF"}]

Unknown command. Please check the helpfiles.

[2764/2764hp 1910/1921mn 2540/2540mv 0qt 5874tnl] >
A kobold knight cautiously advances towards the castle walls.

[char.status-> // Test for hunger/thirst.
//Change the test value to eat more or less. Values 0(hungry/thirsty)
// to 100(full).

//#IF (%comm.char.status.hunger < 75) {get @charFood @bag;eat @charFood}

#IF (%gmcp.char.status.thirst<80) {
  get @charDrink @bag
  drin @charDrink
  put @charDrink @bag
  }]

Sorry Dhalsim, I don't understand you.

[2764/2764hp 1921/1921mn 2540/2540mv 0qt 5874tnl] >
You see a kobold soldier charging in from the west.

You see a kobold knight charging in from the west.

[char.status-> // Test for hunger/thirst.
//Change the test value to eat more or less. Values 0(hungry/thirsty)
// to 100(full). Because it uses gmcp values, the trigger will continue to
// fire (eat/drink) until the test expression is true.

//#IF (%comm.char.status.hunger < 75) {get @charFood @bag;eat @charFood}

#IF (%gmcp.char.status.thirst<80) {
  get @charDrink @bag
  drin @charDrink
  put @charDrink @bag
  }]
You see the white moon rising in the west.
A kobold knight roars as he charges the castle walls!

Sorry Dhalsim, you can't do that.

[2764/2764hp 1921/1921mn 2540/2540mv 0qt 5874tnl] >
A kobold knight gives a battle cry and charges the castle.

A kobold knight enters shrieking a horrific noise.

A kobold lancer nonchalantly strolls towards the castle, without a care in the world.

A kobold soldier marches in determined to breach the defenses.

A kobold knight cautiously advances towards the castle walls.
Weary from battle, a kobold knight trudges away towards the castle.


... and another example...

Code:
You levitate yourself.
You have become better at levitation! (87%)
{skillgain}125,87
[~{skillgain~}(%d),(%d)-> #IF (@abReports.gagAbSkillGainTag="on") {#GAG} {#CAP TALENTS}
$ability=%1
$pct=%2
#LOCAL $name
#LOCAL $abDamType
#LOCAL $abText

$abSkList=%dbkeys(@skillTbl)
$abSpList=%dbkeys(@spellTbl)

// Add new (or existing) skill % to its table record.
#IF (%ismember(%1,$abSkList)) {
  #ADDKEY sk_VARS/skillTbl.$ability pct $pct
  $abDamType=@skillTbl.$ability.damage
  $name=@skillTbl.$ability.name
  $abText="SK Gain:"
  skill_scores
  #SWITCH ($abDamType)
    ("bash") {#IF ((%class(skBashButton)=0) AND (@bestSkBash!="")) {#T+ skBashButton}}
    ("disease") {#IF ((%class(skDiseaseButton)=0) AND (@bestSkDisease!="")) {#T+ skDiseaseButton}}
    ("pierce") {#IF ((%class(skPierceButton)=0) AND (@bestSkPierce!="")) {#T+ skPierceButton}}
    ("poison") {#IF ((%class(skPoisonButton)=0) AND (@bestSkPoison!="")) {#T+ skPoisonButton}}
    ("slash") {#IF ((%class(skSlashButton)=0) AND (@bestSkSlash!="")) {#T+ skSlashButton}}
    ("weapon") {#IF ((%class(skWeaponButton)=0) AND (@bestSkWeapon!="")) {#T+ skWeaponButton}}
  }
 
// Add new (or existing) spell % to its table record.
#IF (%ismember(%1,$abSpList)) {
  #ADDKEY sp_VARS/spellTbl.$ability pct $pct
  $abDamType=@skillTbl.$ability.damage
  $name=@skillTbl.%1.name
  $abText="SP Gain:"
  spell_scores
  #SWITCH ($abDamType)
    ("acid") {#IF ((%class(spAcidButton)=0) AND (@bestSpAcid!="")) {#T+ spAcidButton}}
    ("air") {#IF ((%class(spAirButton)=0) AND (@bestSpAir!="")) {#T+ spAirButton}}
    ("area") {#IF ((%class(spAreaButton)=0) AND (@bestSpArea!="")) {#T+ spAreaButton}}
    ("bash") {#IF ((%class(spBashButton)=0) AND (@bestSpBash!="")) {#T+ spBashButton}}
    ("cold") {#IF ((%class(spColdButton)=0) AND (@bestSpCold!="")) {#T+ spColdButton}}
    ("disease") {#IF ((%class(spDiseaseButton)=0) AND (@bestSpDisease!="")) {#T+ spDiseaseButton}}
    ("earth") {#IF ((%class(spEarthButton)=0) AND (@bestSpEarth!="")) {#T+ spEarthButton}}
    ("electric") {#IF ((%class(spElectricButton)=0) AND (@bestSpElectric!="")) {#T+ spElectricButton}}
    ("energy") {#IF ((%class(spEnergyButton)=0) AND (@bestSpEnergy!="")) {#T+ spEnergyButton}}
    ("fire") {#IF ((%class(spFireButton)=0) AND (@bestSpFire!="")) {#T+ spFireButton}}
    ("holy") {#IF ((%class(spHolyButton)=0) AND (@bestSpHoly!="")) {#T+ spHolyButton}}
    ("light") {#IF ((%class(spLightButton)=0) AND (@bestSpLight!="")) {#T+ spLightButton}}
    ("magic") {#IF ((%class(spMagicButton)=0) AND (@bestSpMagic!="")) {#T+ spMagicButton}}
    ("mental") {#IF ((%class(spMentalButton)=0) AND (@bestSpMental!="")) {#T+ spMentalButton}}
    ("negative") {#IF ((%class(spNegativeButton)=0) AND (@bestSpNegative!="")) {#T+ spNegativeButton}}
    ("pierce") {#IF ((%class(spPierceButton)=0) AND (@bestSpPierce!="")) {#T+ spPierceButton}}
    ("poison") {#IF ((%class(spPoisonButton)=0) AND (@bestSpPoison!="")) {#T+ spPoisonButton}}
    ("shadow") {#IF ((%class(spShadowButton)=0) AND (@bestSpShadow!="")) {#T+ spShadowButton}}
    ("slash") {#IF ((%class(spSlashButton)=0) AND (@bestSpSlash!="")) {#T+ spSlashButton}}
    ("sonic") {#IF ((%class(spSonicButton)=0) AND (@bestSpSonic!="")) {#T+ spSonicButton}}
    ("water") {#IF ((%class(spWaterButton)=0) AND (@bestSpWater!="")) {#T+ spWaterButton}}
   
  }

#IF (@abReports.showAbilityGains="on") {#WIN TALENTS @abTimestamp $abText %1 $name %2"%"}
]

[You {are|can} already *{.|!}-> #GAG]
[You {are|can} already *{.|!}-> #GAG]
[You {are|can} already *{.|!}-> #GAG]
[You {are|can} already *{.|!}-> #GAG]
[You {are|can} already *{.|!}-> #GAG]
[You {are|can} already *{.|!}-> #GAG]
{sfail}178,0,2,-1
[~{sfail~}(%d),(%d),(%d),(%n)-> // %1=spell/skill #;2=target (0=self;1=other);3=cause;4=if failure due to
//  recovery, the recovery number
// Cause: 1=lost concentration;2=already affected;3=recovery block;4=no mana;
//   5=nocast room;6=fighting (cannot concentrate);8=spell unknown;9=not for self;
//   10=resting/sitting;11=sk/sp disabled;12=no move
#IF (@abReports.gagAbAffectFailTag="on") {#GAG} {#CAP TALENTS}

#LOCAL $hText
#LOCAL $type
#LOCAL $abilityRec
#LOCAL $syntax

#IF (%ismember(%1,%dbkeys(@spellTbl))) {$type=1;$abilityRec=%db(@spellTbl,%1)}
#IF (%ismember(%1,%dbkeys(@skillTbl))) {$type=2;$abilityRec=%db(@skillTbl,%1);$syntax=$abilityRec.syntax}

$target=%2
$cause=%3
$recover=%4

#SWITCH ($cause)
  (1) {
    #SWITCH ($type)
      (1) {$hText="SP:";cast '$abilityRec.name'}
      (2) {$hText="SK:";#SEND $syntax}
    }
  (2) {}
  (3) {}
  (4) {Pot_Actions/qp mn;cast $abilityRec.name}
  (5) {ab_addNote nocast;#NOOP}
  (6) {
    #SWITCH ($type)
      (1) {$hText="SP:";#ADDITEM sp_VARS/popSpellList $abilityRec.name}
      (2) {$hText="SK:";#ADDITEM sk_VARS/popSkillList $syntax}
    }
   
  (7) {}
  (8) {}
  (9) {#ADDITEM sp_VARS/popSpellList $abilityRec.name}
  (10) {
    #SWITCH ($type)
      (1) {#ADDITEM sp_VARS/popSpellList $abilityRec.name;wake;stand}
      (2) {#ADDITEM sk_VARS/popSkillList $syntax;wake;stand}
    }
   
  (11) {}
  (12) {Pot_Actions/qp mv;#SEND $syntax}
 
#IF (@abReports.showAbilitiesFail="on") {#WIN TALENTS @abTimestamp $hText $abilityRec.name "- FAIL"}]

[2764/2764hp 1831/1921mn 2540/2540mv 0qt 5870tnl] > Unknown command. Please check the helpfiles.

[2764/2764hp 1831/1921mn 2540/2540mv 0qt 5870tnl] > Unknown command. Please check the helpfiles.

[2764/2764hp 1831/1921mn 2540/2540mv 0qt 5870tnl] > Sorry Dhalsim, you can't do that.

[2764/2764hp 1831/1921mn 2540/2540mv 0qt 5870tnl] > That is not a command. Type 'Commands' for a complete list.

[2764/2764hp 1831/1921mn 2540/2540mv 0qt 5870tnl] > Sorry Dhalsim, you can't do that.

[2764/2764hp 1831/1921mn 2540/2540mv 0qt 5870tnl] > Sorry Dhalsim, you can't do that.

[2764/2764hp 1831/1921mn 2540/2540mv 0qt 5870tnl] > Sorry Dhalsim, you can't do that.

[2764/2764hp 1831/1921mn 2540/2540mv 0qt 5870tnl] > Unknown command. Please check the helpfiles.

[2764/2764hp 1831/1921mn 2540/2540mv 0qt 5870tnl] > Sorry Dhalsim, I don't understand you.

[2764/2764hp 1831/1921mn 2540/2540mv 0qt 5870tnl] > Unknown command. Please check the helpfiles.


This is a sample of what seems to be getting sent, for every failure regardless of what should be sent...and, obviously, the triggers fail to run the desired commands:

Code:
[char.status-> // Test for hunger/thirst.
//Change the test value to eat more or less. Values 0(hungry/thirsty)
// to 100(full). Because it uses gmcp values, the trigger will continue to
// fire (eat/drink) until the test expression is true.

//#IF (%comm.char.status.hunger < 75) {get @charFood @bag;eat @charFood}

#IF (%gmcp.char.status.thirst<80) {
  get @charDrink @bag
  drin @charDrink
  put @charDrink @bag
  }]
[b]16[/b]


... and entering a room in a different zone:


In fact, everything seems to be sending 16 to the mud: trigger commands, aliases, speedwalks...

Oh! If only we had a useful developer who supported their full-price product, we would probably have the opportunity to send a support ticket. Maybe if we flagged it as a licence issue as their money binoculars are trained on that subject alone.


Last edited by hpoonis2010 on Mon Mar 29, 2021 7:13 am; edited 1 time in total
Reply with quote
shalimar
GURU


Joined: 04 Aug 2002
Posts: 4662
Location: Pensacola, FL, USA

PostPosted: Sun Mar 28, 2021 5:33 pm   
 
Would you drop it with complaining about Zugg already?
His life choice are not the cause of your current issue.
Your complaints and tongue-in-cheek suggestions aren't going to do anything but turn the community against you.
We get it, changes in the program would be nice.
Adding in a little dig each time you mess up your code makes me want to help you less and less.

If it was working fine, and now it isn't there is only one possible cause.
Something in your local settings has changed. Intentional or not.

Now I can help you pinpoint the mistake you made, or you can harp about how Zugg moved on to pay his own bills.
_________________
Discord: Shalimarwildcat
Reply with quote
hpoonis2010
Adept


Joined: 18 Jun 2019
Posts: 279

PostPosted: Sun Mar 28, 2021 5:49 pm   
 
You may be right but...

I disabled all modules, then went into the main window module and started disabling other things. I reiterate that window handling in CMUD is slack and buggy and problems
one may think are not related might well be. I restarted and ended up with same problem and nothing triggering, just with client/mud communication as all I was trying to do
was a speedwalk of portal,d,e,d and every 'command' was 16.

Restarting client and all working again. However, I remain skeptical that it is not likely to occur again.
Reply with quote
shalimar
GURU


Joined: 04 Aug 2002
Posts: 4662
Location: Pensacola, FL, USA

PostPosted: Sun Mar 28, 2021 6:25 pm   
 
It may well reoccur, but short of being able to force it to occur, there is no way to figure out the cause of the issue.
I think I have hit that particular issue before myself even.

It's how you go about dealing with the problem.
CMUD can do almost anything you would want of a MUD client.
I would say almost all issues (95+%) in CMUD boil down to syntax error.
Meaning the end-user is at fault.

Blaming Zugg, because your code did not spit out the expected results, just makes it look like you want to play the blame game rather than actually troubleshoot the cause of the incongruency.
_________________
Discord: Shalimarwildcat
Reply with quote
hpoonis2010
Adept


Joined: 18 Jun 2019
Posts: 279

PostPosted: Tue Mar 30, 2021 5:11 am   
 
I think disabling every package was fairly conclusive. The main session window and the mapper were the only things left running. After disabling the one thing in the main session, which was a gmcp trigger, that could have been a factor, and the error still spamming '16' to the (as I said for a 4-step speedwalk), I deduced that the problem lies with a thing inherent in the application itself that disagreed with some unknown. The only thing left to ponder was something with the windows, especially as it is so easy to move something and have all kinds of unexpected side-effects with buttons appearing everywhere or all output disappearing, etc

The fault may well still lie with something in the scripts but, as you and I (and no one else) have no clue as to what this cryptic stuff means, or why it is generated, it will never get resolved.
Reply with quote
Display posts from previous:   
Post new topic   Reply to topic     Home » Forums » CMUD General Discussion All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

© 2009 Zugg Software. Hosted by Wolfpaw.net