Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Not good with Math
#1
I want it so that the players speed gives them a bonus to the exp they gain, heres what I have..

Code:
Call SetPlayerExp(Attacker, (GetPlayerExp(Attacker) + EXP) + ((GetPlayerSPEED(Attacker)) * EXP) / 2)
Reply
#2
That's basically giving the player a LOT of extra xp.

If you have 10 spd, and you get 100 xp, that's 1000 exp, for a bonus of 500 xp, since you divide it by 2. Lol.
Reply
#3
yea I fixed it lmao, I relaized that after I killed omehitng giving 5 exp :/

i got another question, See, I made it so that depending on the NPC's Speed and Your speed, the NPC can miss its attack on you, but 9/10 NPC attacks are missssed even if their Speed is higher then mine.. Heres the check code

[code]
Function CanNpcMiss(ByVal index As Long, NpcNum As Long) As Boolean
Dim i As Long, n As Long

CanNpcMiss = False
If Npc(NpcNum).SPEED >= GetPlayerSPEED(index) Then
CanNpcMiss = False
Else
n = Int(Rnd * 2)
If n = 1 Then
i = Int(GetPlayerSPEED(index))

n = Int(Rnd * Npc(NpcNum).SPEED) + 1
If n
Reply
#4
Try changing:

n = Int(Rnd * 2)

To:

n = Int(Rnd * 2) + 1

See if that works.
Reply
#5
Matt Wrote:Try changing:

n = Int(Rnd * 2)

To:

n = Int(Rnd * 2) + 1

See if that works.

Int(Rnd*2) will generate 0 and 1
Int(Rnd*2)+1 will generate 1 and 2
Reply
#6
Egon Wrote:
Matt Wrote:Try changing:

n = Int(Rnd * 2)

To:

n = Int(Rnd * 2) + 1

See if that works.

Int(Rnd*2) will generate 0 and 1
Int(Rnd*2)+1 will generate 1 and 2

Mhm, I know. See, when I was messin' with this stuff, I had a hard time of ever getting a 0. When I changed it to get from 1 or 2, it worked a lot better.
Reply
#7
Is Randomize Timer called anywhere in the source? Hopefully just once on form load.
Reply
#8
Egon Wrote:Is Randomize Timer called anywhere in the source? Hopefully just once on form load.

I don't think it's "Randomize Timer", just "Randomize".

It is needed for the rnd function to properly work though..
Reply
#9
Randomize Timer is more random then just Randomize.
Reply
#10
Egon Wrote:Randomize Timer is more random then just Randomize.

Ah. Okay.
Reply
#11
I read this somewhere:

Quote:By the way, as of VB6 anyway, 'Randomize Timer' is redundant, as that is the default behavior of 'Randomize'.

And this is a good random function:

Code:
Function Random(Lowerbound As Integer, Upperbound As Integer) As Integer
    Random = Int((Upperbound - Lowerbound + 1) * Rnd) + Lowerbound
End Function

For example Random(0, 10) will produce numbers from 0-10.
Reply
#12
[quote]Basically...
Randomize reseeds the pseudo random sequence generated by Rnd. Unfortunately (because it uses a two byte hash) it only has access to a small portion of the full sequence (1/256th of 2^24 possible entry points). Calling it more than once does not make the sequence more Random it increases the chances of a repeat sequences coming up.

As a side note, rather than calling Randomize at all you can use Rnd -number to reseed Rnd. This provides full access to the sequence and so gets more out of Rnd than reseeding with Randomize.
[code]Private Sub Form_Load()
Rnd -Now - Timer '
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)