tx · 4SoAWkBc8nzkLZVga8zBKfE1SUbxDq8CDzeThHLUJjrt

3MuH9NgpoGaSQufEQLPRikXNS9PXhkhcLzp:  -0.01400000 Waves

2022.05.19 15:34 [2058557] smart account 3MuH9NgpoGaSQufEQLPRikXNS9PXhkhcLzp > SELF 0.00000000 Waves

{ "type": 13, "id": "4SoAWkBc8nzkLZVga8zBKfE1SUbxDq8CDzeThHLUJjrt", "fee": 1400000, "feeAssetId": null, "timestamp": 1652963692376, "version": 2, "chainId": 84, "sender": "3MuH9NgpoGaSQufEQLPRikXNS9PXhkhcLzp", "senderPublicKey": "74D2dSZ2CcYprVwEPr2GayHyp7wbLrppDt4SWXZcfT1z", "proofs": [ "32fRFQp7dsyJxSjJRLbPaRG7w11HfTmJXa2r8Tbyk4bP6qSj4HCK7uMJA5GrTckdhZQyJZwtUQFY6RSAHv2Sc8oq" ], "script": "base64:AAIFAAAAAAAAAAwIAhIDCgEBEgMKAQEAAAAhAAAAAAlzZXBhcmF0b3ICAAAAAV8AAAAAE2tleUxhc3RCYXR0bGVIZWlnaHQCAAAAEmxhc3RfYmF0dGxlX2hlaWdodAAAAAANa2V5SXRlbXNDb3VudAIAAAALaXRlbXNfY291bnQAAAAADGtleUl0ZW1Pd25lcgIAAAAKaXRlbV9vd25lcgAAAAAPa2V5SXRlbUNhdGVnb3J5AgAAAA1pdGVtX2NhdGVnb3J5AAAAAAtrZXlJdGVtVHlwZQIAAAAJaXRlbV90eXBlAAAAABJrZXlJdGVtRWZmZWN0VHlwZTECAAAAEml0ZW1fZWZmZWN0X3R5cGVfMQAAAAATa2V5SXRlbUVmZmVjdFZhbHVlMQIAAAATaXRlbV9lZmZlY3RfdmFsdWVfMQAAAAASa2V5SXRlbUVmZmVjdFR5cGUyAgAAABJpdGVtX2VmZmVjdF90eXBlXzIAAAAAE2tleUl0ZW1FZmZlY3RWYWx1ZTICAAAAE2l0ZW1fZWZmZWN0X3ZhbHVlXzIAAAAAEmtleUl0ZW1FZmZlY3RUeXBlMwIAAAASaXRlbV9lZmZlY3RfdHlwZV8zAAAAABNrZXlJdGVtRWZmZWN0VmFsdWUzAgAAABNpdGVtX2VmZmVjdF92YWx1ZV8zAAAAABJrZXlJdGVtRWZmZWN0VHlwZTQCAAAAEml0ZW1fZWZmZWN0X3R5cGVfNAAAAAATa2V5SXRlbUVmZmVjdFZhbHVlNAIAAAATaXRlbV9lZmZlY3RfdmFsdWVfNAAAAAAGZ292QXBwCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzTXl4Znd2YnVlVUJ5bllIZlFzdXROWFpOcU5vekdpTW5zRwAAAAAVa2V5RWNvc3lzdGVtQWRkcmVzc2VzAgAAABNlY29zeXN0ZW1fYWRkcmVzc2VzAAAAABNrZXlCYXR0bGVSZXN0UGVyaW9kAgAAABJiYXR0bGVfcmVzdF9wZXJpb2QAAAAAGWtleUJhdHRsZVdpbkNoYW5jZUhhcmRjYXACAAAAGWJhdHRsZV93aW5fY2hhbmNlX2hhcmRjYXAAAAAAHmtleUJhdHRsZVdpbkNoYW5jZUluY3JQZXJCbG9jawIAAAAgYmF0dGxlX3dpbl9jaGFuY2VfaW5jcl9wZXJfYmxvY2sAAAAAGWtleUJhdHRsZUxvb3RSYXJpdHlSYW5nZXMCAAAAGWJhdHRsZV9sb290X3Jhcml0eV9yYW5nZXMAAAAAIGtleUNoYXJzTmF0dXJhbEJhdHRsZUJvbnVzUmFuZ2VzAgAAACFjaGFyc19uYXR1cmFsX2JhdHRsZV9ib251c19yYW5nZXMAAAAAEmtleUl0ZW1zQ2F0ZWdvcmllcwIAAAAQaXRlbXNfY2F0ZWdvcmllcwAAAAATa2V5SXRlbXNUeXBlc1BlckNhdAIAAAATaXRlbXNfdHlwZXNfcGVyX2NhdAAAAAAPa2V5SXRlbXNFZmZlY3RzAgAAAA1pdGVtc19lZmZlY3RzAAAAABhrZXlpdGVtc0VmZmVjdHNNYXhSYW5nZXMCAAAAF2l0ZW1zX2VmZmVjdHNfbWF4X3JhbmdlAAAAAAhjaGFyc0FwcAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQIAAAAjM05BM0xSU2lnazZrbkxaMTZ1VHpjZExOb3cyRVFadFhUYUoAAAAACGtleU93bmVyAgAAAAVvd25lcgAAAAAVa2V5TmF0dXJhbEJhdHRsZUJvbnVzAgAAABRuYXR1cmFsX2JhdHRsZV9ib251cwAAAAAIbGFuZHNBcHAJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAECAAAAIzNNeGlKTHJZNlFhNWJTWXh4U0ZIU0c1YlZWMm41OXgxTUduAQAAAAxpbnZva2VDaGVja3MAAAABAAAACmNhbGxlckFkZHIDCQEAAAACIT0AAAACCQAEHgAAAAEFAAAABmdvdkFwcAcJAAACAAAAAQIAAAAXR292ZXJuaW5nIGFwcCBub3QgcmVhZHkEAAAAEmVjb3N5c3RlbUFkZHJlc3NlcwkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAGZ292QXBwBQAAABVrZXlFY29zeXN0ZW1BZGRyZXNzZXMDCQEAAAACIT0AAAACCQEAAAAIY29udGFpbnMAAAACBQAAABJlY29zeXN0ZW1BZGRyZXNzZXMJAAQlAAAAAQUAAAAKY2FsbGVyQWRkcgcJAAACAAAAAQIAAAANQWNjZXNzIGRlbmllZAYBAAAADmVjb3N5c3RlbUNoZWNrAAAAAQAAAAZjYWxsZXIDCQEA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AAAAAgkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAEGl0ZW1SYXJpdHlSYW5nZXMAAAAAAAAAAAIFAAAACml0ZW1SYXJpdHkAAAAAAAAAAAMAAAAAAAAAAAQEAAAAEml0ZW1FZmZlY3RzQW1vdW50cwkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAGZ292QXBwBQAAAA9rZXlJdGVtc0VmZmVjdHMEAAAAFGl0ZW1FZmZlY3RzTWF4UmFuZ2VzCQAEtQAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABmdvdkFwcAUAAAAYa2V5aXRlbXNFZmZlY3RzTWF4UmFuZ2VzBQAAAAlzZXBhcmF0b3IEAAAAD2l0ZW1FZmZlY3RUeXBlMQkBAAAAB3JhbmRJbnQAAAAEAAAAAAAAAAABBQAAABJpdGVtRWZmZWN0c0Ftb3VudHMFAAAABHR4SWQAAAAAAAAAAAQEAAAAEGl0ZW1FZmZlY3RWYWx1ZTEJAQAAAAdyYW5kSW50AAAABAAAAAAAAAAAAQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAFGl0ZW1FZmZlY3RzTWF4UmFuZ2VzBQAAAA9pdGVtRWZmZWN0VHlwZTEFAAAABHR4SWQAAAAAAAAAAAUEAAAAD2l0ZW1FZmZlY3RUeXBlMgMJAABmAAAAAgUAAAAPaXRlbUVmZmVjdFNsb3RzAAAAAAAAAAABCQEAAAAHcmFuZEludAAAAAQAAAAAAAAAAAEFAAAAEml0ZW1FZmZlY3RzQW1vdW50cwUAAAAEdHhJZAAAAAAAAAAABgAAAAAAAAAAAAQAAAAQaXRlbUVmZmVjdFZhbHVlMgMJAABmAAAAAgUAAAAPaXRlbUVmZmVjdFNsb3RzAAAAAAAAAAABCQEAAAAHcmFuZEludAAAAAQAAAAAAAAAAAEJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAABRpdGVtRWZmZWN0c01heFJhbmdlcwUAAAAPaXRlbUVmZmVjdFR5cGUyBQAAAAR0eElkAAAAAAAAAAAHAAAAAAAAAAAABAAAAA9pdGVtRWZmZWN0VHlwZTMDCQAAZgAAAAIFAAAAD2l0ZW1FZmZlY3RTbG90cwAAAAAAAAAAAgkBAAAAB3JhbmRJbnQAAAAEAAAAAAAAAAABBQAAABJpdGVtRWZmZWN0c0Ftb3VudHMFAAAABHR4SWQAAAAAAAAAAAgAAAAAAAAAAAAEAAAAEGl0ZW1FZmZlY3RWYWx1ZTMDCQAAZgAAAAIFAAAAD2l0ZW1FZmZlY3RTbG90cwAAAAAAAAAAAgkBAAAAB3JhbmRJbnQAAAAEAAAAAAAAAAABCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAUaXRlbUVmZmVjdHNNYXhSYW5nZXMFAAAAD2l0ZW1FZmZlY3RUeXBlMwUAAAAEdHhJZAAAAAAAAAAACQAAAAAAAAAAAAQAAAAPaXRlbUVmZmVjdFR5cGU0AwkAAGYAAAACBQAAAA9pdGVtRWZmZWN0U2xvdHMAAAAAAAAAAAMJAQAAAAdyYW5kSW50AAAABAAAAAAAAAAAAQUAAAASaXRlbUVmZmVjdHNBbW91bnRzBQAAAAR0eElkAAAAAAAAAAAKAAAAAAAAAAAABAAAABBpdGVtRWZmZWN0VmFsdWU0AwkAAGYAAAACBQAAAA9pdGVtRWZmZWN0U2xvdHMAAAAAAAAAAAMJAQAAAAdyYW5kSW50AAAABAAAAAAAAAAAAQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAFGl0ZW1FZmZlY3RzTWF4UmFuZ2VzBQAAAA9pdGVtRWZmZWN0VHlwZTQFAAAABHR4SWQAAAAAAAAAAAsAAAAAAAAAAAAEAAAABml0ZW1JZAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAA1rZXlJdGVtc0NvdW50AAAAAAAAAAABCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAE2tleUxhc3RCYXR0bGVIZWlnaHQFAAAABmNoYXJJZAUAAAAGaGVpZ2h0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA1rZXlJdGVtc0NvdW50CQAAZAAAAAIFAAAABml0ZW1JZAAAAAAAAAAAAQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAADGtleUl0ZW1Pd25lcgUAAAAGaXRlbUlkBQAAAApjYWxsZXJBZGRyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAD2tleUl0ZW1DYXRlZ29yeQUAAAAGaXRlbUlkBQAAAAdpdGVtQ2F0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAC2tleUl0ZW1UeXBlBQAAAAZpdGVtSWQFAAAACGl0ZW1UeXBlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAEmtleUl0ZW1FZmZlY3RUeXBlMQUAAAAGaXRlbUlkBQAAAA9pdGVtRWZmZWN0VHlwZTEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAATa2V5SXRlbUVmZmVjdFZhbHVlMQUAAAAGaXRlbUlkBQAAABBpdGVtRWZmZWN0VmFsdWUxCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAEmtleUl0ZW1FZmZlY3RUeXBlMgUAAAAGaXRlbUlkBQAAAA9pdGVtRWZmZWN0VHlwZTIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAATa2V5SXRlbUVmZmVjdFZhbHVlMgUAAAAGaXRlbUlkBQAAABBpdGVtRWZmZWN0VmFsdWUyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAEmtleUl0ZW1FZmZlY3RUeXBlMwUAAAAGaXRlbUlkBQAAAA9pdGVtRWZmZWN0VHlwZTMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAATa2V5SXRlbUVmZmVjdFZhbHVlMwUAAAAGaXRlbUlkBQAAABBpdGVtRWZmZWN0VmFsdWUzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAEmtleUl0ZW1FZmZlY3RUeXBlNAUAAAAGaXRlbUlkBQAAAA9pdGVtRWZmZWN0VHlwZTQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAATa2V5SXRlbUVmZmVjdFZhbHVlNAUAAAAGaXRlbUlkBQAAABBpdGVtRWZmZWN0VmFsdWU0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAICAAAACXdpbkNoYW5jZQUAAAAGaXRlbUlkBQAAAAl3aW5DaGFuY2UJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgIAAAAHcmFuZE5icgUAAAAGaXRlbUlkBQAAAAdyYW5kTmJyBQAAAANuaWwAAAABaQEAAAAWdXBkYXRlTGFzdEJhdHRsZUhlaWdodAAAAAEAAAAGY2hhcklkAwkBAAAAAiE9AAAAAgkBAAAADmVjb3N5c3RlbUNoZWNrAAAAAQgFAAAAAWkAAAAGY2FsbGVyBgkBAAAABXRocm93AAAAAAkABRQAAAACCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAE2tleUxhc3RCYXR0bGVIZWlnaHQFAAAABmNoYXJJZAUAAAAGaGVpZ2h0BQAAAANuaWwFAAAABmhlaWdodAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5VNpz6w==", "height": 2058557, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CxZnjP1gyGM8PUjk69DEtgGBYw5Hu2HqDGLGCXgMppei Next: Awg9M16HtAqjmxTmc2RF53D9goPNGe49u7nDY3k6yC6Y Diff:
OldNewDifferences
107107 then throw("Still resting")
108108 else {
109109 let winChance = min([((getIntegerValue(govApp, keyBattleWinChanceIncrPerBlock) * (height - battleReadyHeight)) + (getIntegerValue(charsApp, with(keyNaturalBattleBonus, charId)) * 100)), getIntegerValue(govApp, keyBattleWinChanceHardcap)])
110- if ((winChance > randInt(0, 10000, txId, 0)))
111- then [IntegerEntry(with(keyLastBattleHeight, charId), height), IntegerEntry("test", winChance)]
110+ let randNbr = randInt(0, 1000000, txId, 0)
111+ if ((winChance > randNbr))
112+ then [IntegerEntry(with(keyLastBattleHeight, charId), height), IntegerEntry("winChance", winChance), IntegerEntry("randNbr", randNbr)]
112113 else {
113114 let itemCat = randInt(1, getIntegerValue(govApp, keyItemsCategories), txId, 1)
114115 let itemCatTypesAmount = parseIntValue(split(getStringValue(govApp, keyItemsTypesPerCat), separator)[(itemCat - 1)])
145146 then randInt(1, parseIntValue(itemEffectsMaxRanges[itemEffectType4]), txId, 11)
146147 else 0
147148 let itemId = valueOrElse(getInteger(this, keyItemsCount), 1)
148-[IntegerEntry(with(keyLastBattleHeight, charId), height), IntegerEntry(keyItemsCount, (itemId + 1)), StringEntry(with(keyItemOwner, itemId), callerAddr), IntegerEntry(with(keyItemCategory, itemId), itemCat), IntegerEntry(with(keyItemType, itemId), itemType), IntegerEntry(with(keyItemEffectType1, itemId), itemEffectType1), IntegerEntry(with(keyItemEffectValue1, itemId), itemEffectValue1), IntegerEntry(with(keyItemEffectType2, itemId), itemEffectType2), IntegerEntry(with(keyItemEffectValue2, itemId), itemEffectValue2), IntegerEntry(with(keyItemEffectType3, itemId), itemEffectType3), IntegerEntry(with(keyItemEffectValue3, itemId), itemEffectValue3), IntegerEntry(with(keyItemEffectType4, itemId), itemEffectType4), IntegerEntry(with(keyItemEffectValue4, itemId), itemEffectValue4), IntegerEntry("test", winChance)]
149+[IntegerEntry(with(keyLastBattleHeight, charId), height), IntegerEntry(keyItemsCount, (itemId + 1)), StringEntry(with(keyItemOwner, itemId), callerAddr), IntegerEntry(with(keyItemCategory, itemId), itemCat), IntegerEntry(with(keyItemType, itemId), itemType), IntegerEntry(with(keyItemEffectType1, itemId), itemEffectType1), IntegerEntry(with(keyItemEffectValue1, itemId), itemEffectValue1), IntegerEntry(with(keyItemEffectType2, itemId), itemEffectType2), IntegerEntry(with(keyItemEffectValue2, itemId), itemEffectValue2), IntegerEntry(with(keyItemEffectType3, itemId), itemEffectType3), IntegerEntry(with(keyItemEffectValue3, itemId), itemEffectValue3), IntegerEntry(with(keyItemEffectType4, itemId), itemEffectType4), IntegerEntry(with(keyItemEffectValue4, itemId), itemEffectValue4), IntegerEntry(with("winChance", itemId), winChance), IntegerEntry(with("randNbr", itemId), randNbr)]
149150 }
150151 }
151152 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let separator = "_"
55
66 let keyLastBattleHeight = "last_battle_height"
77
88 let keyItemsCount = "items_count"
99
1010 let keyItemOwner = "item_owner"
1111
1212 let keyItemCategory = "item_category"
1313
1414 let keyItemType = "item_type"
1515
1616 let keyItemEffectType1 = "item_effect_type_1"
1717
1818 let keyItemEffectValue1 = "item_effect_value_1"
1919
2020 let keyItemEffectType2 = "item_effect_type_2"
2121
2222 let keyItemEffectValue2 = "item_effect_value_2"
2323
2424 let keyItemEffectType3 = "item_effect_type_3"
2525
2626 let keyItemEffectValue3 = "item_effect_value_3"
2727
2828 let keyItemEffectType4 = "item_effect_type_4"
2929
3030 let keyItemEffectValue4 = "item_effect_value_4"
3131
3232 let govApp = addressFromStringValue("3MyxfwvbueUBynYHfQsutNXZNqNozGiMnsG")
3333
3434 let keyEcosystemAddresses = "ecosystem_addresses"
3535
3636 let keyBattleRestPeriod = "battle_rest_period"
3737
3838 let keyBattleWinChanceHardcap = "battle_win_chance_hardcap"
3939
4040 let keyBattleWinChanceIncrPerBlock = "battle_win_chance_incr_per_block"
4141
4242 let keyBattleLootRarityRanges = "battle_loot_rarity_ranges"
4343
4444 let keyCharsNaturalBattleBonusRanges = "chars_natural_battle_bonus_ranges"
4545
4646 let keyItemsCategories = "items_categories"
4747
4848 let keyItemsTypesPerCat = "items_types_per_cat"
4949
5050 let keyItemsEffects = "items_effects"
5151
5252 let keyitemsEffectsMaxRanges = "items_effects_max_range"
5353
5454 let charsApp = addressFromStringValue("3NA3LRSigk6knLZ16uTzcdLNow2EQZtXTaJ")
5555
5656 let keyOwner = "owner"
5757
5858 let keyNaturalBattleBonus = "natural_battle_bonus"
5959
6060 let landsApp = addressFromStringValue("3MxiJLrY6Qa5bSYxxSFHSG5bVV2n59x1MGn")
6161
6262 func invokeChecks (callerAddr) = if ((isDataStorageUntouched(govApp) != false))
6363 then throw("Governing app not ready")
6464 else {
6565 let ecosystemAddresses = getStringValue(govApp, keyEcosystemAddresses)
6666 if ((contains(ecosystemAddresses, toString(callerAddr)) != false))
6767 then throw("Access denied")
6868 else true
6969 }
7070
7171
7272 func ecosystemCheck (caller) = if ((contains(getStringValue(govApp, keyEcosystemAddresses), toBase58String(caller.bytes)) != true))
7373 then throw("Access denied")
7474 else true
7575
7676
7777 func with (a,b) = {
7878 let c = match b {
7979 case isInt: Int =>
8080 toString(isInt)
8181 case isStr: String =>
8282 isStr
8383 case _ =>
8484 throw("Matching issue in with function")
8585 }
8686 ((c + separator) + a)
8787 }
8888
8989
9090 func randInt (min,max,txId,nonce) = {
9191 let hash = value(sha256_16Kb(((value(value(blockInfoByHeight(height)).vrf) + txId) + toBytes(nonce))))
9292 value(((value(toInt(hash)) % ((max - min) + 1)) + min))
9393 }
9494
9595
9696 @Callable(i)
9797 func battle (charId) = if ((invokeChecks(i.caller) != true))
9898 then throw()
9999 else {
100100 let callerAddr = toBase58String(i.caller.bytes)
101101 let txId = i.transactionId
102102 if ((getStringValue(charsApp, with(keyOwner, charId)) != callerAddr))
103103 then throw("Caller doesn't own this char")
104104 else {
105105 let battleReadyHeight = (getIntegerValue(this, with(keyLastBattleHeight, charId)) + getIntegerValue(govApp, keyBattleRestPeriod))
106106 if ((battleReadyHeight > height))
107107 then throw("Still resting")
108108 else {
109109 let winChance = min([((getIntegerValue(govApp, keyBattleWinChanceIncrPerBlock) * (height - battleReadyHeight)) + (getIntegerValue(charsApp, with(keyNaturalBattleBonus, charId)) * 100)), getIntegerValue(govApp, keyBattleWinChanceHardcap)])
110- if ((winChance > randInt(0, 10000, txId, 0)))
111- then [IntegerEntry(with(keyLastBattleHeight, charId), height), IntegerEntry("test", winChance)]
110+ let randNbr = randInt(0, 1000000, txId, 0)
111+ if ((winChance > randNbr))
112+ then [IntegerEntry(with(keyLastBattleHeight, charId), height), IntegerEntry("winChance", winChance), IntegerEntry("randNbr", randNbr)]
112113 else {
113114 let itemCat = randInt(1, getIntegerValue(govApp, keyItemsCategories), txId, 1)
114115 let itemCatTypesAmount = parseIntValue(split(getStringValue(govApp, keyItemsTypesPerCat), separator)[(itemCat - 1)])
115116 let itemType = randInt(1, itemCatTypesAmount, txId, 2)
116117 let itemRarityRanges = split(getStringValue(govApp, keyBattleLootRarityRanges), separator)
117118 let itemRarity = randInt(0, 10000, txId, 3)
118119 let itemEffectSlots = if ((parseIntValue(itemRarityRanges[0]) >= itemRarity))
119120 then 1
120121 else if ((parseIntValue(itemRarityRanges[1]) >= itemRarity))
121122 then 2
122123 else if ((parseIntValue(itemRarityRanges[2]) >= itemRarity))
123124 then 3
124125 else 4
125126 let itemEffectsAmounts = getIntegerValue(govApp, keyItemsEffects)
126127 let itemEffectsMaxRanges = split(getStringValue(govApp, keyitemsEffectsMaxRanges), separator)
127128 let itemEffectType1 = randInt(1, itemEffectsAmounts, txId, 4)
128129 let itemEffectValue1 = randInt(1, parseIntValue(itemEffectsMaxRanges[itemEffectType1]), txId, 5)
129130 let itemEffectType2 = if ((itemEffectSlots > 1))
130131 then randInt(1, itemEffectsAmounts, txId, 6)
131132 else 0
132133 let itemEffectValue2 = if ((itemEffectSlots > 1))
133134 then randInt(1, parseIntValue(itemEffectsMaxRanges[itemEffectType2]), txId, 7)
134135 else 0
135136 let itemEffectType3 = if ((itemEffectSlots > 2))
136137 then randInt(1, itemEffectsAmounts, txId, 8)
137138 else 0
138139 let itemEffectValue3 = if ((itemEffectSlots > 2))
139140 then randInt(1, parseIntValue(itemEffectsMaxRanges[itemEffectType3]), txId, 9)
140141 else 0
141142 let itemEffectType4 = if ((itemEffectSlots > 3))
142143 then randInt(1, itemEffectsAmounts, txId, 10)
143144 else 0
144145 let itemEffectValue4 = if ((itemEffectSlots > 3))
145146 then randInt(1, parseIntValue(itemEffectsMaxRanges[itemEffectType4]), txId, 11)
146147 else 0
147148 let itemId = valueOrElse(getInteger(this, keyItemsCount), 1)
148-[IntegerEntry(with(keyLastBattleHeight, charId), height), IntegerEntry(keyItemsCount, (itemId + 1)), StringEntry(with(keyItemOwner, itemId), callerAddr), IntegerEntry(with(keyItemCategory, itemId), itemCat), IntegerEntry(with(keyItemType, itemId), itemType), IntegerEntry(with(keyItemEffectType1, itemId), itemEffectType1), IntegerEntry(with(keyItemEffectValue1, itemId), itemEffectValue1), IntegerEntry(with(keyItemEffectType2, itemId), itemEffectType2), IntegerEntry(with(keyItemEffectValue2, itemId), itemEffectValue2), IntegerEntry(with(keyItemEffectType3, itemId), itemEffectType3), IntegerEntry(with(keyItemEffectValue3, itemId), itemEffectValue3), IntegerEntry(with(keyItemEffectType4, itemId), itemEffectType4), IntegerEntry(with(keyItemEffectValue4, itemId), itemEffectValue4), IntegerEntry("test", winChance)]
149+[IntegerEntry(with(keyLastBattleHeight, charId), height), IntegerEntry(keyItemsCount, (itemId + 1)), StringEntry(with(keyItemOwner, itemId), callerAddr), IntegerEntry(with(keyItemCategory, itemId), itemCat), IntegerEntry(with(keyItemType, itemId), itemType), IntegerEntry(with(keyItemEffectType1, itemId), itemEffectType1), IntegerEntry(with(keyItemEffectValue1, itemId), itemEffectValue1), IntegerEntry(with(keyItemEffectType2, itemId), itemEffectType2), IntegerEntry(with(keyItemEffectValue2, itemId), itemEffectValue2), IntegerEntry(with(keyItemEffectType3, itemId), itemEffectType3), IntegerEntry(with(keyItemEffectValue3, itemId), itemEffectValue3), IntegerEntry(with(keyItemEffectType4, itemId), itemEffectType4), IntegerEntry(with(keyItemEffectValue4, itemId), itemEffectValue4), IntegerEntry(with("winChance", itemId), winChance), IntegerEntry(with("randNbr", itemId), randNbr)]
149150 }
150151 }
151152 }
152153 }
153154
154155
155156
156157 @Callable(i)
157158 func updateLastBattleHeight (charId) = if ((ecosystemCheck(i.caller) != true))
158159 then throw()
159160 else $Tuple2([IntegerEntry(with(keyLastBattleHeight, charId), height)], height)
160161
161162
162163 @Verifier(tx)
163164 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
164165

github/deemru/w8io/169f3d6 
42.53 ms