Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
lol, I have the worst drop system
#1
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
Reply
#2
The thing is that I have .dropitemvalue1, .dropitemvalue2 etc. So that wouldn't work.
Reply
#3
I could make a function of it, but the code would still be just as long.
Reply
#4
Yes, that would solve it. But Im too lazy to do that now. I rather keep it long instead Tongue
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)