Mirage Engine
lol, I have the worst drop system - Printable Version

+- Mirage Engine (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: lol, I have the worst drop system (/showthread.php?tid=1764)



lol, I have the worst drop system - William - 16-05-2008

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



Re: lol, I have the worst drop system - William - 16-05-2008

The thing is that I have .dropitemvalue1, .dropitemvalue2 etc. So that wouldn't work.


Re: lol, I have the worst drop system - William - 16-05-2008

I could make a function of it, but the code would still be just as long.


Re: lol, I have the worst drop system - William - 16-05-2008

Yes, that would solve it. But Im too lazy to do that now. I rather keep it long instead Tongue