opendarkeden/server

Drop Ratio

Closed this issue · 3 comments

image
like im moving with the ratio up and dont and im geting only White items sometime yellow or 2op its working difrent then other servers or i dont know.... any idea? someone test it ?

Drop ratio can be controled by GM command?

else if(set_type == "event_ratio")
{
g_pVariableManager->setEventRatio(atoi(set_value.c_str()));
char msg[100];
sprintf( msg, g_pStringPool->c_str( STRID_SET_EVENT_MONSTER_RATIO ),
set_value.c_str() );
// message << "이벤트 몬스터 출현 확률이 의해서 1/" << set_value << "로 수정되었습니다";
gcSystemMessage.setMessage(msg);
filelog("change.txt", "[%s]%s", (pGamePlayer==NULL?"Nobody":pGamePlayer->getCreature()->getName().c_str()), gcSystemMessage.toString().c_str());
}
else if(set_type == "exp_ratio")
{
int value = atoi(set_value.c_str());
if (value < 100)
return;
g_pVariableManager->setExpRatio(value);
char msg[100];
sprintf( msg, g_pStringPool->c_str( STRID_SET_EXP_RATIO ),
set_value.c_str() );
// message << "경험치 획득률이" << set_value << "%로 수정되었습니다";
gcSystemMessage.setMessage(msg);
filelog("change.txt", "[%s]%s", (pGamePlayer==NULL?"Nobody":pGamePlayer->getCreature()->getName().c_str()), gcSystemMessage.toString().c_str());
}
else if(set_type == "item_prob_ratio")
{
int value = atoi(set_value.c_str());
if(value < value)
return;
g_pVariableManager->setItemProbRatio(value);
char msg[100];
sprintf( msg, g_pStringPool->c_str( STRID_SET_ITEM_PROBE_RATIO ),
set_value.c_str() );
// message << "아이템 획득률이 " << set_value << "%로 수정되었습니다";
gcSystemMessage.setMessage(msg);
filelog("change.txt", "[%s]%s", (pGamePlayer==NULL?"Nobody":pGamePlayer->getCreature()->getName().c_str()), gcSystemMessage.toString().c_str());
}
else if(set_type == "combat_bonus_time")
{
int bonusTime = atoi(set_value.c_str());
if (bonusTime < 1 || bonusTime > 14400)
return;
g_pVariableManager->setCombatBonusTime(bonusTime);
char msg[100];
sprintf( msg, g_pStringPool->c_str( STRID_SET_COMBAT_BONUS_TIME ),
set_value.c_str() );
// message << "전쟁 승리 유지시간이 " << set_value << "분으로 수정되었습니다";
gcSystemMessage.setMessage(msg);
filelog("change.txt", "[%s]%s", (pGamePlayer==NULL?"Nobody":pGamePlayer->getCreature()->getName().c_str()), gcSystemMessage.toString().c_str());
}
else if(set_type == "combat_bonus_slayer_hp_ratio")
{
int bonus= atoi(set_value.c_str());
if (bonus< 0 || bonus> 100)
return;
g_pVariableManager->setCombatSlayerHPBonusRatio(bonus);
char msg[100];
sprintf( msg, g_pStringPool->c_str( STRID_SET_COMBAT_SLAYER_BONUS_HP ),
set_value.c_str() );
// message << "슬레이어 전쟁 HP보너스가 +" << set_value << "% 로 수정되었습니다";
gcSystemMessage.setMessage(msg);
filelog("change.txt", "[%s]%s", (pGamePlayer==NULL?"Nobody":pGamePlayer->getCreature()->getName().c_str()), gcSystemMessage.toString().c_str());
}
else if(set_type == "combat_bonus_vampire_hp_ratio")
{
int bonus= atoi(set_value.c_str());
if (bonus< 0 || bonus> 100)
return;
g_pVariableManager->setCombatVampireHPBonusRatio(bonus);
char msg[100];
sprintf( msg, g_pStringPool->c_str( STRID_SET_COMBAT_VAMPIRE_BONUS_HP ),
set_value.c_str() );
// message << "뱀파이어 전쟁 HP보너스가 +" << set_value << "% 로 수정되었습니다";
gcSystemMessage.setMessage(msg);
filelog("change.txt", "[%s]%s", (pGamePlayer==NULL?"Nobody":pGamePlayer->getCreature()->getName().c_str()), gcSystemMessage.toString().c_str());
}
else if(set_type == "combat_bonus_slayer_damage")
{
int bonus= atoi(set_value.c_str());
if (bonus< 0 || bonus> 20)
return;
g_pVariableManager->setCombatSlayerDamageBonus(bonus);
char msg[100];
sprintf( msg, g_pStringPool->c_str( STRID_SET_COMBAT_SLAYER_BONUS_DAMAGE ),
set_value.c_str() );
// message << "슬레이어 전쟁 데미지보너스가 +" << set_value << " 로 수정되었습니다";
gcSystemMessage.setMessage(msg);
filelog("change.txt", "[%s]%s", (pGamePlayer==NULL?"Nobody":pGamePlayer->getCreature()->getName().c_str()), gcSystemMessage.toString().c_str());
}
else if(set_type == "combat_bonus_vampire_damage")
{
int bonus= atoi(set_value.c_str());
if (bonus< 0 || bonus> 20)
return;
g_pVariableManager->setCombatVampireDamageBonus(bonus);
char msg[100];
sprintf( msg, g_pStringPool->c_str( STRID_SET_COMBAT_VAMPIRE_BONUS_DAMAGE ),
set_value.c_str() );
// message << "뱀파이어 전쟁 데미지보너스가 +" << set_value << " 로 수정되었습니다";
gcSystemMessage.setMessage(msg);
filelog("change.txt", "[%s]%s", (pGamePlayer==NULL?"Nobody":pGamePlayer->getCreature()->getName().c_str()), gcSystemMessage.toString().c_str());
}
else if(set_type == "premium_exp_bonus_percent")
{
int bonus= atoi(set_value.c_str());
if (bonus< 100 || bonus> 1000)
return;
g_pVariableManager->setPremiumExpBonusPercent(bonus);
char msg[100];
sprintf( msg, g_pStringPool->c_str( STRID_SET_PREMIUM_EXP_RATIO ),
set_value.c_str() );
// message << "프리미엄 사용자의 경험치 보너스가 " << set_value << "% 로 수정되었습니다.";
gcSystemMessage.setMessage(msg);
filelog("change.txt", "[%s]%s", (pGamePlayer==NULL?"Nobody":pGamePlayer->getCreature()->getName().c_str()), gcSystemMessage.toString().c_str());
}
else if(set_type == "premium_item_probe_percent")
{
int bonus= atoi(set_value.c_str());
if (bonus< 100 || bonus> 1000)
return;
g_pVariableManager->setPremiumItemProbePercent(bonus);
char msg[100];
sprintf( msg, g_pStringPool->c_str( STRID_SET_PREMIUM_ITEM_PROBE_RATIO ),
set_value.c_str() );
// message << "프리미엄 존의 아이템 루팅 확률이 " << set_value << "% 로 수정되었습니다.";
gcSystemMessage.setMessage(msg);
filelog("change.txt", "[%s]%s", (pGamePlayer==NULL?"Nobody":pGamePlayer->getCreature()->getName().c_str()), gcSystemMessage.toString().c_str());
}
else if(set_type == "zone_group_balancing_minute")
{
int minute= atoi(set_value.c_str());
if (minute<=0 || minute>30*24*60)
return;
g_pVariableManager->setZoneGroupBalancingMinute(minute);
g_pClientManager->setBalanceZoneGroup(minute);
char msg[100];
sprintf( msg, g_pStringPool->c_str( STRID_SET_ZONE_GROUP_BALANCING_TIME ),
set_value.c_str() );
// message << "ZoneGroupBalancing 주기가 " << set_value << "분으로 수정되었습니다.";
gcSystemMessage.setMessage(msg);
filelog("change.txt", "[%s]%s", (pGamePlayer==NULL?"Nobody":pGamePlayer->getCreature()->getName().c_str()), gcSystemMessage.toString().c_str());
}
else if(set_type == "gamble_item_type_ratio")
{
int ratio= atoi(set_value.c_str());
if (ratio<=10 || ratio>1000)
return;
g_pVariableManager->setGambleItemTypeRatio(ratio);
char msg[100];
sprintf( msg, g_pStringPool->c_str( STRID_SET_GAMBLE_ITEM_TYPE_RATIO ),
set_value.c_str() );
// message << "갬블 ItemType확률이 " << set_value << "%로 수정되었습니다.";
gcSystemMessage.setMessage(msg);
filelog("change.txt", "[%s]%s", (pGamePlayer==NULL?"Nobody":pGamePlayer->getCreature()->getName().c_str()), gcSystemMessage.toString().c_str());
}
else if(set_type == "gamble_item_option_ratio")
{
int ratio= atoi(set_value.c_str());
if (ratio<=10 || ratio>1000)
return;
g_pVariableManager->setGambleItemOptionRatio(ratio);
char msg[100];
sprintf( msg, g_pStringPool->c_str( STRID_SET_GAMBLE_ITEM_OPTION_RATIO ),
set_value.c_str() );
// message << "갬블 ItemOption확률이 " << set_value << "%로 수정되었습니다.";
gcSystemMessage.setMessage(msg);
filelog("change.txt", "[%s]%s", (pGamePlayer==NULL?"Nobody":pGamePlayer->getCreature()->getName().c_str()), gcSystemMessage.toString().c_str());
}
else if(set_type == "summon_motorcycle")
{
if (set_value=="on")
{
g_pVariableManager->setSummonMotorcycle(true);
char msg[100];
sprintf( msg, g_pStringPool->c_str( STRID_SET_SUMMON_MOTORCYCLE ), "ON" );
// message << "오토바이 소환 기능이 ON 되었습니다.";
gcSystemMessage.setMessage(msg);
filelog("change.txt", "[%s]%s", (pGamePlayer==NULL?"Nobody":pGamePlayer->getCreature()->getName().c_str()), gcSystemMessage.toString().c_str());
}
else if (set_value=="off")
{
g_pVariableManager->setSummonMotorcycle(false);
char msg[100];
sprintf( msg, g_pStringPool->c_str( STRID_SET_SUMMON_MOTORCYCLE ), "OFF" );
// message << "오토바이 소환 기능이 OFF 되었습니다.";
gcSystemMessage.setMessage(msg);
filelog("change.txt", "[%s]%s", (pGamePlayer==NULL?"Nobody":pGamePlayer->getCreature()->getName().c_str()), gcSystemMessage.toString().c_str());
}
}
else if(set_type == "enemy_limit_time")
{
int enemy_limit_time = atoi(set_value.c_str());
if (enemy_limit_time<=180 || enemy_limit_time>=3600)
return;
g_pVariableManager->setEnemyLimitTime(enemy_limit_time);
char msg[100];
sprintf( msg, g_pStringPool->c_str( STRID_SET_MONSTER_FORGET_TIME ),
set_value.c_str() );
// message << "몬스터의 연속 적 인식시간이" << set_value << "초로 수정되었습니다.";
gcSystemMessage.setMessage(msg);
filelog("change.txt", "[%s]%s", (pGamePlayer==NULL?"Nobody":pGamePlayer->getCreature()->getName().c_str()), gcSystemMessage.toString().c_str());
}
else if(set_type == "rare_item_ratio")
{
int ratio = atoi(set_value.c_str());
if (ratio<0 || ratio>100000)
return;
g_pVariableManager->setRareItemRatio(ratio);
char msg[100];
sprintf( msg, g_pStringPool->c_str( STRID_SET_RARE_ITEM_RATIO ),
set_value.c_str() );
// message << "레어 아이템 루팅 확률이 " << set_value << "%로 수정되었습니다.";
gcSystemMessage.setMessage(msg);
filelog("change.txt", "[%s]%s", (pGamePlayer==NULL?"Nobody":pGamePlayer->getCreature()->getName().c_str()), gcSystemMessage.toString().c_str());
}
else if(set_type == "unique_item_ratio")
{
int ratio = atoi(set_value.c_str());
if (ratio<0 || ratio>10000)
return;
g_pVariableManager->setUniqueItemRatio(ratio);
char msg[100];
sprintf( msg, g_pStringPool->c_str( STRID_SET_UNIQUE_ITEM_RATIO ),
set_value.c_str() );
// message << "유니크 아이템 루팅 확률이 " << set_value << "/10000 으로 수정되었습니다.";
gcSystemMessage.setMessage(msg);
filelog("change.txt", "[%s]%s", (pGamePlayer==NULL?"Nobody":pGamePlayer->getCreature()->getName().c_str()), gcSystemMessage.toString().c_str());
}
else if(set_type == "active_master_lair")
{
MasterLairManager* pMasterLairManager = NULL;
if (pGamePlayer!=NULL)
{
Creature* pCreature = pGamePlayer->getCreature();
Zone* pZone = pCreature->getZone();
pMasterLairManager = pZone->getMasterLairManager();
}
if (set_value=="on")
{
g_pVariableManager->setActiveMasterLair(true);
char msg[100];
sprintf( msg, g_pStringPool->c_str( STRID_SET_MASTER_LAIR_ACTIVATE ), "ON" );
// message << "마스터 레어 이벤트가 ON 되었습니다.";
gcSystemMessage.setMessage(msg);
filelog("change.txt", "[%s]%s", (pGamePlayer==NULL?"Nobody":pGamePlayer->getCreature()->getName().c_str()), gcSystemMessage.toString().c_str());
if (pMasterLairManager!=NULL)
{
pMasterLairManager->startEvent();
}
}
else if (set_value=="off")
{
g_pVariableManager->setActiveMasterLair(false);
char msg[100];
sprintf( msg, g_pStringPool->c_str( STRID_SET_MASTER_LAIR_ACTIVATE ), "OFF" );
// message << "마스터 레어 이벤트가 OFF 되었습니다.";
gcSystemMessage.setMessage(msg);
filelog("change.txt", "[%s]%s", (pGamePlayer==NULL?"Nobody":pGamePlayer->getCreature()->getName().c_str()), gcSystemMessage.toString().c_str());
if (pMasterLairManager!=NULL)
{
pMasterLairManager->stopEvent();
}
}
}
else if(set_type == "retry_master_lair")
{
if (set_value=="on")
{
g_pVariableManager->setRetryMasterLair(true);
char msg[100];
sprintf( msg, g_pStringPool->c_str( STRID_SET_RETRY_MASTER_LAIR ), "ON" );
// message << "마스터 레어에 죽고 다시 들어가기가 ON 되었습니다.";
gcSystemMessage.setMessage(msg);
filelog("change.txt", "[%s]%s", (pGamePlayer==NULL?"Nobody":pGamePlayer->getCreature()->getName().c_str()), gcSystemMessage.toString().c_str());
}
else if (set_value=="off")
{
g_pVariableManager->setRetryMasterLair(false);
char msg[100];
sprintf( msg, g_pStringPool->c_str( STRID_SET_RETRY_MASTER_LAIR ), "OFF" );
// message << "마스터 레어에 죽고 다시 들어가기가 OFF 되었습니다.";
gcSystemMessage.setMessage(msg);
filelog("change.txt", "[%s]%s", (pGamePlayer==NULL?"Nobody":pGamePlayer->getCreature()->getName().c_str()), gcSystemMessage.toString().c_str());
}
}
else if(set_type == "harvest_festival_item_ratio")
{
int ratio = atoi(set_value.c_str());
if (ratio<0 || ratio>10000)
return;
g_pVariableManager->setHarvestFestivalItemRatio(ratio);
char msg[100];
sprintf( msg, g_pStringPool->c_str( STRID_SET_HARVEST_FESTIVAL_ITEM_RATIO ),
set_value.c_str() );
// message << "추석 송편 아이템 루팅 확률이 1/" << ratio << "이 되었습니다.";
gcSystemMessage.setMessage(msg);
filelog("change.txt", "[%s]%s", (pGamePlayer==NULL?"Nobody":pGamePlayer->getCreature()->getName().c_str()), gcSystemMessage.toString().c_str());
}
else if(set_type == "master_blood_drain_start_hp")
{
int percent = atoi(set_value.c_str());
if (percent<0 || percent>100)
return;
g_pVariableManager->setMasterBloodDrainStartHP(percent);
char msg[100];
sprintf( msg, g_pStringPool->c_str( STRID_SET_MASTER_BLOOD_DRAIN_START_HP ),
set_value.c_str() );
// message << "마스터의 흡혈 시작 HP가 " << percent << "%가 되었습니다.";
gcSystemMessage.setMessage(msg);
filelog("change.txt", "[%s]%s", (pGamePlayer==NULL?"Nobody":pGamePlayer->getCreature()->getName().c_str()), gcSystemMessage.toString().c_str());
}
else if(set_type == "master_blood_drain_start_bd")
{
int percent = atoi(set_value.c_str());
if (percent<0 || percent>100)
return;
g_pVariableManager->setMasterBloodDrainStartBD(percent);
char msg[100];
sprintf( msg, g_pStringPool->c_str( STRID_SET_MASTER_BLOOD_DRAIN_START_BD ),
set_value.c_str() );
// message << "마스터의 흡혈 시작 때의 흡혈 확률이 " << percent << "%가 되었습니다.";
gcSystemMessage.setMessage(msg);
filelog("change.txt", "[%s]%s", (pGamePlayer==NULL?"Nobody":pGamePlayer->getCreature()->getName().c_str()), gcSystemMessage.toString().c_str());
}
else if(set_type == "master_blood_drain_end_hp")
{
int percent = atoi(set_value.c_str());
if (percent<0 || percent>100)
return;
g_pVariableManager->setMasterBloodDrainEndHP(percent);
char msg[100];
sprintf( msg, g_pStringPool->c_str( STRID_SET_MASTER_BLOOD_DRAIN_END_HP ),
set_value.c_str() );
// message << "마스터의 흡혈 끝(?) HP가 " << percent << "%가 되었습니다.";
gcSystemMessage.setMessage(msg);
filelog("change.txt", "[%s]%s", (pGamePlayer==NULL?"Nobody":pGamePlayer->getCreature()->getName().c_str()), gcSystemMessage.toString().c_str());
}
else if(set_type == "master_blood_drain_end_bd")
{
int percent = atoi(set_value.c_str());
if (percent<0 || percent>100)
return;
g_pVariableManager->setMasterBloodDrainEndBD(percent);
char msg[100];
sprintf( msg, g_pStringPool->c_str( STRID_SET_MASTER_BLOOD_DRAIN_END_BD ),
set_value.c_str() );
// message << "마스터의 흡혈 끝(?) 상태의 흡혈 확률이 " << percent << "%가 되었습니다.";
gcSystemMessage.setMessage(msg);
filelog("change.txt", "[%s]%s", (pGamePlayer==NULL?"Nobody":pGamePlayer->getCreature()->getName().c_str()), gcSystemMessage.toString().c_str());
}
else if(set_type == "chief_monster")
{
if (set_value=="on")
{
g_pVariableManager->setActiveChiefMonster(true);
char msg[100];
sprintf( msg, g_pStringPool->c_str( STRID_SET_CHIEF_MONSTER ), "ON" );
// message << "치프 몬스터 기능이 ON 되었습니다.";
gcSystemMessage.setMessage(msg);
filelog("change.txt", "[%s]%s", (pGamePlayer==NULL?"Nobody":pGamePlayer->getCreature()->getName().c_str()), gcSystemMessage.toString().c_str());
}
else if (set_value=="off")
{
g_pVariableManager->setActiveChiefMonster(false);
char msg[100];
sprintf( msg, g_pStringPool->c_str( STRID_SET_CHIEF_MONSTER ), "OFF" );
// message << "치프 몬스터 기능이 OFF 되었습니다.";
gcSystemMessage.setMessage(msg);
filelog("change.txt", "[%s]%s", (pGamePlayer==NULL?"Nobody":pGamePlayer->getCreature()->getName().c_str()), gcSystemMessage.toString().c_str());
}
}
else if(set_type == "chief_monster_rare_item_percent")
{
int ratio = atoi(set_value.c_str());
if (ratio<0 || ratio>100)
return;
g_pVariableManager->setChiefMonsterRareItemPercent(ratio);
char msg[100];
sprintf( msg, g_pStringPool->c_str( STRID_SET_CHIEF_MONSTER_RARE_ITEM_RATIO ),
set_value.c_str() );
// message << "치프 몬스터 레어 아이템 루팅 확률이 " << set_value << "%로 수정되었습니다.";
gcSystemMessage.setMessage(msg);
filelog("change.txt", "[%s]%s", (pGamePlayer==NULL?"Nobody":pGamePlayer->getCreature()->getName().c_str()), gcSystemMessage.toString().c_str());
}
else if(set_type == "newbie_transport_to_guild")
{
if (set_value=="on")
{
g_pVariableManager->setNewbieTransportToGuild(true);
char msg[100];
sprintf( msg, g_pStringPool->c_str( STRID_SET_NEWBIE_TRANSPORT_TO_GUILD ), "ON" );
// message << "능력치 40짜리, 길드로 이동시키기 기능이 ON 되었습니다.";
gcSystemMessage.setMessage(msg);
filelog("change.txt", "[%s]%s", (pGamePlayer==NULL?"Nobody":pGamePlayer->getCreature()->getName().c_str()), gcSystemMessage.toString().c_str());
}
else if (set_value=="off")
{
g_pVariableManager->setNewbieTransportToGuild(false);
char msg[100];
sprintf( msg, g_pStringPool->c_str( STRID_SET_NEWBIE_TRANSPORT_TO_GUILD ), "OFF" );
// message << "능력치 40짜리, 길드로 이동시키기 기능이 OFF 되었습니다.";
gcSystemMessage.setMessage(msg);
filelog("change.txt", "[%s]%s", (pGamePlayer==NULL?"Nobody":pGamePlayer->getCreature()->getName().c_str()), gcSystemMessage.toString().c_str());
}
}
else if ( set_type == "xmas_2002" )
{
size_t l = set_value.find_first_of(' ' , 0);
size_t m = set_value.find_first_of(' ' , l+1);
string value_firecracker = set_value.substr( 0, l);
string value_treepart = set_value.substr( l+1, m-l-1 );
string value_giftbox = set_value.substr( m+1 );
g_pVariableManager->setVariable(CHRISTMAS_FIRE_CRACKER_RATIO, value_firecracker);
const string& msg1 = g_pVariableManager->toString(CHRISTMAS_FIRE_CRACKER_RATIO);
filelog("change.txt", "[%s]%s", (pGamePlayer==NULL?"Nobody":pGamePlayer->getCreature()->getName().c_str()), gcSystemMessage.toString().c_str());
gcSystemMessage.setMessage(msg1);
if (pGamePlayer!=NULL)
pGamePlayer->sendPacket (&gcSystemMessage);
g_pVariableManager->setVariable(CHRISTMAS_TREE_PART_RATIO, value_treepart);
const string& msg2 = g_pVariableManager->toString(CHRISTMAS_TREE_PART_RATIO);
filelog("change.txt", "[%s]%s", (pGamePlayer==NULL?"Nobody":pGamePlayer->getCreature()->getName().c_str()), gcSystemMessage.toString().c_str());
gcSystemMessage.setMessage(msg2);
if (pGamePlayer!=NULL)
pGamePlayer->sendPacket (&gcSystemMessage);
g_pVariableManager->setVariable(CHRISTMAS_GIFT_BOX_RATIO, value_giftbox);
const string& msg3 = g_pVariableManager->toString(CHRISTMAS_GIFT_BOX_RATIO);
filelog("change.txt", "[%s]%s", (pGamePlayer==NULL?"Nobody":pGamePlayer->getCreature()->getName().c_str()), gcSystemMessage.toString().c_str());
gcSystemMessage.setMessage(msg3);
}
else if (set_type =="ItemTaxRatio")

of u can yes but looks like nothink change :/

its was my problem theres no problem :D sorry