![]() |
About the new combat system - Printable Version +- SphereCommunity (https://forum.spherecommunity.net) +-- Forum: Sphere 0.56d (/Forum-Sphere-0-56d) +--- Forum: Script Help (/Forum-Script-Help) +--- Thread: About the new combat system (/Thread-About-the-new-combat-system) |
RE: About the new combat system - Lazarus - 07-24-2015 04:42 AM (07-24-2015 04:39 AM)Rizz Wrote: Should be if I can remember well tried. Working but still hitting almost everytime with 0 sword 0 tactics to a another player with 100 tactics o.o RE: About the new combat system - Rizz - 07-24-2015 04:46 AM Sorry, Try this ON=@HITTRY LOCAL.actdiff = <f_hitchance <src.uid>> actdiff=<dLOCAL.actdiff> RE: About the new combat system - Lazarus - 07-24-2015 04:51 AM (07-24-2015 04:46 AM)Rizz Wrote: Sorry, Try this Still working. The problem is not the call function. The calculations are really wrong. I get a negative number everytime (that goes to 0) http://fotos.subefotos.com/c64c674bf990f909b1bdc18721753eeeo.png The problem here is that actdiff = 0 is NOT fail in hittry! RE: About the new combat system - Rizz - 07-24-2015 05:14 AM Going below 0 is normal since you have lower skills, that's why there is this part of the code Code: if (<local.iDiff> < 0) If you add another line like serv.b local.iDiff <dlocal.iDiff> after, you'll see your value set to 0. Anyway I found two problems: 1) PLAYER A (allskills 1000), PLAYER B (allskills 0) -> chance to hit 20 2) PLAYER A (allskills 1000), PLAYER B (allskills 0) -> chance to hit 10 3) Code: LOCAL.actdiff = <f_hitchance <src.uid>> FINAL != ACTDIFF and I don't know why RE: About the new combat system - Lazarus - 07-24-2015 05:17 AM I know. But actdiff 0 don't miss the hit o.O I tried too with on=@start in swordsmanship actdiff = 0 still hit them everytime. ---- That's because the RANDOM return <r<local.iDiff>> //always need to have some chance. Now I have do 2 things about this: 1º //local.iDiff /= 10 comented this line (WHY /10? IF WE NEED 0 TO 100 THIS IS USELESS AND A PROBLEM HERE!) [trying something like 2 but still weird] 2º trying to get WHY the actdiff = 0 is doing NOTHING (you will still hit if the actdiff is 0) o.O RE: About the new combat system - Rizz - 07-24-2015 05:35 AM Change the code under @hittry with this one: IF (<R100> < <f_hitchance <src.uid>> ) ACTDIFF=-10000 ELSE ACTDIFF=10000 ENDIF I don't like the solution but it works. It gives you 10 to 20% of fail chance. I need to work on this code and I don't have time now. RE: About the new combat system - Lazarus - 07-24-2015 05:41 AM (07-24-2015 05:35 AM)Rizz Wrote: Change the code under @hittry with this one: The same: Actdiff = 0 not changing anything in Sphere hahaa I'm frustrated now. I loved the old sphere combat system. RE: About the new combat system - Rizz - 07-24-2015 05:53 AM ACTDIFF=-10000 FAIL ACTDIFF=10000 SUCCESS Works for me. RE: About the new combat system - Lazarus - 07-24-2015 05:57 AM (07-24-2015 05:53 AM)Rizz Wrote: ACTDIFF=-10000 FAIL Yes. Negative numbers are FAIL and + are SUCCESS The problem is that IF (<R100> < <f_hitchance <src.uid>> ) this is not changing anything about. Everytime hits (10000) even with your original formula that you posted in page 2. You changed something? RE: About the new combat system - Rizz - 07-24-2015 10:45 AM I was running various code and I finally decided to create and use my own one taking just some idea from the original code posted by XuN. |