ITJA
Member
istersen yang.ep.won vs vs. kafananıza göre entegre edersiniz
CMD GENERAL:
ACMD komut başlangıclarına ekle
cmd.cpp
cmd.cpp
PY
[CODE lang="python" title="aviator.py"]import ui
import net
class AviatorPanel(ui.BoardWithTitleBar):
def __init__(self):
ui.BoardWithTitleBar.__init__(self)
self.SetSize(380, 250)
self.SetCenterPosition()
self.AddFlag("movable")
self.AddFlag("float")
self.SetTitleName("Aviator Game")
self.inputLabel = ui.TextLine()
self.inputLabel.SetParent(self)
self.inputLabel.SetPosition(160, 40)
self.inputLabel.SetText("Bet Amount")
self.inputLabel.Show()
self.input = ui.EditLine()
self.input.SetParent(self)
self.input.SetPosition(130, 60)
self.input.SetSize(120, 20)
self.input.SetMax(7)
self.input.SetText("1000")
self.input.SetFocus()
self.input.Show()
self.startButton = ui.Button()
self.startButton.SetParent(self)
self.startButton.SetPosition(80, 100)
self.startButton.SetUpVisual("d:/ymir work/ui/public/middle_button_01.sub")
self.startButton.SetOverVisual("d:/ymir work/ui/public/middle_button_02.sub")
self.startButton.SetDownVisual("d:/ymir work/ui/public/middle_button_03.sub")
self.startButton.SetText("START")
self.startButton.SetEvent(self.OnStart)
self.startButton.Show()
self.cashOutButton = ui.Button()
self.cashOutButton.SetParent(self)
self.cashOutButton.SetPosition(200, 100)
self.cashOutButton.SetUpVisual("d:/ymir work/ui/public/middle_button_01.sub")
self.cashOutButton.SetOverVisual("d:/ymir work/ui/public/middle_button_02.sub")
self.cashOutButton.SetDownVisual("d:/ymir work/ui/public/middle_button_03.sub")
self.cashOutButton.SetText("CASH OUT")
self.cashOutButton.SetEvent(self.OnCashOut)
self.cashOutButton.Show()
# Multipliers list
self.multiTitle = ui.TextLine()
self.multiTitle.SetParent(self)
self.multiTitle.SetPosition(40, 150)
self.multiTitle.SetText("Multipliers")
self.multiTitle.Show()
self.multiLines = []
for i in range(5):
line = ui.TextLine()
line.SetParent(self)
line.SetPosition(40, 170 + i * 15)
line.SetText("-")
line.Show()
self.multiLines.append(line)
# Winners list
self.winnerTitle = ui.TextLine()
self.winnerTitle.SetParent(self)
self.winnerTitle.SetPosition(210, 150)
self.winnerTitle.SetText("Winners")
self.winnerTitle.Show()
self.winnerLines = []
for i in range(5):
line = ui.TextLine()
line.SetParent(self)
line.SetPosition(210, 170 + i * 15)
line.SetText("-")
line.Show()
self.winnerLines.append(line)
# Bilgi çekmek için komutu tetikle
net.SendChatPacket("/aviator_info")
def OnStart(self):
bet = self.input.GetText()
if bet.isdigit():
net.SendChatPacket("/aviator " + bet)
self.input.SetText("")
def OnCashOut(self):
net.SendChatPacket("/bozdur")
def UpdateHistory(self, multiplierList, winnerList):
for i in range(5):
self.multiLines.SetText(multiplierList if i < len(multiplierList) else "-")
self.winnerLines.SetText(winnerList if i < len(winnerList) else "-")
dlg = None
def Open():
global dlg
if dlg:
dlg.Show()
else:
dlg = AviatorPanel()
dlg.Show()
def UpdatePanelInfo(multis, winners):
if dlg and dlg.IsShow():
dlg.UpdateHistory(multis, winners)[/CODE]
game.py Dosyasını Aç
onPressKeyDict taraflarına ekle
interfaceModule.py
2. class Interface içinde, def __init__(self): fonksiyonunu bul
[KANIT]
CMD GENERAL:
ACMD komut başlangıclarına ekle
C++:
std::deque<float> g_AviatorMultipliers;
std::deque<std::string> g_AviatorWinners;
ACMD(do_aviator_info)
{
ch->ChatPacket(CHAT_TYPE_INFO, "Last Multipliers:");
for (auto it = g_AviatorMultipliers.rbegin(); it != g_AviatorMultipliers.rend(); ++it)
ch->ChatPacket(CHAT_TYPE_INFO, " %.2fx", *it);
ch->ChatPacket(CHAT_TYPE_INFO, "Top recent winners:");
for (auto it = g_AviatorWinners.rbegin(); it != g_AviatorWinners.rend(); ++it)
ch->ChatPacket(CHAT_TYPE_INFO, " %s", it->c_str());
}
EVENTINFO(aviator_event_info)
{
LPCHARACTER ch;
aviator_event_info() : ch(NULL) {}
};
EVENTFUNC(aviator_event)
{
aviator_event_info* info = dynamic_cast<aviator_event_info*>(event->info);
if (!info || !info->ch) return 0;
LPCHARACTER ch = info->ch;
auto it = g_AviatorMap.find(ch->GetVID());
if (it == g_AviatorMap.end()) return 0;
SAviatorData& data = it->second;
if (!data.isPlaying) return 0;
data.multiplier += 0.05f;
ch->ChatPacket(CHAT_TYPE_INFO, "Çarpan: %.2fx", data.multiplier);
if (number(1, 1000) <= 30) {
ch->ChatPacket(CHAT_TYPE_INFO, "?? Uçak %.2fx çarpanda patladı!", data.multiplier);
data.isPlaying = false;
g_AviatorMap.erase(it);
return 0;
}
return PASSES_PER_SEC(1);
}
ACMD(do_aviator)
{
char arg[256];
one_argument(argument, arg, sizeof(arg));
int bet = atoi(arg);
if (bet <= 0) {
ch->ChatPacket(CHAT_TYPE_INFO, "Kullanım: /aviator [bahis]");
return;
}
if (g_AviatorMap.find(ch->GetVID()) != g_AviatorMap.end()) {
ch->ChatPacket(CHAT_TYPE_INFO, "Zaten oynuyorsun.");
return;
}
if (ch->GetGold() < bet) {
ch->ChatPacket(CHAT_TYPE_INFO, "Yeterli yang yok.");
return;
}
SAviatorData data;
data.bet = bet;
data.multiplier = 1.0f;
data.isPlaying = true;
aviator_event_info* info = AllocEventInfo<aviator_event_info>();
info->ch = ch;
data.event = event_create(aviator_event, info, PASSES_PER_SEC(1));
g_AviatorMap[ch->GetVID()] = data;
ch->PointChange(POINT_GOLD, -bet);
ch->ChatPacket(CHAT_TYPE_INFO, "?? Aviator başladı! Bahis: %d Yang", bet);
}
ACMD(do_bozdur)
{
auto it = g_AviatorMap.find(ch->GetVID());
if (it == g_AviatorMap.end()) {
ch->ChatPacket(CHAT_TYPE_INFO, "Aktif oyunun yok.");
return;
}
SAviatorData& data = it->second;
if (!data.isPlaying) {
ch->ChatPacket(CHAT_TYPE_INFO, "Oyun zaten bitmiş.");
g_AviatorMap.erase(it);
return;
}
int kazanc = (int)(data.bet * data.multiplier);
ch->PointChange(POINT_GOLD, kazanc);
ch->ChatPacket(CHAT_TYPE_INFO, "? %.2fx çarpanda bozdurdun. Kazanç: %d Yang", data.multiplier, kazanc);
data.isPlaying = false;
event_cancel(&data.event);
g_AviatorMap.erase(it);
}
cmd.cpp
C++:
ACMD(do_aviator);
ACMD(do_bozdur);
ACMD(do_aviator_info);
cmd.cpp
C++:
{ "aviator", do_aviator, 0, POS_DEAD, GM_PLAYER },
{ "bozdur", do_bozdur, 0, POS_DEAD, GM_PLAYER },
{ "aviator_info", do_aviator_info, 0, POS_DEAD, GM_PLAYER },
PY
[CODE lang="python" title="aviator.py"]import ui
import net
class AviatorPanel(ui.BoardWithTitleBar):
def __init__(self):
ui.BoardWithTitleBar.__init__(self)
self.SetSize(380, 250)
self.SetCenterPosition()
self.AddFlag("movable")
self.AddFlag("float")
self.SetTitleName("Aviator Game")
self.inputLabel = ui.TextLine()
self.inputLabel.SetParent(self)
self.inputLabel.SetPosition(160, 40)
self.inputLabel.SetText("Bet Amount")
self.inputLabel.Show()
self.input = ui.EditLine()
self.input.SetParent(self)
self.input.SetPosition(130, 60)
self.input.SetSize(120, 20)
self.input.SetMax(7)
self.input.SetText("1000")
self.input.SetFocus()
self.input.Show()
self.startButton = ui.Button()
self.startButton.SetParent(self)
self.startButton.SetPosition(80, 100)
self.startButton.SetUpVisual("d:/ymir work/ui/public/middle_button_01.sub")
self.startButton.SetOverVisual("d:/ymir work/ui/public/middle_button_02.sub")
self.startButton.SetDownVisual("d:/ymir work/ui/public/middle_button_03.sub")
self.startButton.SetText("START")
self.startButton.SetEvent(self.OnStart)
self.startButton.Show()
self.cashOutButton = ui.Button()
self.cashOutButton.SetParent(self)
self.cashOutButton.SetPosition(200, 100)
self.cashOutButton.SetUpVisual("d:/ymir work/ui/public/middle_button_01.sub")
self.cashOutButton.SetOverVisual("d:/ymir work/ui/public/middle_button_02.sub")
self.cashOutButton.SetDownVisual("d:/ymir work/ui/public/middle_button_03.sub")
self.cashOutButton.SetText("CASH OUT")
self.cashOutButton.SetEvent(self.OnCashOut)
self.cashOutButton.Show()
# Multipliers list
self.multiTitle = ui.TextLine()
self.multiTitle.SetParent(self)
self.multiTitle.SetPosition(40, 150)
self.multiTitle.SetText("Multipliers")
self.multiTitle.Show()
self.multiLines = []
for i in range(5):
line = ui.TextLine()
line.SetParent(self)
line.SetPosition(40, 170 + i * 15)
line.SetText("-")
line.Show()
self.multiLines.append(line)
# Winners list
self.winnerTitle = ui.TextLine()
self.winnerTitle.SetParent(self)
self.winnerTitle.SetPosition(210, 150)
self.winnerTitle.SetText("Winners")
self.winnerTitle.Show()
self.winnerLines = []
for i in range(5):
line = ui.TextLine()
line.SetParent(self)
line.SetPosition(210, 170 + i * 15)
line.SetText("-")
line.Show()
self.winnerLines.append(line)
# Bilgi çekmek için komutu tetikle
net.SendChatPacket("/aviator_info")
def OnStart(self):
bet = self.input.GetText()
if bet.isdigit():
net.SendChatPacket("/aviator " + bet)
self.input.SetText("")
def OnCashOut(self):
net.SendChatPacket("/bozdur")
def UpdateHistory(self, multiplierList, winnerList):
for i in range(5):
self.multiLines.SetText(multiplierList if i < len(multiplierList) else "-")
self.winnerLines.SetText(winnerList if i < len(winnerList) else "-")
dlg = None
def Open():
global dlg
if dlg:
dlg.Show()
else:
dlg = AviatorPanel()
dlg.Show()
def UpdatePanelInfo(multis, winners):
if dlg and dlg.IsShow():
dlg.UpdateHistory(multis, winners)[/CODE]
game.py Dosyasını Aç
Python:
import aviator
onPressKeyDict taraflarına ekle
Python:
onPressKeyDict[app.DIK_F10] = lambda: aviator.Open()
interfaceModule.py
Python:
import aviator
2. class Interface içinde, def __init__(self): fonksiyonunu bul
Python:
self.aviatorButton = ui.Button()
self.aviatorButton.SetParent(self)
self.aviatorButton.SetPosition(600, 340) # ekran pozisyonu, istersen değiştir
self.aviatorButton.SetUpVisual("d:/ymir work/ui/public/middle_button_01.sub")
self.aviatorButton.SetOverVisual("d:/ymir work/ui/public/middle_button_02.sub")
self.aviatorButton.SetDownVisual("d:/ymir work/ui/public/middle_button_03.sub")
self.aviatorButton.SetText("AVIATOR")
self.aviatorButton.SetEvent(aviator.Open)
self.aviatorButton.Show()
[KANIT]