diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/map/atcommand.c | 4 | ||||
-rw-r--r-- | src/map/battle.c | 34 | ||||
-rw-r--r-- | src/map/clif.c | 9 | ||||
-rw-r--r-- | src/map/map.c | 11 | ||||
-rw-r--r-- | src/map/packets.h | 17 | ||||
-rw-r--r-- | src/map/pc.c | 14 | ||||
-rw-r--r-- | src/map/script.c | 3 | ||||
-rw-r--r-- | src/map/skill.c | 13 | ||||
-rw-r--r-- | src/map/status.c | 7 | ||||
-rw-r--r-- | src/map/storage.c | 26 | ||||
-rw-r--r-- | src/map/trade.h | 4 |
11 files changed, 141 insertions, 1 deletions
diff --git a/src/map/atcommand.c b/src/map/atcommand.c index 52192ebdc..3d0dfb6a7 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -5242,7 +5242,11 @@ ACMD(storeall) if (sd->status.inventory[i].amount) { if(sd->status.inventory[i].equip != 0) pc->unequipitem(sd, i, 3); +<<<<<<< HEAD + storage_storageadd(sd, i, sd->status.inventory[i].amount); +======= storage->add(sd, i, sd->status.inventory[i].amount); +>>>>>>> upstream/master } } storage->close(sd); diff --git a/src/map/battle.c b/src/map/battle.c index 800d573a2..f6695915b 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -753,8 +753,13 @@ int battle_calc_masteryfix(struct block_list *src, struct block_list *target, ui int ratio = sd->status.base_level + status_get_dex(src) + status_get_luk(src); if ( i == 2 ) ratio += status_get_str(src); //Star Anger if (skill < 4 ) +<<<<<<< HEAD + ratio /= 12 - 3 * skill; + damage += damage * ratio; +======= ratio /= (12 - 3 * skill); damage += damage * ratio / 100; +>>>>>>> upstream/master } if( sc ){ @@ -820,7 +825,11 @@ int battle_calc_elefix(struct block_list *src, struct block_list *target, uint16 { // Descriptions indicate this means adding a percent of a normal attack in another element. [Skotlex] damage = #ifndef RENEWAL +<<<<<<< HEAD + battle->calc_base_damage(sstatus, &sstatus->rhw, sc, tstatus->size, ((TBL_PC*)src), (flag?2:0)) +======= battle->calc_base_damage(sstatus, &sstatus->rhw, sc, tstatus->size, BL_CAST(BL_PC, src), (flag?2:0)) +>>>>>>> upstream/master #else battle->calc_base_damage(src, target, skill_id, skill_lv, nk, n_ele, s_ele, s_ele_, EQI_HAND_R, (flag?2:0)|(sc && sc->data[SC_MAXIMIZEPOWER]?1:0)|(sc && sc->data[SC_WEAPONPERFECT]?8:0), 0) #endif @@ -830,7 +839,11 @@ int battle_calc_elefix(struct block_list *src, struct block_list *target, uint16 if( left ){ damage = #ifndef RENEWAL +<<<<<<< HEAD + battle->calc_base_damage(sstatus, &sstatus->lhw, sc, tstatus->size, ((TBL_PC*)src), (flag?2:0)) +======= battle->calc_base_damage(sstatus, &sstatus->lhw, sc, tstatus->size, BL_CAST(BL_PC, src), (flag?2:0)) +>>>>>>> upstream/master #else battle->calc_base_damage(src, target, skill_id, skill_lv, nk, n_ele, s_ele, s_ele_, EQI_HAND_L, (flag?2:0)|(sc && sc->data[SC_MAXIMIZEPOWER]?1:0)|(sc && sc->data[SC_WEAPONPERFECT]?8:0), 0) #endif @@ -4345,11 +4358,23 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list wd.damage = sstatus->max_hp* 9/100; wd.damage2 = 0; break; +<<<<<<< HEAD + +#ifdef RENEWAL + case MO_EXTREMITYFIST: // [malufett] + wd.damage = battle->calc_base_damage(src, target, skill_id, skill_lv, nk, n_ele, s_ele, s_ele_, EQI_HAND_R, (sc && sc->data[SC_MAXIMIZEPOWER]?1:0)|8, wd.flag); + // first value is still not confirm. + wd.damage = status_get_sp(src) + 10 * status_get_sp(src) * wd.damage / 100 + 8 * wd.damage; + flag.tdef = 1; + break; + case NJ_ISSEN: // [malufett] +======= case NJ_ISSEN: // [malufett] #ifndef RENEWAL wd.damage = 40*sstatus->str +skill_lv*(sstatus->hp/10 + 35); wd.damage2 = 0; #else +>>>>>>> upstream/master { short totaldef = status_get_total_def(target); i = 0; @@ -4363,6 +4388,14 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list ATK_RATE(50); flag.idef = 1; } +<<<<<<< HEAD +#else + + wd.damage = 40*sstatus->str +skill_lv*(sstatus->hp/10 + 35); + wd.damage2 = 0; +#endif + break; +======= break; case MO_EXTREMITYFIST: // [malufett] wd.damage = battle->calc_base_damage(src, target, skill_id, skill_lv, nk, n_ele, s_ele, s_ele_, EQI_HAND_R, (sc && sc->data[SC_MAXIMIZEPOWER]?1:0)|8, wd.flag); @@ -4371,6 +4404,7 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list flag.tdef = 1; #endif break; +>>>>>>> upstream/master #ifndef RENEWAL case LK_SPIRALPIERCE: case ML_SPIRALPIERCE: diff --git a/src/map/clif.c b/src/map/clif.c index 00e395709..4ac123c5a 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -5970,7 +5970,12 @@ void clif_wis_message(int fd, const char* nick, const char* mes, int mes_len) WFIFOW(fd,0) = 0x97; WFIFOW(fd,2) = mes_len + NAME_LENGTH + 8; safestrncpy((char*)WFIFOP(fd,4), nick, NAME_LENGTH); +<<<<<<< HEAD + WFIFOL(fd,28) = 0; // isAdmin; if nonzero, also displays text above char + // TODO: WFIFOL(fd,28) = pc->get_group_level(ssd); +======= WFIFOL(fd,28) = (ssd && pc->get_group_level(ssd) == 99) ? 1 : 0; // isAdmin; if nonzero, also displays text above char +>>>>>>> upstream/master safestrncpy((char*)WFIFOP(fd,32), mes, mes_len); WFIFOSET(fd,WFIFOW(fd,2)); #endif @@ -10795,7 +10800,11 @@ void clif_parse_NpcClicked(int fd,struct map_session_data *sd) #endif return; } +<<<<<<< HEAD + if ( pc_cant_act2(sd) || !(bl = iMap->id2bl(RFIFOL(fd,2))) ) +======= if ( pc_cant_act2(sd) || !(bl = iMap->id2bl(RFIFOL(fd,2))) || sd->state.vending ) +>>>>>>> upstream/master return; switch (bl->type) { diff --git a/src/map/map.c b/src/map/map.c index fbdb7a9f9..a030515d8 100644 --- a/src/map/map.c +++ b/src/map/map.c @@ -5235,9 +5235,13 @@ void map_hp_symbols(void) { HPM->share(buyingstore,"buyingstore"); HPM->share(clif,"clif"); HPM->share(guild,"guild"); +<<<<<<< HEAD + HPM->share(homun,"homun"); +======= HPM->share(gstorage,"gstorage"); HPM->share(homun,"homun"); HPM->share(iMap,"iMap"); +>>>>>>> upstream/master HPM->share(ircbot,"ircbot"); HPM->share(itemdb,"itemdb"); HPM->share(logs,"logs"); @@ -5248,8 +5252,12 @@ void map_hp_symbols(void) { HPM->share(vending,"vending"); HPM->share(pc,"pc"); HPM->share(party,"party"); +<<<<<<< HEAD + HPM->share(iMap,"iMap"); +======= HPM->share(storage,"storage"); HPM->share(trade,"trade"); +>>>>>>> upstream/master /* partial */ HPM->share(mapit,"mapit"); /* sql link */ @@ -5282,8 +5290,11 @@ void load_defaults(void) { vending_defaults(); pc_defaults(); party_defaults(); +<<<<<<< HEAD +======= storage_defaults(); trade_defaults(); +>>>>>>> upstream/master } int do_init(int argc, char *argv[]) { diff --git a/src/map/packets.h b/src/map/packets.h index 648e662fa..8e070dd05 100644 --- a/src/map/packets.h +++ b/src/map/packets.h @@ -2025,6 +2025,14 @@ packet(0x020d,-1); packet(0x08E5,41,clif->pPartyBookingRegisterReq,2,4); packet(0x08d2,10); packet(0x0916,26,clif->pGuildInvite2,2); + packetKeys(0x1540e48,0x13041224,0x31247924); + +#endif + +#ifndef PACKETVER_RE +#if PACKETVER >= 20120604 + packet(0x0861,18,clif->pPartyBookingRegisterReq,2,4,6); +#endif #endif #ifndef PACKETVER_RE @@ -2066,6 +2074,7 @@ packet(0x020d,-1); //2012-07-16aRagExe (special thanks to Yommy!) #if PACKETVER >= 20120716 packet(0x0364,8,clif->pMoveFromKafra,2,4); + packetKeys(0x76052205, 0x22052205, 0x22052205); #endif //2013-03-20Ragexe (Judas + Yommy) @@ -2100,6 +2109,7 @@ packet(0x020d,-1); packet(0x086F,26,clif->pFriendsListAdd,2); packet(0x093F,5,clif->pHomMenu,2,4); packet(0x0947,36,clif->pStoragePassword,0); + packetKeys(0x3F094C49, 0x55F86C1E, 0x58AA359A); // Shuffle End // New Packets @@ -2245,6 +2255,12 @@ packet(0x020d,-1); packet(0x0883,36,clif->pStoragePassword,0); #endif +<<<<<<< HEAD +#if PACKETVER >= 20130612 + packetKeys(0x6D166F66, 0x3C000FCF, 0x295B0FCB); /* Thanks to Shakto */ +#endif + +======= /* PacketKeys: http://hercules.ws/board/topic/1105-hercules-wpe-free-june-14th-patch/ */ #if PACKETVER >= 20110817 packetKeys(0x053D5CED,0x3DED6DED,0x6DED6DED); /* Thanks to Shakto */ @@ -2427,4 +2443,5 @@ packet(0x020d,-1); #endif +>>>>>>> upstream/master #endif /* _PACKETS_H_ */ diff --git a/src/map/pc.c b/src/map/pc.c index c2d50a7ce..945925c86 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -9751,9 +9751,18 @@ void pc_read_skill_tree(void) { ARR_FIND( 0, MAX_SKILL_TREE, d, skill_tree[fidx][d].id == 0 ); +<<<<<<< HEAD + if(!pcdb_checkid(class_)) + { + ShowWarning("pc_readdb_skilltree: Invalid job class %d specified.\n", class_); + return false; + } + idx = pc->class2idx(class_); +======= for( f = 0; f < d; f++ ) { ARR_FIND( 0, MAX_SKILL_TREE, a, skill_tree[idx][a].id == 0 || skill_tree[idx][a].id == skill_tree[fidx][f].id ); +>>>>>>> upstream/master if( a == MAX_SKILL_TREE ) { ShowWarning("pc_read_skill_tree: '%s' can't inherit '%s', skill tree is full!\n", name,iname); @@ -9902,7 +9911,12 @@ int pc_readdb(void) count = 0; // Reset and read skilltree memset(skill_tree,0,sizeof(skill_tree)); +<<<<<<< HEAD + sv->readdb(iMap->db_path, DBPATH"skill_tree.txt", ',', 3+MAX_PC_SKILL_REQUIRE*2, 4+MAX_PC_SKILL_REQUIRE*2, -1, &pc_readdb_skilltree); + +======= pc_read_skill_tree(); +>>>>>>> upstream/master #if defined(RENEWAL_DROP) || defined(RENEWAL_EXP) sv->readdb(iMap->db_path, "re/level_penalty.txt", ',', 4, 4, -1, &pc_readdb_levelpenalty); for( k=1; k < 3; k++ ){ // fill in the blanks diff --git a/src/map/script.c b/src/map/script.c index f65c0c21c..4876111ef 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -16310,7 +16310,10 @@ BUILDIN(progressbar) sd->progressbar.npc_id = st->oid; sd->progressbar.timeout = iTimer->gettick() + second*1000; +<<<<<<< HEAD +======= sd->state.workinprogress = 3; +>>>>>>> upstream/master clif->progressbar(sd, strtol(color, (char **)NULL, 0), second); return true; diff --git a/src/map/skill.c b/src/map/skill.c index aec1ebbfc..1753f435a 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -7971,11 +7971,20 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui break; for(i = 0; i < SC_MAX; i++) { +<<<<<<< HEAD + if( SC_COMMON_MAX > i ){ + if ( !tsc->data[i] || !status_get_sc_type(i) ) + continue; + if ( status_get_sc_type(i)&SC_NO_CLEARANCE ) + continue; + } +======= if ( !tsc->data[i] ) continue; if( SC_COMMON_MAX > i ) if ( status_get_sc_type(i)&SC_NO_CLEARANCE ) continue; +>>>>>>> upstream/master switch (i) { case SC_ASSUMPTIO: if( bl->type == BL_MOB ) @@ -8556,7 +8565,11 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui case SR_FLASHCOMBO: clif->skill_nodamage(src,bl,skill_id,skill_lv,1); for(i = SR_FLASHCOMBO_ATK_STEP1; i <= SR_FLASHCOMBO_ATK_STEP4; i++) +<<<<<<< HEAD + skill->addtimerskill(src, tick + 600 * (i - SR_FLASHCOMBO_ATK_STEP1), bl->id, 0, 0, i, skill_lv, BF_WEAPON, flag|SD_LEVEL); +======= skill->addtimerskill(src, tick + 500 * (i - SR_FLASHCOMBO_ATK_STEP1), bl->id, 0, 0, i, skill_lv, BF_WEAPON, flag|SD_LEVEL); +>>>>>>> upstream/master break; case WA_SWING_DANCE: case WA_MOONLIT_SERENADE: diff --git a/src/map/status.c b/src/map/status.c index 55b79fff7..a43be5726 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -8329,10 +8329,17 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val break; case SC_BLOOD_SUCKER: { +<<<<<<< HEAD + struct block_list *src = iMap->id2bl(sce->val2); + val3 = 1; + if(src) + val3 = 200 + 100 * sce->val1 + status_get_int(src); +======= struct block_list *src = iMap->id2bl(val2); val3 = 1; if(src) val3 = 200 + 100 * val1 + status_get_int(src); +>>>>>>> upstream/master val4 = tick / 1000; tick_time = 1000; // [GodLesZ] tick time } diff --git a/src/map/storage.c b/src/map/storage.c index 49cb18cbe..c999ab07b 100644 --- a/src/map/storage.c +++ b/src/map/storage.c @@ -253,7 +253,11 @@ int storage_storageget(struct map_session_data* sd, int index, int amount) return 0; if( (flag = pc->additem(sd,&sd->status.storage.items[index],amount,LOG_TYPE_STORAGE)) == 0 ) +<<<<<<< HEAD + storage_delitem(sd,index,amount); +======= storage->delitem(sd,index,amount); +>>>>>>> upstream/master else clif->additem(sd,0,0,flag); @@ -310,7 +314,11 @@ int storage_storagegettocart(struct map_session_data* sd, int index, int amount) return 0; if( pc->cart_additem(sd,&sd->status.storage.items[index],amount,LOG_TYPE_STORAGE) == 0 ) +<<<<<<< HEAD + storage_delitem(sd,index,amount); +======= storage->delitem(sd,index,amount); +>>>>>>> upstream/master return 1; } @@ -531,7 +539,11 @@ int storage_guild_storageadd(struct map_session_data* sd, int index, int amount) return 0; } +<<<<<<< HEAD + if(guild_storage_additem(sd,stor,&sd->status.inventory[index],amount)==0) +======= if(gstorage->additem(sd,stor,&sd->status.inventory[index],amount)==0) +>>>>>>> upstream/master pc->delitem(sd,index,amount,0,4,LOG_TYPE_GSTORAGE); return 1; @@ -570,7 +582,11 @@ int storage_guild_storageget(struct map_session_data* sd, int index, int amount) } if((flag = pc->additem(sd,&stor->items[index],amount,LOG_TYPE_GSTORAGE)) == 0) +<<<<<<< HEAD + guild_storage_delitem(sd,stor,index,amount); +======= gstorage->delitem(sd,stor,index,amount); +>>>>>>> upstream/master else //inform fail clif->additem(sd,0,0,flag); // log_fromstorage(sd, index, 1); @@ -604,7 +620,11 @@ int storage_guild_storageaddfromcart(struct map_session_data* sd, int index, int if( amount < 1 || amount > sd->status.cart[index].amount ) return 0; +<<<<<<< HEAD + if(guild_storage_additem(sd,stor,&sd->status.cart[index],amount)==0) +======= if(gstorage->additem(sd,stor,&sd->status.cart[index],amount)==0) +>>>>>>> upstream/master pc->cart_delitem(sd,index,amount,0,LOG_TYPE_GSTORAGE); return 1; @@ -637,7 +657,11 @@ int storage_guild_storagegettocart(struct map_session_data* sd, int index, int a return 0; if(pc->cart_additem(sd,&stor->items[index],amount,LOG_TYPE_GSTORAGE)==0) +<<<<<<< HEAD + guild_storage_delitem(sd,stor,index,amount); +======= gstorage->delitem(sd,stor,index,amount); +>>>>>>> upstream/master return 1; } @@ -768,4 +792,4 @@ void gstorage_defaults(void) { gstorage->pc_quit = storage_guild_storage_quit; gstorage->save = storage_guild_storagesave; gstorage->saved = storage_guild_storagesaved; -}
\ No newline at end of file +} diff --git a/src/map/trade.h b/src/map/trade.h index 8bf918ad2..ba56872c2 100644 --- a/src/map/trade.h +++ b/src/map/trade.h @@ -20,7 +20,11 @@ struct trade_interface { } trade_s; struct trade_interface *trade; +<<<<<<< HEAD +void trade_interface(void); +======= void trade_defaults(void); +>>>>>>> upstream/master #endif /* _TRADE_H_ */ |