mirror of
https://github.com/maierfelix/POGOserver.git
synced 2026-03-24 19:04:11 -05:00
- 0.6.1 -> 0.6.2
- Evolve pokemon is working - Use potions is working - Use revives is working - Pokemon nicknames saved in MySQL Known issues/bugs: - CP calculation when evolve needs a new calc function - Candies to evolve function don't work - Eevee don't have evolutions (maybe outdated GAMEMASTER file) - potions/revives stamina value is very static maybe needs to use item templates
This commit is contained in:
parent
0f73b8805e
commit
7db29979e4
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "POGOServer",
|
||||
"version": "0.6.1",
|
||||
"version": "0.6.2",
|
||||
"description": "",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
|
|
|||
|
|
@ -9,6 +9,8 @@ import Contact from "./Contact";
|
|||
import CandyBag from "./CandyBag";
|
||||
import Tutorial from "./Tutorial";
|
||||
import Currency from "./Currency";
|
||||
import addEntry from "./PokeDex";
|
||||
|
||||
|
||||
import MapObject from "../World/MapObject";
|
||||
|
||||
|
|
@ -199,7 +201,16 @@ export default class Player extends MapObject {
|
|||
case "CLAIM_CODENAME":
|
||||
resolve(this.ClaimCodename(msg));
|
||||
break;
|
||||
};
|
||||
case "EVOLVE_POKEMON":
|
||||
resolve(this.EvolvePokemon(msg));
|
||||
break;
|
||||
case "USE_ITEM_POTION":
|
||||
resolve(this.UsePotion(msg));
|
||||
break;
|
||||
case "USE_ITEM_REVIVE":
|
||||
resolve(this.UseRevive(msg));
|
||||
break;
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -301,7 +312,14 @@ export default class Player extends MapObject {
|
|||
}
|
||||
};
|
||||
}
|
||||
|
||||
removeItems(rewards) {
|
||||
for (let key in rewards) {
|
||||
let name = ENUM.getNameById(ENUM.ITEMS, key << 0).replace("ITEM_", "").toLowerCase();
|
||||
if (this.bag.hasOwnProperty(name)) {
|
||||
this.bag[name] -= rewards[key] << 0;
|
||||
}
|
||||
};
|
||||
}
|
||||
/**
|
||||
* @param {WildPokemon} pkmn
|
||||
* @param {String} ball
|
||||
|
|
@ -313,6 +331,8 @@ export default class Player extends MapObject {
|
|||
this.currentEncounter = null;
|
||||
pkmn.caughtBy(this);
|
||||
pkmn.pokeball = ball;
|
||||
try{this.pokeDex.addEntry(pkmn.dexNumber,1,1);}
|
||||
catch(e){print(e,31);}
|
||||
return new Promise((resolve) => {
|
||||
pkmn.owner = this;
|
||||
pkmn.insertIntoDatabase().then((insertId) => {
|
||||
|
|
@ -351,6 +371,8 @@ export default class Player extends MapObject {
|
|||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @param {string} codename
|
||||
|
|
|
|||
36
src/models/Player/packets/EvolvePokemon.js
Normal file
36
src/models/Player/packets/EvolvePokemon.js
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
import POGOProtos from "pokemongo-protobuf";
|
||||
import print from "../../../print";
|
||||
import * as _calc from "../../Pokemon/calc";
|
||||
/**
|
||||
* @param {Object} msg
|
||||
* @return {Buffer}
|
||||
*/
|
||||
export default function EvolvePokemon(msg) {
|
||||
|
||||
|
||||
let buffer = null;
|
||||
|
||||
let pkmn = this.party.getPkmnById(msg.pokemon_id);
|
||||
|
||||
if (pkmn) {
|
||||
if (pkmn.evolve()) {
|
||||
buffer = { result: "SUCCESS" };
|
||||
} else {
|
||||
buffer = { result: "FAILED_INSUFFICIENT_RESOURCES" };
|
||||
}
|
||||
pkmn.calcStats(pkmn.owner);
|
||||
pkmn.calcMoves();
|
||||
buffer.evolved_pokemon_data = pkmn.serialize();
|
||||
pkmn.updateDatabase();
|
||||
buffer.experience_awarded = 500;
|
||||
buffer.candy_awarded = 0;
|
||||
}
|
||||
else {
|
||||
buffer = { result: "FAILED_POKEMON_MISSING" };
|
||||
}
|
||||
|
||||
return (
|
||||
POGOProtos.serialize(buffer, "POGOProtos.Networking.Responses.EvolvePokemonResponse")
|
||||
);
|
||||
|
||||
}
|
||||
|
|
@ -10,12 +10,13 @@ export default function NicknamePokemon(msg) {
|
|||
let schema = "POGOProtos.Networking.Responses.NicknamePokemonResponse";
|
||||
|
||||
let pkmn = this.party.getPkmnById(msg.pokemon_id);
|
||||
|
||||
buffer = { result: null };
|
||||
|
||||
if (pkmn) pkmn.setNickname(String(msg.nickname));
|
||||
buffer.result = pkmn ? "SUCCESS" : "ERROR_INVALID_NICKNAME";
|
||||
|
||||
//if (pkmn) {pkmn.setNickname(String(msg.nickname));
|
||||
pkmn.nickname = msg.nickname;
|
||||
pkmn.updateDatabase();
|
||||
buffer.result = "SUCCESS"; //: "ERROR_INVALID_NICKNAME";
|
||||
// }
|
||||
return (POGOProtos.serialize(buffer, schema));
|
||||
|
||||
}
|
||||
53
src/models/Player/packets/UsePotion.js
Normal file
53
src/models/Player/packets/UsePotion.js
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
import POGOProtos from "pokemongo-protobuf";
|
||||
import print from "../../../print";
|
||||
import * as _calc from "../../Pokemon/calc";
|
||||
/**
|
||||
* @param {Object} msg
|
||||
* @return {Buffer}
|
||||
*/
|
||||
export default function UsePotion(msg) {
|
||||
|
||||
|
||||
let buffer = null;
|
||||
buffer = { result: "SUCCESS"};
|
||||
let pkmn = this.party.getPkmnById(msg.pokemon_id);
|
||||
let stamina;
|
||||
let items;
|
||||
switch(msg.item_id){
|
||||
case "ITEM_POTION":
|
||||
stamina =20;
|
||||
buffer.stamina=20;
|
||||
items = {"101":1};
|
||||
break;
|
||||
case "ITEM_SUPER_POTION":
|
||||
stamina =50;
|
||||
buffer.stamina=50;
|
||||
items = {"102":1};
|
||||
break;
|
||||
case "ITEM_HYPER_POTION":
|
||||
stamina =200;
|
||||
buffer.stamina=200;
|
||||
items = {"103":1};
|
||||
break;
|
||||
case "ITEM_MAX_POTION":
|
||||
stamina =pkmn.staminaMax;
|
||||
buffer.stamina=pkmn.staminaMax;
|
||||
items = {"104":1};
|
||||
break;
|
||||
|
||||
}
|
||||
if((pkmn.stamina+stamina)<= pkmn.staminaMax){
|
||||
pkmn.stamina = pkmn.stamina+stamina;
|
||||
pkmn.updateDatabase();
|
||||
this.removeItems(items);
|
||||
} else {
|
||||
pkmn.stamina = pkmn.staminaMax;
|
||||
pkmn.updateDatabase();
|
||||
this.removeItems(items);
|
||||
}
|
||||
|
||||
return (
|
||||
POGOProtos.serialize(buffer, "POGOProtos.Networking.Responses.UseItemPotionResponse")
|
||||
);
|
||||
|
||||
}
|
||||
40
src/models/Player/packets/UseRevive.js
Normal file
40
src/models/Player/packets/UseRevive.js
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
import POGOProtos from "pokemongo-protobuf";
|
||||
import print from "../../../print";
|
||||
import * as _calc from "../../Pokemon/calc";
|
||||
/**
|
||||
* @param {Object} msg
|
||||
* @return {Buffer}
|
||||
*/
|
||||
export default function UseRevive(msg) {
|
||||
|
||||
|
||||
let buffer = null;
|
||||
buffer = { result: "SUCCESS"};
|
||||
let pkmn = this.party.getPkmnById(msg.pokemon_id);
|
||||
let stamina;
|
||||
let items;
|
||||
switch(msg.item_id){
|
||||
case "ITEM_REVIVE":
|
||||
stamina =0.5;
|
||||
buffer.stamina=20;
|
||||
items = {"201":1};
|
||||
break;
|
||||
case "ITEM_MAX_REVIVE":
|
||||
stamina =1;
|
||||
buffer.stamina=50;
|
||||
items = {"202":1};
|
||||
break;
|
||||
|
||||
|
||||
}
|
||||
|
||||
pkmn.stamina = pkmn.staminaMax*stamina;
|
||||
pkmn.updateDatabase();
|
||||
this.removeItems(items);
|
||||
|
||||
|
||||
return (
|
||||
POGOProtos.serialize(buffer, "POGOProtos.Networking.Responses.UseItemReviveResponse")
|
||||
);
|
||||
|
||||
}
|
||||
|
|
@ -12,4 +12,7 @@ export GetPlayerProfile from "./GetPlayerProfile";
|
|||
export SetFavoritePokemon from "./SetFavoritePokemon";
|
||||
export CheckAwardedBadges from "./CheckAwardedBadges";
|
||||
export RecycleInventoryItem from "./RecycleInventoryItem";
|
||||
export ClaimCodename from "./ClaimCodename";
|
||||
export ClaimCodename from "./ClaimCodename";
|
||||
export EvolvePokemon from "./EvolvePokemon";
|
||||
export UsePotion from "./UsePotion";
|
||||
export UseRevive from "./UseRevive";
|
||||
|
|
@ -33,8 +33,8 @@ export function powerUp() {
|
|||
export function evolve() {
|
||||
let pkmnTmpl = this.getPkmnTemplate(this.dexNumber);
|
||||
let ownerPkmnCandies = this.owner.candyBag.getCandy(this.dexNumber);
|
||||
let candiesToEvolve = this.candiesToEvolve();
|
||||
if (ownerPkmnCandies < candiesToEvolve()) {
|
||||
let candiesToEvolve = 1;//this.candiesToEvolve();
|
||||
if (ownerPkmnCandies < 1/*candiesToEvolve()*/) {
|
||||
return print(`You have ${ownerPkmnCandies}/${candiesToEvolve} candies to evolve ${this.getPkmnName()}!`, 31);
|
||||
}
|
||||
let evolutions = pkmnTmpl.evolution_ids;
|
||||
|
|
@ -62,5 +62,6 @@ export function evolveInto(ev) {
|
|||
}
|
||||
let evTmpl = this.getPkmnTemplate(evId);
|
||||
print(`${this.owner.username} successfully evolved ${this.getPkmnName()} into ${evName}`);
|
||||
this.dexNumber = evId;
|
||||
return (true);
|
||||
}
|
||||
|
|
@ -256,6 +256,44 @@ export default class Pokemon extends MapObject {
|
|||
});
|
||||
});
|
||||
}
|
||||
updateDatabase() {
|
||||
let query = `
|
||||
UPDATE ${CFG.MYSQL_OWNED_PKMN_TABLE} SET
|
||||
owner_id=?,
|
||||
dex_number=?,
|
||||
cp=?,
|
||||
stamina=?,
|
||||
stamina_max=?,
|
||||
move_1=?,
|
||||
move_2=?,
|
||||
height_m=?,
|
||||
weight_kg=?,
|
||||
individual_attack=?,
|
||||
individual_defense=?,
|
||||
individual_stamina=?,
|
||||
cp_multiplier=?,
|
||||
pokeball=?,
|
||||
favorite=?,
|
||||
nickname=?
|
||||
WHERE
|
||||
id=?
|
||||
`;
|
||||
let data = [
|
||||
this.owner.uid, this.dexNumber, this.cp,
|
||||
this.stamina, this.staminaMax,
|
||||
this.move1, this.move2,
|
||||
this.height, this.weight,
|
||||
this.ivAttack, this.ivDefense, this.ivStamina,
|
||||
this.cpMultiplier, this.pokeball, this.favorite, this.nickname,this.uid || ""
|
||||
];
|
||||
return new Promise((resolve) => {
|
||||
this.owner.world.db.query(query, data, (e, res) => {
|
||||
if (e) return print(e, 31);
|
||||
resolve(res);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return {Object}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user