Recent Posts

Pages: 1 2 [3] 4 5 ... 10
21
Building Board / Re: Day/Night script
« Last post by Parnassus on September 08, 2016, 04:33:31 pm »
Butbutbut....it was SUPPOSED to work!  I dunno why it doesn't work *sniff*.  In fact, we tweaked it and tweaked it on the buildport and it really seemed to me that it was working but when I tried it in the game, well, it just didn't work *sob*.
22
Building Board / Day/Night script
« Last post by Kvetch on September 03, 2016, 10:42:40 am »
Ever since the night description code was put into the mud, I've been interested in having other things be day/night - like smell and listen - and sometimes even touch.  A couple years ago Parnassus came up with something that didn't quite work, but it is the basis for what I've started using which is this:
if %time.hour% > 6 && %time.hour% <21
  return 0
  halt
else

This checks to see if the hour is between 6am and 9pm (daylight hours for the mud).  If it is, it will use whatever I have put into the listen/smell room description.  If it isn't - that's where the else comes in.

if %cmd.mudcommand%==listen
%send% %actor% - whatever it is you want them to hear at night that isn't there during the day.
halt
elseif %cmd.mudcommand%==smell
%send% %actor% - whatever it is you want them to smell at night that isn't there during the day
halt
else
return 0 - in case the player is trying to do something other than listen or smell, like move or look at things or... stuff like that.
end

Obviously if you do this for more than one room, you'll have to add a check in for the room vnum (which, strangely %room.vnum% doesn't seem to work, but %actor.room.vnum% does).

So, in the end my current script looks like this:

if %time.hour% > 6 && %time.hour% <21
  return 0
  halt
else
  if %cmd.mudcommand%==listen
    if %actor.room.vnum% == 47108
      %send% %actor% You hear some horses whiney from the barn.
      halt
    elseif %actor.room.vnum%== 47113
      %send% %actor% You hear horses whineying a complaint from the barn.
      halt
    end
  elseif %cmd.mudcommand%==smell
    if %actor.room.vnum%==47108
      %send% %actor% There is a strong scent of manure coming from the barn.
      halt
    elseif %actor.room.vnum%==47113
      %send% %actor% The smell of fresh manure assaults you from the pasture to the south.
      halt
    else
      return 0
    end
  else
    return 0
  end
else
  return 0
end
23
General Discussions / just testing
« Last post by Kate on February 18, 2016, 05:46:48 pm »
Just testing if this works.
24
Suggestions & Ideas / Re: Balancing classes
« Last post by Bane on February 08, 2016, 12:15:15 am »
This is something I've put a lot of thought into and something I've really wanted to target over the past year. I had planned on doing some testing with gladiators to see how my idea below would pan out. I haven't quite finished the initial design I have in mind to put forward in real testing. But basically what I have in mind is below and the reason for wanting to do so.


Our whole spell/skill system is a very dull system. Most are based off the same idea of the weapon damage and giving modifiers for certain conditions. Which is fine for some, but what system lacks is any additional affects added behind the skills/spells, and getting away from having to use a same skill/spell constantly over and over. Not all skills/spells shouldn't be spammable but I think making the system more dynamic will give the better ability to properly balance classes plus make all classes more enjoyable and not feel very generic.

Give classes the ability to have powerful opening attacks and/or finishers, mixed in with the ability to stun + damage, do negative affects + damage, combine with having a few good spells/skills that are spamable to fill in the gaps of spells that you are currently waiting for to come off of cool down.

A lot of Mmorpgs that have a  rotation or combo of skills/spells they use in game while fighting, They use one spell/skill it goes on cool down they move onto another and the process rinse and repeats, until they are forced to go off combo to remove debuffs or heal etc. And while their best skills/spells are on cool down they use lower damage repeatable spells/skills to fill in those gaps. These spells/skills that are on cool down usually have high end damage, or give a player a positive affect or give the player/mob being attacked a debuff.

So if we make the spell/skill system more dynamic I have better feelings that we can make more classes enjoyable, along with balancing them.

Right now people target Gypsy and Priest the most due to mainly these spells/skills that I feel are currently overpowered.

Mana Shield

Thorn Shield

Heal

Midas Touch

Magic Bubble

You take away these and then Gypsy and Priest would basically be just like the rest of the classes. There is really no big difference from one caster class to the next and same for melee. Not saying they need to be taken away, but they need changed, some need the whole idea changed behind them. Ive been working on a something that over the next week I will be posting something that will break down each class into how they should be represented in the mud and what can we do to represent that idea in the mud. And if we moved forward with a better dynamic spell/skll system, we can get away from classes being so generic, get away from pvm being a mindless task of spamming a skill/spell.

Now PvP does closely relate to this, but there are other aspects of PVP that need to be taken into account. Looting/ Damage/ Tier Difference/ Fleeing from fights, just a few off the top of my list I have in word pad.

Mobs should also be taken into account here as well. Mobs are very generic here as well. A mobs hardness shouldn't just mostly be defined by its speed from its tier and its dice. You bring in a better dynamic spell/skill system you can bring in more classes of mobs that can use these spells/skills without the use of having it to be scripted, which then you could get away from mobs having retarded attacks per tick, and make the combat better and less predictable. The mob side of this i believe shouldnt be a primary focus until the rest is done.

We shouldn't just start adding in generic skills/spells to buff up other classes, it should be done correctly, with  a lot of initial design then testing. Get away from the generic feeling. Then on top of adding in a dynamic spell/skill system you give the player different ways to build the class.

It would be much more fun to see a priest have multiple ways to block or reduce damage while beaing able to chip away at its opponent, or be able to go another route where they could do a lot of damage with dark magic, but have a lot fewer healing spells or ways to block reduce damage.

Thieves could have powerful openers and finisher spells as an assassin or they could go another route where they rely on their quickness and dexterity in fights.

I would give classes at least two different paths they could take to build their class. If you like the idea, I don't believe implanting a better spell/skill system would be a huge issue as far as coding. It doesn't require the removal of our current combat system. I feel like this alone could greatly improve our combat system, without having to tear it down and start from scratch.

If you want to see what I have for breaking down the classes Roland send me an email and Ill send it to you first, Id like to see your thoughts in it before posting it. I don't think its the easiest route to go, but I think its one of the better routes to go. I think we could do a lot with just spells/skills to change combat that wouldn't require a complete rewrite from the ground up. I could be wrong and it might not be that easy. Any way you look at it, if you want to get rid of the generic feeling then I think this is the best place to start. It may turn out to be more complex then our current combat code could handle, But I think we could work with what we have and prevail.

This system would even be able to favor multi-classing.

To basically sum it up, Make each class its own class, get away from generic skills/spells. Bring in a rotation type skill/spell system. Let classes be able to branch different ways. Focus more on a affect/debuff skills/spells.

It would require real testing, and would be good to have a group of players join a peer group for the testing.
25
Suggestions & Ideas / Re: Balancing classes
« Last post by Jubei on February 07, 2016, 08:27:01 am »
I've  thought about this alot playing both types frequently and striving to min-max both to their maximum potential, under conditions casters are much more overpowered but i think the problem lies moreso in melees deficits rather than how overpowered casters can be in certain conditions.

For me the most enjoyable PVE experience i have is playing as a priest, you can heal yourself for about 900 a round do a good consistant 3-5k area spell to most mobs and can kill most mobs in the game solo with abit of skill and the right setups. With esper you can kill any boss in the game easier than a group of 3 players could, mage is pretty lackluster but it's still a caster with decent area spells just not as strong as esper or priest. PVP priests are overpowered in some respect however they are killable if you know how to fight them and get some lucky lagspikes.

Sure it's fun playing a slightly broken class but this is the thing some mobs in this game just require that level of brokeness to be defeated so when i say it is my most enjoyable class it's only because it's the most viable solution because you don't need to carry around 100 opas just to kill a hard boss solo.

Now we get to melee my most enjoyable PVP type Melee vs Melee in pvp feels right and i really wouldn't change too much. Melee in pve plainly sucks unlike caster they have no area spells/skills so leveling and lifedraining mobs is gimped to a 1v1 slow form of attack vs clearing a whole room in a matter of seconds. They get a high tier skill of thier class @ tier 4 which is great after having to bore through kickspamming the previous tiers which unlike casters who get alot more different spells along the way that they can use in an aggresive form of higher damage as they are leveling up.

You know something is wrong when wearing dumpster char gear and an ironwood staff casting earthquake as a gm being a melee is more damage than having a geared melee in melee gear using skills his class intended being much more effective in damaging rooms of mobs and leveling.

How would i propose to fix said problems? I couldn't possibly know where to start to be honest it's a massive job and i know how you'd feel. You wanna make things more balanced by in a system like this it's very hard to tweak one thing and it will collapse another thing.

Things I find you could change without fucking up full balance that is make a t2 skill on one of the melee classes an area skill that does about 2kish aoe on a semi geared melee maybe that scales to about 4-5kish on a well geared melee at a high tier at least that way melee are on the same grounds as casters in terms of leveling.
And maybe some more diverse skills that bring uniqueness to the other melee classes, For example a gypsy can magic bubble, woodsing and tinker but can't dodge. A thief can peek invents use dodge, shield block and phase and circle which makes them tanky as hell but still lethal, a ranger can dodge, phase and block but doesn't have anything else why you'd choose that over a thief or gypsy who knows you'd be effectively gimping yourself, so in that respect i'd make a new skill that puts them in the right spot of uniqueness and gives them a reason for people to play them.

Hunter/Warrior can brace so they are effectively awesome but still they only have parry, brace and shieldblock hunter being a slight better due to having hyperactivity and blade dance giving them abit more speed which are the "Tank" classes biggest problems i'd definately pump their speed abit more. i think i was at about 500 speed max @t4 while mounted with nothing in my inventory as a warrior i'd like to see that at least to be 600-700 but also maybe something abit more unique in terms of skills. For instance just of the top of my head if warrior had an bloodlust skill that effectively works like aggro set after you cast it you go into a frenzy get a decent dr bonus become unable to flee and your forced to kill everything in the room and it subsides when you die or everything in the room is dead. Hunter also needs something to make it viable brace is great but how many full time warriors/hunters do you see 0 thats right they need a gimmick skill.

TLDR: Casters are op in the wrong hands, Melee needs area skills and individual new handy spells/skills

Anyway thats just afew of my cents I could harp on even more but Ill save it for another time.
26
Suggestions & Ideas / Balancing classes
« Last post by rynald on February 07, 2016, 06:09:22 am »
Most players prefer casters nowadays, which means the classes aren't balanced anymore. Casters seem to do more damage and heal faster than melee. What should be done about this: nerf casters, boost melee, or make melee more interesting in a different way?

PK can be improved too and since changes to PK can influence the balance of classes and vice versa, you can voice your thoughts about this here as well.
27
Scripting Board / The "Tor" issue fix
« Last post by Kvetch on January 13, 2016, 10:10:19 am »
There has been an issue with names like Tor or Pix working in scripts due to mobs with the same start to their names: for example: torture victim, tortoise, pixie, etc.  So, there is now a way to make scripts so Tor and Pix (and anyone else with short names like that) can be affected.

Here is Roland's statement and example:

Added playeruid to scripting to make working with a player easier.
  playeruid p <name> sets the uid of the player to p. The name has to match
  completely, or p will be empty.
  Example for a mob trigger:
 
  playeruid p tor
  if %p%
    dg_cast 'shield' %p%
    if %self.room% == %p.room%
      %load% obj 3301
      give token tor
    else
      %send% %p% I wanted to give you something but you're not here.
    end
  end
 
It seemed easy enough, but obviously not easy enough for me as I tried to just put in one line to have it all work right and, of course it didn't.  So, here is the update of my voodoo doll script - originally taken from The Builder's Academy, but adapted to work on 4D.  I had to change pin to stick, because the pinch social interfered with it, but otherwise it was mostly someone else's code.  I have tested this plenty of times on Tor just to make sure it works and it does.  For those that want to know: Num Arg 2 is so it can be used in inventory - you don't have to be holding it.  Arg list: stick is the command to use to work the voodoo doll.  It also needs a victim to stick, thus the %arg% in the script.  Of course, the pain of this is, you have to use someone's FULL NAME to use it.  Celestia can not be shortened to Cel or Celest, it has to be Celestia.  I know this, I just tried it - Sorry Celestia.

Name: 'voodoo script',  VNum: [ 1286], RNum: [  350]
Trigger Intended Assignment: Objects
Trigger Type: Command , Numeric Arg: 2, Arg list: stick
Commands:
playeruid p %arg%
if !%p%
  %send% %actor% Who do you want to pin with the voodoo doll?
else
  eval dmg %p.hitp% * 100 / %p.maxhitp%
  if (%dmg% > 25)
    eval pain %random.15%
    switch %pain%
      case 1
        set hurt back
      break
      case 2
        set hurt head
      break
      case 3
        set hurt stomach
      break
      case 4
        set hurt left eye
      break
      case 5
        set hurt chest
      break
      case 6
        set hurt right eye
      break
      case 7
        set hurt left arm
      break
      case 8
        set hurt right arm
      break
      case 9
        set hurt left leg
      break
      case 10
        set hurt right leg
      break
      case 11
        set hurt groin
      break
      case 12
        set hurt left foot
      break
      case 13
        set hurt right foot
      break
      case 14
        set hurt throat
      break
      case 15
        set hurt heart
      break
      default
      break
    done
    %send% %actor% You slowly push a pin into the voodoo doll of %p.name%'s %hurt%.
    %echoaround% %actor% %actor.name% slowly pushes a pin into a voodoo doll.
    %send% %p% You suddenly feel a sharp stabbing pain in your %hurt%!
    %echoaround% %p% %p.name% suddenly screams with pain, clenching %p.hisher% %hurt%!
    %damage% %p% 10
    wait 20 s
  elseif %dmg% < 26
    set msg %random.5%
    switch %msg%
      case 1
        %send% %actor% %p.name% has suffered enough!
      break
      case 2
        %send% %actor% %p.name% can't take it anymore!
      break
      case 3
        %send% %actor% %p.name% is too weak!
      break
      case 4
        %send% %actor% %p.name% is still writhing in pain!
      break
      case 5
        %send% %actor% %p.name% won't survive another pin!
      break
      default
      break
    done
  end
end
28
Suggestions & Ideas / Re: Questjournal v1
« Last post by erwin on January 07, 2016, 01:04:25 am »
Update 7th January (or when Molly puts it in)

Two questcards added to the journal, card 41 and card 42. 

Under some circumstances (if you tried to do Quest 41 legitly), you would never be able to complete it. Now you can.

Infinite tomb robbers loading in some rooms (under some circumstances) has been fixed

29
Scripting Board / Re: Suggested Practices for Scripting
« Last post by erwin on January 05, 2016, 12:41:45 pm »
I've been using a template for the Quest Journal ; an example of a quest variable would be of the form:

Code: [Select]
hat_temple: noprog notdone 2
hat_temple: inprog notdone 1
hat_temple: noprog done 0

where noprog/inprog determines whether the player has activated / started the quest, notdone/done the "final" flag to signal completion, and the numbers to represent the steps in the quest. I'm hoping that (most) quests follow this template ; it's not as hard as it seems to set it up, since we just need a function to create this variable if it doesn't exist, so most scripts would be of the following form

Code: [Select]
* Create this variable if it hasn't existed
function 12345
set hat_temple %actor.hat_temple%

if %hat_temple.wordat(3)% == 2
  %echo% You are at step 2
endif

* Previously it would probably be something like
*if %actor.varexists(hat_temple_quest)%
* if %hat_temple_quest% == 2
*    %echo% You are at step 2
* endif
*endif
* and script errors would occur if you had
* if %actor.varexists(hat_temple_quest)% && %hat_temple_quest% == 2
* if the variable didn't exist

Of course, function 12345 would be

Code: [Select]
if !%actor.varexists(hat_temple)%
  set hat_temple noprog notdone 0
  remote hat_temple %actor.id%
endif

A side effect of this is that it removes errors where the script is something like
Code: [Select]
if %actor.varexists(hat_temple_quest)% && %hat_temple_quest% == 2
  %echo% do this
endif
and the player doesn't have the variable.
30
Scripting Board / Re: Suggested Practices for Scripting
« Last post by Fizban on January 05, 2016, 08:37:40 am »
Not that I think saving variables this way is a bad idea, it's not, but it is more complicated to do for someone with a very limited understanding of trigedit (ie. most builders).

Telling builders to think like coders doesn't tend to work very well in my experience.

That's only an issue for the array related idea though, nothing should prevent builders from properly naming their variables so that they're intuitive and easily distinguished by what zone they relate to.
Pages: 1 2 [3] 4 5 ... 10