diff options
author | Jared Adams <jaxad0127@gmail.com> | 2009-09-18 15:49:51 -0600 |
---|---|---|
committer | Jared Adams <jaxad0127@gmail.com> | 2009-09-18 15:49:51 -0600 |
commit | 41075d30353cd42588975cfbc8a21a69911ad4cc (patch) | |
tree | 8a7ae1fa652da465079e22167d419e1c663cf0c1 /src/map/clif.c | |
parent | b3939b91deda8081c5b144109829599b05e81272 (diff) | |
download | tmwa-41075d30353cd42588975cfbc8a21a69911ad4cc.tar.gz tmwa-41075d30353cd42588975cfbc8a21a69911ad4cc.tar.bz2 tmwa-41075d30353cd42588975cfbc8a21a69911ad4cc.tar.xz tmwa-41075d30353cd42588975cfbc8a21a69911ad4cc.zip |
Replace basic skill with three new skills
We want to handle skills differently that eAthena was made too. All new skills are leveled by NPCs instead of using the job sysetm. Also fixes some bugs.
Diffstat (limited to 'src/map/clif.c')
-rw-r--r-- | src/map/clif.c | 38 |
1 files changed, 16 insertions, 22 deletions
diff --git a/src/map/clif.c b/src/map/clif.c index 401f6cc..6457e9b 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -3741,7 +3741,7 @@ int clif_skillinfo(struct map_session_data *sd,int skillid,int type,int range) } else WFIFOW(fd,12)= range; memset(WFIFOP(fd,14),0,24); - if(!(skill_get_inf2(id)&0x01) || battle_config.quest_skill_learn == 1 || (battle_config.gm_allskill > 0 && pc_isGM(sd) >= battle_config.gm_allskill) ) + if(skill_get_inf2(id)&0x01) WFIFOB(fd,38)= (sd->status.skill[skillid].lv < skill_get_max(id) && sd->status.skill[skillid].flag ==0 )? 1:0; else WFIFOB(fd,38) = 0; @@ -3765,8 +3765,7 @@ int clif_skillinfoblock(struct map_session_data *sd) WFIFOW(fd,0)=0x10f; for ( i = c = 0; i < MAX_SKILL; i++){ if( (id=sd->status.skill[i].id)!=0 - && (sd->tmw_version >= 1 // [Fate] Version 1 and later don't crash because of bad skill IDs anymore - || !QUEST_SKILL(i))){ // [Fate] Hack: Prevent killing the client + && (sd->tmw_version >= 1)){ // [Fate] Version 1 and later don't crash because of bad skill IDs anymore WFIFOW(fd,len ) = id; WFIFOW(fd,len+2) = skill_get_inf(id); WFIFOW(fd,len+4) = 0; @@ -3777,7 +3776,7 @@ int clif_skillinfoblock(struct map_session_data *sd) range = battle_get_range(&sd->bl) - (range + 1); WFIFOW(fd,len+10)= range; memset(WFIFOP(fd,len+12),0,24); - if(!(skill_get_inf2(id)&0x01) || battle_config.quest_skill_learn == 1 || (battle_config.gm_allskill > 0 && pc_isGM(sd) >= battle_config.gm_allskill) ) + if(skill_get_inf2(id)&0x01) WFIFOB(fd,len+36)= (sd->status.skill[i].lv < skill_get_max(id) && sd->status.skill[i].flag ==0 )? 1:0; else WFIFOB(fd,len+36) = 0; @@ -6648,7 +6647,7 @@ void clif_parse_Emotion(int fd, struct map_session_data *sd) { nullpo_retv(sd); - if (battle_config.basic_skill_check == 0 || pc_checkskill(sd, NV_BASIC) >= 2) { + if (battle_config.basic_skill_check == 0 || pc_checkskill(sd, NV_EMOTE) >= 1) { WBUFW(buf,0) = 0xc0; WBUFL(buf,2) = sd->bl.id; WBUFB(buf,6) = RFIFOB(fd,2); @@ -6715,15 +6714,12 @@ void clif_parse_ActionRequest(int fd, struct map_session_data *sd) { pc_attack(sd, target_id, action_type != 0); break; case 0x02: // sitdown - if (battle_config.basic_skill_check == 0 || pc_checkskill(sd, NV_BASIC) >= 3) { - if (tmw_CheckSitSpam(sd)) - break; - pc_stop_walking(sd, 1); - skill_gangsterparadise(sd, 1); // �M�����O�X�^�[�p���_�C�X�ݒ� - pc_setsit(sd); - clif_sitting(fd, sd); - } else - clif_skill_fail(sd, 1, 0, 2); + if (tmw_CheckSitSpam(sd)) + break; + pc_stop_walking(sd, 1); + skill_gangsterparadise(sd, 1); // �M�����O�X�^�[�p���_�C�X�ݒ� + pc_setsit(sd); + clif_sitting(fd, sd); break; case 0x03: // standup skill_gangsterparadise(sd, 0); // �M�����O�X�^�[�p���_�C�X���� @@ -7072,10 +7068,7 @@ void clif_parse_NpcSellListSend(int fd,struct map_session_data *sd) */ void clif_parse_CreateChatRoom(int fd,struct map_session_data *sd) { - if(battle_config.basic_skill_check == 0 || pc_checkskill(sd,NV_BASIC) >= 4){ - chat_createchat(sd,RFIFOW(fd,4),RFIFOB(fd,6),RFIFOP(fd,7),RFIFOP(fd,15),RFIFOW(fd,2)-15); - } else - clif_skill_fail(sd,1,0,3); + chat_createchat(sd,RFIFOW(fd,4),RFIFOB(fd,6),RFIFOP(fd,7),RFIFOP(fd,15),RFIFOW(fd,2)-15); } /*========================================== @@ -7131,7 +7124,7 @@ void clif_parse_TradeRequest(int fd,struct map_session_data *sd) { nullpo_retv(sd); - if(battle_config.basic_skill_check == 0 || pc_checkskill(sd,NV_BASIC) >= 1){ + if(battle_config.basic_skill_check == 0 || pc_checkskill(sd,NV_TRADE) >= 1){ if (tmw_CheckTradeSpam(sd)) return; trade_traderequest(sd,RFIFOL(sd->fd,2)); @@ -7664,7 +7657,7 @@ void clif_parse_CloseKafra(int fd, struct map_session_data *sd) { *------------------------------------------ */ void clif_parse_CreateParty(int fd, struct map_session_data *sd) { - if (battle_config.basic_skill_check == 0 || pc_checkskill(sd,NV_BASIC) >= 7) { + if (battle_config.basic_skill_check == 0 || pc_checkskill(sd,NV_PARTY) >= 2) { party_create(sd,RFIFOP(fd,2)); } else clif_skill_fail(sd,1,0,4); @@ -7675,7 +7668,7 @@ void clif_parse_CreateParty(int fd, struct map_session_data *sd) { *------------------------------------------ */ void clif_parse_CreateParty2(int fd, struct map_session_data *sd) { - if (battle_config.basic_skill_check == 0 || pc_checkskill(sd,NV_BASIC) >= 7){ + if (battle_config.basic_skill_check == 0 || pc_checkskill(sd,NV_PARTY) >= 2){ party_create(sd, RFIFOP(fd,2)); } else clif_skill_fail(sd, 1, 0, 4); @@ -7686,6 +7679,7 @@ void clif_parse_CreateParty2(int fd, struct map_session_data *sd) { *------------------------------------------ */ void clif_parse_PartyInvite(int fd, struct map_session_data *sd) { + printf("Party Invite!\n"); party_invite(sd, RFIFOL(fd,2)); } @@ -7694,7 +7688,7 @@ void clif_parse_PartyInvite(int fd, struct map_session_data *sd) { *------------------------------------------ */ void clif_parse_ReplyPartyInvite(int fd,struct map_session_data *sd) { - if(battle_config.basic_skill_check == 0 || pc_checkskill(sd,NV_BASIC) >= 5){ + if (battle_config.basic_skill_check == 0 || pc_checkskill(sd,NV_PARTY) >= 1){ party_reply_invite(sd,RFIFOL(fd,2),RFIFOL(fd,6)); } else { party_reply_invite(sd,RFIFOL(fd,2),-1); |