mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-03-03 21:49:41 +00:00
Only exchange bribe gold if the bribe was accepted
This commit is contained in:
parent
72df9e77c6
commit
5eeed03f5b
3 changed files with 18 additions and 27 deletions
|
@ -500,7 +500,24 @@ namespace MWDialogue
|
||||||
mTemporaryDispositionChange = 100 - curDisp;
|
mTemporaryDispositionChange = 100 - curDisp;
|
||||||
|
|
||||||
MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr();
|
MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr();
|
||||||
MWWorld::Class::get(player).skillUsageSucceeded(player, ESM::Skill::Speechcraft, success ? 0 : 1);
|
player.getClass().skillUsageSucceeded(player, ESM::Skill::Speechcraft, success ? 0 : 1);
|
||||||
|
|
||||||
|
if (success)
|
||||||
|
{
|
||||||
|
int gold=0;
|
||||||
|
if (type == MWBase::MechanicsManager::PT_Bribe10)
|
||||||
|
gold = 10;
|
||||||
|
else if (type == MWBase::MechanicsManager::PT_Bribe100)
|
||||||
|
gold = 100;
|
||||||
|
else if (type == MWBase::MechanicsManager::PT_Bribe1000)
|
||||||
|
gold = 1000;
|
||||||
|
|
||||||
|
if (gold)
|
||||||
|
{
|
||||||
|
player.getClass().getContainerStore(player).remove(MWWorld::ContainerStore::sGoldId, gold, player);
|
||||||
|
mActor.getClass().getContainerStore(mActor).add(MWWorld::ContainerStore::sGoldId, gold, mActor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
std::string text;
|
std::string text;
|
||||||
|
|
||||||
|
|
|
@ -56,29 +56,16 @@ namespace MWGui
|
||||||
|
|
||||||
void PersuasionDialog::onPersuade(MyGUI::Widget *sender)
|
void PersuasionDialog::onPersuade(MyGUI::Widget *sender)
|
||||||
{
|
{
|
||||||
MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr();
|
|
||||||
MWBase::MechanicsManager::PersuasionType type;
|
MWBase::MechanicsManager::PersuasionType type;
|
||||||
if (sender == mAdmireButton) type = MWBase::MechanicsManager::PT_Admire;
|
if (sender == mAdmireButton) type = MWBase::MechanicsManager::PT_Admire;
|
||||||
else if (sender == mIntimidateButton) type = MWBase::MechanicsManager::PT_Intimidate;
|
else if (sender == mIntimidateButton) type = MWBase::MechanicsManager::PT_Intimidate;
|
||||||
else if (sender == mTauntButton) type = MWBase::MechanicsManager::PT_Taunt;
|
else if (sender == mTauntButton) type = MWBase::MechanicsManager::PT_Taunt;
|
||||||
else if (sender == mBribe10Button)
|
else if (sender == mBribe10Button)
|
||||||
{
|
|
||||||
player.getClass().getContainerStore(player).remove(MWWorld::ContainerStore::sGoldId, 10, player);
|
|
||||||
mReceiver.getClass().getContainerStore(mReceiver).add(MWWorld::ContainerStore::sGoldId, 10, mReceiver);
|
|
||||||
type = MWBase::MechanicsManager::PT_Bribe10;
|
type = MWBase::MechanicsManager::PT_Bribe10;
|
||||||
}
|
|
||||||
else if (sender == mBribe100Button)
|
else if (sender == mBribe100Button)
|
||||||
{
|
|
||||||
player.getClass().getContainerStore(player).remove(MWWorld::ContainerStore::sGoldId, 100, player);
|
|
||||||
mReceiver.getClass().getContainerStore(mReceiver).add(MWWorld::ContainerStore::sGoldId, 100, mReceiver);
|
|
||||||
type = MWBase::MechanicsManager::PT_Bribe100;
|
type = MWBase::MechanicsManager::PT_Bribe100;
|
||||||
}
|
|
||||||
else /*if (sender == mBribe1000Button)*/
|
else /*if (sender == mBribe1000Button)*/
|
||||||
{
|
|
||||||
player.getClass().getContainerStore(player).remove(MWWorld::ContainerStore::sGoldId, 1000, player);
|
|
||||||
mReceiver.getClass().getContainerStore(mReceiver).add(MWWorld::ContainerStore::sGoldId, 1000, mReceiver);
|
|
||||||
type = MWBase::MechanicsManager::PT_Bribe1000;
|
type = MWBase::MechanicsManager::PT_Bribe1000;
|
||||||
}
|
|
||||||
|
|
||||||
MWBase::Environment::get().getDialogueManager()->persuade(type);
|
MWBase::Environment::get().getDialogueManager()->persuade(type);
|
||||||
|
|
||||||
|
@ -100,12 +87,6 @@ namespace MWGui
|
||||||
mGoldLabel->setCaptionWithReplacing("#{sGold}: " + boost::lexical_cast<std::string>(playerGold));
|
mGoldLabel->setCaptionWithReplacing("#{sGold}: " + boost::lexical_cast<std::string>(playerGold));
|
||||||
}
|
}
|
||||||
|
|
||||||
// The receiver of the bribe
|
|
||||||
void PersuasionDialog::setReceiver(MWWorld::Ptr receiver)
|
|
||||||
{
|
|
||||||
mReceiver = receiver;
|
|
||||||
}
|
|
||||||
|
|
||||||
// --------------------------------------------------------------------------------------------------
|
// --------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
Response::Response(const std::string &text, const std::string &title)
|
Response::Response(const std::string &text, const std::string &title)
|
||||||
|
@ -380,7 +361,6 @@ namespace MWGui
|
||||||
mPtr = actor;
|
mPtr = actor;
|
||||||
mTopicsList->setEnabled(true);
|
mTopicsList->setEnabled(true);
|
||||||
setTitle(npcName);
|
setTitle(npcName);
|
||||||
mPersuasionDialog.setReceiver(mPtr);
|
|
||||||
|
|
||||||
mTopicsList->clear();
|
mTopicsList->clear();
|
||||||
|
|
||||||
|
|
|
@ -35,9 +35,6 @@ namespace MWGui
|
||||||
|
|
||||||
virtual void open();
|
virtual void open();
|
||||||
|
|
||||||
// The receiver of the bribe
|
|
||||||
void setReceiver(MWWorld::Ptr receiver);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
MyGUI::Button* mCancelButton;
|
MyGUI::Button* mCancelButton;
|
||||||
MyGUI::Button* mAdmireButton;
|
MyGUI::Button* mAdmireButton;
|
||||||
|
@ -50,9 +47,6 @@ namespace MWGui
|
||||||
|
|
||||||
void onCancel (MyGUI::Widget* sender);
|
void onCancel (MyGUI::Widget* sender);
|
||||||
void onPersuade (MyGUI::Widget* sender);
|
void onPersuade (MyGUI::Widget* sender);
|
||||||
|
|
||||||
// The receiver of the bribe
|
|
||||||
MWWorld::Ptr mReceiver;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue