| Mirage Source http://miragesource.net/forums/ |
|
| lol, I have the worst drop system http://miragesource.net/forums/viewtopic.php?f=201&t=3731 |
Page 1 of 1 |
| Author: | William [ Fri May 16, 2008 5:06 pm ] |
| Post subject: | lol, I have the worst drop system |
Just look at it xD I made it like that so the currency drop would vary. Now it's long and ugly. Code: ' Drop the goods if they get it
' Item Drop 1 n = Int(rnd * Npc(NpcNum).DropItem1Chance) + 1 If n = 1 Then If Npc(NpcNum).DropItem1 = 1 Then GoldNum(1) = Int(RandomNumber(1, Npc(NpcNum).DropItemValue1 / 3) - RandomNumber(1, Npc(NpcNum).DropItemValue1 / 3)) Call GiveItem(Attacker, 1, Npc(NpcNum).DropItemValue1 + GoldNum(1)) Call BattleMsg(Attacker, "You gained " & Npc(NpcNum).DropItemValue1 + GoldNum(1) & " gold.", Yellow, 0) Else Call SpawnItem(Npc(NpcNum).DropItem1, Npc(NpcNum).DropItemValue1, MapNum, MapNpc(MapNum, MapNpcNum).x, MapNpc(MapNum, MapNpcNum).y) End If End If ' Item Drop 2 n = Int(rnd * Npc(NpcNum).DropItem2Chance) + 1 If n = 1 Then If Npc(NpcNum).DropItem2 = 1 Then GoldNum(2) = Int(RandomNumber(1, Npc(NpcNum).DropItemValue2 / 3) - RandomNumber(1, Npc(NpcNum).DropItemValue2 / 3)) Call GiveItem(Attacker, 1, Npc(NpcNum).DropItemValue2 + GoldNum(2)) Call BattleMsg(Attacker, "You gained " & Npc(NpcNum).DropItemValue2 + GoldNum(2) & " gold.", Yellow, 0) Else Call SpawnItem(Npc(NpcNum).DropItem2, Npc(NpcNum).DropItemValue2, MapNum, MapNpc(MapNum, MapNpcNum).x, MapNpc(MapNum, MapNpcNum).y) End If End If ' Item Drop 3 n = Int(rnd * Npc(NpcNum).DropItem3Chance) + 1 If n = 1 Then If Npc(NpcNum).DropItem3 = 1 Then GoldNum(3) = Int(RandomNumber(1, Npc(NpcNum).DropItemValue3 / 3) - RandomNumber(1, Npc(NpcNum).DropItemValue3 / 3)) Call GiveItem(Attacker, 1, Npc(NpcNum).DropItemValue3 + GoldNum(3)) Call BattleMsg(Attacker, "You gained " & Npc(NpcNum).DropItemValue3 + GoldNum(3) & " gold.", Yellow, 0) Else Call SpawnItem(Npc(NpcNum).DropItem3, Npc(NpcNum).DropItemValue3, MapNum, MapNpc(MapNum, MapNpcNum).x, MapNpc(MapNum, MapNpcNum).y) End If End If ' Item Drop 4 n = Int(rnd * Npc(NpcNum).DropItem4Chance) + 1 If n = 1 Then If Npc(NpcNum).DropItem4 = 1 Then GoldNum(4) = Int(RandomNumber(1, Npc(NpcNum).DropItemValue4 / 3) - RandomNumber(1, Npc(NpcNum).DropItemValue4 / 3)) Call GiveItem(Attacker, 1, Npc(NpcNum).DropItemValue4 + GoldNum(4)) Call BattleMsg(Attacker, "You gained " & Npc(NpcNum).DropItemValue4 + GoldNum(4) & " gold.", Yellow, 0) Else Call SpawnItem(Npc(NpcNum).DropItem4, Npc(NpcNum).DropItemValue4, MapNum, MapNpc(MapNum, MapNpcNum).x, MapNpc(MapNum, MapNpcNum).y) End If End If ' Item Drop 5 n = Int(rnd * Npc(NpcNum).DropItem5Chance) + 1 If n = 1 Then If Npc(NpcNum).DropItem5 = 1 Then GoldNum(5) = Int(RandomNumber(1, Npc(NpcNum).DropItemValue5 / 3) - RandomNumber(1, Npc(NpcNum).DropItemValue5 / 3)) Call GiveItem(Attacker, 1, Npc(NpcNum).DropItemValue5 + GoldNum(5)) Call BattleMsg(Attacker, "You gained " & Npc(NpcNum).DropItemValue5 + GoldNum(5) & " gold.", Yellow, 0) Else Call SpawnItem(Npc(NpcNum).DropItem5, Npc(NpcNum).DropItemValue5, MapNum, MapNpc(MapNum, MapNpcNum).x, MapNpc(MapNum, MapNpcNum).y) End If End If ' Item Drop 6 n = Int(rnd * Npc(NpcNum).DropItem6Chance) + 1 If n = 1 Then If Npc(NpcNum).DropItem6 = 1 Then GoldNum(6) = Int(RandomNumber(1, Npc(NpcNum).DropItemValue6 / 3) - RandomNumber(1, Npc(NpcNum).DropItemValue6 / 3)) Call GiveItem(Attacker, 1, Npc(NpcNum).DropItemValue6 + GoldNum(6)) Call BattleMsg(Attacker, "You gained " & Npc(NpcNum).DropItemValue6 + GoldNum(6) & " gold.", Yellow, 0) Else Call SpawnItem(Npc(NpcNum).DropItem6, Npc(NpcNum).DropItemValue6, MapNum, MapNpc(MapNum, MapNpcNum).x, MapNpc(MapNum, MapNpcNum).y) End If End If ' Item Drop 7 n = Int(rnd * Npc(NpcNum).DropItem7Chance) + 1 If n = 1 Then If Npc(NpcNum).DropItem7 = 1 Then GoldNum(7) = Int(RandomNumber(1, Npc(NpcNum).DropItemValue7 / 3) - RandomNumber(1, Npc(NpcNum).DropItemValue7 / 3)) Call GiveItem(Attacker, 1, Npc(NpcNum).DropItemValue7 + GoldNum(7)) Call BattleMsg(Attacker, "You gained " & Npc(NpcNum).DropItemValue7 + GoldNum(7) & " gold.", Yellow, 0) Else Call SpawnItem(Npc(NpcNum).DropItem7, Npc(NpcNum).DropItemValue7, MapNum, MapNpc(MapNum, MapNpcNum).x, MapNpc(MapNum, MapNpcNum).y) End If End If |
|
| Author: | Asrrin29 [ Fri May 16, 2008 6:34 pm ] |
| Post subject: | Re: lol, I have the worst drop system |
making a random gold creation function would cut the amount of code, since it looks like you are using similar code in each of the different itemdrop slots. |
|
| Author: | William [ Fri May 16, 2008 7:13 pm ] |
| Post subject: | Re: lol, I have the worst drop system |
The thing is that I have .dropitemvalue1, .dropitemvalue2 etc. So that wouldn't work. |
|
| Author: | James [ Fri May 16, 2008 7:15 pm ] |
| Post subject: | Re: lol, I have the worst drop system |
Maybe send that piece of information to the code? Make it a variable in the function. |
|
| Author: | William [ Fri May 16, 2008 7:40 pm ] |
| Post subject: | Re: lol, I have the worst drop system |
I could make a function of it, but the code would still be just as long. |
|
| Author: | Asrrin29 [ Fri May 16, 2008 8:07 pm ] |
| Post subject: | Re: lol, I have the worst drop system |
make the npc drop attribute an array rather then 7 separate properties. |
|
| Author: | William [ Fri May 16, 2008 9:35 pm ] |
| Post subject: | Re: lol, I have the worst drop system |
Yes, that would solve it. But Im too lazy to do that now. I rather keep it long instead |
|
| Page 1 of 1 | All times are UTC |
| Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |
|