Доступ к архиву

Переход в группу "Пользователь"

300.00
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Казино

Статус
В этой теме нельзя размещать новые ответы.

Saimon_Jones

Изучающий
Пользователь
Регистрация
12 Фев 2012
Сообщения
387
Лучшие ответы
0
Репутация
190
Попробовал сделать свое казино (взял тему отсюда)
И вот результат

+ :

Нормальное казино , оптимизированный код

- :

Если ставить на ноль большие числа (или любые) бывает выпадает другок число , но ты выигрываешь
Проблемы с кнопками. при выборе числа нельзя отменить. ( не знаю как исправить )
Кто исправит , думаю вас не обделят + ;)


Ко всем new
PHP:
new Roullet[2];
new RouletBet[39];
new RouletChoise[3];
new RouletteVal[38] = {4,19,15,32,0,26,3,35,12,28,7,29,18,22,9,31,14,20,1,33,16,24,5,10,23,8,30,11,36,13,27,6,34,17,25,2,21};
Ко всем define
PHP:
#define PokerDialog1 500
в public OnPlayerCommandText
PHP:
  if(strcmp(cmd, "/roulet", true) == 0)
	{
	 if (PlayerInfo[playerid][pCash] <= 0) return SendClientMessage(playerid, COLOR_RED, "Нет денег");
	if(IsPlayerInRangeOfPoint(playerid, 3, 1133.4000244141,7.5,1002.0999755859))
	{
if(!RouletChoise[2])
{
ShowPlayerDialog(playerid,PokerDialog1,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","Далее","Далее");
			    RouletChoise[2] = 1;
                TogglePlayerControllable(playerid, 0);
				}
				}
				return 1;
				}
в public OnDialogResponse
PHP:
	if(dialogid == PokerDialog1)
 {
 	if(response)
 	{
	ShowPlayerDialog(playerid,PokerDialog1,DIALOG_STYLE_INPUT,"Ставка","Введите ставку(минимальная 10$))","Отмена","Играть");
	return 1;
	}
	else
	{
 if (strval(inputtext) < 0)
 {
 SendClientMessage(playerid,COLOR_LIGHTRED,"Ставка должна быть выше 0!");
 TogglePlayerControllable(playerid, 1);
 ShowPlayerDialog(playerid,PokerDialog1,DIALOG_STYLE_INPUT,"Ставка","Введите ставку(минимальная 10$))","Отмена","Играть");
 }
		RouletBet[RouletChoise[0]] = strval(inputtext);
            NormMoney[playerid] = 2;
			AntiMoney[playerid] = AntiMoney[playerid] - strval(inputtext);
			GiveMoney(playerid, - strval(inputtext));
			PlayerInfo[playerid][pCash] -= strval(inputtext);
            RouletChoise[1] = 1;
            RouletChoise[0] = 0;
            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);
            RouletChoise[2] = 0;
            TogglePlayerControllable(playerid, 1);
	return 1;
	}
	}
В конец мода вставляем (это движение шара и прочее)
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;
    }
}
Добавляем объкты в public OnGameModInit

PHP:
 CreateObject(1978, 1133.4000244141,6.0999999046326,1002.0999755859, 0, 0, 270, 200);//стол
    CreateObject(1979, 1134.750122, 6.299926, 1002.059936, 0, 0, 0, 200);//стол
    Roullet[0] = CreateObject(1929, 1985.9000244141, 1054.0999755859, 332.10000610352, 270, 0, 0, 200);//барабан вращения
    Roullet[1] = CreateObject(3106, 1986.308471, 1054.135864, 332.35000610352, 0, 0, 0, 200);//шарик

    CreateObject(14563, 2005, 1053, 330, 0, 0, 0,200);//
    CreateObject(14607, 2005, 1053, 330, 0, 0, 0,200);//
    CreateObject(14614, 2005, 1053, 330, 0, 0, 0,200);//
    CreateObject(1557, 2053.1999511719, 1051.5, 325.884765625, 0, 0, 90,200);//
    CreateObject(1557, 2053.1999511719, 1054.5224609375, 325.875, 0, 0, 270,200);//
Думаю вам понравится. Особенно прошу помочь в том , о чем я сказал выше







[Урок] ГангЗоны Samp-Rp (Зоны Trigger'a)
[Урок] Онлайн радио в машине ( by Saimon )
[MAP] Респавн бомжей
[FS] /dragleader - уволить лидера оффлайн
[FS] Лотерея от админа!
[FS] /bzp - ремень безопасности
[FS] Грабим дома как на Samp-Rp
[FS] Багажник , капот и фары
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу