Skip to content

Commit

Permalink
feat: add new witch prize
Browse files Browse the repository at this point in the history
  • Loading branch information
rick-yao committed Dec 11, 2024
1 parent 665ca07 commit 9eed2be
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 2 deletions.
6 changes: 5 additions & 1 deletion l4d2_tank_draw/scripting/l4d2_tank_draw.sp
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
* @repository https://github.com/rick-yao/L4d2-plugin
*
* Changelog
* v2.5.0 - 2024-12-11
* - add new witch
*
* v2.4.0 - 2024-12-10
* - add freeze time bomb
*
Expand Down Expand Up @@ -35,7 +38,7 @@
#include "lib/dev_menu.sp"
#include "lib/lucky_draw.sp"

#define PLUGIN_VERSION "2.4.0"
#define PLUGIN_VERSION "2.5.0"
#define PLUGIN_FLAG FCVAR_SPONLY | FCVAR_NOTIFY
#define COMMAND_FILTER COMMAND_FILTER_CONNECTED | COMMAND_FILTER_NO_BOTS

Expand Down Expand Up @@ -97,6 +100,7 @@ public void OnPluginStart()
ChanceKillSingleSurvivor = CreateConVar("l4d2_tank_draw_kill_single_survivor_chance", "10", "单人死亡概率 / Probability of killing a single survivor", FCVAR_NONE);

ChanceNewTank = CreateConVar("l4d2_tank_draw_new_tank_chance", "30", "获得tank概率 / Probability of a tank", FCVAR_NONE);
ChanceNewWitch = CreateConVar("l4d2_tank_draw_new_witch_chance", "30", "获得witch概率 / Probability of a witch", FCVAR_NONE);

ChanceNoPrice = CreateConVar("l4d2_tank_draw_no_price_chance", "20", "没有奖励的概率 / Probability of no reward", FCVAR_NONE);

Expand Down
1 change: 1 addition & 0 deletions l4d2_tank_draw/scripting/lib/lib.sp
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ ConVar
ChanceDisarmSingleSurvivor,
ChanceReviveAllDead,
ChanceNewTank,
ChanceNewWitch,
ChanceDisableGlow,

ChanceDisarmSurvivorMolotov,
Expand Down
23 changes: 22 additions & 1 deletion l4d2_tank_draw/scripting/lib/lucky_draw.sp
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ stock Action LuckyDraw(int victim, int attacker)
int chanceDisarmAllSurvivor = ChanceDisarmAllSurvivor.IntValue;
int chanceDisarmSingleSurvivor = ChanceDisarmSingleSurvivor.IntValue;
int chanceNewTank = ChanceNewTank.IntValue;
int chanceNewWitch = ChanceNewWitch.IntValue;
int chanceTimerBomb = ChanceTimerBomb.IntValue;
int chanceDisableGlow = ChanceDisableGlow.IntValue;
int chanceFreezeBomb = ChanceFreezeBomb.IntValue;
Expand All @@ -22,7 +23,7 @@ stock Action LuckyDraw(int victim, int attacker)
int chanceClearAllSurvivorHealth = ChanceClearAllSurvivorHealth.IntValue;
int chanceReviveAllDead = ChanceReviveAllDead.IntValue;

int totalChance = chanceNoPrice + chanceFreezeBomb + chanceTimerBomb + chanceReviveAllDead + chanceNewTank + chanceDisarmSingleSurvivor + chanceDisarmAllSurvivor + chanceDecreaseHealth + chanceClearAllSurvivorHealth + chanceIncreaseHealth + chanceInfiniteAmmo + chanceInfiniteMelee + chanceAverageHealth + chanceKillAllSurvivor + chanceKillSingleSurvivor + chanceDisableGlow;
int totalChance = chanceNoPrice + chanceNewWitch + chanceFreezeBomb + chanceTimerBomb + chanceReviveAllDead + chanceNewTank + chanceDisarmSingleSurvivor + chanceDisarmAllSurvivor + chanceDecreaseHealth + chanceClearAllSurvivorHealth + chanceIncreaseHealth + chanceInfiniteAmmo + chanceInfiniteMelee + chanceAverageHealth + chanceKillAllSurvivor + chanceKillSingleSurvivor + chanceDisableGlow;
totalChance += chanceLimitedTimeWorldMoonGravity + chanceMoonGravityOneLimitedTime + chanceWorldMoonGravityToggle + chanceIncreaseGravity;

if (totalChance == 0)
Expand Down Expand Up @@ -136,6 +137,26 @@ stock Action LuckyDraw(int victim, int attacker)
return Plugin_Continue;
}

currentChance += chanceNewWitch;
if (random <= currentChance)
{
if (!IsValidAliveClient(attacker))
{
CPrintToChatAll("%t", "TankDraw_SomeThingWrong");
PrintHintTextToAll("%t", "TankDraw_SomeThingWrong_NoColor");
return Plugin_Continue;
}

CPrintToChatAll("%t", "TankDraw_NewWitch", attackerName);
PrintHintTextToAll("%t", "TankDraw_NewWitch_NoColor", attackerName);

float fPos[3];
GetClientAbsOrigin(attacker, fPos);
L4D2_SpawnWitch(fPos, NULL_VECTOR);

return Plugin_Continue;
}

currentChance += chanceReviveAllDead;
if (random <= currentChance)
{
Expand Down
12 changes: 12 additions & 0 deletions l4d2_tank_draw/translations/l4d2_tank_draw.phrases.txt
Original file line number Diff line number Diff line change
Expand Up @@ -587,4 +587,16 @@
"en" "[Tank Draw] Player %s freeze bomb will explode in %d seconds!"
"chi" "[坦克抽奖] 玩家 %s 冰冻弹将在 %d 秒后爆炸"
}

"TankDraw_NewWitch"
{
"en" "{yellow}[Tank Draw] {lightgreen}Player {olive}%s{lightgreen}'s lucky draw result: {olive}A lucky Witch."
"chi" "{yellow}[坦克抽奖] {lightgreen}玩家 {olive}%s{lightgreen} 的幸运抽奖结果:{olive} 幸运女巫"
}

"TankDraw_NewWitch_NoColor"
{
"en" "[Tank Draw] Player %s's lucky draw result: A lucky Witch."
"chi" "[坦克抽奖] 玩家 %s 的幸运抽奖结果: 幸运女巫"
}
}

0 comments on commit 9eed2be

Please sign in to comment.