mirror of
https://git.ethanthesleepy.one/ethanaobrien/ew.git
synced 2025-05-13 11:37:33 -05:00
Add obtain gold mission
This commit is contained in:
parent
0ee281895e
commit
f3d045649c
7 changed files with 47 additions and 31 deletions
|
@ -1,4 +1,4 @@
|
||||||
use json::{JsonValue, object};
|
use json::{JsonValue, object, array};
|
||||||
use actix_web::{HttpResponse, HttpRequest};
|
use actix_web::{HttpResponse, HttpRequest};
|
||||||
use lazy_static::lazy_static;
|
use lazy_static::lazy_static;
|
||||||
|
|
||||||
|
@ -37,6 +37,8 @@ pub fn exchange_post(req: HttpRequest, body: String) -> HttpResponse {
|
||||||
let key = global::get_login(req.headers(), &body);
|
let key = global::get_login(req.headers(), &body);
|
||||||
let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap();
|
let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap();
|
||||||
let mut user = userdata::get_acc(&key);
|
let mut user = userdata::get_acc(&key);
|
||||||
|
let mut missions = userdata::get_acc_missions(&key);
|
||||||
|
let mut cleared_missions = array![];
|
||||||
|
|
||||||
let item = &EXCHANGE_LIST[body["master_exchange_item_id"].to_string()];
|
let item = &EXCHANGE_LIST[body["master_exchange_item_id"].to_string()];
|
||||||
|
|
||||||
|
@ -49,9 +51,10 @@ pub fn exchange_post(req: HttpRequest, body: String) -> HttpResponse {
|
||||||
let mut gift = EXCHANGE_REWARD[item["masterExchangeItemRewardId"].to_string()].clone();
|
let mut gift = EXCHANGE_REWARD[item["masterExchangeItemRewardId"].to_string()].clone();
|
||||||
gift["reward_type"] = gift["type"].clone();
|
gift["reward_type"] = gift["type"].clone();
|
||||||
gift["amount"] = (gift["amount"].as_i64().unwrap() * body["count"].as_i64().unwrap()).into();
|
gift["amount"] = (gift["amount"].as_i64().unwrap() * body["count"].as_i64().unwrap()).into();
|
||||||
items::give_gift(&gift, &mut user);
|
items::give_gift(&gift, &mut user, &mut missions, &mut cleared_missions);
|
||||||
|
|
||||||
userdata::save_acc(&key, user.clone());
|
userdata::save_acc(&key, user.clone());
|
||||||
|
userdata::save_acc_missions(&key, missions);
|
||||||
|
|
||||||
let resp = object!{
|
let resp = object!{
|
||||||
"code": 0,
|
"code": 0,
|
||||||
|
@ -63,7 +66,7 @@ pub fn exchange_post(req: HttpRequest, body: String) -> HttpResponse {
|
||||||
"item_list": user["item_list"].clone(),
|
"item_list": user["item_list"].clone(),
|
||||||
"point_list": user["point_list"].clone()
|
"point_list": user["point_list"].clone()
|
||||||
},
|
},
|
||||||
"clear_mission_ids": []
|
"clear_mission_ids": cleared_missions
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
global::send(resp, req)
|
global::send(resp, req)
|
||||||
|
|
|
@ -84,6 +84,9 @@ lazy_static! {
|
||||||
for i in 1158001..=1158082 {
|
for i in 1158001..=1158082 {
|
||||||
missions.push(i).unwrap();
|
missions.push(i).unwrap();
|
||||||
}
|
}
|
||||||
|
for i in 1121001..=1121019 {
|
||||||
|
missions.push(i).unwrap();
|
||||||
|
}
|
||||||
missions
|
missions
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -93,7 +93,7 @@ pub fn give_item(master_item_id: i64, amount: i64, user: &mut JsonValue) -> bool
|
||||||
false
|
false
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn give_gift(data: &JsonValue, user: &mut JsonValue) -> bool {
|
pub fn give_gift(data: &JsonValue, user: &mut JsonValue, missions: &mut JsonValue, clear_missions: &mut JsonValue) -> bool {
|
||||||
if data.is_empty() {
|
if data.is_empty() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -108,7 +108,7 @@ pub fn give_gift(data: &JsonValue, user: &mut JsonValue) -> bool {
|
||||||
return !give_item(data["value"].as_i64().unwrap(), data["amount"].as_i64().unwrap(), user);
|
return !give_item(data["value"].as_i64().unwrap(), data["amount"].as_i64().unwrap(), user);
|
||||||
} else if data["reward_type"].to_string() == "4" {
|
} else if data["reward_type"].to_string() == "4" {
|
||||||
// basically moraa!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
// basically moraa!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
return !give_points(data["value"].as_i64().unwrap(), data["amount"].as_i64().unwrap(), user);
|
return !give_points(data["value"].as_i64().unwrap(), data["amount"].as_i64().unwrap(), user, missions, clear_missions);
|
||||||
} else if data["reward_type"].to_string() == "8" {
|
} else if data["reward_type"].to_string() == "8" {
|
||||||
// title
|
// title
|
||||||
let title = data["value"].as_i64().unwrap();
|
let title = data["value"].as_i64().unwrap();
|
||||||
|
@ -120,23 +120,29 @@ pub fn give_gift(data: &JsonValue, user: &mut JsonValue) -> bool {
|
||||||
println!("Redeeming reward not implemented for reward type {}", data["reward_type"].to_string());
|
println!("Redeeming reward not implemented for reward type {}", data["reward_type"].to_string());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
pub fn give_gift_basic(ty_pe: i32, id: i64, amount: i64, user: &mut JsonValue) -> bool {
|
pub fn give_gift_basic(ty_pe: i32, id: i64, amount: i64, user: &mut JsonValue, missions: &mut JsonValue, clear_missions: &mut JsonValue) -> bool {
|
||||||
give_gift(&object!{
|
give_gift(&object!{
|
||||||
reward_type: ty_pe,
|
reward_type: ty_pe,
|
||||||
amount: amount,
|
amount: amount,
|
||||||
value: id
|
value: id
|
||||||
}, user)
|
}, user, missions, clear_missions)
|
||||||
|
}
|
||||||
|
pub fn give_points(master_item_id: i64, amount: i64, user: &mut JsonValue, missions: &mut JsonValue, clear_missions: &mut JsonValue) -> bool {
|
||||||
|
if master_item_id == 1 {
|
||||||
|
let cleared = advance_variable_mission(1121001, 1121019, amount, missions);
|
||||||
|
for (_i, data) in cleared.members().enumerate() {
|
||||||
|
clear_missions.push(data.clone()).unwrap();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
pub fn give_points(master_item_id: i64, amount: i64, user: &mut JsonValue) -> bool {
|
|
||||||
let mut has = false;
|
let mut has = false;
|
||||||
for (_j, dataa) in user["point_list"].members_mut().enumerate() {
|
for (_j, data) in user["point_list"].members_mut().enumerate() {
|
||||||
if dataa["type"].as_i64().unwrap() == master_item_id {
|
if data["type"].as_i64().unwrap() == master_item_id {
|
||||||
has = true;
|
has = true;
|
||||||
let new_amount = dataa["amount"].as_i64().unwrap() + amount;
|
let new_amount = data["amount"].as_i64().unwrap() + amount;
|
||||||
if new_amount > LIMIT_COINS {
|
if new_amount > LIMIT_COINS {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
dataa["amount"] = new_amount.into();
|
data["amount"] = new_amount.into();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -150,12 +156,12 @@ pub fn give_points(master_item_id: i64, amount: i64, user: &mut JsonValue) -> bo
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn use_item(master_item_id: i64, amount: i64, user: &mut JsonValue) {
|
pub fn use_item(master_item_id: i64, amount: i64, user: &mut JsonValue) {
|
||||||
for (_j, dataa) in user["item_list"].members_mut().enumerate() {
|
for (_j, data) in user["item_list"].members_mut().enumerate() {
|
||||||
if dataa["master_item_id"].as_i64().unwrap() == master_item_id {
|
if data["master_item_id"].as_i64().unwrap() == master_item_id {
|
||||||
if dataa["amount"].as_i64().unwrap() >= amount {
|
if data["amount"].as_i64().unwrap() >= amount {
|
||||||
dataa["amount"] = (dataa["amount"].as_i64().unwrap() - amount).into();
|
data["amount"] = (data["amount"].as_i64().unwrap() - amount).into();
|
||||||
} else {
|
} else {
|
||||||
dataa["amount"] = (0).into();
|
data["amount"] = (0).into();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -376,7 +376,7 @@ fn get_live_mission_completed_ids(user: &JsonValue, live_id: i64, score: i64, co
|
||||||
Some(out)
|
Some(out)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn give_mission_rewards(user: &mut JsonValue, missions: &JsonValue, multiplier: i64) -> JsonValue {
|
fn give_mission_rewards(user: &mut JsonValue, missions: &mut JsonValue, cleared_missions: &mut JsonValue, multiplier: i64) -> JsonValue {
|
||||||
let mut rv = array![];
|
let mut rv = array![];
|
||||||
for (_i, data) in MISSION_DATA.members().enumerate() {
|
for (_i, data) in MISSION_DATA.members().enumerate() {
|
||||||
if !missions.contains(data["id"].as_i32().unwrap()) {
|
if !missions.contains(data["id"].as_i32().unwrap()) {
|
||||||
|
@ -388,12 +388,12 @@ fn give_mission_rewards(user: &mut JsonValue, missions: &JsonValue, multiplier:
|
||||||
let mut gift = get_live_mission_info(data["masterLiveMissionRewardId"].as_i64().unwrap());
|
let mut gift = get_live_mission_info(data["masterLiveMissionRewardId"].as_i64().unwrap());
|
||||||
gift["reward_type"] = gift["type"].clone();
|
gift["reward_type"] = gift["type"].clone();
|
||||||
gift["amount"] = (gift["amount"].as_i64().unwrap() * multiplier).into();
|
gift["amount"] = (gift["amount"].as_i64().unwrap() * multiplier).into();
|
||||||
items::give_gift(&gift, user);
|
items::give_gift(&gift, user, missions, cleared_missions);
|
||||||
}
|
}
|
||||||
if items::give_gift_basic(3, 16005001, 10 * multiplier, user) {
|
if items::give_gift_basic(3, 16005001, 10 * multiplier, user, missions, cleared_missions) {
|
||||||
rv.push(object!{"type":3,"value":16005001,"level":0,"amount":10}).unwrap();
|
rv.push(object!{"type":3,"value":16005001,"level":0,"amount":10}).unwrap();
|
||||||
}
|
}
|
||||||
if items::give_gift_basic(3, 17001001, 2 * multiplier, user) {
|
if items::give_gift_basic(3, 17001001, 2 * multiplier, user, missions, cleared_missions) {
|
||||||
rv.push(object!{"type":3,"value":17001001,"level":0,"amount":2}).unwrap();
|
rv.push(object!{"type":3,"value":17001001,"level":0,"amount":2}).unwrap();
|
||||||
}
|
}
|
||||||
rv
|
rv
|
||||||
|
@ -507,7 +507,7 @@ fn live_end(req: &HttpRequest, body: &String, skipped: bool) -> JsonValue {
|
||||||
clear_master_live_mission_ids: missions.clone()
|
clear_master_live_mission_ids: missions.clone()
|
||||||
});
|
});
|
||||||
|
|
||||||
let reward_list = give_mission_rewards(&mut user, &missions, body["live_boost"].as_i64().unwrap_or(1));
|
let reward_list = give_mission_rewards(&mut user, &mut user_missions, &mut cleared_missions, body["live_boost"].as_i64().unwrap_or(1));
|
||||||
|
|
||||||
let lp_used: i32 = body["use_lp"].as_i32().unwrap_or(10 * body["live_boost"].as_i32().unwrap_or(0));
|
let lp_used: i32 = body["use_lp"].as_i32().unwrap_or(10 * body["live_boost"].as_i32().unwrap_or(0));
|
||||||
|
|
||||||
|
|
|
@ -153,6 +153,8 @@ pub fn lottery_post(req: HttpRequest, body: String) -> HttpResponse {
|
||||||
println!("lottery: {}", body);
|
println!("lottery: {}", body);
|
||||||
let mut user = userdata::get_acc(&key);
|
let mut user = userdata::get_acc(&key);
|
||||||
let user2 = userdata::get_acc(&key);
|
let user2 = userdata::get_acc(&key);
|
||||||
|
let mut missions = userdata::get_acc_missions(&key);
|
||||||
|
let mut cleared_missions = array![];
|
||||||
|
|
||||||
let mut cardstogive;
|
let mut cardstogive;
|
||||||
|
|
||||||
|
@ -212,11 +214,11 @@ pub fn lottery_post(req: HttpRequest, body: String) -> HttpResponse {
|
||||||
}
|
}
|
||||||
lottery_list.push(to_push).unwrap();
|
lottery_list.push(to_push).unwrap();
|
||||||
}
|
}
|
||||||
items::give_gift_basic(3, 15540034, 10, &mut user);
|
items::give_gift_basic(3, 15540034, 10, &mut user, &mut missions, &mut cleared_missions);
|
||||||
} else if lottery_type == 2 {
|
} else if lottery_type == 2 {
|
||||||
for (_i, data) in cardstogive.members().enumerate() {
|
for (_i, data) in cardstogive.members().enumerate() {
|
||||||
let info = get_card(data["master_lottery_item_id"].to_string(), data["master_lottery_item_number"].to_string());
|
let info = get_card(data["master_lottery_item_id"].to_string(), data["master_lottery_item_number"].to_string());
|
||||||
items::give_gift_basic(info["type"].as_i32().unwrap(), info["value"].as_i64().unwrap(), info["amount"].as_i64().unwrap(), &mut user);
|
items::give_gift_basic(info["type"].as_i32().unwrap(), info["value"].as_i64().unwrap(), info["amount"].as_i64().unwrap(), &mut user, &mut missions, &mut cleared_missions);
|
||||||
let to_push = object!{
|
let to_push = object!{
|
||||||
"master_lottery_item_id": data["master_lottery_item_id"].clone(),
|
"master_lottery_item_id": data["master_lottery_item_id"].clone(),
|
||||||
"master_lottery_item_number": data["master_lottery_item_number"].clone(),
|
"master_lottery_item_number": data["master_lottery_item_number"].clone(),
|
||||||
|
@ -227,8 +229,8 @@ pub fn lottery_post(req: HttpRequest, body: String) -> HttpResponse {
|
||||||
}
|
}
|
||||||
|
|
||||||
userdata::save_acc(&key, user.clone());
|
userdata::save_acc(&key, user.clone());
|
||||||
|
userdata::save_acc_missions(&key, missions);
|
||||||
|
|
||||||
//todo
|
|
||||||
let resp = object!{
|
let resp = object!{
|
||||||
"code": 0,
|
"code": 0,
|
||||||
"server_time": global::timestamp(),
|
"server_time": global::timestamp(),
|
||||||
|
@ -239,7 +241,7 @@ pub fn lottery_post(req: HttpRequest, body: String) -> HttpResponse {
|
||||||
"item_list": user["item_list"].clone()
|
"item_list": user["item_list"].clone()
|
||||||
},
|
},
|
||||||
"gift_list": user2["home"]["gift_list"].clone(),
|
"gift_list": user2["home"]["gift_list"].clone(),
|
||||||
"clear_mission_ids": [],
|
"clear_mission_ids": cleared_missions,
|
||||||
"draw_count_list": []
|
"draw_count_list": []
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -79,10 +79,10 @@ pub fn receive(req: HttpRequest, body: String) -> HttpResponse {
|
||||||
let mut gift = MISSION_REWARD[mission_info["masterMissionRewardId"].to_string()].clone();
|
let mut gift = MISSION_REWARD[mission_info["masterMissionRewardId"].to_string()].clone();
|
||||||
gift["reward_type"] = gift["type"].clone();
|
gift["reward_type"] = gift["type"].clone();
|
||||||
gift["amount"] = gift["amount"].as_i64().unwrap().into();
|
gift["amount"] = gift["amount"].as_i64().unwrap().into();
|
||||||
items::give_gift(&gift, &mut user);
|
items::give_gift(&gift, &mut user, &mut missions, &mut array![]);
|
||||||
rewards.push(gift).unwrap();
|
rewards.push(gift).unwrap();
|
||||||
|
|
||||||
let variable_missions = array![[1153001, 1153019], [1105001, 1105017], [1101001, 1101030]];
|
let variable_missions = array![[1153001, 1153019], [1105001, 1105017], [1101001, 1101030], [1121001, 1121019]];
|
||||||
let mut variable = false;
|
let mut variable = false;
|
||||||
for (_i, id) in variable_missions.members().enumerate() {
|
for (_i, id) in variable_missions.members().enumerate() {
|
||||||
if mission.as_i64().unwrap() >= id[0].as_i64().unwrap() && mission.as_i64().unwrap() < id[1].as_i64().unwrap() {
|
if mission.as_i64().unwrap() >= id[0].as_i64().unwrap() && mission.as_i64().unwrap() < id[1].as_i64().unwrap() {
|
||||||
|
@ -116,7 +116,6 @@ pub fn receive(req: HttpRequest, body: String) -> HttpResponse {
|
||||||
"point_list": user["point_list"].clone()
|
"point_list": user["point_list"].clone()
|
||||||
},
|
},
|
||||||
"mission_list": missions
|
"mission_list": missions
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
global::send(resp, req)
|
global::send(resp, req)
|
||||||
|
|
|
@ -78,7 +78,9 @@ pub fn gift(req: HttpRequest, body: String) -> HttpResponse {
|
||||||
|
|
||||||
let mut user = userdata::get_acc_home(&key);
|
let mut user = userdata::get_acc_home(&key);
|
||||||
let mut userr = userdata::get_acc(&key);
|
let mut userr = userdata::get_acc(&key);
|
||||||
|
let mut missions = userdata::get_acc_missions(&key);
|
||||||
|
|
||||||
|
let mut cleared_missions = array![];
|
||||||
let mut rewards = array![];
|
let mut rewards = array![];
|
||||||
let mut failed = array![];
|
let mut failed = array![];
|
||||||
|
|
||||||
|
@ -88,7 +90,7 @@ pub fn gift(req: HttpRequest, body: String) -> HttpResponse {
|
||||||
if data["id"].to_string() != gift_id.to_string() {
|
if data["id"].to_string() != gift_id.to_string() {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if !items::give_gift(&data, &mut userr) {
|
if !items::give_gift(&data, &mut userr, &mut missions, &mut cleared_missions) {
|
||||||
failed.push(gift_id.clone()).unwrap();
|
failed.push(gift_id.clone()).unwrap();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -108,6 +110,7 @@ pub fn gift(req: HttpRequest, body: String) -> HttpResponse {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
userdata::save_acc_missions(&key, missions);
|
||||||
userdata::save_acc_home(&key, user);
|
userdata::save_acc_home(&key, user);
|
||||||
userdata::save_acc(&key, userr.clone());
|
userdata::save_acc(&key, userr.clone());
|
||||||
let userr = userdata::get_acc(&key);
|
let userr = userdata::get_acc(&key);
|
||||||
|
@ -122,7 +125,7 @@ pub fn gift(req: HttpRequest, body: String) -> HttpResponse {
|
||||||
"item_list": userr["item_list"].clone(),
|
"item_list": userr["item_list"].clone(),
|
||||||
"point_list": userr["point_list"].clone()
|
"point_list": userr["point_list"].clone()
|
||||||
},
|
},
|
||||||
"clear_mission_ids": [],
|
"clear_mission_ids": cleared_missions,
|
||||||
"reward_list": rewards
|
"reward_list": rewards
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Reference in a new issue