Open Soulless-1 opened 3 years ago
Would you share the script of your bow? it's working for me...
Ok I think I found the problem. You get the message you can't reach that?
If yes, it's because the range of your bow seem to not be define. Force a new range and test
If it,s not this message, I need more info and need to be able to reproduce
yeah you get the message "you can't reach that" right!
I fixed it on my end by adding range to the young player bow.
it should still trigger @dclick if range is not set imo , but if range isnt set perhaps it should use the ID default as well.
Dclick do not trig because you cant use the object. Afaik, if you dclick an item on the ground ( a stone for example), if you cant reach it you will not have the dclick trigger.
I'm agree your new bow should have the same range than the id= in the itemdef. Dont know why range follow with i_bow and not from different bow
I added this though on=@create canmask=can_i_dcignoredist
so i should be able to dclick it from anywhere
can you send me the script of i_test_bow
This is with the range fix (range=2,10), i commented it out so you can see how it was before when it didnt work
defname=i_bow_young
defname2=i_bow_noob
id=i_bow
reqstr=0
value=0
weight=0
//range=2,10
tevents=+t_youngplayer_item
category=Custom
subsection=Newplayer Pack
description=Bow (youngplayer)
on=@create
HITPOINTS={50 60}
attr=attr_newbie
color=058b
It is weird, I don't find where archerybutte look for weapons range. It just check for distance betwen butte and archer. the issue got to be outside butte behaviour. seems that nolok fix something about this at 2018
The problem got to be here:
..... .... ...
I dont know what could be failing but that last conditional is the only way to get "can't reach that" message.
I think this code was left behind on a update. range could be given without check for type or range. "CChar::Use_Train_ArcheryButte" already checks items and distance and even better...
It looks for ranged weapons. so throwing weapons or other type can be used as well. Code looks prepared for throwing weapons, ieven the anim of the weapon going back to owner. But it is not possible with the type's checks.
Should be nice to know whats happening, I got some bad theories, but I think thoose checks should be removed and range should be given automaticaly. Then checks throwing and do any fix needed.
Something like this,
@Tolokio you are proposing the archery bute will work for a fix distance? You have a bow max range 5 and it will work at 10 tiles?
It's what you propose? It was like this before?
I saw archery butte only works at 5 or at 6 tiles of distance.,Your bow got more distance than that. The range dosnt really matter at that moment. And the type's check is blocking throwing that is already coded.
I did a pull request where Im going to update fixes for people who wants to test and accelerate proccess. I did not test anything yet but any should work at least xD
It seems pretty simple issue, seems like if you don't define Range it doesn't collect it from the base bow directly so your range seems "1" while looking .xshow range. Not every data can be collected ids itself, for example, value, weight, skillmake, resources etc doesn't collected from id itself if not defined.
I don't know what's going on for that but at the moment if you don't set RangeH value, bow range is infinite, but you can't attack Butte which is the only thing works correctly in this case.
Anyway I can put that my todo list and check it later on to see what's the issue. But for butte it works fine, you have to define Range for weapons if you want to have range honestly, it works like how it should be.
When you are using a bow with a different baseid than i_bow, say i_bow_test, and you attempt to use the archery butte @dclick won't trigger when you have it equipped. It does work for the standard i_bow though.