Revisión | 548db1262822821b60893b755cea7c42973cfe6f (tree) |
---|---|
Tiempo | 2017-03-18 19:35:04 |
Autor | SUEHIRO <supersuehiro@user...> |
Commiter | SUEHIRO |
superpauseのunhittableを修正
@@ -1508,6 +1508,7 @@ public &CharGlobalInfo | ||
1508 | 1508 | public short mver0 = 0, mver1 = 0; |
1509 | 1509 | public |.ProjContact pctyp; |
1510 | 1510 | public int pctime, pcid; |
1511 | + public int unhittable; | |
1511 | 1512 | new() |
1512 | 1513 | { |
1513 | 1514 | `clearPCTime(); |
@@ -1539,7 +1540,6 @@ float superposx = 0.0, superposy = 0.0; | ||
1539 | 1540 | int superfacing = 1; |
1540 | 1541 | int superdarken = 1; |
1541 | 1542 | float superp2defmul = 1.0; |
1542 | -int superunhittable = 1; | |
1543 | 1543 | /int envcol_time = 0; |
1544 | 1544 | /int envcol_under = 0; |
1545 | 1545 | int envcol_r = 255; |
@@ -2785,9 +2785,7 @@ public &Char | ||
2785 | 2785 | } |
2786 | 2786 | public bool attrCheck(&.Hitdef hit=, int cid, |.StTy styp) |
2787 | 2787 | { |
2788 | - if( | |
2789 | - .super > 0 && .superunhittable != 0 | |
2790 | - && `playerno == .superplayer) ret false; | |
2788 | + if(.cgi[`playerno].unhittable > 0) ret false; | |
2791 | 2789 | if(hit.chainid >= 0 && `stVal.hb.hitid != hit.chainid) ret false; |
2792 | 2790 | if(#`stVal.hb.by > 0 && `stVal.hb.by[-1].id == cid){ |
2793 | 2791 | if(hit.nochainid1 >= 0 && `stVal.hb.hitid == hit.nochainid1) ret false; |
@@ -3763,7 +3761,7 @@ public &Char | ||
3763 | 3761 | `sysivar[.iPAUSEMOVETIME]--; |
3764 | 3762 | } |
3765 | 3763 | } |
3766 | - void setSuperPauseTime(int pausetime, int movetime) | |
3764 | + void setSuperPauseTime(int pausetime, int movetime, bool unhittable) | |
3767 | 3765 | { |
3768 | 3766 | if( |
3769 | 3767 | !pausetime < .supertime || `playerno != `stVal.playerno |
@@ -3781,6 +3779,9 @@ public &Char | ||
3781 | 3779 | cond .super > 0 && `sysivar[.iSUPERMOVETIME] > 0: |
3782 | 3780 | `sysivar[.iSUPERMOVETIME]--; |
3783 | 3781 | } |
3782 | + if(unhittable){ | |
3783 | + .cgi[`playerno].unhittable = pausetime + (int)(pausetime > 1); | |
3784 | + } | |
3784 | 3785 | } |
3785 | 3786 | void setHitdefDefault(&.Hitdef h=, bool proj) |
3786 | 3787 | { |
@@ -6424,6 +6425,7 @@ public void PlayerList!&Char?::getHit() | ||
6424 | 6425 | public void PlayerList!&Char?::tick() |
6425 | 6426 | { |
6426 | 6427 | .com.gametime++; |
6428 | + .cgi:<-[void(gi=){if(gi.unhittable > 0) gi.unhittable--;}]; | |
6427 | 6429 | loop{ |
6428 | 6430 | *`top.self p = `top; |
6429 | 6431 | while; |
@@ -7214,6 +7216,7 @@ public void nextRound() | ||
7214 | 7216 | } |
7215 | 7217 | } |
7216 | 7218 | .cgi[c.playerno].clearPCTime(); |
7219 | + .cgi[c.playerno].unhittable = 0; | |
7217 | 7220 | }]; |
7218 | 7221 | continue: |
7219 | 7222 | i++; |
@@ -5359,12 +5359,10 @@ public &StateBuilder | ||
5359 | 5359 | ret `stateSec(param=,[bool(){ |
5360 | 5360 | `state.ctrlList[-1].task .= |
5361 | 5361 | .sndstart |
5362 | - .= "int t=30,mt=0;" | |
5362 | + .= "int t=30,mt=0;bool uh=true;" | |
5363 | 5363 | ".superanim=.fight~getAction(30);.superfacing=`facing;" |
5364 | 5364 | ".superposx=`sysfvar[.fX];.superposy=`sysfvar[.fY];" |
5365 | - ".superdarken=1;" | |
5366 | - ".superp2defmul=.cfg.Super_TargetDefenceMul;" | |
5367 | - ".superunhittable=1;" | |
5365 | + ".superdarken=1;.superp2defmul=.cfg.Super_TargetDefenceMul;" | |
5368 | 5366 | ".superpausebg=1;.superendcmdbuftime=0;"; |
5369 | 5367 | if(!`stateParam(param=, "time", [`paraF_t(data=){ |
5370 | 5368 | if( |
@@ -5454,8 +5452,7 @@ public &StateBuilder | ||
5454 | 5452 | if(!`stateParam(param=, "unhittable", [`paraF_t(data=){ |
5455 | 5453 | if( |
5456 | 5454 | !`fullExpression( |
5457 | - `state.ctrlList[-1].task=, data=, | |
5458 | - ".superunhittable=(int)(", ");", 3)) ret false; | |
5455 | + `state.ctrlList[-1].task=, data=, "uh=", ";", 3)) ret false; | |
5459 | 5456 | ret true; |
5460 | 5457 | }])) ret false; |
5461 | 5458 | if(!`stateParam(param=, "sound", [`paraF_t(data=){ |
@@ -5480,7 +5477,7 @@ public &StateBuilder | ||
5480 | 5477 | } |
5481 | 5478 | ret true; |
5482 | 5479 | }])) ret false; |
5483 | - `state.ctrlList[-1].task .= "`setSuperPauseTime(t,mt);" .= .sndend; | |
5480 | + `state.ctrlList[-1].task .= "`setSuperPauseTime(t,mt,uh);" .= .sndend; | |
5484 | 5481 | ret true; |
5485 | 5482 | }]); |
5486 | 5483 | } |