SphereCommunity
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)

Pages: 1 2 3 4


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

actdiff = <f_hitchance <src.uid>>

I am not using it right now and I replaced the script lol

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

ON=@HITTRY
LOCAL.actdiff = <f_hitchance <src.uid>>
actdiff=<dLOCAL.actdiff>

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)
    local.iDiff = 0 // just means it's very hard.
elseif (<local.iDiff>> 100)
    local.iDiff = 100 // just means it's very easy.
endif

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>>
    serv.b FINAL <dLOCAL.actdiff>
    actdiff=<dLOCAL.actdiff>
    serv.b ACTDIFF <actdiff>

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:

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.

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
ACTDIFF=10000 SUCCESS

Works for me.


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.