Kewaii Roulette in Command

Junior Member

Join Date: Oct 2020


Old

Yesterday

, 16:34

Kewaii Roulette in Command

Reply With Quote

#1


Hello

I would like to make this in command !roulette <color> <credits>

PHP Code:



#pragma semicolon 1

#include <csgocolors>

#include <store>

#include <sourcemod>

#include <sdktools>

#pragma newdecls required
int ScrollTimes[MAXPLAYERS + 1];

int WinNumber[MAXPLAYERS + 1];

int betAmount[MAXPLAYERS + 1];

bool isSpinning[MAXPLAYERS + 1] = false;
//ConVar g_Cvar_NormalItems;

//ConVar g_Cvar_VIPItems;

ConVar g_Cvar_VIPFlag;
char FULL_SOUND_PATH[] = "sound/ruleta/ruleta.mp3";

char RELATIVE_SOUND_PATH[] = "*ruleta/ruleta.mp3";

//char g_sNormalItems[64];

//char g_sVIPItems[64];

#define PLUGIN_NAME "Store Roulette by Kewaii"

#define PLUGIN_AUTHOR "Kewaii"

#define PLUGIN_DESCRIPTION "Zephyrus Store Roulette"

#define PLUGIN_VERSION "1.3.9"

#define PLUGIN_TAG " x07[ HAWKS ]"
public Plugin myinfo =

{

name = PLUGIN_NAME,

author = PLUGIN_AUTHOR,

description = PLUGIN_DESCRIPTION,

version = PLUGIN_VERSION,

url = "http://steamcommunity.com/id/KewaiiGamer"

};

public

void OnPluginStart()

{

g_Cvar_VIPFlag = CreateConVar("kewaii_roulette_vip_flag", "a", "VIP Access Flag");

//g_Cvar_NormalItems = CreateConVar("kewaii_roulette_normal_items", "100,500,750,1000,1500,1750,2000,2500,3000,4000,5000", "Lists all the menu items for normal player roulette. Separate each item with a comma. Only integers allowed");

//g_Cvar_VIPItems = CreateConVar("kewaii_roulette_vip_items", "5000,5500,6000,6500,7000,7500,8000,8500,9000,10000,12500,15000", "Lists all the menu items for VIP player roulette. Separate each item with a comma. Only integers allowed");

RegConsoleCmd("sm_ruleta", CommandRoulette);

LoadTranslations("kewaii_roulette.phrases");

AutoExecConfig(true, "kewaii_roulette");

}

public

void OnMapStart()

{

AddFileToDownloadsTable( FULL_SOUND_PATH);

FakePrecacheSound(RELATIVE_SOUND_PATH);

}

public

void OnClientPostAdminCheck(int client)

{

isSpinning[client] = false;

}

public

Action CommandRoulette(int client, int args)

{

if (
args < 1)

{

ReplyToCommand(client, "[SM] Usage: sm_ruleta <culoare> <suma>");

return
Plugin_Handled;

}

}
/*Menu CreateRouletteMenu(int client)

{

Menu menu = new Menu(RouletteMenuHandler);

char buffer[128];

Format(buffer, sizeof(buffer), "%T", "ChooseType", client);

menu.SetTitle(buffer);

menu.AddItem("player", "Player");

menu.AddItem("vip", "VIP", !HasClientVIP(client) ? ITEMDRAW_DISABLED : ITEMDRAW_DEFAULT);

return menu;

}

public int RouletteMenuHandler(Menu menu, MenuAction action, int client, int selection)

{

switch(action)

{

case MenuAction_Select:

{

if(IsClientInGame(client))

{

char option[32];

menu.GetItem(selection, option, sizeof(option));

if (StrEqual(option, "player"))

{

CreatePlayerRouletteMenu(client).Display(client, MENU_TIME_FOREVER);

}

if (StrEqual(option, "vip"))

{

CreateVIPRouletteMenu(client).Display(client, MENU_TIME_FOREVER);

}

}

}

case MenuAction_End:

{

delete menu;

}

}

}

Menu CreatePlayerRouletteMenu(int client)

{

Menu menu = new Menu(CreditsChosenMenuHandler);

char buffer[128];

Format(buffer, sizeof(buffer), "%T", "ChooseCredits", client, Store_GetClientCredits(client));

menu.SetTitle(buffer);

GetConVarString(g_Cvar_NormalItems, g_sNormalItems, sizeof(g_sNormalItems));

char sItems[18][16];

ExplodeString(g_sNormalItems, ",", sItems, sizeof(sItems), sizeof(sItems[]));

for (int i = 0; i < sizeof(sItems); i++) {

if (!StrEqual(sItems[i], "")) {

menu.AddItem(sItems[i], sItems[i], Store_GetClientCredits(client) >= StringToInt(sItems[i]) ? ITEMDRAW_DEFAULT : ITEMDRAW_DISABLED);

}

}

menu.ExitBackButton = true;

return menu;

}

Menu CreateVIPRouletteMenu(int client)

{

Menu menu = new Menu(CreditsChosenMenuHandler);

char buffer[128];

Format(buffer, sizeof(buffer), "%T", "ChooseCredits", client, Store_GetClientCredits(client));

menu.SetTitle(buffer);

GetConVarString(g_Cvar_VIPItems, g_sVIPItems, sizeof(g_sVIPItems));

char sItems[18][16];

ExplodeString(g_sVIPItems, ",", sItems, sizeof(sItems), sizeof(sItems[]));

for (int i = 0; i < sizeof(sItems); i++) {

if (!StrEqual(sItems[i], "")) {

menu.AddItem(sItems[i], sItems[i], Store_GetClientCredits(client) >= StringToInt(sItems[i]) ? ITEMDRAW_DEFAULT : ITEMDRAW_DISABLED);

}

}

menu.ExitBackButton = true;

return menu;

}

public int CreditsChosenMenuHandler(Menu menu, MenuAction action, int client, int selection)

{

switch(action)

{

case MenuAction_Select:

{

if(IsClientInGame(client))

{

char option[32];

menu.GetItem(selection, option, sizeof(option));

int crd = Store_GetClientCredits(client);

int bet = StringToInt(option);

if(crd >= bet)

{

if (!isSpinning[client])

{

Store_SetClientCredits(client, crd - bet);

betAmount[client] = bet;

SpinCredits(client);

isSpinning[client] = true;

}

else

{

CPrintToChat(client, "%s %t", PLUGIN_TAG, "AlreadySpinning");

}

}

else

{

CPrintToChat(client, "%s %t", PLUGIN_TAG, "NoEnoughCredits", bet - crd);

}

}

}

case MenuAction_Cancel:

{

if (IsClientInGame(client) && selection == MenuCancel_ExitBack)

{

CreateRouletteMenu(client).Display(client, 10);

}

}

case MenuAction_End:

{

delete menu;

}

}

}*/

public void SpinCredits(int client)

{

int FakeNumber = GetRandomInt(0,999);

if(
FakeNumber > 0 && FakeNumber < 111)

{

PrintHintText(client, "</font><font color='#75D1FF'>→ </font><font color='#FFFFFF'>Culoare: </font><font color='#00FF00'> Verde </font><font color='#75D1FF'>←", FakeNumber);

}

if(
FakeNumber > 111 && FakeNumber < 555)

{

PrintHintText(client, "</font><font color='#75D1FF'>→ </font><font color='#FFFFFF'>Culoare: </font><font color='#000000'>Negru </font><font color='#75D1FF'>←", FakeNumber);

}

if(
FakeNumber >= 555 && FakeNumber < 999)

{

PrintHintText(client, "</font><font color='#75D1FF'>→ </font><font color='#FFFFFF'>Culoare: </font><font color='#E60000'>Rosu </font><font color='#75D1FF'>←", FakeNumber);

}

if(
ScrollTimes[client] == 0)

{

ClientCommand(client, "playgamesound *ui/csgo_ui_crate_open.wav");

}

if(
ScrollTimes[client] < 20)

{

CreateTimer(0.05, TimerNext, client);

ScrollTimes[client] += 1;

ClientCommand(client, "playgamesound *ui/csgo_ui_crate_item_scroll.wav");

}

else if(
ScrollTimes[client] < 30)

{

float AddSomeTime = 0.05 * ScrollTimes[client] / 3;

CreateTimer(AddSomeTime, TimerNext, client);

ScrollTimes[client] += 1;

ClientCommand(client, "playgamesound *ui/csgo_ui_crate_item_scroll.wav");

}

else if(
ScrollTimes[client] == 30)

{

int troll = GetRandomInt(1,2);

if(
troll == 1)

{

ClientCommand(client, "playgamesound *ui/csgo_ui_crate_item_scroll.wav");

ScrollTimes[client] += 1;

CreateTimer(1.5, TimerNext, client);

}

else

{

ClientCommand(client, "playgamesound *ui/csgo_ui_crate_item_scroll.wav");

CreateTimer(1.5, TimerFinishing, client);

WinNumber[client] = FakeNumber;

ScrollTimes[client] = 0;

}

}

else

{

ClientCommand(client, "playgamesound *ui/csgo_ui_crate_item_scroll.wav");

CreateTimer(1.5, TimerFinishing, client);

WinNumber[client] = FakeNumber;

ScrollTimes[client] = 0;

}

}

public

Action TimerFinishing(Handle timer, any client)

{

if (
IsClientInGame(client))

{

isSpinning[client] = false;

WinCredits(client, WinNumber[client], betAmount[client]);

}

}

public

void WinCredits(int client, int Number, int Bet)

{

if(
IsClientInGame(client))

{

int multiplier;

if(
Number >= 0 && Number < 111)

{

multiplier = 14;

if(
Bet * multiplier >= 70000)

{

EmitSoundToAll(RELATIVE_SOUND_PATH);

}

else

{

ClientCommand(client, "playgamesound *ui/item_drop3_rare.wav");

}

}

if(
Number >= 111 && Number < 555)

{

multiplier = 2;

ClientCommand(client, "playgamesound *ui/item_drop3_rare.wav");

}

if(
Number >= 555 && Number < 999)

{

multiplier = 2;

ClientCommand(client, "playgamesound *ui/item_drop3_rare.wav");

}

if (
multiplier > 0)

{

if(
Bet * multiplier >= 10000)

{

if(
Number >= 0 && Number < 111)

{

CPrintToChatAll("%s x04%N x01a castigat x07%i x01credite pe culoarea verde!", PLUGIN_TAG, client, Bet * multiplier);

}

if(
Number >= 111 && Number < 555)

{

CPrintToChatAll("%s x04%N x01a castigat x07%i x01credite pe culoarea neagra!", PLUGIN_TAG, client, Bet * multiplier);

}

if(
Number >= 555 && Number < 999)

{

CPrintToChatAll("%s x04%N x01a castigat x07%i x01credite pe culoarea rosie!", PLUGIN_TAG, client, Bet * multiplier);

}

}

if(
Number >= 0 && Number < 111)

{

CPrintToChat(client, "%s x01Ai castigat {red}%i credite x01pe culoare verde!", PLUGIN_TAG, Bet * multiplier);

}

if(
Number >= 111 && Number < 555)

{

CPrintToChat(client, "%s x01Ai castigat {red}%i credite x01pe culoarea neagra!", PLUGIN_TAG, Bet * multiplier);

}

if(
Number >= 555 && Number < 999)

{

CPrintToChat(client, "%s x01Ai castigat {red}%i credite x01pe culoarea rosie!", PLUGIN_TAG, Bet * multiplier);

}

Store_SetClientCredits(client, Store_GetClientCredits(client) + Bet * (multiplier + 1));

}

}

}

public

Action TimerNext(Handle timer, any client)

{

if (
IsClientInGame(client))

{

SpinCredits(client);

}

}

public

bool HasClientVIP(int client)

{

char ConVarValue[32];

GetConVarString(g_Cvar_VIPFlag, ConVarValue, sizeof(ConVarValue));

int flag = ReadFlagString(ConVarValue);

return
CheckCommandAccess(client, "", flag, true);

}
void FakePrecacheSound(const char[] szPath)

{

AddToStringTable(FindStringTable( "soundprecache" ), szPath);

}




Latest posts