EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Quests::Q&A (https://www.eqemulator.org/forums/forumdisplay.php?f=599)
-   -   Item Scaling help (https://www.eqemulator.org/forums/showthread.php?t=34812)

helman 01-31-2012 01:36 AM

Item Scaling help
 
Ok I'm trying to use sub EVENT_SCALE_CALC But I'm confused as hell even after using

Code:

sub EVENT_SCALE_CALC
{
        if (defined($qglobals{titanium_relic})) {
                $questitem->SetScale($qglobals{titanium_relic}/10);
        }
        else {
                $questitem->SetScale(0);
        }
}

as a reference. I asked Trevius and he said I all need to do is use an item charmfile script. Then use qglobals to track whatever it is I'm wanting to use for scaling the item. That helps a lot. But I don't know how to use qglobals. Like I'm wanting to to use a custom item I named Rift Shards for scaling up my epics. If someone could Help me out I'd me most happy.

This is what I have.

Code:

sub EVENT_SCALE_CALC {

                if (defined($qglobals{132481})) {
                                $questitem->SetScale($qglobals{132481}/1500);
                }
                else {
                                $questitem->setscal(0);
                }
               
}

But I think thats wrong I don't even know what I set it to use for the Scaling

lerxst2112 01-31-2012 02:02 AM

Scaling is generally between 0 and 1, or 0% and 100%. The easiest thing to do is put hardcoded numbers in the script and see how it scales. If you put 0.5, what are the stats, what are they at 1.5? That way you can see what you need to do with the formula to make it work the way you want.

helman 01-31-2012 02:07 AM

Ok How do i set what item ups the stats and all that. (I'm going for something that Trevius has on his server. The more AAs you give to an npc the more the stats go up. But i don't know how to do it and theres not to much in the forums talking about it.)

sorvani 01-31-2012 02:24 AM

Items that scale, will scale all stats by the percentage that the calc returns as far as i know, not just one or two stats.

Look at LLDAugText.pl to see how to use Qglobals. Ignore all the values, because all you need to worry about is making your values go from 0 to 1.

lerxst2112 01-31-2012 02:27 AM

As far as I know, the stats you see in the item editor are what they would be if the scale value was 1, or 100%.

It's a very easy thing to experiment with, and you're not going to permanently break anything if the script is wrong, so play around, you'll figure it out.

helman 01-31-2012 02:35 AM

I might just forget it. I think I got most of it down but if I have to figure it out with no reference than I might not ever get it to work as I want it to.

I can probably get it to scale but I still don't know how use my item to make it scale up. I want the stats to improve after ever 50 Rift Shards given to an npc.

So how can I get it to do that?

joligario 01-31-2012 05:53 AM

You also have a spelling error in your script above.

sorvani 01-31-2012 10:23 AM

You have been given references. I am not going to write your script for you.

Here is another. look at the Vxed zone to see how each mob increments a qglobal.

And another. Look at damn near any script in PoK to see a turn in example.

Combine it all up and snap. You got your scripts. Hmm, did I just slip tell you you need multiple scripts too?

helman 01-31-2012 07:02 PM

Going off what you gave me I got the turn in working. But It doesn't do anything yet. Here is my Script. (Please tell me if I'm missing anything. I think I need to add a $qglobals, But I'm not sure how to do it yet.)

Code:

sub EVENT_SAY {

  if($text=~/Hail/i) {
                        quest::say("Hello Dear Friend, I am the elder here. I can Improve the stats on your Epic weapons.");
        }


}

sub EVENT_ITEM {
  if(plugin::check_handin(\%itemcount, 132508 => 1)) { #Rift Shards
                        quest::say("Thank you, Your weapon should be a bit stronger now.");
    }

  else {
    quest::say("I have no use for this, $name.");
    plugin::return_items(\%itemcount);
  }

}

Now I am looking at some vxed mobs,and I see things like this But I don't know what to do with it.

example 1
Code:

if (defined $qglobals{bic} && $qglobals{bic_sew} == 12 && $qglobals{bic_vxe} == 13 && $qglobals{bic_tip} == 14) {
example 2
Code:

if (defined($qglobals{clockwork}) && ($qglobals{clockwork} == 1)) {
example 3
Code:

sub EVENT_DEATH {
  my $instid = quest::GetInstanceID("vxed",0);
  my $newvalue = $qglobals{$instid.'_vxed_status'};
  $newvalue++;
  quest::setglobal($instid.'_vxed_status',$newvalue,7,"H6");
  if($newvalue >= 50) {
    SPAWN_EKIKOA();
  }
} Although I think I know how this one works.

For my script what do I put in the {} after $qglobals, and what are the numbers for in example 1 and 2. I can probably put it together right if someone can tell me what goes there. Trust me After that I'll be able to do it on my own. (I kinda wish there was a detailed Tutorial on how to do this. Thats why I keep askin for a better example. Some people say its better for me to figure it out on my own, But I learn better when I have a good example to work off.)

lerxst2112 01-31-2012 08:17 PM

http://www.eqemulator.net/wiki/wikka...=QuestTutorial

The qglobal section is at the bottom.

helman 01-31-2012 08:50 PM

I've read it and I understand it but I still don't know what 12,13,14 is for. Its like no one can tell me how to use a $qglobal for this. I can easily make a qglobal in peq database editor, But I don't know what I need to set it to. I can give it a Name,and set the zone,npcid,and player. But what do I put as a Value? It doesn't make seance. How dose a qglobals work for this?

right now I'm really frustrated, Y'all make this out to be so easy. If I can't figure out how to do this I might just trash my server. If I can't do something this simple, maybe I don't need to be running a server. (just a thought)

joligario 01-31-2012 10:01 PM

The value is whatever you want it to be.

helman 01-31-2012 11:07 PM

it don't matter what I set it to? Huh that would be so nice to know XDD.

sorvani 02-01-2012 01:08 AM

Since you came up with something, I added some info for you.
Code:

sub EVENT_SAY {
  if($text=~/Hail/i) {
    quest::say("Hello Dear Friend, I am the elder here. I can Improve the stats on your Epic weapons.");
  }
}

sub EVENT_ITEM {
  #this if statement means whether they turn in 1 or 4 they only get credit once.
  if(plugin::check_handin(\%itemcount, 132508 => 1)) { #Rift Shards
    #just a note that depending on the "math" a single hand in may or may not affect the item.
    quest::say("Thank you, Your weapon should be a bit stronger now.");
    #define a variable to hold the qglobal value for calculation
    my $newvalue = 0;
    #check if the variable is defined.
    if(defined($qglobals{epic_scale})) {
      #since it exists, get the current value
      $newvalue = $qglobals{epic_scale};
    }
    #increment the value (from 0 to 1 or what ever it was +1)
    $newvalue++;
    #set the new value for the qglobal
    quest::setglobal("epic_scale",$newvalue,5,"F");
  } else {
    quest::say("I have no use for this, $name.");
  }
  #return item can always be the last thing outside any sub routine. this will ensure items are returned.
  plugin::return_items(\%itemcount);
}


lerxst2112 02-01-2012 03:01 AM

Quote:

Originally Posted by helman (Post 206631)
it don't matter what I set it to? Huh that would be so nice to know XDD.

Yes, it matters what you set it to if you're going to use it in a formula or something, but you can set it to anything that works for you.


All times are GMT -4. The time now is 09:26 AM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.