📄 samkokgame.java
字号:
case 52: // '4'
case 53: // '5'
targetH = 16;
break;
}
int targetY = monsterY[j] - targetH;
if((!bossStage || bossLifeOn <= 0) && chon(shotX, shotY, shotW, shotH, targetX, targetY, targetW, targetH))
{
if(monsterT[i] >= 51)
bossHP -= 4;
else
monsterHP[j] -= 4;
addEffect(playerShotX[i], playerShotY[i] - 16, 1);
setMonsterAttack(j);
playerShotT[i] = 0;
}
}
}
}
private void processAddAttack()
{
int eff = saPlayer.effect;
int curEff = 0;
if(weaponMode == 0)
{
if(playerFrameStep == 1 || playerFrameStep == 2)
setAttack(14, 14, 12, 10, eff, playerAttack);
} else
{
switch(playerMode - 4)
{
default:
break;
case 0: // '\0'
case 2: // '\002'
if(playerFrameStep == 1 || playerFrameStep == 2)
setAttack(14, 12, 20, 11, eff, 2 + playerAttack);
break;
case 1: // '\001'
if(playerFrameStep == 1 || playerFrameStep == 2)
setAttack(-4, 9, 40, 14, eff, 2 + playerAttack);
break;
case 3: // '\003'
if(playerFrameStep == 3 || playerFrameStep == 4)
setAttack(14, 10, 23, 14, eff, 3 + playerAttack);
break;
case 4: // '\004'
if(playerFrameStep == 1 || playerFrameStep == 2)
setAttack(-4, 10, 40, 14, eff, 3 + playerAttack);
break;
case 5: // '\005'
if(playerFrameStep == 1 || playerFrameStep == 2)
{
setAttack(-4, 9, 40, 14, eff, 3 + playerAttack);
break;
}
if(playerFrameStep >= 3)
setAttack(-4, 9, 40, 14, eff, 6 + playerAttack);
break;
case 6: // '\006'
if(playerFrameStep == 4 || playerFrameStep == 5)
setAttack(14, 9, 21, 14, eff, 4 + playerAttack);
break;
case 7: // '\007'
if(playerFrameStep == 1 || playerFrameStep == 2)
setAttack(-4, 9, 40, 14, eff, 4 + playerAttack);
break;
case 8: // '\b'
if(playerFrame[fightFrameMode][playerFrameStep] > 999)
curEff = 8192 - eff;
else
curEff = eff;
if(playerFrameStep >= 1 && playerFrameStep <= 10)
setAttack(-4, 9, 40, 14, curEff, 5 + playerAttack);
break;
}
}
}
private void setAttack(int x, int y, int w, int h, int eff, int att)
{
playerAtt = true;
recY = (short)((playerY + y) - 24);
recAttack = (short)att;
if(eff == 0)
{
recX = (short)(playerX + x);
recW = (short)w;
recH = (short)h;
} else
{
recX = (short)(((playerX - w) + 24) - x);
recW = (short)w;
recH = (short)h;
}
}
private void addPlayerShot()
{
for(int i = 0; i < 5; i++)
if(playerShotT[i] == 0)
{
if(saPlayer.effect == 0)
playerShotX[i] = (short)(playerX + 24);
else
playerShotX[i] = (short)(playerX - 16);
playerShotY[i] = (short)(playerY - 1);
if(saPlayer.effect == 0)
playerShotT[i] = 1;
else
playerShotT[i] = 17;
i = 5;
}
}
private int processCheckAttack()
{
int monWid = 0;
int monHei = 0;
int monsterAttack = 0;
int monstart = 0;
for(int i = 0; i < maxMonster + 5; i++)
if(monsterM[i] > 0 && (monsterM[i] & 0xf) != 2 && (monsterM[i] & 0xf) < 6 && monsterX[i] + curMapX > -64 && monsterX[i] + curMapX < 204 && (monsterT[i] <= 8 || monsterT[i] >= 25 && monsterT[i] <= 28 || monsterT[i] == 50) && monsterT[i] > 0)
processCheckAttack_1(i, monstart, monWid, monHei, monsterAttack);
else
if(monsterM[i] > 0 && (monsterM[i] & 0xf) < 5 && monsterT[i] >= 51)
processCheckAttack_2(i, monstart, monWid, monHei, monsterAttack);
return monsterAttack;
}
private void processCheckAttack_1(int i, int monstart, int monWid, int monHei, int monsterAttack)
{
switch(monsterT[i])
{
case 1: // '\001'
monWid = 24;
monHei = 11;
monstart = 0;
break;
case 2: // '\002'
monWid = 12;
monHei = 16;
monstart = 6;
break;
case 3: // '\003'
case 4: // '\004'
case 6: // '\006'
case 7: // '\007'
case 8: // '\b'
monWid = 12;
monHei = 16;
monstart = 6;
break;
case 5: // '\005'
case 50: // '2'
monHei = 16;
monWid = 41;
if((monsterM[i] & 0x10) >> 4 == 0)
monstart = 0;
else
monstart = -17;
break;
case 25: // '\031'
case 26: // '\032'
monstart = 0;
monWid = 16;
monHei = 5;
break;
case 27: // '\033'
case 28: // '\034'
monstart = 0;
monWid = 5;
monHei = 16;
break;
}
if((monsterT[i] != 7 && monsterT[i] != 8 || (monsterM[i] & 0xf) != 3 || monsterAddX[i] <= 0 || monsterX[i] <= playerX) && (monsterT[i] != 7 && monsterT[i] != 8 || (monsterM[i] & 0xf) != 3 || monsterAddX[i] >= 0 || monsterX[i] >= playerX) && chon(recX, recY, recW, recH, monsterX[i] + monstart, monsterY[i] - monHei, monWid, monHei))
{
monsterAttack = 1;
monsterHP[i] -= recAttack;
if(saPlayer.effect == 0)
addEffect(playerX + 12, playerY - 16, 1);
else
addEffect(playerX - 12, playerY - 12, 1);
setMonsterAttack(i);
}
}
private void processCheckAttack_2(int i, int monstart, int monWid, int monHei, int monsterAttack)
{
if(bossLifeOn <= 0 && ((monsterM[i] & 0xf) != 2 || monsterT[i] != 51 || monsterS[i] >= 15 || monsterAddX[i] == 0))
{
monstart = 4;
monWid = 16;
monHei = 16;
if(chon(recX, recY, recW, recH, monsterX[i] + monstart, monsterY[i] - monHei, monWid, monHei))
{
monsterAttack = 1;
bossHP -= recAttack;
if(saPlayer.effect == 0)
addEffect(playerX + 12, playerY - 16, 1);
else
addEffect(playerX - 12, playerY - 12, 1);
setMonsterAttack(i);
}
}
}
private void processHPDown(int monHit)
{
if(maifaHP > 0)
maifaHP -= monHit;
else
playerHP -= monHit;
if(maifaHP < 0)
maifaHP = 0;
if(playerHP <= 0)
playerDie = 20;
}
private void processCheckChonME()
{
int monstart = 0;
int monWid = 0;
int monHei = 0;
int monHit = 0;
boolean haveChon = false;
for(int i = 0; i < maxMonster + 5; i++)
if(monsterM[i] > 0 && monsterX[i] + curMapX > -64 && monsterX[i] + curMapX < 240 && monsterT[i] > 0)
if(monsterT[i] <= 8)
haveChon = processCheckChonME_8(i, monWid, monHei, monHit, haveChon, monstart);
else
if(monsterT[i] <= 20)
processCheckChonME_20(i);
else
if(monsterT[i] <= 24 || monsterT[i] == 30 || monsterT[i] == 32)
haveChon = processCheckChonME_24(i, haveChon, monHit);
else
if(monsterT[i] <= 28)
haveChon = processCheckChonME_28(i, haveChon);
else
if(monsterT[i] == 31)
haveChon = processCheckChonME_31(i, haveChon, monstart);
else
if(monsterT[i] == 50)
haveChon = processCheckChonME_50(i, haveChon);
else
if(monsterT[i] >= 51)
haveChon = processCheckChonME_51(i, haveChon);
}
private boolean processCheckChonME_8(int i, int monWid, int monHei, int monHit, boolean haveChon, int monstart)
{
if(playerMode != 2 && playerLifeOn == 0 && !haveChon)
{
switch(monsterT[i])
{
case 1: // '\001'
monWid = 24;
monHei = 11;
monstart = 0;
monHit = 1;
break;
case 2: // '\002'
monWid = 12;
monHei = 16;
monstart = 6;
monHit = 2;
break;
case 3: // '\003'
case 4: // '\004'
case 6: // '\006'
monWid = 12;
monHei = 16;
monstart = 6;
monHit = 2;
break;
case 5: // '\005'
monWid = 41;
monHei = 18;
monHit = 3;
if((monsterM[i] & 0x10) >> 4 == 0)
monstart = 0;
else
monstart = -17;
break;
}
if(chon(playerX + 7, playerY - 16, 10, 16, monsterX[i] + monstart, monsterY[i] - monHei, monWid, monHei))
{
haveChon = true;
processHPDown(monHit);
setPlayerStun(monsterX[i]);
}
}
return haveChon;
}
private void processCheckChonME_20(int i)
{
if(chon(playerX + 7, playerY - 18, 10, 18, monsterX[i], monsterY[i] - 8, 16, 8))
{
switch(monsterT[i])
{
case 9: // '\t'
weaponMode = 16;
maxWeaponMode = 16;
break;
case 10: // '\n'
weaponMode = 32;
maxWeaponMode = 32;
break;
case 11: // '\013'
weaponMode = 48;
maxWeaponMode = 48;
break;
case 12: // '\f'
maifaHP = 15;
break;
case 13: // '\r'
playerHP += 3;
break;
case 14: // '\016'
playerHP += 8;
break;
case 15: // '\017'
if(weaponMode > 0)
playerMP[(weaponMode >> 4) - 1] += 3;
break;
case 16: // '\020'
if(weaponMode > 0)
playerMP[(weaponMode >> 4) - 1] += 8;
break;
case 17: // '\021'
if(specialType[0] != -1)
specialType[0] = 909;
break;
case 18: // '\022'
if(specialType[1] != -1)
{
specialType[1] = 909;
playerAttack = 3;
}
break;
case 19: // '\023'
if(specialType[2] != -1)
{
specialType[2] = 909;
playerWalkStep = 4;
}
break;
}
if(playerHP > playerMaxHP)
playerHP = playerMaxHP;
if(weaponMode > 0 && playerMP[(weaponMode >> 4) - 1] > playerMaxMP)
playerMP[(weaponMode >> 4) - 1] = playerMaxMP;
showItemName = 20;
itemNameNumber = (byte)(monsterT[i] - 9);
if(monsterTempT[i] >= 9 && monsterTempT[i] <= 20)
{
monsterTempT[i] = monsterT[i] = -1;
monsterM[i] = -10;
} else
{
monsterT[i] = 0;
monsterM[i] = -1;
}
}
}
private boolean p
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -