add casino rewards for gambling

This commit is contained in:
Lorenc 2018-03-20 23:26:32 +11:00
parent 852f2cf1de
commit 1929f83ef2
6 changed files with 295 additions and 177 deletions

View File

@ -15,7 +15,7 @@
#pragma compat 1
#pragma option -d3
#pragma dynamic 7200000
#define DEBUG_MODE
//#define DEBUG_MODE
/* ** SA-MP Includes ** */
#include < a_samp >
@ -228,7 +228,7 @@ new stock
#define CLASS_MEDIC ( 3 )
/* ** Checkpoints ** */
#define ALL_CHECKPOINTS ( 43 )
#define ALL_CHECKPOINTS ( 45 )
#define CP_BOMB_SHOP ( 0 )
#define CP_BANK_MENU ( 1 )
@ -273,6 +273,8 @@ new stock
#define CP_BIZ_TERMINAL_METH ( 40 )
#define CP_BIZ_TERMINAL_WEED ( 41 )
#define CP_BIZ_TERMINAL_WEAP ( 42 )
#define CP_REWARDS_4DRAG ( 43 )
#define CP_REWARDS_CALIG ( 44 )
/* ** Discord ** */
//#include <discord-connector>
@ -2170,6 +2172,17 @@ new
}
;
/* ** Casino Rewards Points ** */
#define CASINO_REWARDS_DIVISOR 5000.0 // (for every X in $10K, they get Y points)
#define CASINO_REWARDS_COST_MP 15 // 10x the supa save costs
new
g_casinoRewardsShopItems[ ] = {
5, 6, 7, 8, 9, 10, 11
},
Float: p_CasinoRewardsPoints [ MAX_PLAYERS ]
;
/* ** Easter Eggs ** */
#define ENABLED_EASTER_EGG ( true )
@ -3213,6 +3226,7 @@ new
p_VehicleBringCooldown [ MAX_PLAYERS ],
p_BusinessSpawnLocation [ MAX_PLAYERS ] = { -1, ... }
;
/* ** Server Data ** */
new
g_Checkpoints [ ALL_CHECKPOINTS ],
@ -4668,7 +4682,7 @@ public OnPlayerEditDynamicObject( playerid, objectid, response, Float:x, Float:y
}
UpdateGateData( gID );
cmd_editgate( playerid, sprintf( "%d", gID ) );
SyncObject( playerid );
Streamer_Update( playerid ); // SyncObject( playerid );
}
return 1;
}
@ -6338,6 +6352,7 @@ public OnPlayerDisconnect( playerid, reason )
p_TicketTimestamp[ playerid ] = 0;
p_ExtraAssetSlots{ playerid } = 0;
p_HitmarkerSound{ playerid } = 0;
p_CasinoRewardsPoints[ playerid ] = 0.0;
p_OwnedBusinesses[ playerid ] = 0;
g_LastExportModel[ playerid ] = 0;
p_usingSlotMachine[ playerid ] = -1;
@ -8449,6 +8464,17 @@ public OnPlayerCommandReceived(playerid, cmdtext[])
return 1;
}
CMD:casino( playerid, params[ ] )
{
if ( strmatch( params, "rewards" ) ) {
if ( ! IsPlayerInCasino( playerid ) ) return SendError( playerid, "You need to be in a casino to use this feature." );
return ShowPlayerRewardsMenu( playerid );
} else if ( strmatch( params, "points" ) ) {
return SendServerMessage( playerid, "You currently have "COL_GOLD"%0.2f"COL_WHITE" casino rewards points.", p_CasinoRewardsPoints[ playerid ] );
}
return SendUsage( playerid, "/casino [REWARDS/POINTS]" );
}
CMD:b( playerid, params[ ] ) return cmd_business( playerid, params );
CMD:business( playerid, params[ ] )
{
@ -10582,7 +10608,7 @@ CMD:vipskin( playerid, params[ ] )
if ( GetPlayerState( playerid ) == PLAYER_STATE_ENTER_VEHICLE_DRIVER || GetPlayerState( playerid ) == PLAYER_STATE_ENTER_VEHICLE_PASSENGER ) return SendError( playerid, "You cannot set your skin if you're entering a vehicle." );
if ( GetPlayerState( playerid ) == PLAYER_STATE_EXIT_VEHICLE ) return SendError( playerid, "You cannot set your skin if you're exiting a vehicle." );
p_SkinToggled{ playerid } = true;
SyncObject( playerid );
Streamer_Update( playerid ); // SyncObject( playerid );
ClearAnimations( playerid );
SetPlayerSkin( playerid, p_LastSkin[ playerid ] );
SendServerMessage( playerid, "You have toggled your V.I.P skin!" );
@ -11278,7 +11304,7 @@ CMD:wood( playerid, params[ ] )
new object = CreateDynamicObject( 14872, -2338.20, -106.51, 34.00, -27.78, 89.40, 1.92 );
MoveDynamicObject( object, -2338.20, -106.51, 33.5, 0.10 );
SyncObject( playerid );
Streamer_Update( playerid ); // SyncObject( playerid );
PlayerPlaySound( playerid, 1153, -2338.20, -106.51, 33.99 );
GivePlayerCash( playerid, 500 );
SetTimerEx( "lumberjack_RemoveWood", 9000, false, "d", object );
@ -14932,7 +14958,7 @@ CMD:setskin( playerid, params[ ] )
if ( GetPlayerState( pID ) == PLAYER_STATE_EXIT_VEHICLE ) return SendError( playerid, "You cannot set your skin if you're exiting a vehicle." );
if ( GetPlayerAnimationIndex( pID ) == 1660 ) return SendError( playerid, "The player specified is currently using a vending machine." );
AddAdminLogLineFormatted( "%s(%d) has changed %s(%d)'s skin id to %d", ReturnPlayerName( playerid ), playerid, ReturnPlayerName( pID ), pID, skin );
SyncObject( pID );
SyncObject( pID );
SetPlayerSkin( pID, skin );
if ( pID != playerid ) {
SendClientMessageFormatted( pID, COLOR_PINK, "[ADMIN]"COL_WHITE" %s(%d) has changed your skin ID to %d.", ReturnPlayerName( playerid ), playerid, skin );
@ -18965,6 +18991,9 @@ public OnPlayerEnterDynamicCP(playerid, checkpointid)
}
}
if ( checkpointid == g_Checkpoints[ CP_REWARDS_4DRAG ] || checkpointid == g_Checkpoints[ CP_REWARDS_CALIG ] )
return ShowPlayerRewardsMenu( playerid );
if ( checkpointid == g_Checkpoints[ CP_BANK_MENU ] || checkpointid == g_Checkpoints[ CP_COUNTRY_BANK_MENU ] || checkpointid == g_Checkpoints[ CP_BANK_MENU_LS ] )
return ShowPlayerBankMenuDialog( playerid ), 1;
@ -19665,6 +19694,7 @@ public OnPlayerUseSlotMachine( playerid, slotid, first_combo, second_combo, thir
// return SendServerMessage( playerid, "Congratulations, you've won "COL_GOLD"%s"COL_WHITE"!", ConvertPrice( iNetWin ) );
}
GivePlayerCasinoRewardsPoints( playerid, g_slotmachineData[ slotid ] [ E_ENTRY_FEE ] );
return GameTextForPlayer( playerid, "~w~~h~no win!", 2500, 6 );
}
@ -21210,6 +21240,7 @@ thread OnPlayerLogin( playerid, password[ ] )
p_ExtraAssetSlots{ playerid } = cache_get_field_content_int( 0, "EXTRA_SLOTS", dbHandle );
p_forcedAnticheat[ playerid ] = cache_get_field_content_int( 0, "FORCE_AC", dbHandle );
p_BusinessSpawnLocation[ playerid ] = cache_get_field_content_int( 0, "BUSINESS_ID", dbHandle );
p_CasinoRewardsPoints[ playerid ] = cache_get_field_content_float( 0, "CASINO_REWARDS", dbHandle );
if ( p_forcedAnticheat[ playerid ] > 0 && ! IsPlayerUsingSampAC( playerid ) ) {
SendError( playerid, "You must install an anticheat to play the server. Visit "COL_GREY"www.samp-ac.com"COL_WHITE" to install the anticheat." );
@ -22442,6 +22473,50 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
}
}
}
if ( dialogid == DIALOG_CASINO_REWARDS && response )
{
if ( IsPlayerJailed( playerid ) ) return SendError( playerid, "You cannot use this while you're in jail." );
new
x = 0;
for ( new i = 0; i < sizeof ( g_shopItemData ); i ++ ) if ( IsCasinoRewardsShopItem( i ) )
{
if ( x == listitem )
{
new Float: rewards_cost = float( g_shopItemData[ i ] [ E_PRICE ] * CASINO_REWARDS_COST_MP ) / CASINO_REWARDS_DIVISOR;
if ( p_CasinoRewardsPoints[ playerid ] < rewards_cost )
return SendError( playerid, "You need %0.2f more rewards points for this item.", rewards_cost );
// shop limits
if ( g_shopItemData[ i ] [ E_LIMIT ] == LIMIT_ONE )
{
if ( i == 10 ) {
if ( p_drillStrength[ playerid ] == MAX_DRILL_STRENGTH ) return SendError( playerid, "You have already purchased this item." );
p_drillStrength[ playerid ] = MAX_DRILL_STRENGTH;
}
}
else
{
new iCurrentQuantity = GetShopItemVariable( playerid, i );
new iLimit = g_shopItemData[ i ] [ E_LIMIT ] + ( 2 * p_VIPLevel[ playerid ] );
if ( iCurrentQuantity >= iLimit )
return SendError( playerid, "You cannot buy more of this item with your rewards points." );
SetShopItemVariable( playerid, i, iCurrentQuantity + 1 );
}
// deduct points
p_CasinoRewardsPoints[ playerid ] -= rewards_cost;
mysql_single_query( sprintf( "UPDATE `USERS` SET `CASINO_REWARDS` = %f WHERE `ID`=%d", p_CasinoRewardsPoints[ playerid ], p_AccountID[ playerid ] ) );
SendServerMessage( playerid, "You have bought 1x "COL_GREY"%s"COL_WHITE" for "COL_GOLD"%0.2f"COL_WHITE" rewards points.", g_shopItemData[ i ] [ E_NAME ], rewards_cost );
return ShowPlayerRewardsMenu( playerid );
}
x ++;
}
}
if ( ( dialogid == DIALOG_SHOP_MENU ) && response )
{
if ( IsPlayerJailed( playerid ) ) return SendError( playerid, "You cannot use this while you're in jail." );
@ -24396,7 +24471,7 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
SetGVarInt( "fur_w", !is_in_apartment ? hid + MAX_HOUSES : 0, o );
SetGVarInt( "fur_f", i, o );
SetGVarInt( "fur_a", aid, o );
SyncObject( playerid );
Streamer_Update( playerid ); // SyncObject( playerid );
SendServerMessage( playerid, "You have purchased a "COL_GREY"%s"COL_WHITE". "COL_ORANGE"[%d/%d]", g_houseFurniture[ i ] [ E_NAME ], totalf, vip );
ShowFurnitureList( playerid, p_FurnitureCategory{ playerid } );
@ -24515,7 +24590,7 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
}
}
UpdateGateData( gID );
SyncObject( playerid );
Streamer_Update( playerid ); // SyncObject( playerid );
cmd_gate( playerid, "edit" );
DeletePVar( playerid, "gate_o_edititem" );
DeletePVar( playerid, "gate_o_editing" );
@ -24622,7 +24697,7 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
}
}
UpdateGateData( gID );
SyncObject( playerid );
Streamer_Update( playerid ); // SyncObject( playerid );
cmd_editgate( playerid, sprintf( "%d", gID ) );
SendServerMessage( playerid, "You have successfully updated this gate." );
}
@ -27360,6 +27435,8 @@ stock initializeCheckpoints( )
g_Checkpoints[ CP_BIZ_TERMINAL_METH ] = CreateDynamicCP( 2034.0669, 1001.6073, 1510.2416, 1.0, -1, -1, -1, 30.0 );
g_Checkpoints[ CP_BIZ_TERMINAL_WEED ] = CreateDynamicCP( -1742.9982, -1377.3049, 5874.1333, 1.0, -1, -1, -1, 30.0 );
g_Checkpoints[ CP_BIZ_TERMINAL_WEAP ] = CreateDynamicCP( -4236.8457, 211.4772, 1304.2739, 1.0, -1, -1, -1, 30.0 );
g_Checkpoints[ CP_REWARDS_CALIG ] = CreateDynamicCP( 2157.6294, 1599.4355, 1006.1797, 1.0, -1, -1, -1, 30.0 );
g_Checkpoints[ CP_REWARDS_4DRAG ] = CreateDynamicCP( 1951.7191, 997.5555, 992.8594, 1.0, -1, -1, -1, 30.0 );
// Out of SF
CreateDynamic3DTextLabel("[DROP OFF]", COLOR_GOLD, -211.6869, 979.3518, 19.3237, 50.0);
@ -27407,6 +27484,8 @@ stock initializeCheckpoints( )
CreateDynamic3DTextLabel("[REFILL AMMO]", COLOR_GOLD, 1579.5439, -1635.5166, 13.5609, 20.0);
#endif
CreateDynamic3DTextLabel("[CASINO REWARDS]", COLOR_GOLD, 2157.6294, 1599.4355, 1006.1797, 20.0);
CreateDynamic3DTextLabel("[CASINO REWARDS]", COLOR_GOLD, 1951.7191, 997.5555, 992.8594, 20.0);
CreateDynamic3DTextLabel("[REFILL AMMO]", COLOR_GOLD, -1615.2600, 685.5120, 7.1875, 20.0);
CreateDynamic3DTextLabel("[PAWNSHOP]", COLOR_GOLD, 1333.0847, -1080.0726, 968.0430, 20.0);
CreateDynamic3DTextLabel("[SHOP]", COLOR_GOLD, -29.0409,-184.7446,1003.5469, 20.0);
@ -29126,7 +29205,7 @@ stock createRoadBlockStrip( playerid, type )
g_roadblockData[ ID ] [ E_LABEL ] = CreateDynamic3DTextLabel( sprintf( "%s(%d)\n"COL_GREY"Placed by %s!", g_roadblockObjectData[ type ] [ E_NAME ], ID, ReturnPlayerName( playerid ) ), COLOR_GOLD, X, Y, Z, 20.0 );
g_roadblockData[ ID ] [ E_CREATED ] = true;
SyncObject( playerid );
Streamer_Update( playerid ); // SyncObject( playerid );
}
return ID;
}
@ -29205,7 +29284,7 @@ stock CreateSpikeStrip( playerid, Float: X, Float: Y, Float: Z, Float: Angle )
g_spikestripData[ i ] [ E_SPHERE ] = CreateDynamicCircle( X, Y, 4.0 );
if ( !bVehicle )
SyncObject( playerid ); // Shows the object instantly.
Streamer_Update( playerid ); // SyncObject( playerid ); // Shows the object instantly.
Iter_Add(SpikeStrip, i);
}
@ -37074,19 +37153,51 @@ stock GetBusinessAirModelIndex( modelid ) {
return index;
}
stock GetPlayerAccountID( playerid )
return p_AccountID[ playerid ];
stock GivePlayerCasinoRewardsPoints( playerid, lost_amount ) {
if ( lost_amount < 0 ) print("[casino error] negative reward amount used"), lost_amount *= -1;
p_CasinoRewardsPoints[ playerid ] += lost_amount / CASINO_REWARDS_DIVISOR;
mysql_single_query( sprintf( "UPDATE `USERS` SET `CASINO_REWARDS`=%f WHERE `ID`=%d", p_CasinoRewardsPoints[ playerid ], p_AccountID[ playerid ] ) );
return 1;
}
stock GetPlayerVIPLevel( playerid )
return p_VIPLevel[ playerid ];
stock ShowPlayerRewardsMenu( playerid )
{
static szString[ 800 ];
stock IsPlayerSpawned( playerid )
return p_Spawned{ playerid };
if ( szString[ 0 ] == '\0' )
{
strcat( szString, ""COL_WHITE"Item\t"COL_WHITE"Purpose\t"COL_WHITE"Rewards Points\n" );
for( new i; i < sizeof( g_shopItemData ); i++ ) if ( IsCasinoRewardsShopItem( i ) ) {
new Float: rewards_cost = float( g_shopItemData[ i ] [ E_PRICE ] * CASINO_REWARDS_COST_MP ) / CASINO_REWARDS_DIVISOR;
format( szString, sizeof( szString ), "%s%s\t"COL_GREY"%s\t"COL_GOLD"%0.2f points\n", szString, g_shopItemData[ i ] [ E_NAME ], g_shopItemData[ i ] [ E_USAGE ], rewards_cost );
}
}
SendServerMessage( playerid, ""COL_GREY"You currently have %0.2f casino rewards points!", p_CasinoRewardsPoints[ playerid ] );
return ShowPlayerDialog( playerid, DIALOG_CASINO_REWARDS, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Casino Rewards Items", szString, "Buy", "Cancel" );
}
stock IsCasinoRewardsShopItem( itemid ) {
for ( new i = 0; i < sizeof( g_casinoRewardsShopItems ); i ++ ) if ( itemid == g_casinoRewardsShopItems[ i ] ) {
return true;
}
return false;
}
stock GetPlayerAccountID( playerid ) return p_AccountID[ playerid ];
stock GetPlayerVIPLevel( playerid ) return p_VIPLevel[ playerid ];
stock IsPlayerSpawned( playerid ) return p_Spawned{ playerid };
stock UpdatePlayerEntranceExitTick( playerid, ms = 2500 ) {
p_EntranceTickcount[ playerid ] = GetTickCount( ) + ms;
}
stock CanPlayerExitEntrance( playerid ) {
return GetTickCount( ) > p_EntranceTickcount[ playerid ];
}
stock CanPlayerExitEntrance( playerid ) return GetTickCount( ) > p_EntranceTickcount[ playerid ];

View File

@ -6,154 +6,155 @@
*/
/* ** Definitions ** */
#define DIALOG_REGISTER 0 + 1000
#define DIALOG_LOGIN 1 + 1000
#define DIALOG_JOB 2 + 1000
#define DIALOG_BOMB_SHOP 3 + 1000
#define DIALOG_NULL 4 + 1000
#define DIALOG_BANNED 5 + 1000
#define DIALOG_BANK_MENU 6 + 1000
#define DIALOG_BANK_WITHDRAW 7 + 1000
#define DIALOG_BANK_DEPOSIT 8 + 1000
#define DIALOG_BANK_INFO 9 + 1000
#define DIALOG_SHOP_MENU 10 + 1000
#define DIALOG_HOUSES 11 + 1000
#define DIALOG_CITY_HALL 12 + 1000
#define DIALOG_HOSPITAL 13 + 1000
#define DIALOG_HOUSE_CONFIG 14 + 1000
#define DIALOG_HOUSE_TITLE 15 + 1000
#define DIALOG_HOUSE_INTERIORS 16 + 1000
#define DIALOG_IC_MARKET 17 + 1000
#define DIALOG_VEHICLE_SPAWN 18 + 1000
#define DIALOG_ARENAS 19 + 1000
#define DIALOG_BOUGHT_VEH 20 + 1000
#define DIALOG_PERKS 21 + 1000
#define DIALOG_PERKS_P 22 + 1000
#define DIALOG_VIP 23 + 1000
#define DIALOG_PERKS_V 24 + 1000
#define DIALOG_DONATED 25 + 1000
#define DIALOG_VEHICLE_LOCATE 26 + 1000
#define DIALOG_GANG_COLOR 27 + 1000
#define DIALOG_GANG_COLOR_INPUT 28 + 1000
#define DIALOG_RADIO 29 + 1000
#define DIALOG_XPMARKET 30 + 1000
#define DIALOG_PAINTBALL 31 + 1000
#define DIALOG_GPS 32 + 1000
#define DIALOG_VIP_LOCKER 33 + 1000
#define DIALOG_AMMU 34 + 1000
#define DIALOG_GARAGE_INTERIORS 35 + 1000
#define DIALOG_GARAGE_INT_CONFIRM 36 + 1000
#define DIALOG_GANG_LIST 37 + 1000
#define DIALOG_LUMBERJACK 38 + 1000
#define DIALOG_FIGHTSTYLE 39 + 1000
#define DIALOG_TOYS_MAIN 40 + 1000
#define DIALOG_TOYS 41 + 1000
#define DIALOG_TOYS_BONE 42 + 1000
#define DIALOG_VIP_WEP 43 + 1000
#define DIALOG_VIP_WEP_SELECT 44 + 1000
#define DIALOG_GANG_LIST_RESPONSE 45 + 1000
#define DIALOG_CMDS 46 + 1000
#define DIALOG_CMDS_REDIRECT 47 + 1000
#define DIALOG_STATS 48 + 1000
#define DIALOG_STATS_REDIRECT 49 + 1000
#define DIALOG_VEHDEALER 50 + 1000
#define DIALOG_CP_MENU 51 + 1000
#define DIALOG_AMMU_BUY 52 + 1000
#define DIALOG_APARTMENTS 53 + 1000
#define DIALOG_APARTMENTS_BUY 54 + 1000
#define DIALOG_FLAT_CONFIG 55 + 1000
#define DIALOG_FLAT_CONTROL 56 + 1000
#define DIALOG_FLAT_TITLE 57 + 1000
#define DIALOG_BUSINESS_TERMINAL 58 + 1000
#define DIALOG_WEAPON_DEAL 59 + 1000
#define DIALOG_WEAPON_DEAL_BUY 60 + 1000
#define DIALOG_HOUSE_PW 61 + 1000
#define DIALOG_HOUSE_SET_PW 62 + 1000
#define DIALOG_HOUSE_WEAPONS 63 + 1000
#define DIALOG_HOUSE_WEAPONS_ADD 64 + 1000
#define DIALOG_BUSINESS_BUY 65 + 1000
#define DIALOG_FURNITURE 66 + 1000
#define DIALOG_FURNITURE_LIST 67 + 1000
#define DIALOG_FURNITURE_OPTION 68 + 1000
#define DIALOG_FURNITURE_ROTATION 69 + 1000
#define DIALOG_FURNITURE_MAN_SEL 70 + 1000
#define DIALOG_ONLINE_JOB 71 + 1000
#define DIALOG_ONLINE_JOB_R 72 + 1000
#define DIALOG_FURNITURE_CATEGORY 73 + 1000
#define DIALOG_FLAT_FURNITURE 74 + 1000
#define DIALOG_TRUNCATE_FURNITURE 75 + 1000
#define DIALOG_VEHDEALER_BUY 76 + 1000
#define DIALOG_VEHDEALER_OPTIONS 77 + 1000
#define DIALOG_HELP 78 + 1000
#define DIALOG_HELP_CATEGORY 79 + 1000
#define DIALOG_HELP_THREAD 80 + 1000
#define DIALOG_HELP_BACK 81 + 1000
#define DIALOG_RADIO_CUSTOM 82 + 1000
#define DIALOG_GPS_CITY 83 + 1000
#define DIALOG_SPAWN_CITY 84 + 1000
#define DIALOG_GATE 85 + 1000
#define DIALOG_GATE_EDIT 86 + 1000
#define DIALOG_GATE_OWNER 87 + 1000
#define DIALOG_GATE_OWNER_EDIT 88 + 1000
#define DIALOG_PAINTBALL_EDIT 89 + 1000
#define DIALOG_PAINTBALL_EDIT_VAL 90 + 1000
#define DIALOG_PAINTBALL_ARENAS 91 + 1000
#define DIALOG_PAINTBALL_WEP 92 + 1000
#define DIALOG_PAINTBALL_PW 93 + 1000
#define DIALOG_DONATED_PLATBRONZE 94 + 1000
#define DIALOG_SHOP_AMOUNT 95 + 1000
#define DIALOG_PAINTBALL_REFILL 96 + 1000
#define DIALOG_HOUSE_INT_CONFIRM 98 + 1000
#define DIALOG_TOYS_ITEMS 99 + 1000
#define DIALOG_TOYS_EDIT 100 + 1000
#define DIALOG_TOYS_BONE_EDIT 101 + 1000
#define DIALOG_TOYS_BUY 102 + 1000
#define DIALOG_TOYS_ITEMS_BUY 103 + 1000
#define DIALOG_UNBAN_CLASS 104 + 1000
#define DIALOG_GANG_BANK_WITHDRAW 105 + 1000
#define DIALOG_GANG_BANK_DEPOSIT 106 + 1000
#define DIALOG_GANG_BANK_INFO 107 + 1000
#define DIALOG_YOU_SURE_APART 108 + 1000
#define DIALOG_YOU_SURE_VIP 109 + 1000
#define DIALOG_CHANGENAME 110 + 1000
#define DIALOG_GANG_LIST_OPTIONS 111 + 1000
#define DIALOG_GANG_LIST_MEMBERS 112 + 1000
#define DIALOG_COMPONENTS_CATEGORY 113 + 1000
#define DIALOG_COMPONENTS 114 + 1000
#define DIALOG_COMPONENT_EDIT 115 + 1000
#define DIALOG_COMPONENT_EDIT_MENU 116 + 1000
#define DIALOG_COMPONENT_MENU 117 + 1000
#define DIALOG_DONATED_DIAGOLD 118 + 1000
#define DIALOG_LATEST_DONOR 119 + 1000
#define DIALOG_FINISHED_DONATING 120 + 1000
#define DIALOG_MODIFY_HITSOUND 121 + 1000
#define DIALOG_VIP_NOTE 122 + 1000
#define DIALOG_REGISTER_QUIT 123 + 1000
#define DIALOG_LOGIN_QUIT 124 + 1000
#define DIALOG_WEAPON_LOCKER 125 + 1000
#define DIALOG_WEAPON_LOCKER_BUY 126 + 1000
#define DIALOG_FEEDBACK 127 + 1000
#define DIALOG_IC_MARKET_2 128 + 1000
#define DIALOG_BUSINESS_CAR 129 + 1000
#define DIALOG_BUSINESS_HELI 130 + 1000
#define DIALOG_ACC_GUARD 131 + 1000
#define DIALOG_ACC_GUARD_EMAIL 132 + 1000
#define DIALOG_ACC_GUARD_MODE 133 + 1000
#define DIALOG_ACC_GUARD_CONFIRM 134 + 1000
#define DIALOG_ACC_GUARD_DEL_CANCEL 135 + 1000
#define DIALOG_RACE 136 + 1000
#define DIALOG_RACE_MODE 137 + 1000
#define DIALOG_RACE_FEE 138 + 1000
#define DIALOG_RACE_POS 139 + 1000
#define DIALOG_RACE_DISTANCE 140 + 1000
#define DIALOG_RACE_KICK 141 + 1000
#define DIALOG_RACE_DEST 142 + 1000
#define DIALOG_RACE_PRESELECT 143 + 1000
#define DIALOG_RACE_CUSTOM_DEST 144 + 1000
#define DIALOG_BUSINESS_SELL 145 + 1000
#define DIALOG_BUSINESS_NAME 146 + 1000
#define DIALOG_BUSINESS_ADD_MEMBER 147 + 1000
#define DIALOG_BUSINESS_MEMBERS 148 + 1000
#define DIALOG_BUSINESS_WITHDRAW 149 + 1000
#define DIALOG_BUSINESS_UPGRADES 150 + 1000
#define DIALOG_BUSINESSES 151 + 1000
#define DIALOG_REGISTER 1000
#define DIALOG_LOGIN 1001
#define DIALOG_JOB 1002
#define DIALOG_BOMB_SHOP 1003
#define DIALOG_NULL 1004
#define DIALOG_BANNED 1005
#define DIALOG_BANK_MENU 1006
#define DIALOG_BANK_WITHDRAW 1007
#define DIALOG_BANK_DEPOSIT 1008
#define DIALOG_BANK_INFO 1009
#define DIALOG_SHOP_MENU 1010
#define DIALOG_HOUSES 1011
#define DIALOG_CITY_HALL 1012
#define DIALOG_HOSPITAL 1013
#define DIALOG_HOUSE_CONFIG 1014
#define DIALOG_HOUSE_TITLE 1015
#define DIALOG_HOUSE_INTERIORS 1016
#define DIALOG_IC_MARKET 1017
#define DIALOG_VEHICLE_SPAWN 1018
#define DIALOG_ARENAS 1019
#define DIALOG_BOUGHT_VEH 1020
#define DIALOG_PERKS 1021
#define DIALOG_PERKS_P 1022
#define DIALOG_VIP 1023
#define DIALOG_PERKS_V 1024
#define DIALOG_DONATED 1025
#define DIALOG_VEHICLE_LOCATE 1026
#define DIALOG_GANG_COLOR 1027
#define DIALOG_GANG_COLOR_INPUT 1028
#define DIALOG_RADIO 1029
#define DIALOG_XPMARKET 1030
#define DIALOG_PAINTBALL 1031
#define DIALOG_GPS 1032
#define DIALOG_VIP_LOCKER 1033
#define DIALOG_AMMU 1034
#define DIALOG_GARAGE_INTERIORS 1035
#define DIALOG_GARAGE_INT_CONFIRM 1036
#define DIALOG_GANG_LIST 1037
#define DIALOG_LUMBERJACK 1038
#define DIALOG_FIGHTSTYLE 1039
#define DIALOG_TOYS_MAIN 1040
#define DIALOG_TOYS 1041
#define DIALOG_TOYS_BONE 1042
#define DIALOG_VIP_WEP 1043
#define DIALOG_VIP_WEP_SELECT 1044
#define DIALOG_GANG_LIST_RESPONSE 1045
#define DIALOG_CMDS 1046
#define DIALOG_CMDS_REDIRECT 1047
#define DIALOG_STATS 1048
#define DIALOG_STATS_REDIRECT 1049
#define DIALOG_VEHDEALER 1050
#define DIALOG_CP_MENU 1051
#define DIALOG_AMMU_BUY 1052
#define DIALOG_APARTMENTS 1053
#define DIALOG_APARTMENTS_BUY 1054
#define DIALOG_FLAT_CONFIG 1055
#define DIALOG_FLAT_CONTROL 1056
#define DIALOG_FLAT_TITLE 1057
#define DIALOG_BUSINESS_TERMINAL 1058
#define DIALOG_WEAPON_DEAL 1059
#define DIALOG_WEAPON_DEAL_BUY 1060
#define DIALOG_HOUSE_PW 1061
#define DIALOG_HOUSE_SET_PW 1062
#define DIALOG_HOUSE_WEAPONS 1063
#define DIALOG_HOUSE_WEAPONS_ADD 1064
#define DIALOG_BUSINESS_BUY 1065
#define DIALOG_FURNITURE 1066
#define DIALOG_FURNITURE_LIST 1067
#define DIALOG_FURNITURE_OPTION 1068
#define DIALOG_FURNITURE_ROTATION 1069
#define DIALOG_FURNITURE_MAN_SEL 1070
#define DIALOG_ONLINE_JOB 1071
#define DIALOG_ONLINE_JOB_R 1072
#define DIALOG_FURNITURE_CATEGORY 1073
#define DIALOG_FLAT_FURNITURE 1074
#define DIALOG_TRUNCATE_FURNITURE 1075
#define DIALOG_VEHDEALER_BUY 1076
#define DIALOG_VEHDEALER_OPTIONS 1077
#define DIALOG_HELP 1078
#define DIALOG_HELP_CATEGORY 1079
#define DIALOG_HELP_THREAD 1080
#define DIALOG_HELP_BACK 1081
#define DIALOG_RADIO_CUSTOM 1082
#define DIALOG_GPS_CITY 1083
#define DIALOG_SPAWN_CITY 1084
#define DIALOG_GATE 1085
#define DIALOG_GATE_EDIT 1086
#define DIALOG_GATE_OWNER 1087
#define DIALOG_GATE_OWNER_EDIT 1088
#define DIALOG_PAINTBALL_EDIT 1089
#define DIALOG_PAINTBALL_EDIT_VAL 1090
#define DIALOG_PAINTBALL_ARENAS 1091
#define DIALOG_PAINTBALL_WEP 1092
#define DIALOG_PAINTBALL_PW 1093
#define DIALOG_DONATED_PLATBRONZE 1094
#define DIALOG_SHOP_AMOUNT 1095
#define DIALOG_PAINTBALL_REFILL 1096
#define DIALOG_HOUSE_INT_CONFIRM 1098
#define DIALOG_TOYS_ITEMS 1099
#define DIALOG_TOYS_EDIT 1100
#define DIALOG_TOYS_BONE_EDIT 1101
#define DIALOG_TOYS_BUY 1102
#define DIALOG_TOYS_ITEMS_BUY 1103
#define DIALOG_UNBAN_CLASS 1104
#define DIALOG_GANG_BANK_WITHDRAW 1105
#define DIALOG_GANG_BANK_DEPOSIT 1106
#define DIALOG_GANG_BANK_INFO 1107
#define DIALOG_YOU_SURE_APART 1108
#define DIALOG_YOU_SURE_VIP 1109
#define DIALOG_CHANGENAME 1110
#define DIALOG_GANG_LIST_OPTIONS 1111
#define DIALOG_GANG_LIST_MEMBERS 1112
#define DIALOG_COMPONENTS_CATEGORY 1113
#define DIALOG_COMPONENTS 1114
#define DIALOG_COMPONENT_EDIT 1115
#define DIALOG_COMPONENT_EDIT_MENU 1116
#define DIALOG_COMPONENT_MENU 1117
#define DIALOG_DONATED_DIAGOLD 1118
#define DIALOG_LATEST_DONOR 1119
#define DIALOG_FINISHED_DONATING 1120
#define DIALOG_MODIFY_HITSOUND 1121
#define DIALOG_VIP_NOTE 1122
#define DIALOG_REGISTER_QUIT 1123
#define DIALOG_LOGIN_QUIT 1124
#define DIALOG_WEAPON_LOCKER 1125
#define DIALOG_WEAPON_LOCKER_BUY 1126
#define DIALOG_FEEDBACK 1127
#define DIALOG_IC_MARKET_2 1128
#define DIALOG_BUSINESS_CAR 1129
#define DIALOG_BUSINESS_HELI 1130
#define DIALOG_ACC_GUARD 1131
#define DIALOG_ACC_GUARD_EMAIL 1132
#define DIALOG_ACC_GUARD_MODE 1133
#define DIALOG_ACC_GUARD_CONFIRM 1134
#define DIALOG_ACC_GUARD_DEL_CANCEL 1135
#define DIALOG_RACE 1136
#define DIALOG_RACE_MODE 1137
#define DIALOG_RACE_FEE 1138
#define DIALOG_RACE_POS 1139
#define DIALOG_RACE_DISTANCE 1140
#define DIALOG_RACE_KICK 1141
#define DIALOG_RACE_DEST 1142
#define DIALOG_RACE_PRESELECT 1143
#define DIALOG_RACE_CUSTOM_DEST 1144
#define DIALOG_BUSINESS_SELL 1145
#define DIALOG_BUSINESS_NAME 1146
#define DIALOG_BUSINESS_ADD_MEMBER 1147
#define DIALOG_BUSINESS_MEMBERS 1148
#define DIALOG_BUSINESS_WITHDRAW 1149
#define DIALOG_BUSINESS_UPGRADES 1150
#define DIALOG_BUSINESSES 1151
#define DIALOG_CASINO_REWARDS 1152

View File

@ -136,10 +136,10 @@ hook OnGameModeInit( )
CreateBlackjackTable( 100000, 2241.31250, 1606.27344, 1006.15631, 180.000, 82 );
// 4 dragons
CreateBlackjackTable( 250000, 1962.34375, 1015.66412, 992.46881, 90.00000, 23 );
CreateBlackjackTable( 500000, 1960.36719, 1015.66412, 992.46881, -90.0000, 23 );
CreateBlackjackTable( 1000000, 1960.74829, 1020.31189, 992.46881, -90.0000, 23 );
CreateBlackjackTable( 2500000, 1962.34375, 1020.17969, 992.46881, 90.00000, 23 );
CreateBlackjackTable( 250000, 1960.36719, 1015.66412, 992.46881, -90.0000, 23 );
CreateBlackjackTable( 500000, 1962.34375, 1015.66412, 992.46881, 90.00000, 23 );
CreateBlackjackTable( 1000000, 1962.34375, 1020.17969, 992.46881, 90.00000, 23 );
CreateBlackjackTable( 2500000, 1960.36719, 1020.17188, 992.46881, -90.00000, 23 );
return 1;
}
@ -581,11 +581,13 @@ stock CheckForBlackjack( tableid )
GivePlayerCash( playerid, payout );
}
else if ( dealer_score == 21 ) {
GivePlayerCasinoRewardsPoints( playerid, g_blackjackData[ tableid ] [ E_PAYOUT ] );
g_blackjackPlayerState[ tableid ] [ player_index ] = BLACKJACK_STATE_BUST;
SendClientMessageToBlackjack( tableid, COLOR_GREY, "[BLACKJACK]"COL_WHITE" %s(%d) has lost %s due to a dealer %s.", ReturnPlayerName( playerid ), playerid, ConvertPrice( g_blackjackData[ tableid ] [ E_PAYOUT ] ), IsDealerHandBlackjack( tableid, dealer_score ) ? ( "blackjack" ) : ( "21" ) );
GameTextForPlayer( playerid, "~n~~n~~r~No win!", 4000, 3 );
}
else if ( player_score > 21 ) {
GivePlayerCasinoRewardsPoints( playerid, g_blackjackData[ tableid ] [ E_PAYOUT ] );
g_blackjackPlayerState[ tableid ] [ player_index ] = BLACKJACK_STATE_BUST;
SendClientMessageToBlackjack( tableid, COLOR_GREY, "[BLACKJACK]"COL_WHITE" %s(%d) has lost %s due to a bust.", ReturnPlayerName( playerid ), playerid, ConvertPrice( g_blackjackData[ tableid ] [ E_PAYOUT ] ) );
GameTextForPlayer( playerid, "~n~~n~~r~No win!", 4000, 3 );
@ -597,6 +599,7 @@ stock CheckForBlackjack( tableid )
GivePlayerCash( playerid, payout );
}
else if ( player_score < dealer_score && dealer_score >= 17 ) {
GivePlayerCasinoRewardsPoints( playerid, g_blackjackData[ tableid ] [ E_PAYOUT ] );
g_blackjackPlayerState[ tableid ] [ player_index ] = BLACKJACK_STATE_BUST;
SendClientMessageToBlackjack( tableid, COLOR_GREY, "[BLACKJACK]"COL_WHITE" %s(%d) has lost %s due to a bust.", ReturnPlayerName( playerid ), playerid, ConvertPrice( g_blackjackData[ tableid ] [ E_PAYOUT ] ) );
GameTextForPlayer( playerid, "~n~~n~~r~No win!", 4000, 3 );

View File

@ -22,7 +22,6 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*******************************************************************************************/
#pragma option -d3
#include <YSI\y_va>
#include <YSI\y_iterate>
@ -1957,6 +1956,7 @@ stock CheckShowdown(handle)
new w_chips = floatround(float(TableData[handle][E_TABLE_POT_CHIPS][pot_id]) * (1.0 - T_POT_FEE_RATE));
new fee_earned = floatround((float(TableData[handle][E_TABLE_POT_CHIPS][pot_id]) / 1000.0) * T_POT_FEE_RATE);
UpdateServerVariable( "poker_fees", 0, GetGVarFloat( "poker_fees" ) + fee_earned, "", GLOBAL_VARTYPE_FLOAT );
GivePlayerCasinoRewardsPoints(high_id, fee_earned);
SendTableMessage(handle, "{9FCF30}****************************************************************************************");
SendTableMessage(handle, "{9FCF30}Player {FF8000}%s {9FCF30}has won with a {377CC8}%s", ReturnPlayerName(high_id), HAND_RANKS[highest_rank >> 12]);
SendTableMessage(handle, "{9FCF30}Prize: {377CC8}%s | -%0.0f%s percent fee.", ConvertPrice(w_chips), T_POT_FEE_RATE * 100.0, "%%");
@ -1977,6 +1977,7 @@ stock CheckShowdown(handle)
if(!Iter_Contains(IT_PlayersInGame<handle>, p)) continue;
if(PlayerRanks[p] == highest_rank)
{
GivePlayerCasinoRewardsPoints(p, floatround(float(fee_earned) / float(count)));
SendTableMessage(handle, "{9FCF30}%s", ReturnPlayerName(p));
PlayerData[p][E_PLAYER_TOTAL_CHIPS] += amount;
}
@ -2172,6 +2173,7 @@ stock bool: FoldPlayer(handle, playerid)
new w_chips = floatround(float(TableData[handle][E_TABLE_POT_CHIPS][MAIN_POT]) * (1.0 - T_POT_FEE_RATE));
new fee_earned = floatround((float(TableData[handle][E_TABLE_POT_CHIPS][MAIN_POT]) / 1000.0) * T_POT_FEE_RATE);
UpdateServerVariable( "poker_fees", 0, GetGVarFloat( "poker_fees" ) + fee_earned, "", GLOBAL_VARTYPE_FLOAT );
GivePlayerCasinoRewardsPoints(winner, fee_earned);
SendTableMessage(handle, "{9FCF30}Prize: {377CC8}%s | -%0.0f%s percent fee", ConvertPrice(w_chips), T_POT_FEE_RATE * 100.0, "%%");
SendTableMessage(handle, "{9FCF30}****************************************************************************************");
PlayerData[winner][E_PLAYER_TOTAL_CHIPS] += w_chips;

View File

@ -678,6 +678,7 @@ public OnRouletteWheelStop( rouletteid, winner )
SendClientMessageFormatted( playerid, -1, ""COL_GREY"[ROULETTE]"COL_WHITE" You have bet a total of %s and profited %s! (winning no %d)", ConvertPrice( waged ), ConvertPrice( profit ), winner );
} else {
profit *= -1; // to improve the client message
GivePlayerCasinoRewardsPoints( playerid, profit );
GameTextForPlayer( playerid, "~n~~n~~r~No win!", 4000, 3 );
SendClientMessageFormatted( playerid, -1, ""COL_GREY"[ROULETTE]"COL_WHITE" You have bet a total of %s and lost %s! (winning no %d)", ConvertPrice( waged ), ConvertPrice( profit ), winner );
}

View File

@ -23,8 +23,8 @@
#include < irresistible\gta\weapon_data >
// cnr configuration
#include < irresistible\cnr\vip >
#include < irresistible\cnr\dialog_ids >
#include < irresistible\cnr\vip >
// features
#include < irresistible\features\fps >