From 1929f83ef28eb6912ae0a166b4d932525737c94f Mon Sep 17 00:00:00 2001 From: Lorenc Date: Tue, 20 Mar 2018 23:26:32 +1100 Subject: [PATCH] add casino rewards for gambling --- gamemodes/sf-cnr.pwn | 151 +++++++-- pawno/include/irresistible/cnr/dialog_ids.inc | 303 +++++++++--------- .../features/visage/blackjack.inc | 11 +- .../irresistible/features/visage/poker.inc | 4 +- .../irresistible/features/visage/roulette.inc | 1 + pawno/include/irresistible/main.inc | 2 +- 6 files changed, 295 insertions(+), 177 deletions(-) diff --git a/gamemodes/sf-cnr.pwn b/gamemodes/sf-cnr.pwn index 4639f2b..4695de3 100644 --- a/gamemodes/sf-cnr.pwn +++ b/gamemodes/sf-cnr.pwn @@ -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 @@ -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 ]; diff --git a/pawno/include/irresistible/cnr/dialog_ids.inc b/pawno/include/irresistible/cnr/dialog_ids.inc index ebb57c7..253593f 100644 --- a/pawno/include/irresistible/cnr/dialog_ids.inc +++ b/pawno/include/irresistible/cnr/dialog_ids.inc @@ -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 diff --git a/pawno/include/irresistible/features/visage/blackjack.inc b/pawno/include/irresistible/features/visage/blackjack.inc index 577a380..bac44f3 100644 --- a/pawno/include/irresistible/features/visage/blackjack.inc +++ b/pawno/include/irresistible/features/visage/blackjack.inc @@ -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 ); diff --git a/pawno/include/irresistible/features/visage/poker.inc b/pawno/include/irresistible/features/visage/poker.inc index e9291c3..66b63d7 100644 --- a/pawno/include/irresistible/features/visage/poker.inc +++ b/pawno/include/irresistible/features/visage/poker.inc @@ -22,7 +22,6 @@ along with this program. If not, see . *******************************************************************************************/ -#pragma option -d3 #include #include @@ -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, 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; diff --git a/pawno/include/irresistible/features/visage/roulette.inc b/pawno/include/irresistible/features/visage/roulette.inc index f1d366f..236a7e2 100644 --- a/pawno/include/irresistible/features/visage/roulette.inc +++ b/pawno/include/irresistible/features/visage/roulette.inc @@ -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 ); } diff --git a/pawno/include/irresistible/main.inc b/pawno/include/irresistible/main.inc index 5af0c4f..c43e741 100644 --- a/pawno/include/irresistible/main.inc +++ b/pawno/include/irresistible/main.inc @@ -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 >