Maxim_Shmakov
Компетентный
Всем привет.
Решил создать казино 4 дракона, и взял код рулетки (тут на форуме)
тут не понять какой выигрыш (ставишь 12 выигрываешь 14, ставишь 22 выигрываешь 26)
как сделать что бы при выигрыше на "Черное", "Красное" ставка удваивалась, а при выигрыше на числах умножалась в определенное число (например 8)
Все это вроде в этом коде:
Или тут:
Решил создать казино 4 дракона, и взял код рулетки (тут на форуме)
тут не понять какой выигрыш (ставишь 12 выигрываешь 14, ставишь 22 выигрываешь 26)
как сделать что бы при выигрыше на "Черное", "Красное" ставка удваивалась, а при выигрыше на числах умножалась в определенное число (например 8)
Все это вроде в этом коде:
PHP:
if(dialogid == PokerDialog+4)
{if(response){RouletChoise[0] = listitem;
ShowPlayerDialog(playerid,PokerDialog + 5,DIALOG_STYLE_INPUT,"Рулетка","Введите ставку(минимальная 10$))","Далее","Отмена");
}else if(!response && RouletChoise[1]){
SetPlayerCameraPos(playerid, 1985.9100341797, 1054.1009521484, 333.4500610352);
SetPlayerCameraLookAt(playerid, 1985.9100341797, 1054.1009521484, 332.35000610352);
SetObjectRot(Roullet[0], 270, 0, 0);
SetObjectPos(Roullet[1], 1986.308471, 1054.135864, 332.35000610352);
new x = random(37)+1;
SetBallPos(playerid, 4, 1, x);
RotateObject_Casino(playerid, 0, Roullet[0], 270, x*9.75, 0, 100, 100.0);
}else if(!response && !RouletChoise[1]){
RouletChoise[2] = 0;
TogglePlayerControllable(playerid, 1);}
}if(dialogid == PokerDialog+5){
if(!response||strval(inputtext)<10){
ShowPlayerDialog(playerid,PokerDialog + 5,DIALOG_STYLE_INPUT,"Рулетка","Введите ставку(минимальная 10$))","Далее","Отмена");return 1;}else{
RouletBet[RouletChoise[0]] = strval(inputtext);
PlayerInfo[playerid][pCash] -= strval(inputtext);
RouletChoise[1] = 1;
RouletChoise[0] = 0;
ShowPlayerDialog(playerid,PokerDialog + 4,DIALOG_STYLE_LIST,"Изменить ставку, либо играть?","RED\nBLACK\n0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36","Поставить","Играть");}}
PHP:
#define SERVER_OBJECTS 1000
new Float:newrotX[SERVER_OBJECTS];
new Float:newrotY[SERVER_OBJECTS];
new Float:newrotZ[SERVER_OBJECTS];
new Float:odifX[SERVER_OBJECTS];
new Float:odifY[SERVER_OBJECTS];
new Float:odifZ[SERVER_OBJECTS];
new ospeed[SERVER_OBJECTS];
new oTimer[SERVER_OBJECTS];
new oState[SERVER_OBJECTS];
new opoints[SERVER_OBJECTS];
stock RotateObject_Casino(playerid,prize,objectid,Float:rotX,Float:rotY,Float:rotZ,points,Float:speed)
{
if(oState[objectid] == 1)KillTimer(oTimer[objectid]);
ospeed[objectid] = floatround(floatdiv(1000,speed),floatround_round);
oTimer[objectid] = SetTimerEx("RotateObj_Casino",ospeed[objectid],0,"dddd",playerid,prize,objectid,points);
newrotX[objectid] = rotX;
newrotY[objectid] = rotY;
newrotZ[objectid] = rotZ;
new Float:rot[3];
GetObjectRot(objectid,rot[0],rot[1],rot[2]);
odifX[objectid] = (rotX-rot[0])/points;
odifY[objectid] = (rotY-rot[1])/points;
odifZ[objectid] = (rotZ-rot[2])/points;
oState[objectid] = 1;
opoints[objectid] = 0;
return 1;
}
forward RotateObj_Casino(playerid,prize,objectid,points);
public RotateObj_Casino(playerid,prize,objectid,points)
{
if(oState[objectid] == 0) return 1;
new Float:rot[3];
GetObjectRot(objectid,rot[0],rot[1],rot[2]);
if(newrotX[objectid] != rot[0])rot[0]+=odifX[objectid];
if(newrotY[objectid] != rot[1])rot[1]+=odifY[objectid];
if(newrotZ[objectid] != rot[2])rot[2]+=odifZ[objectid];
SetObjectRot(objectid,rot[0],rot[1],rot[2]);
opoints[objectid]++;
if((newrotX[objectid] != rot[0] || newrotY[objectid] != rot[1] || newrotZ[objectid] != rot[2]) && opoints[objectid] != points)oTimer[objectid] = SetTimerEx("RotateObj_Casino",ospeed[objectid],0,"dddd",playerid,prize,objectid,points);
return 1;
}
forward SetBallPos(playerid, ballid, these, x);
public SetBallPos(playerid, ballid, these, x)
{
new rot;
if(these <= 16) rot = 10*these-(these-1)/4 - 5;
else if(these >= 17) rot = 10*these-(these-1)/4 - 6;
MoveObject(4, 1985.9100341797+0.4*floatcos(rot*0.01745), 1054.1009521484+0.4*floatsin(rot*0.01745), 332.35000610352, 2.0);
if(these == x)
{
SetTimerEx("SetBallEnd",3000,0,"dd",playerid, x);
return 1;
}
these ++;
SetTimerEx("SetBallPos",50,0,"dddd",playerid, 4, these, x);
return 1;
}
forward SetBallEnd(playerid, x);
public SetBallEnd(playerid, x)
{
new string[256], zz;
if(2*x-1>37) zz=2*x-38; else zz=2*x-1;
new color[6], win;
if(!((zz+1)%2))//Чёрный
{
format(color, sizeof(color), "BLACK");
if(RouletBet[1]!=0) win = RouletBet[1]+RouletBet[1]/5;
}
else //Красный
{
format(color, sizeof(color), "RED");
if(RouletBet[0]!=0) win = RouletBet[0]+RouletBet[0]/5;
}
if(RouletBet[zz] != 0)
{
new val;
for(new i=2; i<sizeof(RouletBet); i++)
if(RouletBet[i]!=0) val++;
win = RouletBet[zz]+RouletBet[zz]/val*2;
}
if(win != 0)
{
format(string, sizeof(string), "Выпало:%d (%s); Вы выграли:%d",RouletteVal[zz], color, win);
PlayerInfo[playerid][pCash] += win;
}
else format(string, sizeof(string), "выпало:%d (%s); К сожалению вы проиграли, возможно в следующий раз повезёт больше.",RouletteVal[zz], color);
SendClientMessage(playerid, COLOR_YELLOW, string);
SetCameraBehindPlayer(playerid);
TogglePlayerControllable(playerid, 1);
RouletChoise[0] = 0;
RouletChoise[1] = 0;
RouletChoise[2] = 0;
for(new i=0; i<sizeof(RouletBet); i++)
{
RouletBet[i] = 0;
}
}
Последнее редактирование:
