Gold Piles in TitanFist Mine can't tell dif chars apart
Moderators: Moderator, Quality Control, Developer, DM
-
- Recognized Donor
- Posts: 331
- Joined: Mon Feb 11, 2019 3:04 am
Re: Gold Piles in TitanFist Mine can't tell dif chars apart
Then does the script that handles the piles in Kros prevent that exploit? If so, just change all gold piles to that one, because that one worked the same as the chests.
- Moridin
- Custom Content
- Posts: 583
- Joined: Thu Oct 18, 2012 10:14 pm
- Location: SK, Canada
Re: Gold Piles in TitanFist Mine can't tell dif chars apart
All the piles have the same script.Flatted Fifth wrote: ↑Fri May 20, 2022 8:45 pm Then does the script that handles the piles in Kros prevent that exploit? If so, just change all gold piles to that one, because that one worked the same as the chests.
-
- Quality Control
- Posts: 1218
- Joined: Thu Jul 18, 2019 8:15 pm
Re: Gold Piles in TitanFist Mine can't tell dif chars apart
No they do not prevent the exploit. They are just flagged wrong if that’s the case. I have not checked it myself. I will try tonight.Flatted Fifth wrote: ↑Fri May 20, 2022 8:45 pm Then does the script that handles the piles in Kros prevent that exploit? If so, just change all gold piles to that one, because that one worked the same as the chests.
-
- Recognized Donor
- Posts: 331
- Joined: Mon Feb 11, 2019 3:04 am
Re: Gold Piles in TitanFist Mine can't tell dif chars apart
That cannot be true unless the timer is way shorter than the chest's 6 hours because I have never encountered this anywhere but Titanfist and Blackrock. Kros, Hilltop Ruins, Goblin Caves, everywhere else I can go with multiple characters consecutively and each character is treated individually for loot.Moridin wrote: ↑Fri May 20, 2022 8:46 pmAll the piles have the same script.Flatted Fifth wrote: ↑Fri May 20, 2022 8:45 pm Then does the script that handles the piles in Kros prevent that exploit? If so, just change all gold piles to that one, because that one worked the same as the chests.
I don't know what this exploit is and I certainly don't expect to be told, but can't you just store the data on the character's token as to whether or not a specific gold pile at a specific area + coordinate has been looted or not, and if so, when?
-
- Quality Control
- Posts: 1218
- Joined: Thu Jul 18, 2019 8:15 pm
Re: Gold Piles in TitanFist Mine can't tell dif chars apart
IIRC gold pile timers are quite a bit shorter.Flatted Fifth wrote: ↑Fri May 20, 2022 9:40 pmThat cannot be true unless the timer is way shorter than the chest's 6 hours because I have never encountered this anywhere but Titanfist and Blackrock. Kros, Hilltop Ruins, Goblin Caves, everywhere else I can go with multiple characters consecutively and each character is treated individually for loot.Moridin wrote: ↑Fri May 20, 2022 8:46 pmAll the piles have the same script.Flatted Fifth wrote: ↑Fri May 20, 2022 8:45 pm Then does the script that handles the piles in Kros prevent that exploit? If so, just change all gold piles to that one, because that one worked the same as the chests.
I don't know what this exploit is and I certainly don't expect to be told, but can't you just store the data on the character's token as to whether or not a specific gold pile at a specific area + coordinate has been looted or not, and if so, when?
Edit: just tested Kro’s back to back with two different characters. The second time I hit the gold piles (first time on character #2) I got the message he had looted there before. Even though he had not.
So I think the shorter timer was throwing you.
-
- Recognized Donor
- Posts: 331
- Joined: Mon Feb 11, 2019 3:04 am
Re: Gold Piles in TitanFist Mine can't tell dif chars apart
Good to know! Thank you SO MUCH for testing that and getting back to me. I really appreciate it.Tanlaus wrote: ↑Fri May 20, 2022 10:13 pmIIRC gold pile timers are quite a bit shorter.Flatted Fifth wrote: ↑Fri May 20, 2022 9:40 pmThat cannot be true unless the timer is way shorter than the chest's 6 hours because I have never encountered this anywhere but Titanfist and Blackrock. Kros, Hilltop Ruins, Goblin Caves, everywhere else I can go with multiple characters consecutively and each character is treated individually for loot.
I don't know what this exploit is and I certainly don't expect to be told, but can't you just store the data on the character's token as to whether or not a specific gold pile at a specific area + coordinate has been looted or not, and if so, when?
Edit: just tested Kro’s back to back with two different characters. The second time I hit the gold piles (first time on character #2) I got the message he had looted there before. Even though he had not.
So I think the shorter timer was throwing you.
-
- Recognized Donor
- Posts: 331
- Joined: Mon Feb 11, 2019 3:04 am
Re: Gold Piles in TitanFist Mine can't tell dif chars apart
There really ought to be a better way to deal with whatever exploit you mean, though. I know in NWN 1 there was a way to create and store variables in non-droppable items like the dmfi tool or status token. Is that a thing in nwn 2? I don't know nw script, sorry, but in Kotlin the logic would be something like the following. I have NO idea if this is even remotely helpful or relevant, but I hope this demonstrates the sort of logic flow I mean. Of course, if you can't create and store variables inside of a character or a "plot" item a character carries, then this was a waste of my time so don't waste yours by reading it.
Code: Select all
// idea is to have a variable of type integer stored in the character's token. name of variable is the location of the gold pile
// and the value assigned to the variable be the timestamp, in minutes, of the last time that character clicked on it.
// not looted, mind, click on it.
var clicked: Boolean = true
val mChar = (return of whatever function you would use to get the index of stored variables in the current character's token)
val mArea = (return String of whatever function you would use to get the area name)
val mCoor = (return String of whatever function you would use to get the coordinates of the pile being clicked on)
val mPile = mArea + mCoor // note that here I mean join two strings together, not math
val mTime = (return integer of whatever function you use to get the current timestamp, in minutes)
var mMessage: String = ""
var mReset: Int = 0
if (mChar.contains(mPile){ // if a variable name of area + coordinates of this pile already exists in the stored variables
if (mChar.mPile < (mTime - 360){
clicked = false
}else{
mReset = (mChar.mPile + 360) - mTime
mMessage = "You have already had your fortune here recently, reset in ${mReset}"
}
}else{ // if the variable name doesn't exist, then character hasn't been here before and create variable with the current timestamp
clicked = false
(whatever function you would use to store a variable in the character token, variable name being the area+ coordinates,
variable value being the current time stamp)
}
if (clicked == false){
(whatever function to give gold amount to character)
}else{
(display mMessage)
}
-
- QC Coordinator
- Posts: 1921
- Joined: Sat Jul 28, 2018 8:51 am
Re: Gold Piles in TitanFist Mine can't tell dif chars apart
Hi there. Honestly, i know of the way to make it per char (after all, our chest scripts use it), but it'd require a total rework of gold pile script and delving deep into how chests script works. I know Dae was working on UUID, so if this ever comes to live, it would make things super simple to tie to PC directly, not some CDkey or other mockup to preserve "uniqueness of PC".Flatted Fifth wrote: ↑Sun May 22, 2022 1:09 pm There really ought to be a better way to deal with whatever exploit you mean, though. I know in NWN 1 there was a way to create and store variables in non-droppable items like the dmfi tool or status token. Is that a thing in nwn 2? I don't know nw script, sorry, but in Kotlin the logic would be something like the following. I have NO idea if this is even remotely helpful or relevant, but I hope this demonstrates the sort of logic flow I mean. Of course, if you can't create and store variables inside of a character or a "plot" item a character carries, then this was a waste of my time so don't waste yours by reading it.
Code: Select all
// idea is to have a variable of type integer stored in the character's token. name of variable is the location of the gold pile // and the value assigned to the variable be the timestamp, in minutes, of the last time that character clicked on it. // not looted, mind, click on it. var clicked: Boolean = true val mChar = (return of whatever function you would use to get the index of stored variables in the current character's token) val mArea = (return String of whatever function you would use to get the area name) val mCoor = (return String of whatever function you would use to get the coordinates of the pile being clicked on) val mPile = mArea + mCoor // note that here I mean join two strings together, not math val mTime = (return integer of whatever function you use to get the current timestamp, in minutes) var mMessage: String = "" var mReset: Int = 0 if (mChar.contains(mPile){ // if a variable name of area + coordinates of this pile already exists in the stored variables if (mChar.mPile < (mTime - 360){ clicked = false }else{ mReset = (mChar.mPile + 360) - mTime mMessage = "You have already had your fortune here recently, reset in ${mReset}" } }else{ // if the variable name doesn't exist, then character hasn't been here before and create variable with the current timestamp clicked = false (whatever function you would use to store a variable in the character token, variable name being the area+ coordinates, variable value being the current time stamp) } if (clicked == false){ (whatever function to give gold amount to character) }else{ (display mMessage) }
So, while your idea is relevant and logical, i'd honestly wait for UUID project being finished or abandoned before doing any changes to it.