Skip to content

Commit

Permalink
Feat: parashiz don (#175)
Browse files Browse the repository at this point in the history
<!-- Пишите **НИЖЕ** заголовков и **ВЫШЕ** комментариев, иначе что то
может пойти не так. -->
<!-- Вы можете прочитать Contributing.MD, если хотите узнать больше. -->

<!-- Вкратце опишите изменения, которые вносите. -->
<!-- Опишите **все** изменения, так как противное может сказаться на
рассмотрении этого PR'а! -->
<!-- Если вы исправляете Issue, добавьте "Fixes #1234" (где 1234 - номер
Issue) где-нибудь в описании PR'а. Это автоматически закроет Issue после
принятия PR'а. -->

<!-- Опишите, почему, по вашему, следует добавить эти изменения в игру.
-->

<!-- Если вы не меняли карту или спрайты, можете опустить эту секцию.
Если хотите, можете вставить видео. -->

<!-- Как вы тестировали свой PR, если делали это вовсе? -->

:cl:
add: Поддержка нашей системы донатов через бусти
/:cl:

<!-- Оба :cl:'а должны быть на месте, что-бы чейнджлог работал! Вы
можете написать свой ник справа от первого :cl:, если хотите. Иначе
будет использован ваш ник на ГитХабе. -->
<!-- Вы можете использовать несколько записей с одинаковым префиксом
(Они используются только для иконки в игре) и удалить ненужные. Помните,
что чейнджлог должен быть понятен обычным игроком. -->
<!-- Если чейнджлог не влияет на игроков(например, это рефактор), вы
можете исключить всю секцию. -->
  • Loading branch information
Furrior committed Oct 22, 2023
1 parent 618e171 commit 98ca682
Show file tree
Hide file tree
Showing 7 changed files with 58 additions and 3 deletions.
12 changes: 12 additions & 0 deletions SQL/updates220/51.220.4-51.220.5.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
CREATE TABLE `budget` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`date` DATETIME NOT NULL DEFAULT current_timestamp(),
`ckey` VARCHAR(32) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci',
`amount` INT(10) UNSIGNED NOT NULL,
`source` VARCHAR(32) NOT NULL COLLATE 'utf8mb4_general_ci',
`date_start` DATETIME NOT NULL DEFAULT current_timestamp(),
`date_end` DATETIME NULL DEFAULT (current_timestamp() + interval 1 month),
`is_valid` TINYINT(1) NOT NULL DEFAULT '1',
`discord_id` bigint(20) DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) COLLATE='utf8mb4_general_ci' ENGINE=InnoDB;
4 changes: 2 additions & 2 deletions code/__DEFINES/misc_defines.dm
Original file line number Diff line number Diff line change
Expand Up @@ -336,7 +336,7 @@
#define TRANSIT_TUBE_CLOSED 3

// Maximum donation level
#define DONATOR_LEVEL_MAX 4
#define DONATOR_LEVEL_MAX 5 // SS220 EDIT

// The cooldown on OOC messages such as OOC, LOOC, praying and adminhelps
#define OOC_COOLDOWN 5
Expand Down Expand Up @@ -375,7 +375,7 @@
#define INVESTIGATE_BOMB "bombs"

// The SQL version required by this version of the code
#define SQL_VERSION 522204 // SS220 EDIT
#define SQL_VERSION 522205 // SS220 EDIT

// Vending machine stuff
#define CAT_NORMAL 1
Expand Down
2 changes: 1 addition & 1 deletion config/example/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ ipc_screens = [
# Enable/disable the database on a whole
sql_enabled = false
# SQL version. If this is a mismatch, round start will be delayed
sql_version = 522204
sql_version = 522205
# SQL server address. Can be an IP or DNS name
sql_address = "127.0.0.1"
# SQL server port
Expand Down
4 changes: 4 additions & 0 deletions modular_ss220/donor/_donor.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
/datum/modpack/donor
name = "Донат"
desc = "Поддержка старой системы донатов"
author = "furior"
3 changes: 3 additions & 0 deletions modular_ss220/donor/_donor.dme
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#include "_donor.dm"

#include "code/client_procs.dm"
35 changes: 35 additions & 0 deletions modular_ss220/donor/code/client_procs.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
/datum/client_login_processor/donator_check/process_result(datum/db_query/Q, client/C)
if(IsGuestKey(C.ckey))
return

if(check_rights_client(R_ADMIN, FALSE, C))
C.donator_level = DONATOR_LEVEL_MAX
C.donor_loadout_points()
return

while(Q.NextRow())
var/total = Q.item[1]
switch(total)
if(220 to 439)
C.donator_level = 1
if(440 to 999)
C.donator_level = 2
if(1000 to 2219)
C.donator_level = 3
if(2220 to 9999)
C.donator_level = 4
if(1000 to INFINITY)
C.donator_level = DONATOR_LEVEL_MAX
C.donor_loadout_points()

/datum/client_login_processor/donator_check/get_query(client/C)
var/datum/db_query/query = SSdbcore.NewQuery({"
SELECT CAST(SUM(amount) as UNSIGNED INTEGER) FROM budget
WHERE ckey=:ckey
AND is_valid=true
AND date_start <= NOW()
AND (NOW() < date_end OR date_end IS NULL)
GROUP BY ckey
"}, list("ckey" = C.ckey))

return query
1 change: 1 addition & 0 deletions modular_ss220/modular_ss220.dme
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
#include "crawl_speed/_crawl_speed.dme"
#include "debug/_debug.dme"
#include "discord_link/_discord_link.dme"
#include "donor/_donor.dme"
#include "emotes/_emotes.dme"
#include "events/_events.dme"
#include "fullscreen/_fullscreen.dme"
Expand Down

0 comments on commit 98ca682

Please sign in to comment.