![]() |
Not good with Math - Printable Version +- Mirage Source (https://mirage-engine.uk/forums) +-- Forum: Mirage Source (Nostalgia) (https://mirage-engine.uk/forums/forumdisplay.php?fid=61) +--- Forum: Archive (2006-2011) (https://mirage-engine.uk/forums/forumdisplay.php?fid=18) +---- Forum: General (https://mirage-engine.uk/forums/forumdisplay.php?fid=17) +---- Thread: Not good with Math (/showthread.php?tid=2684) |
Not good with Math - jsventor - 04-04-2009 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) Re: Not good with Math - Matt - 04-04-2009 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. Re: Not good with Math - jsventor - 04-04-2009 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 Re: Not good with Math - Matt - 04-04-2009 Try changing: n = Int(Rnd * 2) To: n = Int(Rnd * 2) + 1 See if that works. Re: Not good with Math - Egon - 04-04-2009 Matt Wrote:Try changing: Int(Rnd*2) will generate 0 and 1 Int(Rnd*2)+1 will generate 1 and 2 Re: Not good with Math - Matt - 05-04-2009 Egon Wrote:Matt Wrote:Try changing: 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. Re: Not good with Math - Egon - 05-04-2009 Is Randomize Timer called anywhere in the source? Hopefully just once on form load. Re: Not good with Math - Matt - 05-04-2009 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.. Re: Not good with Math - Egon - 05-04-2009 Randomize Timer is more random then just Randomize. Re: Not good with Math - Matt - 05-04-2009 Egon Wrote:Randomize Timer is more random then just Randomize. Ah. Okay. Re: Not good with Math - GIAKEN - 05-04-2009 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 For example Random(0, 10) will produce numbers from 0-10. Re: Not good with Math - Egon - 05-04-2009 [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 ' |