@@ -394,7 +394,7 @@ dpp::task<void> continue_pvp_combat(const dpp::interaction_create_t& event, play
394
394
event.reply (event.command .type == dpp::it_component_button ? dpp::ir_update_message : dpp::ir_channel_message_with_source, m.set_flags (dpp::m_ephemeral), [event, m, p](const auto & cc) {
395
395
if (cc.is_error ()) {
396
396
// bot.log(dpp::ll_error, "Internal error displaying PvP combat location " + std::to_string(p.paragraph) + ": " + cc.http_info.body);
397
- event.reply (dpp::message (" Internal error displaying Pvp combat location " + std::to_string (p.paragraph ) + " :\n Please report to developers via 'Get Help' button " ).set_flags (dpp::m_ephemeral));
397
+ event.reply (dpp::message (" Internal error displaying Pvp combat location " + std::to_string (p.paragraph ) + " :\n ```json \n " + cc. http_info . body + " \n ``` \n Message: \n ```json \n " + m. build_json () + " \n ``` " ).set_flags (dpp::m_ephemeral));
398
398
}
399
399
});
400
400
co_return ;
@@ -659,30 +659,27 @@ dpp::task<void> continue_combat(const dpp::interaction_create_t& event, player p
659
659
660
660
output << " __" << tr (" COMBAT" , event) << " __: **" << p.name << " ** vs. **" << p.combatant .name << " **\n\n " ;
661
661
662
+ auto r = co_await db::co_query (" SELECT * FROM criticals WHERE user_id = ?" , {event.command .usr .id });
662
663
long banked{0 };
663
664
bool critical{};
664
- co_await db::co_transaction ([event, &output, &p, &critical, &banked]() -> bool {
665
- auto r = db::query (" SELECT * FROM criticals WHERE user_id = ?" , {event.command .usr .id });
666
- if (!r.empty ()) {
667
- long counter = atol (r[0 ].at (" critical_counter" ));
668
- banked = atol (r[0 ].at (" banked_criticals" ));
669
- if (banked > 0 && p.next_crit ) {
670
- db::query (" UPDATE criticals SET banked_criticals = banked_criticals - 1 WHERE user_id = ?" , {event.command .usr .id });
671
- critical = true ;
672
- p.next_crit = false ;
673
- banked--;
674
- }
675
- long next = 1000 + (p.get_level () * 4 );
676
- int percent = (double )counter / (double )next * 100 .0f ;
677
- output << tr (" CRITICAL_METER" , event) << " : " ;
678
- for (int x = 0 ; x < 100 ; x += 10 ) {
679
- output << (x < percent ? sprite::bar_green.get_mention () : sprite::bar_red.get_mention ());
680
- }
681
- output << " (" + std::to_string (percent) + " %)\n " ;
682
- output << tr (" CRITICALS" , event) << " : " << std::max (banked, 0L ) << " /" << p.max_crits ();
665
+ if (!r.empty ()) {
666
+ long counter = atol (r[0 ].at (" critical_counter" ));
667
+ banked = atol (r[0 ].at (" banked_criticals" ));
668
+ if (banked > 0 && p.next_crit ) {
669
+ co_await db::co_query (" UPDATE criticals SET banked_criticals = banked_criticals - 1 WHERE user_id = ?" , {event.command .usr .id });
670
+ critical = true ;
671
+ p.next_crit = false ;
672
+ banked--;
683
673
}
684
- return true ;
685
- });
674
+ long next = 1000 + (p.get_level () * 4 );
675
+ int percent = (double )counter / (double )next * 100 .0f ;
676
+ output << tr (" CRITICAL_METER" , event) << " : " ;
677
+ for (int x = 0 ; x < 100 ; x += 10 ) {
678
+ output << (x < percent ? sprite::bar_green.get_mention () : sprite::bar_red.get_mention ());
679
+ }
680
+ output << " (" + std::to_string (percent) + " %)\n " ;
681
+ output << tr (" CRITICALS" , event) << " : " << std::max (banked, 0L ) << " /" << p.max_crits ();
682
+ }
686
683
687
684
if (EStamina <= 0 ) {
688
685
output << tr (" HES_DEAD_JIM" , event) << " \n\n " ;
@@ -758,25 +755,22 @@ dpp::task<void> continue_combat(const dpp::interaction_create_t& event, player p
758
755
} else {
759
756
output << " __**" << tr (" YOUHITENEMY" , event) << " **__." ;
760
757
761
- co_await db::co_transaction ([p, event]() -> bool {
762
- /* If you hit enemy, critical meter ticks up based on your luck.
763
- * If critical meter reaches max, you gain a critical hit, that you
764
- * can spend on an overwhelming attack.
765
- */
766
- db::query (" INSERT INTO criticals (user_id, critical_counter, banked_criticals) VALUES(?,1,0) ON DUPLICATE KEY UPDATE critical_counter = critical_counter + ?" , {event.command .usr .id , p.luck + 1 });
767
- auto r = db::query (" SELECT * FROM criticals WHERE user_id = ?" , {event.command .usr .id });
768
- long counter = atol (r[0 ].at (" critical_counter" ));
769
- if (counter > 1000 + (p.get_level () * 4 )) {
770
- /* User gains a new banked critical */
771
- long new_banked = atol (r[0 ].at (" banked_criticals" )) + 1 ;
772
- if (new_banked <= p.max_crits ()) {
773
- db::query (" UPDATE criticals SET critical_counter = 0, banked_criticals = ? WHERE user_id = ?" , {new_banked, event.command .usr .id });
774
- } else {
775
- db::query (" UPDATE criticals SET critical_counter = 0 WHERE user_id = ?" , {event.command .usr .id });
776
- }
758
+ /* If you hit enemy, critical meter ticks up based on your luck.
759
+ * If critical meter reaches max, you gain a critical hit, that you
760
+ * can spend on an overwhelming attack.
761
+ */
762
+ co_await db::co_query (" INSERT INTO criticals (user_id, critical_counter, banked_criticals) VALUES(?,1,0) ON DUPLICATE KEY UPDATE critical_counter = critical_counter + ?" , {event.command .usr .id , p.luck + 1 });
763
+ auto r = co_await db::co_query (" SELECT * FROM criticals WHERE user_id = ?" , {event.command .usr .id });
764
+ long counter = atol (r[0 ].at (" critical_counter" ));
765
+ if (counter > 1000 + (p.get_level () * 4 )) {
766
+ /* User gains a new banked critical */
767
+ long new_banked = atol (r[0 ].at (" banked_criticals" )) + 1 ;
768
+ if (new_banked <= p.max_crits ()) {
769
+ co_await db::co_query (" UPDATE criticals SET critical_counter = 0, banked_criticals = ? WHERE user_id = ?" , {new_banked, event.command .usr .id });
770
+ } else {
771
+ co_await db::co_query (" UPDATE criticals SET critical_counter = 0 WHERE user_id = ?" , {event.command .usr .id });
777
772
}
778
- return true ;
779
- });
773
+ }
780
774
781
775
if (EStance == DEFENSIVE) {
782
776
output << tr (" ATKBONUS" , event);
@@ -1036,7 +1030,7 @@ dpp::task<void> continue_combat(const dpp::interaction_create_t& event, player p
1036
1030
event.reply (event.command .type == dpp::it_component_button ? dpp::ir_update_message : dpp::ir_channel_message_with_source, m.set_flags (dpp::m_ephemeral), [event, &bot, m, p](const auto & cc) {
1037
1031
if (cc.is_error ()) {
1038
1032
bot.log (dpp::ll_error, " Internal error displaying PvE combat " + std::to_string (p.after_fragment ) + " location " + std::to_string (p.paragraph ) + " : " + cc.http_info .body + " -- " + m.build_json ());
1039
- event.reply (dpp::message (" Internal error displaying PvE combat " + std::to_string (p.after_fragment ) + " location " + std::to_string (p.paragraph ) + " :\n Please report to developers via 'Get Help' button " ).set_flags (dpp::m_ephemeral));
1033
+ event.reply (dpp::message (" Internal error displaying PvE combat " + std::to_string (p.after_fragment ) + " location " + std::to_string (p.paragraph ) + " :\n ```json \n " + cc. http_info . body + " \n ``` \n Message: \n ```json \n " + m. build_json () + " \n ``` " ).set_flags (dpp::m_ephemeral));
1040
1034
}
1041
1035
});
1042
1036
0 commit comments