|
@@ -13,7 +13,7 @@
|
|
#include <stocksoup/log_server>
|
|
#include <stocksoup/log_server>
|
|
#include <stocksoup/tf/tempents_stocks>
|
|
#include <stocksoup/tf/tempents_stocks>
|
|
|
|
|
|
-#define PLUGIN_VERSION "0.1.0"
|
|
|
|
|
|
+#define PLUGIN_VERSION "0.1.1"
|
|
public Plugin myinfo = {
|
|
public Plugin myinfo = {
|
|
name = "[CSRD] Custom Achievements",
|
|
name = "[CSRD] Custom Achievements",
|
|
author = "nosoop",
|
|
author = "nosoop",
|
|
@@ -105,18 +105,22 @@ public int Native_RegisterAchievement(Handle hPlugin, int argc) {
|
|
|
|
|
|
int achievementStyle = GetNativeCell(2);
|
|
int achievementStyle = GetNativeCell(2);
|
|
|
|
|
|
- g_QueryRegisterAchievement.BindString(0, internalName, false);
|
|
|
|
- g_QueryRegisterAchievement.BindInt(1, achievementStyle, false);
|
|
|
|
-
|
|
|
|
- SQL_Execute(g_QueryRegisterAchievement);
|
|
|
|
-
|
|
|
|
|
|
+ // Attempt to fetch achievement first, creating it if it doesn't exist.
|
|
g_QueryGetAchievementIdentifier.BindString(0, internalName, false);
|
|
g_QueryGetAchievementIdentifier.BindString(0, internalName, false);
|
|
SQL_Execute(g_QueryGetAchievementIdentifier);
|
|
SQL_Execute(g_QueryGetAchievementIdentifier);
|
|
|
|
|
|
int iAchievement;
|
|
int iAchievement;
|
|
if (SQL_FetchRow(g_QueryGetAchievementIdentifier)) {
|
|
if (SQL_FetchRow(g_QueryGetAchievementIdentifier)) {
|
|
iAchievement = SQL_FetchInt(g_QueryGetAchievementIdentifier, 0);
|
|
iAchievement = SQL_FetchInt(g_QueryGetAchievementIdentifier, 0);
|
|
|
|
+ } else {
|
|
|
|
+ g_QueryRegisterAchievement.BindString(0, internalName, false);
|
|
|
|
+ g_QueryRegisterAchievement.BindInt(1, achievementStyle, false);
|
|
|
|
+
|
|
|
|
+ SQL_Execute(g_QueryRegisterAchievement);
|
|
|
|
+
|
|
|
|
+ iAchievement = SQL_GetInsertId(g_QueryRegisterAchievement);
|
|
}
|
|
}
|
|
|
|
+
|
|
LogDebug("Achievement '%s' registered under identifier %d", internalName, iAchievement);
|
|
LogDebug("Achievement '%s' registered under identifier %d", internalName, iAchievement);
|
|
return iAchievement;
|
|
return iAchievement;
|
|
}
|
|
}
|