만라우풀일때 아이템 안떨구기
수정 파일 : model/l1charater.java 파일 입니다
public void set_currentHp(int currentHp){
_currentHp = currentHp;
if (_currentHp >= get_temphp()){
stopHpRegeneration();
_currentHp = get_temphp();
}else if(_currentHp <= 0){
hpCK = false;
stopHpRegeneration();
stopMpRegeneration();
_currentHp = 0;
if(this instanceof L1PcInstance){
L1PcInstance cha = (L1PcInstance)this;
//-- 나에게 보내기
cha.sendPackets(cha.get_netConnection().bph().get_CharAction().S_DoAction(cha.get_objectId(), 8), true, true);
cha.set_status(8);
cha.set_isdead(true);
cha.set_food(0);
버프세팅(cha);
if(cha.get_level()>10)
{
CalcExp.getInstance().penal_exp(cha);
cha.sendPackets(cha.get_netConnection().bph().get_ocs().S_OwnCharStatus(cha), true);
}
if(cha.get_lawful() == 98303){ // 만라일때 않떨구는 부분 <<< 만라일때
} <<< 아무일 없이 닫음
if(cha.get_lawful() < 98303){
///////// 아이템 떨구는 부분..
int isdrop = 0; //아이템 떨굴 확률
int c_law = 0; //임시로 캐릭터의 라우풀수치로 떨구를 확률를 계산하기 위한..변수
//32926 --> 이게 풀카오 수치
//65536 --> 이게 뉴트럴 수치
//98303 --> 이게 만라풀 수치
c_law = (int)(cha.get_lawful()/10000); //캐릭터의 라우풀 수치 나누기 10000을 하여 확률을 계산
// 풀라일때는 않떨굼 , 뉴트럴 40%, 풀카오 70% 확률로 떨굼..
isdrop = cha.getRnd().nextInt(10)+1; //떨굴 확률...위한 변수
if(isdrop > c_law ){ // 랜덤으로 뽑아온 isdrop이 작을때... 아이템 떨구기 시작.
L1ItemInstance[] temp = cha.get_cil().getAllItems();
////////////////// 만라와 카오계산 떨굴 확률 및 갯수 계산
int count = 0; //떨구는 갯수
if(c_law == 3){ // 풀카오라면
count = cha.getRnd().nextInt(2) + 2;
}
else if(c_law == 4){
count = cha.getRnd().nextInt(3) + 1;
}
else if(c_law == 5){
count = cha.getRnd().nextInt(2) + 1;
}
else if(c_law == 6){
count = cha.getRnd().nextInt(2);
}
else if(c_law > 6){
count = cha.getRnd().nextInt(2);
}
for(int i=0 ; i < count ; ++i){
if(true){
int loc = cha.getRnd().nextInt(temp.length)+1;
if(temp[loc].getItem().getType2() == temp[loc].getItem().TYPE2_ETC) //만약 떨굴 아이템이 ETC 아이템이라면
{
while (temp[loc].getItem().getItemId() != 1);// ETC 아이템 중에서 아데나가 안될때까지..While 문 가동..
{
loc = cha.getRnd().nextInt(temp.length)+1;
}
}
if(temp[loc].isEquipped()){ // 착용중이였다면
if(temp[loc].getItem().getType2() == temp[loc].getItem().TYPE2_WEAPON){ // 무기라면
if((temp[loc].getItem().getType1() == temp[loc].getItem().WEAPON_TOHANDSWORD) ||
(temp[loc].getItem().getType1() == temp[loc].getItem().WEAPON_BOW) ||
(temp[loc].getItem().getType1() == temp[loc].getItem().WEAPON_BLUNT) ||
(temp[loc].getItem().getType1() == temp[loc].getItem().WEAPON_SPEER) ||
(temp[loc].getItem().getType1() == temp[loc].getItem().WEAPON_EDORYU) ||
(temp[loc].getItem().getType1() == temp[loc].getItem().WEAPON_CLAW)){
cha.set_TwoSword(false);
}
if(temp[loc].getItem().get_nameid().equalsIgnoreCase("$1063") ||
temp[loc].getItem().get_nameid().equalsIgnoreCase("$2003") ){ // 마나 지팡이 라면
cha.set_마나지팡이(false);
}
cha.set_무기(false);
cha.set_currentWeapon(0);
temp[loc].setEquipped(false);
cha.setDmg_small(0); // 스몰 데미지 설정.
cha.setDmg_large(0); // 라지 데미지 설정.
cha.setEnchantlvl(0); // 인첸 레벨 설정.
ItemHandler.getInstance().op(cha, temp[loc], false);
}else{ // 방어구 라면
ItemHandler.getInstance().handler(cha, temp[loc]);
ItemUse.getInstance().armor(cha, temp[loc]);
}
//-- 셋트 아이템
SetItem setitem = SetItemTable.getInstance().getTemplate(temp[loc].getItem().get_setItem());
if(setitem != null){
if(cha.setITEM(setitem.get_id(), setitem.get_count(), temp[loc].isEquipped())){
// 풀셋 옵션 적용
cha.set_풀셋(true);
ItemUse.getInstance().SetOption(cha, setitem, true, false);
}else{
if(cha.get_풀셋()){
// 플셋 옵션 해제
cha.set_풀셋(false);
ItemUse.getInstance().SetOption(cha, setitem, false, false);
}
}
}
}
temp[loc].set_x(cha.get_x());
temp[loc].set_y(cha.get_y());
temp[loc].set_map(cha.get_map());
while(true){
temp[loc].set_objectId(IdFactory.getInstance().getNextId());
if(L1World.getInstance().storeObject(temp[loc])){
break;
}
}
//-- 나에게 보내기
cha.sendPackets(cha.get_netConnection().bph().get_NewObjectPack().S_ITEMPack(temp[loc]), true, true);
cha.sendPackets(cha.get_netConnection().bph().get_Item().S_ItemDelete(temp[loc]), false);
cha.get_cil().removeItems(temp[loc]);
//-- 무게 세팅
cha.set_weight(cha.get_weight() - (temp[loc].getItem().getWeight()*temp[loc].getCount()));
cha.sendPackets(cha.get_netConnection().bph().S_Status(cha, 0), true);
}
}
}
}
}else if(this instanceof L1NpcInstance){
L1NpcInstance npc = (L1NpcInstance)this;
if((npc.getNpcTemplate().get_npcId()!=60503)&&(npc.getNpcTemplate().get_npcId()!=60504)){
if(npc.getNpcTemplate().getCandie()){ // 죽는 다면
//-- 월드맵 오브젝트 삭제
L1World.getInstance().removeVisibleObject(npc);
npc.AllsendPackets(npc.bph().get_CharAction().S_DoAction(npc.get_objectId(), 8), true);
npc.set_status(8);
npc.set_isdead(true);
if(npc instanceof L1MonsterInstance){
L1MonsterInstance mon = (L1MonsterInstance)this;
if(mon.Fight){ // 전투중이였다면
mon.Fight = false;
}
}else if(npc instanceof L1SummonInstance){
L1SummonInstance pet = (L1SummonInstance)this;
DiePet dp = new DiePet(pet);
dp.start();
}else{
ReSpawn rs = new ReSpawn(npc);
rs.start();
}
}else{ // 안죽는 다면
}
}
}
}else if(!_hpRegenActive && !is_isdead()){
hpCK = false;
startHpRegeneration();
}
if(!hpCK){
if(this instanceof L1PcInstance){
L1PcInstance cha = (L1PcInstance)this;
cha.sendPackets(cha.get_netConnection().bph().get_HP_MP_EXP().S_HPUpdate(cha), true);
if(cha.get_PartyOn()){ // 파티중이라면
cha.get_Party().SendMiniHP(cha, false);
}
}else if(this instanceof L1PetInstance){
L1PetInstance pet = (L1PetInstance)this;
pet.get_SummonOwn().sendPackets(pet.get_SummonOwn().get_netConnection().bph().S_HitRatio(pet), true);
}else if(this instanceof L1SummonInstance){
L1SummonInstance pet = (L1SummonInstance)this;
pet.get_SummonOwn().sendPackets(pet.get_SummonOwn().get_netConnection().bph().S_HitRatio(pet), true);
}
if(_currentHp >= get_temphp()){
hpCK = true;
}
}

김닉넴 님의 최근 댓글
클라는 있나요? 2023 04.29 클라 있나요? 2023 03.23 감사합니다 2016 06.06 ㄳ합니다 2016 06.05 ㄳ합니다 2016 06.05