Quote:
Originally Posted by Andrej-Delany
For everyone who wants to change the dmg watch this:
GameThread.java
Code:
private void parseAttackLaserToAlien(Ship user, Ship enemigo)
|
You right. but that is a hack more than fix. Code realization is **** on this emulator. Ok, i will show you, with my comments:
Code:
//that code have a wrong implementation, imho
private void parseAttackLaserToAlien(Ship user, Ship enemigo)
{
//laser type = 0 ? 0_0
int tipoLaser = user.getNave().getLaser1() - 1;
if(tipoLaser == 5)tipoLaser = 6;
int dmg = 500; //static dmg
int dmgESC = dmg; //500
switch(user.getNave().getLaser1())
{
case 2:
dmg *= 2;
break;
case 3:
dmg *= 3;
break;
case 4:
dmg *= 4;
break;
case 6:
dmg *= 5;
break;
}
int dmgPV = dmg/2;
if(user.getNave().getLaser1()==5)
{
dmgESC = dmg/2;
dmg=0;
dmgPV=0;
}
//1-map, 2-user, 3-enemy, 4-Ltype, 5 - effect, 6 - Thick laser.
SocketManager.SHIP_SEND_LASER_ATTACK_TO_ALIEN(user.getNave().getMapaActual(), user.getNave(), enemigo, tipoLaser, 0, 1);
enemigo.setTarget(user);
enemigo.setHp(enemigo.getHp()-dmgPV);
enemigo.setEsc(enemigo.getEsc()-dmgESC);
if(enemigo.getHp() <= 0)
{
getBonusAlien(user.getNave(),enemigo);
enemigo.setHp(enemigo.getNpc().getPv());
enemigo.setEsc(enemigo.getNpc().getEsc());
enemigo.setPlay(false);
enemigo.setDead(true);
SocketManager.GAME_SEND_DESTROY_SHIP(enemigo.getId());
}
if(enemigo.getEsc() < 0)enemigo.setEsc(0);
//LANZADOR|ENEMIGO|EFECTO(H:cura, resto: daсa)|vidaActual|escudoActual|daсosHp|daсosEsc|?
//that deal dmg, 500 on this scope
SocketManager.SHIP_SEND_LASER_EFFECT_TO_ALIEN(user.getNave(),enemigo,dmg,dmgESC);
}
Follow that on usario.java
Code:
//tipoLaser = user.getNave().getLaser1() - 1; that == 0 wtf?
private int laser1 = 1;
public int getLaser1() {
return laser1;
}
public void setLaser1(int laser1) {
this.laser1 = laser1;
}
How i think - equipment code missed here
Equipamiento.java
Code:
package game.objetos;
public class Equipamiento
{
//where that f**king code here?
}
Well my verdict - server does not have a fully equipment implementation (no code). System should be (how i understand, something like this)
Note:
That code only algorithm!
Code:
//////// get laser params in user.java///////
private int laserType = 1; //default not nill laser type
public int getLaserType(laser) //simple and not finished
{
Ltype = user.getNave().EquipGetLaserType(laser);
return Ltype;
}
public void setLaserType(int laser) {
this.laserType = laser;
}
////////example of usage in GameThread.java///////
private void parseAttackLaserToAlien(Ship user, Ship enemy)
{
laser = user.getNave().EquipGetLaser()// return laser ID
int typeLaser = user.getNave().getLaserType(laser); //Type by ID
int dmg = user.getNave().EquipLaserMax(laser); //dmg for calc by formula
//blah blah blah another code
}
Sure your need a make Equipment code functions for that, you can do that by using user.getNave() (equipment sould be stored in DB for each ship) and make a bit work with tables. Enjoy!
PS. Tired to find in DB - lasers for ships, nothing looks like LF-4 or other lasers... Better situation with rockets - but they have a similar problems.
PPS. that post
only for developers, not for users, who want get a ready fix for open another "private" servers, and make money from donate without any real work.