* implement visage
* modularize casino games and security
This commit is contained in:
parent
271c96341c
commit
904ba4ccc2
1304
gamemodes/sf-cnr.pwn
1304
gamemodes/sf-cnr.pwn
File diff suppressed because it is too large
Load Diff
11
pawno/include/irresistible/README.txt
Normal file
11
pawno/include/irresistible/README.txt
Normal file
@ -0,0 +1,11 @@
|
||||
/*
|
||||
|
||||
Irresistible Gaming Development Framework
|
||||
Copyright (c) 2018
|
||||
|
||||
This framework allows you to easily collaborate on Irresistible Gaming servers.
|
||||
|
||||
Internal Server Hooks:
|
||||
- InitializeTextDraws( )
|
||||
* Allows you to hook textdraws that you wish to store
|
||||
*/
|
159
pawno/include/irresistible/cnr/dialog_ids.inc
Normal file
159
pawno/include/irresistible/cnr/dialog_ids.inc
Normal file
@ -0,0 +1,159 @@
|
||||
/*
|
||||
* Irresistible Gaming (c) 2018
|
||||
* Developed by Lorenc Pekaj
|
||||
* Module: dialog_ids.inc
|
||||
* Purpose:
|
||||
*/
|
||||
|
||||
/* ** 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
|
@ -2409,180 +2409,6 @@ stock initializeObjects( )
|
||||
CreateDynamicObject( 19121, -1936.262084, 826.663513, 77.114082, 0.000000, 0.000000, 0.000000 );
|
||||
CreateDynamicObject( 16375, -1947.271362, 798.774536, 76.723022, 0.000000, 0.000000, -90.000000 );
|
||||
|
||||
// Dope Casino
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 18764, -2027.164672, 483.657043, 34.441905, 0.000000, 0.000000, 45.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", 0 );
|
||||
CreateDynamicObject( 3532, -2018.748657, 490.542907, 34.778594, 0.000000, 0.000000, 0.000000 );
|
||||
CreateDynamicObject( 3532, -2018.748657, 487.652862, 34.778594, 0.000000, 0.000000, 0.000000 );
|
||||
CreateDynamicObject( 3532, -2018.818725, 479.702789, 34.778594, 0.000000, 0.000000, 0.000000 );
|
||||
CreateDynamicObject( 3532, -2018.818725, 477.242980, 34.778594, 0.000000, 0.000000, 0.000000 );
|
||||
CreateDynamicObject( 3532, -2020.429077, 475.162902, 34.778594, 0.000000, 0.000000, -90.000000 );
|
||||
CreateDynamicObject( 3532, -2023.188110, 475.162902, 34.778594, 0.000000, 0.000000, -90.000000 );
|
||||
CreateDynamicObject( 3532, -2031.181518, 475.172912, 34.778594, 0.000000, 0.000000, -90.000000 );
|
||||
CreateDynamicObject( 3532, -2033.479125, 475.172912, 34.778594, 0.000000, 0.000000, -90.000000 );
|
||||
CreateDynamicObject( 3532, -2035.660400, 476.733001, 34.778594, 0.000000, 0.000000, 180.000000 );
|
||||
CreateDynamicObject( 3532, -2035.660400, 479.702972, 34.778594, 0.000000, 0.000000, 180.000000 );
|
||||
CreateDynamicObject( 3532, -2035.660400, 487.672576, 34.778594, 0.000000, 0.000000, 180.000000 );
|
||||
CreateDynamicObject( 3532, -2035.660400, 489.882751, 34.778594, 0.000000, 0.000000, 180.000000 );
|
||||
CreateDynamicObject( 3532, -2034.039916, 491.992767, 34.778594, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 3532, -2031.150390, 491.992767, 34.778594, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 3532, -2023.207519, 491.992767, 34.778594, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 3532, -2021.078857, 491.992767, 34.778594, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 3525, -2055.460937, 464.535797, 36.081878, 0.000000, 0.000000, 101.200004 );
|
||||
CreateDynamicObject( 3525, -2053.569091, 460.039154, 36.081878, 0.000000, 0.000000, 123.799972 );
|
||||
CreateDynamicObject( 3525, -2050.792724, 457.301147, 36.081878, 0.000000, 0.000000, 146.299743 );
|
||||
CreateDynamicObject( 3525, -2046.279296, 455.425537, 36.081878, 0.000000, 0.000000, 168.499710 );
|
||||
CreateDynamicObject( 9833, -2027.727539, 483.697814, 40.141849, 0.000000, 0.000000, 0.000000 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 18765, -2027.164672, 483.657043, 31.681922, 0.000000, 0.000000, 45.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", 0 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 18763, -2027.193359, 476.681274, 32.671974, 0.000000, 90.000000, 90.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", 0 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 18763, -2027.193359, 490.501495, 32.671974, 0.000000, 90.000000, 90.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", 0 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 18763, -2020.332763, 483.681549, 32.671974, 0.000000, 90.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", 0 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 18763, -2034.146484, 483.681549, 32.671974, 0.000000, 90.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", 0 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 18753, -2088.072753, 445.550384, 1958.231445, 0.000000, 90.000000, 0.000000 ), 0, 3167, "trailers", "trail_wall4", -65536 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 18753, -2064.943115, 445.550384, 1958.231445, 0.000000, 0.000000, 0.000000 ), 0, 5772, "stationtunnel", "mp_apt1_bathfloor1", -47 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 18753, -2032.181884, 445.550384, 1958.231445, 90.000000, 90.000000, 0.000000 ), 0, 3167, "trailers", "trail_wall4", -65536 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 18753, -2032.181884, 474.240478, 1956.170043, 0.000000, 90.000000, 90.000000 ), 0, 13014, "sw_block04", "studiowall2_law", -65536 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 18753, -2033.431396, 387.850250, 1956.739990, 90.000000, 90.000000, 90.000000 ), 0, 13014, "sw_block04", "studiowall2_law", -65536 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 18753, -2064.943115, 445.550384, 1974.719116, 0.000000, 0.000000, 0.000000 ), 0, 5722, "sunrise01_lawn", "otb_floor1", -13421773 );
|
||||
CreateDynamicObject( 14394, -2083.610351, 464.467041, 1958.830932, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 14394, -2075.618164, 464.467041, 1958.830932, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 14394, -2067.626464, 464.467041, 1958.830932, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 14394, -2059.631835, 464.467041, 1958.830932, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 14394, -2051.639892, 464.467041, 1958.830932, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 14394, -2043.648437, 464.467041, 1958.830932, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 14394, -2035.656860, 464.467041, 1958.830932, 0.000000, 0.000000, 90.000000 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 18753, -2064.943115, 527.800964, 1959.142211, 0.000000, 0.000000, 0.000000 ), 0, 5772, "stationtunnel", "mp_apt1_bathfloor1", -47 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 18836, -2059.058837, 413.286193, 1958.240356, 0.000000, 0.000000, 0.000000 ), 0, 3068, "cargo_rear", "cargo_floor1", -12303292 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 18836, -2059.065185, 438.430114, 1958.244262, 0.000000, 0.000000, 0.000000 ), 0, 3068, "cargo_rear", "cargo_floor1", -12303292 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 3525, -2063.197998, 402.662322, 1960.581542, 32.399978, 0.000000, 90.000000 ), 0, 3068, "cargo_rear", "cargo_floor1", -13421773 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 3525, -2063.197998, 389.292114, 1960.581542, 32.399978, 0.000000, 90.000000 ), 0, 3068, "cargo_rear", "cargo_floor1", -13421773 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 3525, -2063.197998, 414.832397, 1960.581542, 32.399978, 0.000000, 90.000000 ), 0, 3068, "cargo_rear", "cargo_floor1", -13421773 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 3525, -2063.197998, 427.772125, 1960.581542, 32.399978, 0.000000, 90.000000 ), 0, 3068, "cargo_rear", "cargo_floor1", -13421773 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 3525, -2063.197998, 440.322235, 1960.581542, 32.399978, 0.000000, 90.000000 ), 0, 3068, "cargo_rear", "cargo_floor1", -13421773 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 3525, -2063.197998, 452.872161, 1960.581542, 32.399978, 0.000000, 90.000000 ), 0, 3068, "cargo_rear", "cargo_floor1", -13421773 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 3525, -2054.854736, 452.872161, 1960.475463, 32.399978, 0.000000, 270.000000 ), 0, 3068, "cargo_rear", "cargo_floor1", -13421773 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 3525, -2054.854736, 440.312408, 1960.475463, 32.399978, 0.000000, 270.000000 ), 0, 3068, "cargo_rear", "cargo_floor1", -13421773 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 3525, -2054.854736, 427.662506, 1960.475463, 32.399978, 0.000000, 270.000000 ), 0, 3068, "cargo_rear", "cargo_floor1", -13421773 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 3525, -2054.854736, 414.782531, 1960.475463, 32.399978, 0.000000, 270.000000 ), 0, 3068, "cargo_rear", "cargo_floor1", -13421773 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 3525, -2054.854736, 402.632476, 1960.475463, 32.399978, 0.000000, 270.000000 ), 0, 3068, "cargo_rear", "cargo_floor1", -13421773 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 3525, -2054.854736, 389.282592, 1960.475463, 32.399978, 0.000000, 270.000000 ), 0, 3068, "cargo_rear", "cargo_floor1", -13421773 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 7315, -2059.042480, 416.249664, 1983.711547, 0.000000, 0.000000, 0.000000 ), 1, 10412, "hotel1", "gold128", -2236963 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 5422, -2059.060546, 388.309234, 1960.712158, 0.000000, 0.000000, 270.000000 ), 0, 6332, "rodeo01_law2", "bevdoor03_law", 0 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 8274, -2060.363281, 397.026245, 1958.319091, 0.000000, 90.000000, 0.000000 ), 0, 8463, "vgseland", "triadcarpet2", -65536 );
|
||||
CreateDynamicObject( 1597, -2053.919433, 459.345764, 1961.171264, 0.000000, 0.000000, 0.000000 );
|
||||
CreateDynamicObject( 1597, -2064.601806, 459.345764, 1961.171264, 0.000000, 0.000000, 0.000000 );
|
||||
CreateDynamicObject( 1597, -2064.601806, 434.175903, 1961.171264, 0.000000, 0.000000, 0.000000 );
|
||||
CreateDynamicObject( 1597, -2064.601806, 408.746093, 1961.171264, 0.000000, 0.000000, 0.000000 );
|
||||
CreateDynamicObject( 1597, -2053.919433, 434.315795, 1961.171264, 0.000000, 0.000000, 0.000000 );
|
||||
CreateDynamicObject( 1597, -2053.919433, 408.795593, 1961.171264, 0.000000, 0.000000, 0.000000 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 8274, -2060.363281, 419.536102, 1958.309082, 0.000000, 90.000000, 90.000000 ), 0, 8463, "vgseland", "triadcarpet2", -65536 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 8274, -2060.363281, 445.226196, 1958.309082, 0.000000, 90.000000, 90.000000 ), 0, 8463, "vgseland", "triadcarpet2", -65536 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 8274, -2060.363281, 394.146118, 1958.309082, 0.000000, 90.000000, 90.000000 ), 0, 8463, "vgseland", "triadcarpet2", -65536 );
|
||||
CreateDynamicObject( 19943, -2043.718627, 414.927337, 1958.631225, 0.000000, 0.000000, 0.000000 );
|
||||
CreateDynamicObject( 19943, -2043.718627, 426.717407, 1958.631225, 0.000000, 0.000000, 0.000000 );
|
||||
CreateDynamicObject( 639, -2052.070800, 426.617065, 1963.862182, 0.000000, 0.000000, 270.000000 );
|
||||
CreateDynamicObject( 639, -2047.310668, 426.617065, 1963.862182, 0.000000, 0.000000, 270.000000 );
|
||||
CreateDynamicObject( 639, -2047.698120, 414.987091, 1964.235473, 10.600000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 639, -2052.487304, 414.987091, 1965.130126, 10.600000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 7981, -2063.944580, 475.835235, 1955.000488, 0.000000, 0.000000, 0.000000 );
|
||||
CreateDynamicObject( 18657, -2059.314941, 534.687500, 1959.210083, 0.000000, 0.000000, 180.000000 );
|
||||
CreateDynamicObject( 2773, -2066.149902, 472.671661, 1960.511474, 0.000000, 0.000000, 35.600013 );
|
||||
CreateDynamicObject( 2773, -2064.664550, 470.598449, 1960.511474, 0.000000, 0.000000, 35.600013 );
|
||||
CreateDynamicObject( 2773, -2062.768798, 469.214996, 1960.511474, 0.000000, 0.000000, 71.600006 );
|
||||
CreateDynamicObject( 2773, -2060.399414, 468.448211, 1960.511474, 0.000000, 0.000000, 71.600006 );
|
||||
CreateDynamicObject( 2773, -2057.994384, 468.475128, 1960.511474, 0.000000, 0.000000, 107.999984 );
|
||||
CreateDynamicObject( 2773, -2055.657958, 469.244842, 1960.511474, 0.000000, 0.000000, 107.999984 );
|
||||
CreateDynamicObject( 2773, -2053.862792, 470.724975, 1960.511474, 0.000000, 0.000000, 143.200057 );
|
||||
CreateDynamicObject( 2773, -2052.422119, 472.682342, 1960.511474, 0.000000, 0.000000, 144.200073 );
|
||||
CreateDynamicObject( 18646, -2059.376464, 472.127624, 1959.421020, 0.000000, 0.000000, 0.000000 );
|
||||
CreateDynamicObject( 8493, -2081.820556, 477.459106, 1982.396484, -17.199998, 26.799995, 180.000000 );
|
||||
CreateDynamicObject( 8483, -2091.881591, 447.614318, 1964.525634, 0.000000, 0.000000, 0.000000 );
|
||||
CreateDynamicObject( 9831, -2083.817382, 445.994445, 1959.410278, 0.000000, 0.000000, 270.000000 );
|
||||
CreateDynamicObject( 6965, -2088.161865, 445.718719, 1962.381225, 0.000000, 0.000000, 0.000000 );
|
||||
CreateDynamicObject( 18657, -2082.977050, 444.410614, 1965.072143, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 18657, -2082.977050, 448.680389, 1965.072143, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 2785, -2067.998046, 402.671020, 1959.561279, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 2785, -2067.998046, 413.451110, 1959.561279, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 2785, -2067.998046, 408.000854, 1959.561279, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 2785, -2072.700195, 402.671020, 1959.561279, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 2785, -2076.994140, 402.671020, 1959.561279, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 2785, -2081.959716, 402.671020, 1959.561279, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 2785, -2087.111083, 402.671020, 1959.561279, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 2785, -2068.898925, 402.671020, 1959.561279, 0.000000, 0.000000, 270.000000 );
|
||||
CreateDynamicObject( 2785, -2073.618896, 402.671020, 1959.561279, 0.000000, 0.000000, 270.000000 );
|
||||
CreateDynamicObject( 2785, -2077.910644, 402.671020, 1959.561279, 0.000000, 0.000000, 270.000000 );
|
||||
CreateDynamicObject( 2785, -2082.870605, 402.671020, 1959.561279, 0.000000, 0.000000, 270.000000 );
|
||||
CreateDynamicObject( 2785, -2068.896972, 407.997222, 1959.561279, 0.000000, 0.000000, 270.000000 );
|
||||
CreateDynamicObject( 2785, -2072.699462, 408.000854, 1959.561279, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 2785, -2077.018798, 408.000854, 1959.561279, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 2785, -2081.960205, 408.000854, 1959.561279, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 2785, -2087.130371, 408.000854, 1959.561279, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 2785, -2072.709472, 413.451110, 1959.561279, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 2785, -2077.018310, 413.451110, 1959.561279, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 2785, -2081.958984, 413.451110, 1959.561279, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 2785, -2087.129638, 413.451110, 1959.561279, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 2785, -2073.611328, 407.997222, 1959.561279, 0.000000, 0.000000, 270.000000 );
|
||||
CreateDynamicObject( 2785, -2077.937255, 407.997222, 1959.561279, 0.000000, 0.000000, 270.000000 );
|
||||
CreateDynamicObject( 2785, -2082.877685, 407.997222, 1959.561279, 0.000000, 0.000000, 270.000000 );
|
||||
CreateDynamicObject( 2785, -2068.896972, 413.447296, 1959.561279, 0.000000, 0.000000, 270.000000 );
|
||||
CreateDynamicObject( 2785, -2073.627197, 413.447296, 1959.561279, 0.000000, 0.000000, 270.000000 );
|
||||
CreateDynamicObject( 2785, -2077.928955, 413.447296, 1959.561279, 0.000000, 0.000000, 270.000000 );
|
||||
CreateDynamicObject( 2785, -2082.879150, 413.447296, 1959.561279, 0.000000, 0.000000, 270.000000 );
|
||||
CreateDynamicObject( 1978, -2068.417968, 427.331573, 1959.761474, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 1978, -2074.970947, 427.331573, 1959.761474, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 1978, -2081.597167, 427.331573, 1959.761474, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 1979, -2069.768310, 427.138183, 1959.711425, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 1979, -2076.320800, 427.138183, 1959.711425, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 1979, -2082.951416, 427.138183, 1959.711425, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 2188, -2086.387695, 432.232299, 1959.731445, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 1895, -2087.470458, 432.220092, 1960.942138, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 14560, -2044.557128, 448.484680, 1963.180664, 0.000000, 0.000000, 18.199996 );
|
||||
CreateDynamicObject( 11689, -2034.721923, 415.431182, 1958.721313, 0.000000, 0.000000, 0.000000 );
|
||||
CreateDynamicObject( 11689, -2040.752929, 415.431182, 1958.721313, 0.000000, 0.000000, 0.000000 );
|
||||
CreateDynamicObject( 11689, -2034.721923, 409.941314, 1958.721313, 0.000000, 0.000000, 0.000000 );
|
||||
CreateDynamicObject( 11689, -2034.721923, 411.941223, 1958.721313, 0.000000, 0.000000, 180.000000 );
|
||||
CreateDynamicObject( 11689, -2040.754150, 411.941223, 1958.721313, 0.000000, 0.000000, 180.000000 );
|
||||
CreateDynamicObject( 11689, -2040.752929, 409.941314, 1958.721313, 0.000000, 0.000000, 0.000000 );
|
||||
CreateDynamicObject( 11689, -2034.721923, 406.561431, 1958.721313, 0.000000, 0.000000, 180.000000 );
|
||||
CreateDynamicObject( 11689, -2040.754150, 406.561431, 1958.721313, 0.000000, 0.000000, 180.000000 );
|
||||
CreateDynamicObject( 11689, -2034.721923, 400.921386, 1958.721313, 0.000000, 0.000000, 180.000000 );
|
||||
CreateDynamicObject( 11689, -2040.752685, 400.921386, 1958.721313, 0.000000, 0.000000, 180.000000 );
|
||||
CreateDynamicObject( 11689, -2040.752807, 404.561492, 1958.721313, 0.000000, 0.000000, 0.000000 );
|
||||
CreateDynamicObject( 11689, -2034.719848, 404.561492, 1958.721313, 0.000000, 0.000000, 0.000000 );
|
||||
CreateDynamicObject( 11686, -2049.128417, 400.349395, 1958.720458, 0.000000, 0.000000, 0.000000 );
|
||||
CreateDynamicObject( 11686, -2046.595947, 402.341278, 1958.722412, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 11686, -2046.595947, 407.221252, 1958.722412, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 11686, -2046.597900, 414.009429, 1958.720458, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 11686, -2049.116455, 416.011291, 1958.722412, 0.000000, 0.000000, 180.000000 );
|
||||
CreateDynamicObject( 11691, -2040.831054, 408.250305, 1958.720947, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 11691, -2040.831054, 413.570007, 1958.720947, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 11691, -2040.831054, 402.680328, 1958.720947, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 11691, -2034.690673, 408.250305, 1958.720947, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 11691, -2034.690673, 402.600646, 1958.720947, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 11691, -2034.690673, 413.660156, 1958.720947, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 11687, -2045.531616, 401.453796, 1958.721191, 0.000000, 0.000000, 0.000000 );
|
||||
CreateDynamicObject( 11687, -2045.531616, 403.043670, 1958.721191, 0.000000, 0.000000, 0.000000 );
|
||||
CreateDynamicObject( 11687, -2045.531616, 404.593811, 1958.721191, 0.000000, 0.000000, 0.000000 );
|
||||
CreateDynamicObject( 11687, -2045.531616, 406.303710, 1958.721191, 0.000000, 0.000000, 0.000000 );
|
||||
CreateDynamicObject( 11687, -2045.531616, 407.873687, 1958.721191, 0.000000, 0.000000, 0.000000 );
|
||||
CreateDynamicObject( 11687, -2045.531616, 415.633605, 1958.721191, 0.000000, 0.000000, 0.000000 );
|
||||
CreateDynamicObject( 11687, -2045.531616, 413.903564, 1958.721191, 0.000000, 0.000000, 0.000000 );
|
||||
CreateDynamicObject( 11687, -2045.531616, 412.213592, 1958.721191, 0.000000, 0.000000, 0.000000 );
|
||||
CreateDynamicObject( 11688, -2052.596191, 401.511657, 1958.720581, 0.000000, 0.000000, 132.799957 );
|
||||
CreateDynamicObject( 11688, -2052.376708, 414.853057, 1958.720581, 0.000000, 0.000000, 32.499950 );
|
||||
CreateDynamicObject( 14561, -2086.313476, 445.463531, 1973.461914, 0.000000, 0.000000, 0.000000 );
|
||||
CreateDynamicObject( 14565, -2044.508789, 448.444702, 1960.682250, 0.000000, 0.000000, 18.199993 );
|
||||
CreateDynamicObject( 14562, -2081.683593, 466.633392, 1960.871582, 0.000000, 0.000000, 270.000000 );
|
||||
CreateDynamicObject( 14562, -2036.961914, 466.633392, 1960.871582, 0.000000, 0.000000, 270.000000 );
|
||||
CreateDynamicObject( 19525, -2040.758178, 408.255187, 1959.491210, 0.000000, 0.000000, 0.000000 );
|
||||
CreateDynamicObject( 1978, -2074.970947, 432.611511, 1959.761474, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 1978, -2074.970947, 438.251647, 1959.761474, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 1979, -2076.320800, 432.438232, 1959.711425, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 1979, -2076.320800, 438.058227, 1959.711425, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 1978, -2068.417968, 432.591308, 1959.761474, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 1978, -2068.417968, 438.301330, 1959.761474, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 1979, -2069.768310, 432.408325, 1959.711425, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 1979, -2069.768310, 438.108489, 1959.711425, 0.000000, 0.000000, 90.000000 );
|
||||
|
||||
// Peterban LV Penis Tower
|
||||
CreateDynamicObject( 19859, 2092.712646, 1283.900634, 20.423448, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 19859, 2092.712646, 1286.900146, 20.423448, 0.000000, 0.000000, -90.000000 );
|
||||
@ -2603,42 +2429,6 @@ stock initializeObjects( )
|
||||
CreateDynamicObject( 19377, -1739.565185, 1023.787963, 96.484642, 0.000000, -95.100013, 0.000000 );
|
||||
CreateDynamicObject( 19377, -1739.565185, 1014.158203, 96.484642, 0.000000, -95.100013, 0.000000 );
|
||||
|
||||
// Dope casino
|
||||
CreateDynamicObject( 3524, -2036.840332, 449.940032, 35.172294, 0.000000, 0.000000, 270.000000 );
|
||||
CreateDynamicObject( 3524, -2036.840332, 453.220153, 35.172294, 0.000000, 0.000000, 270.000000 );
|
||||
CreateDynamicObject( 1557, -2036.831176, 450.008880, 34.092247, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 1557, -2036.859008, 453.018798, 34.092247, 0.000000, 0.000000, 270.000000 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 18762, -2040.622680, 453.661529, 36.292400, 0.000000, 0.000000, 0.000000 ), 0, 3922, "bistro", "Marble2", 0 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 18762, -2040.642700, 449.171722, 36.292400, 0.000000, 0.000000, 0.000000 ), 0, 3922, "bistro", "Marble2", 0 );
|
||||
CreateDynamicObject( 3850, -2038.371337, 453.799896, 34.741428, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 3850, -2038.371337, 453.799896, 34.741428, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 3850, -2038.371337, 453.799896, 34.741428, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 3850, -2038.371337, 453.799896, 34.741428, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 3850, -2038.371337, 449.229888, 34.741428, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 3850, -2038.371337, 449.229888, 34.741428, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 3850, -2038.371337, 449.229888, 34.741428, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 3850, -2038.371337, 449.229888, 34.741428, 0.000000, 0.000000, 90.000000 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 18762, -2036.182373, 449.171722, 36.292400, 0.000000, 0.000000, 0.000000 ), 0, 3922, "bistro", "Marble2", 0 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 18762, -2036.182373, 453.681732, 36.292400, 0.000000, 0.000000, 0.000000 ), 0, 3922, "bistro", "Marble2", 0 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 18762, -2036.171508, 451.341735, 37.012435, 90.000000, 0.000000, 0.000000 ), 0, 3922, "bistro", "Marble2", 0 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 18762, -2036.171508, 451.341735, 38.002410, 90.000000, 0.000000, 0.000000 ), 0, 3922, "bistro", "Marble2", 0 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 18762, -2037.192138, 448.711791, 36.292400, 0.000000, 0.000000, 0.000000 ), 0, 3922, "bistro", "Marble2", 0 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 18762, -2038.192382, 448.711791, 36.292400, 0.000000, 0.000000, 0.000000 ), 0, 3922, "bistro", "Marble2", 0 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 18762, -2039.182739, 448.711791, 36.292400, 0.000000, 0.000000, 0.000000 ), 0, 3922, "bistro", "Marble2", 0 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 18762, -2040.183593, 448.711791, 36.292400, 0.000000, 0.000000, 0.000000 ), 0, 3922, "bistro", "Marble2", 0 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 18762, -2036.182373, 450.161651, 36.292400, 0.000000, 0.000000, 0.000000 ), 0, 3922, "bistro", "Marble2", 0 );
|
||||
CreateDynamicObject( 3850, -2038.371337, 453.799896, 34.741428, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 3850, -2038.371337, 453.799896, 34.741428, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 3850, -2038.371337, 453.799896, 34.741428, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 3850, -2038.371337, 453.799896, 34.741428, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 3850, -2038.371337, 449.229888, 34.741428, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 3850, -2038.371337, 449.229888, 34.741428, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 3850, -2038.371337, 449.229888, 34.741428, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 3850, -2038.371337, 449.229888, 34.741428, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 3850, -2038.371337, 449.229888, 34.741428, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 3850, -2038.371337, 449.229888, 34.741428, 0.000000, 0.000000, 90.000000 );
|
||||
CreateDynamicObject( 3850, -2038.371337, 449.229888, 34.741428, 0.000000, 0.000000, 90.000000 );
|
||||
|
||||
// Veloxity customization
|
||||
CreateDynamicObject( 12950, 2194.661376, 2534.405029, 10.680329, 0.000000, 0.000000, 0.000000 );
|
||||
CreateDynamicObject( 3934, 2200.794433, 2545.288818, 14.050075, 0.000000, 0.000000, 90.000000 );
|
@ -1032,72 +1032,72 @@ stock initializeServerObjects( )
|
||||
CreateDynamicObject( 2894, -1427.463867, 801.275024, 984.661987, 0.000000, 0.000000, 0.000000 );
|
||||
|
||||
/* ** Terminal - Airport ** */
|
||||
CreateObject(6871, -1729.1552734375, 5.8203125, 1059.8229980469, 0, 0, 270);
|
||||
CreateObject(6871, -1878.9482421875, 45.341796875, 1089.4812011719, 0, 179.99450683594, 0);
|
||||
CreateObject(6871, -1930.880859375, 5.8134765625, 1089.4812011719, 0, 179.99450683594, 90);
|
||||
CreateObject(6871, -1878.2841796875, -51.939453125, 1095.3131103516, 0, 179.99450683594, 179.99450683594);
|
||||
CreateObject(6871, -1823.28515625, -51.9453125, 1095.3131103516, 0, 179.99450683594, 179.99450683594);
|
||||
CreateObject(6871, -1768.408203125, -51.9501953125, 1095.3131103516, 0, 179.99450683594, 179.99450683594);
|
||||
CreateObject(6871, -1825.6796875, 45.4482421875, 1099.4812011719, 0, 179.99450683594, 0);
|
||||
CreateObject(6871, -1882.5126953125, 41.7646484375, 1089.4812011719, 0, 179.99450683594, 90);
|
||||
CreateObject(6871, -1762.2412109375, 45.515625, 1089.4812011719, 0, 179.99450683594, 0);
|
||||
CreateObject(6364, -1925.533203125, -23.0546875, 1068.1417236328, 0, 0, 350.24963378906);
|
||||
CreateObject(6989, -1737.9873046875, -5.5458984375, 977.18237304688, 0, 270, 0);
|
||||
CreateObject(6989, -1924.0791015625, 3.8291015625, 977.20001220703, 0, 269.98901367188, 179.99450683594);
|
||||
CreateObject(6871, -1770.703125, 45.45703125, 1099.4812011719, 0, 179.99450683594, 0);
|
||||
CreateObject(6871, -1758.634765625, 41.912109375, 1089.4812011719, 0, 179.99450683594, 270);
|
||||
CreateObject(6871, -1776.5986328125, 78.5029296875, 1094.4812011719, 0, 179.99450683594, 0);
|
||||
CreateObject(2774, -1780.8916015625, -10.5615234375, 1054.1915283203, 0, 0, 0);
|
||||
CreateObject(6871, -1834.7001953125, 57.6005859375, 1089.4812011719, 0, 179.99450683594, 90);
|
||||
CreateObject(6989, -1715.3359375, 35.259765625, 977.18237304688, 0, 270, 0);
|
||||
CreateObject(10056, -1786.4560546875, -92.837890625, 1097.2132568359, 0, 0, 90.247192382813);
|
||||
CreateObject(10056, -1869.4072265625, -93.13671875, 1097.2132568359, 0, 0, 90.247192382813);
|
||||
CreateObject(10056, -1687.4693603516, -92.780113220215, 1097.2132568359, 0, 0, 90.247192382813);
|
||||
CreateObject(6871, -1922.783203125, 6.017578125, 1037.8953857422, 179.99450683594, 179.99450683594, 90);
|
||||
CreateObject(6871, -1776.8994140625, 88.6884765625, 1089.4812011719, 0, 179.99450683594, 0);
|
||||
CreateObject(10056, -1950.7564697266, -93.511184692383, 1097.2132568359, 0, 0, 90.247192382813);
|
||||
CreateObject(6871, -1831.123046875, 61.2001953125, 1089.4812011719, 0, 179.99450683594, 0);
|
||||
CreateObject(2774, -1821.5484619141, -23.6262550354, 1066.3145751953, 90, 0, 0.98876953125);
|
||||
CreateObject(2774, -1884.48046875, -10.203125, 1066.4146728516, 90, 0, 179.98352050781);
|
||||
CreateObject(2774, -1884.4189453125, -19.099378585815, 1060.9146728516, 90, 0, 179.98352050781);
|
||||
CreateObject(2774, -1896.7272949219, -6.9482502937317, 1060.9146728516, 90, 0, 269.98352050781);
|
||||
CreateObject(2774, -1884.4360351563, -7.1410775184631, 1054.1915283203, 0, 0, 0);
|
||||
CreateObject(6871, -1752.9091796875, 39.615234375, 1037.9250488281, 179.99450683594, 179.99450683594, 0);
|
||||
CreateObject(2774, -1780.9765625, 13.606979370117, 1054.1915283203, 0, 0, 0);
|
||||
CreateObject(2774, -1780.904296875, 1.3359375, 1066.4146728516, 90, 0, 0);
|
||||
CreateObject(2774, -1792.728515625, -10.71875, 1066.3145751953, 90, 0, 90.999755859375);
|
||||
CreateObject(2774, -1884.46484375, -0.0830078125, 1066.3896484375, 90, 0, 179.99951171875);
|
||||
CreateObject(2774, -1816.3173828125, -11.15625, 1066.3145751953, 90, 0, 90.98876953125);
|
||||
CreateObject(2774, -1839.9267578125, -11.51953125, 1066.3145751953, 90, 0, 90.98876953125);
|
||||
CreateObject(2774, -1863.27734375, -11.9716796875, 1066.2895507813, 90, 0, 90.98876953125);
|
||||
CreateObject(2774, -1871.9477539063, -12.132898330688, 1066.3646240234, 90, 0, 90.98876953125);
|
||||
CreateObject(2774, -1884.46484375, 3.4208984375, 1066.3896484375, 90, 0, 179.99450683594);
|
||||
CreateObject(2774, -1865.4638671875, 6.7841796875, 1066.3896484375, 90, 0, 269.98901367188);
|
||||
CreateObject(2774, -1871.8046875, 6.8046875, 1066.3896484375, 90, 0, 269.98901367188);
|
||||
CreateObject(2774, -1852.990234375, 19.1875, 1066.4396972656, 90, 0, 359.97802734375);
|
||||
CreateObject(2774, -1852.5556640625, 7.2333984375, 1054.1414794922, 0, 0, 0);
|
||||
CreateObject(6959, -1760.951171875, -3.5728607177734, 1066.5623779297, 0, 0, 0);
|
||||
CreateObject(6959, -1801.5708007813, -31.228803634644, 1066.5623779297, 0, 0, 90);
|
||||
CreateObject(6959, -1761.501953125, -3.5517454147339, 1067.3131103516, 0, 0, 0);
|
||||
CreateObject(6959, -1802.142578125, -30.83984375, 1067.3131103516, 0, 0, 90);
|
||||
CreateObject(6959, -1842.0390625, -30.8232421875, 1067.3131103516, 0, 0, 90);
|
||||
CreateObject(6959, -1872.0546875, 26.498046875, 1067.3131103516, 0, 0, 90);
|
||||
CreateObject(6959, -1881.9921875, -30.830078125, 1067.3131103516, 0, 0, 90);
|
||||
CreateObject(6959, -1904.7421875, 9.662109375, 1067.3131103516, 0, 0, 0);
|
||||
CreateObject(8661, -1874.5, -21.853515625, 1060.4177246094, 90, 90, 270);
|
||||
CreateObject(8661, -1834.51171875, -21.8779296875, 1060.4177246094, 90, 90, 270);
|
||||
CreateObject(8661, -1794.7626953125, -21.8515625, 1060.4177246094, 90, 90, 270);
|
||||
CreateObject(8661, -1754.9833984375, -21.8251953125, 1060.4177246094, 90, 90, 270);
|
||||
CreateObject(8661, -1827.08203125, 24.5849609375, 1060.4177246094, 90, 90, 90);
|
||||
CreateObject(8661, -1829.6279296875, 32.2744140625, 1061.6574707031, 179.99450683594, 0, 0);
|
||||
CreateObject(6959, -1872.2642822266, 26.90641784668, 1066.2370605469, 0, 0, 90);
|
||||
CreateObject(6959, -1904.7421875, 9.662109375, 1065.9868164063, 0, 0, 0);
|
||||
CreateObject(6959, -1905.8361816406, -29.319580078125, 1065.9868164063, 0, 0, 0);
|
||||
CreateObject(8661, -1807.1010742188, 40.971714019775, 1060.4177246094, 90, 90, 0);
|
||||
CreateObject(8661, -1809.443359375, 24.39453125, 1069.9992675781, 0, 179.99450683594, 0);
|
||||
CreateObject(8661, -1809.2485351563, 42.453460693359, 1069.9992675781, 0, 179.99450683594, 0);
|
||||
CreateObject(8661, -1808.6362304688, 61.353233337402, 1069.9992675781, 0, 179.99450683594, 0);
|
||||
CreateObject(8661, -1832.9326171875, 24.6484375, 1069.9992675781, 0, 179.99450683594, 0);
|
||||
CreateDynamicObject(6871, -1729.1552734375, 5.8203125, 1059.8229980469, 0, 0, 270, .priority = 1);
|
||||
CreateDynamicObject(6871, -1878.9482421875, 45.341796875, 1089.4812011719, 0, 179.99450683594, 0, .priority = 1);
|
||||
CreateDynamicObject(6871, -1930.880859375, 5.8134765625, 1089.4812011719, 0, 179.99450683594, 90, .priority = 1);
|
||||
CreateDynamicObject(6871, -1878.2841796875, -51.939453125, 1095.3131103516, 0, 179.99450683594, 179.99450683594, .priority = 1);
|
||||
CreateDynamicObject(6871, -1823.28515625, -51.9453125, 1095.3131103516, 0, 179.99450683594, 179.99450683594, .priority = 1);
|
||||
CreateDynamicObject(6871, -1768.408203125, -51.9501953125, 1095.3131103516, 0, 179.99450683594, 179.99450683594, .priority = 1);
|
||||
CreateDynamicObject(6871, -1825.6796875, 45.4482421875, 1099.4812011719, 0, 179.99450683594, 0, .priority = 1);
|
||||
CreateDynamicObject(6871, -1882.5126953125, 41.7646484375, 1089.4812011719, 0, 179.99450683594, 90, .priority = 1);
|
||||
CreateDynamicObject(6871, -1762.2412109375, 45.515625, 1089.4812011719, 0, 179.99450683594, 0, .priority = 1);
|
||||
CreateDynamicObject(6364, -1925.533203125, -23.0546875, 1068.1417236328, 0, 0, 350.24963378906, .priority = 1);
|
||||
CreateDynamicObject(6989, -1737.9873046875, -5.5458984375, 977.18237304688, 0, 270, 0, .priority = 1);
|
||||
CreateDynamicObject(6989, -1924.0791015625, 3.8291015625, 977.20001220703, 0, 269.98901367188, 179.99450683594, .priority = 1);
|
||||
CreateDynamicObject(6871, -1770.703125, 45.45703125, 1099.4812011719, 0, 179.99450683594, 0, .priority = 1);
|
||||
CreateDynamicObject(6871, -1758.634765625, 41.912109375, 1089.4812011719, 0, 179.99450683594, 270, .priority = 1);
|
||||
CreateDynamicObject(6871, -1776.5986328125, 78.5029296875, 1094.4812011719, 0, 179.99450683594, 0, .priority = 1);
|
||||
CreateDynamicObject(2774, -1780.8916015625, -10.5615234375, 1054.1915283203, 0, 0, 0, .priority = 1);
|
||||
CreateDynamicObject(6871, -1834.7001953125, 57.6005859375, 1089.4812011719, 0, 179.99450683594, 90, .priority = 1);
|
||||
CreateDynamicObject(6989, -1715.3359375, 35.259765625, 977.18237304688, 0, 270, 0, .priority = 1);
|
||||
CreateDynamicObject(10056, -1786.4560546875, -92.837890625, 1097.2132568359, 0, 0, 90.247192382813, .priority = 1);
|
||||
CreateDynamicObject(10056, -1869.4072265625, -93.13671875, 1097.2132568359, 0, 0, 90.247192382813, .priority = 1);
|
||||
CreateDynamicObject(10056, -1687.4693603516, -92.780113220215, 1097.2132568359, 0, 0, 90.247192382813, .priority = 1);
|
||||
CreateDynamicObject(6871, -1922.783203125, 6.017578125, 1037.8953857422, 179.99450683594, 179.99450683594, 90, .priority = 1);
|
||||
CreateDynamicObject(6871, -1776.8994140625, 88.6884765625, 1089.4812011719, 0, 179.99450683594, 0, .priority = 1);
|
||||
CreateDynamicObject(10056, -1950.7564697266, -93.511184692383, 1097.2132568359, 0, 0, 90.247192382813, .priority = 1);
|
||||
CreateDynamicObject(6871, -1831.123046875, 61.2001953125, 1089.4812011719, 0, 179.99450683594, 0, .priority = 1);
|
||||
CreateDynamicObject(2774, -1821.5484619141, -23.6262550354, 1066.3145751953, 90, 0, 0.98876953125, .priority = 1);
|
||||
CreateDynamicObject(2774, -1884.48046875, -10.203125, 1066.4146728516, 90, 0, 179.98352050781, .priority = 1);
|
||||
CreateDynamicObject(2774, -1884.4189453125, -19.099378585815, 1060.9146728516, 90, 0, 179.98352050781, .priority = 1);
|
||||
CreateDynamicObject(2774, -1896.7272949219, -6.9482502937317, 1060.9146728516, 90, 0, 269.98352050781, .priority = 1);
|
||||
CreateDynamicObject(2774, -1884.4360351563, -7.1410775184631, 1054.1915283203, 0, 0, 0, .priority = 1);
|
||||
CreateDynamicObject(6871, -1752.9091796875, 39.615234375, 1037.9250488281, 179.99450683594, 179.99450683594, 0, .priority = 1);
|
||||
CreateDynamicObject(2774, -1780.9765625, 13.606979370117, 1054.1915283203, 0, 0, 0, .priority = 1);
|
||||
CreateDynamicObject(2774, -1780.904296875, 1.3359375, 1066.4146728516, 90, 0, 0, .priority = 1);
|
||||
CreateDynamicObject(2774, -1792.728515625, -10.71875, 1066.3145751953, 90, 0, 90.999755859375, .priority = 1);
|
||||
CreateDynamicObject(2774, -1884.46484375, -0.0830078125, 1066.3896484375, 90, 0, 179.99951171875, .priority = 1);
|
||||
CreateDynamicObject(2774, -1816.3173828125, -11.15625, 1066.3145751953, 90, 0, 90.98876953125, .priority = 1);
|
||||
CreateDynamicObject(2774, -1839.9267578125, -11.51953125, 1066.3145751953, 90, 0, 90.98876953125, .priority = 1);
|
||||
CreateDynamicObject(2774, -1863.27734375, -11.9716796875, 1066.2895507813, 90, 0, 90.98876953125, .priority = 1);
|
||||
CreateDynamicObject(2774, -1871.9477539063, -12.132898330688, 1066.3646240234, 90, 0, 90.98876953125, .priority = 1);
|
||||
CreateDynamicObject(2774, -1884.46484375, 3.4208984375, 1066.3896484375, 90, 0, 179.99450683594, .priority = 1);
|
||||
CreateDynamicObject(2774, -1865.4638671875, 6.7841796875, 1066.3896484375, 90, 0, 269.98901367188, .priority = 1);
|
||||
CreateDynamicObject(2774, -1871.8046875, 6.8046875, 1066.3896484375, 90, 0, 269.98901367188, .priority = 1);
|
||||
CreateDynamicObject(2774, -1852.990234375, 19.1875, 1066.4396972656, 90, 0, 359.97802734375, .priority = 1);
|
||||
CreateDynamicObject(2774, -1852.5556640625, 7.2333984375, 1054.1414794922, 0, 0, 0, .priority = 1);
|
||||
CreateDynamicObject(6959, -1760.951171875, -3.5728607177734, 1066.5623779297, 0, 0, 0, .priority = 1);
|
||||
CreateDynamicObject(6959, -1801.5708007813, -31.228803634644, 1066.5623779297, 0, 0, 90, .priority = 1);
|
||||
CreateDynamicObject(6959, -1761.501953125, -3.5517454147339, 1067.3131103516, 0, 0, 0, .priority = 1);
|
||||
CreateDynamicObject(6959, -1802.142578125, -30.83984375, 1067.3131103516, 0, 0, 90, .priority = 1);
|
||||
CreateDynamicObject(6959, -1842.0390625, -30.8232421875, 1067.3131103516, 0, 0, 90, .priority = 1);
|
||||
CreateDynamicObject(6959, -1872.0546875, 26.498046875, 1067.3131103516, 0, 0, 90, .priority = 1);
|
||||
CreateDynamicObject(6959, -1881.9921875, -30.830078125, 1067.3131103516, 0, 0, 90, .priority = 1);
|
||||
CreateDynamicObject(6959, -1904.7421875, 9.662109375, 1067.3131103516, 0, 0, 0, .priority = 1);
|
||||
CreateDynamicObject(8661, -1874.5, -21.853515625, 1060.4177246094, 90, 90, 270, .priority = 1);
|
||||
CreateDynamicObject(8661, -1834.51171875, -21.8779296875, 1060.4177246094, 90, 90, 270, .priority = 1);
|
||||
CreateDynamicObject(8661, -1794.7626953125, -21.8515625, 1060.4177246094, 90, 90, 270, .priority = 1);
|
||||
CreateDynamicObject(8661, -1754.9833984375, -21.8251953125, 1060.4177246094, 90, 90, 270, .priority = 1);
|
||||
CreateDynamicObject(8661, -1827.08203125, 24.5849609375, 1060.4177246094, 90, 90, 90, .priority = 1);
|
||||
CreateDynamicObject(8661, -1829.6279296875, 32.2744140625, 1061.6574707031, 179.99450683594, 0, 0, .priority = 1);
|
||||
CreateDynamicObject(6959, -1872.2642822266, 26.90641784668, 1066.2370605469, 0, 0, 90, .priority = 1);
|
||||
CreateDynamicObject(6959, -1904.7421875, 9.662109375, 1065.9868164063, 0, 0, 0, .priority = 1);
|
||||
CreateDynamicObject(6959, -1905.8361816406, -29.319580078125, 1065.9868164063, 0, 0, 0, .priority = 1);
|
||||
CreateDynamicObject(8661, -1807.1010742188, 40.971714019775, 1060.4177246094, 90, 90, 0, .priority = 1);
|
||||
CreateDynamicObject(8661, -1809.443359375, 24.39453125, 1069.9992675781, 0, 179.99450683594, 0, .priority = 1);
|
||||
CreateDynamicObject(8661, -1809.2485351563, 42.453460693359, 1069.9992675781, 0, 179.99450683594, 0, .priority = 1);
|
||||
CreateDynamicObject(8661, -1808.6362304688, 61.353233337402, 1069.9992675781, 0, 179.99450683594, 0, .priority = 1);
|
||||
CreateDynamicObject(8661, -1832.9326171875, 24.6484375, 1069.9992675781, 0, 179.99450683594, 0, .priority = 1);
|
||||
CreateDynamicObject(10310, -1763.7945556641, -5.4736223220825, 1078.5191650391, 0, 0, 133.9892578125, -1, -1, -1, 250.0);
|
||||
CreateDynamicObject(10308, -1730.7578125, -92.7919921875, 1097.0695800781, 0, 0, 90, -1, -1, -1, 250.0);
|
||||
CreateDynamicObject(10060, -1790.1005859375, -0.3857421875, 1110.2736816406, 0, 179.99450683594, 0, -1, -1, -1, 250.0);
|
||||
@ -4080,11 +4080,11 @@ stock initializeServerObjects( )
|
||||
CreateDynamicObject(1670, 2094.67993, 1286.24353, 10.31454, 0.00000, 0.00000, 0.00000);
|
||||
|
||||
// Country Bank
|
||||
CreateObject(13007, 2162.11084, 1644.11023, 1042.40149, 0.00000, 0.00000, 0.00000);
|
||||
CreateObject(1536, 2171.45947, 1640.49854, 1040.53857, 0.00000, 0.00000, 90.00000);
|
||||
CreateObject(1536, 2156.60864, 1651.51331, 1040.53857, 0.00000, 0.00000, 180.00000);
|
||||
CreateObject(1536, 2153.59668, 1651.48657, 1040.53857, 0.00000, 0.00000, 0.00000);
|
||||
CreateObject(1536, 2153.63452, 1651.51038, 1040.53857, 0.00000, 0.00000, 180.00000);
|
||||
CreateDynamicObject(13007, 2162.11084, 1644.11023, 1042.40149, 0.00000, 0.00000, 0.00000, .priority = 1);
|
||||
CreateDynamicObject(1536, 2171.45947, 1640.49854, 1040.53857, 0.00000, 0.00000, 90.00000, .priority = 1);
|
||||
CreateDynamicObject(1536, 2156.60864, 1651.51331, 1040.53857, 0.00000, 0.00000, 180.00000, .priority = 1);
|
||||
CreateDynamicObject(1536, 2153.59668, 1651.48657, 1040.53857, 0.00000, 0.00000, 0.00000, .priority = 1);
|
||||
CreateDynamicObject(1536, 2153.63452, 1651.51038, 1040.53857, 0.00000, 0.00000, 180.00000, .priority = 1);
|
||||
|
||||
// LV Jail
|
||||
CreateDynamicObject(19302, 197.19633, 160.27502, 1003.26215, 0.00000, 0.00000, 0.00000);
|
||||
@ -4112,7 +4112,7 @@ stock initializeServerObjects( )
|
||||
SetObjectInvisible( CreateDynamicObject( 18762, 200.12614, 176.62241, 1003.03064, 0.00000, 0.00000, 0.00000 ) );
|
||||
|
||||
// SF Jail
|
||||
CreateObject( 19301, 246.23441, 117.80470, 1005.60938, 0.00000, 0.00000, 180.0000, 0.0 );
|
||||
CreateDynamicObject( 19301, 246.23441, 117.80470, 1005.60938, 0.00000, 0.00000, 180.0000, .priority = 9999 );
|
||||
CreateDynamicObject( 19303, 216.47310, 112.62180, 999.29547, 0.00000, 0.00000, 0.00000 );
|
||||
CreateDynamicObject( 19303, 220.39430, 112.62180, 999.29547, 0.00000, 0.00000, 0.00000 );
|
||||
CreateDynamicObject( 19303, 224.38519, 112.62180, 999.29547, 0.00000, 0.00000, 0.00000 );
|
||||
@ -6474,11 +6474,11 @@ stock initializeServerObjects( )
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 3037, -253.831680, -18.242807, 2218.315185, 0.000000, 0.000000, 360.000000 ), 0, 1676, "wshxrefpump", "black64", 0 );
|
||||
|
||||
// Army base carrier
|
||||
CreateObject(10771, 1232.47021, -2649.28809, 5.44530, 0.00000, 0.00000, 271.00000, 500.0);
|
||||
CreateObject(10772, 1232.32056, -2650.55811, 17.27340, 0.00000, 0.00000, 271.00000, 500.0);
|
||||
CreateObject(10770, 1224.96631, -2652.61230, 38.67970, 0.00000, 0.00000, 271.00000, 500.0);
|
||||
CreateObject(3115, 1230.74536, -2550.27563, 16.95340, 0.00000, 0.00000, 271.00000, 500.0);
|
||||
CreateObject(3114, 1246.66333, -2592.26709, 16.67340, 0.00000, 0.00000, 271.00000, 500.0);
|
||||
CreateDynamicObject(10771, 1232.47021, -2649.28809, 5.44530, 0.00000, 0.00000, 271.00000, .streamdistance = 500.0, .priority = 10);
|
||||
CreateDynamicObject(10772, 1232.32056, -2650.55811, 17.27340, 0.00000, 0.00000, 271.00000, .streamdistance = 500.0, .priority = 10);
|
||||
CreateDynamicObject(10770, 1224.96631, -2652.61230, 38.67970, 0.00000, 0.00000, 271.00000, .streamdistance = 500.0, .priority = 10);
|
||||
CreateDynamicObject(3115, 1230.74536, -2550.27563, 16.95340, 0.00000, 0.00000, 271.00000, .streamdistance = 500.0, .priority = 10);
|
||||
CreateDynamicObject(3114, 1246.66333, -2592.26709, 16.67340, 0.00000, 0.00000, 271.00000, .streamdistance = 500.0, .priority = 10);
|
||||
CreateDynamicObject(11237, 1224.96863, -2652.61499, 38.67970, 0.00000, 0.00000, 271.00000);
|
||||
CreateDynamicObject(11146, 1232.85986, -2640.24951, 12.28910, 0.00000, 0.00000, 271.00000);
|
||||
CreateDynamicObject(11145, 1231.35486, -2586.37329, 4.25780, 0.00000, 0.00000, 271.00000);
|
13
pawno/include/irresistible/cnr/vip.inc
Normal file
13
pawno/include/irresistible/cnr/vip.inc
Normal file
@ -0,0 +1,13 @@
|
||||
/*
|
||||
* Irresistible Gaming (c) 2018
|
||||
* Developed by Lorenc Pekaj
|
||||
* Module: vip.inc
|
||||
* Purpose: vip associated information
|
||||
*/
|
||||
|
||||
/* ** Definitions ** */
|
||||
#define VIP_REGULAR ( 1 )
|
||||
#define VIP_BRONZE ( 2 )
|
||||
#define VIP_GOLD ( 3 )
|
||||
#define VIP_PLATINUM ( 4 )
|
||||
#define VIP_DIAMOND ( 5 )
|
@ -36,6 +36,28 @@ CMD:fps( playerid, params[ ] )
|
||||
return 1;
|
||||
}
|
||||
|
||||
#if defined _streamer_included
|
||||
CMD:drawdistance( playerid, params[ ] )
|
||||
{
|
||||
if ( strmatch( params, "low" ) ) {
|
||||
Streamer_SetVisibleItems( STREAMER_TYPE_OBJECT, 300, playerid );
|
||||
SendClientMessage( playerid, 0x84aa63ff, "-> Draw distance of objects now set to LOW." );
|
||||
} else if ( strmatch( params, "medium" ) ) {
|
||||
Streamer_SetVisibleItems( STREAMER_TYPE_OBJECT, 625, playerid );
|
||||
SendClientMessage( playerid, 0x84aa63ff, "-> Draw distance of objects now set to MEDIUM." );
|
||||
} else if ( strmatch( params, "high" ) ) {
|
||||
Streamer_SetVisibleItems( STREAMER_TYPE_OBJECT, 950, playerid );
|
||||
SendClientMessage( playerid, 0x84aa63ff, "-> Draw distance of objects now set to HIGH." );
|
||||
} else if ( strmatch( params, "info" ) ) {
|
||||
SendClientMessage( playerid, 0x84aa63ff, sprintf( "-> You have currently %d objects streamed towards your client.", Streamer_GetVisibleItems( STREAMER_TYPE_OBJECT, playerid ) ) );
|
||||
}
|
||||
else {
|
||||
SendClientMessage( playerid, 0xa9c4e4ff, "-> /drawdistance [LOW/MEDIUM/HIGH/INFO]" );
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* ** Functions ** */
|
||||
stock formatFPSCounter( playerid ) {
|
||||
if( !p_FPSCounter{ playerid } )
|
||||
|
@ -5,6 +5,17 @@
|
||||
* Purpose: radio related feature
|
||||
*/
|
||||
|
||||
/* ** Includes ** */
|
||||
#include < YSI\y_hooks >
|
||||
|
||||
/* ** Error Checking ** */
|
||||
#if !defined VIP_REGULAR
|
||||
#error "This module requires a V.I.P system!"
|
||||
#endif
|
||||
|
||||
/* ** Definitions ** */
|
||||
#define IsPlayerUsingRadio(%0) (p_UsingRadio{%0})
|
||||
|
||||
/* ** Variables ** */
|
||||
enum E_RADIO_DATA
|
||||
{
|
||||
@ -31,5 +42,63 @@ new
|
||||
{ "Top 40 181.FM", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=872" },
|
||||
{ ".977 Hits", "http://7609.live.streamtheworld.com:80/977_HITS_SC" }
|
||||
},
|
||||
g_RadioStations [ 190 ]
|
||||
g_RadioStations [ 190 ] = ""COL_GREY"Custom URL "COL_GOLD"[V.I.P]"COL_WHITE"\n",
|
||||
bool: p_UsingRadio [ MAX_PLAYERS char ]
|
||||
;
|
||||
|
||||
/* ** Hooks ** */
|
||||
hook OnGameModeInit( )
|
||||
{
|
||||
// format radio station string
|
||||
for( new i = 0; i < sizeof( g_RadioData ); i++ ) {
|
||||
format( g_RadioStations, sizeof( g_RadioStations ), "%s%s\n", g_RadioStations, g_RadioData[ i ] [ E_NAME ] );
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
hook OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] )
|
||||
{
|
||||
if ( ( dialogid == DIALOG_RADIO ) && response )
|
||||
{
|
||||
if ( listitem == 0 )
|
||||
{
|
||||
if ( GetPlayerVIPLevel( playerid ) < VIP_REGULAR )
|
||||
return SendError( playerid, "You must be a V.I.P to use this, to become one visit "COL_GREY"donate.irresistiblegaming.com" ), 1;
|
||||
|
||||
ShowPlayerDialog(playerid, DIALOG_RADIO_CUSTOM, DIALOG_STYLE_INPUT, "{FFFFFF}Custom Radio", ""COL_WHITE"Enter the URL below, and streaming will begin.\n\n"COL_ORANGE"Please note, if there isn't a response. It's likely to be an invalid URL.", "Stream", "Back");
|
||||
return 1;
|
||||
}
|
||||
p_UsingRadio{ playerid } = true;
|
||||
StopAudioStreamForPlayer( playerid );
|
||||
PlayAudioStreamForPlayer( playerid, g_RadioData[ listitem - 1 ] [ E_URL ] );
|
||||
SendServerMessage( playerid, "If the radio doesn't respond then it must be offline. Use "COL_GREY"/stopradio"COL_WHITE" to stop the radio." );
|
||||
}
|
||||
else if ( dialogid == DIALOG_RADIO_CUSTOM )
|
||||
{
|
||||
if ( !response ) return cmd_radio( playerid, "" );
|
||||
p_UsingRadio{ playerid } = true;
|
||||
StopAudioStreamForPlayer( playerid );
|
||||
PlayAudioStreamForPlayer( playerid, inputtext );
|
||||
SendServerMessage( playerid, "If the radio doesn't respond then it must be offline. Use "COL_GREY"/stopradio"COL_WHITE" to stop the radio." );
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
hook OnPlayerDisconnect( playerid, reason ) {
|
||||
p_UsingRadio{ playerid } = false;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* ** Commands ** */
|
||||
CMD:radio( playerid, params[ ] )
|
||||
{
|
||||
ShowPlayerDialog(playerid, DIALOG_RADIO, DIALOG_STYLE_LIST, "{FFFFFF}Radio Stations - List", g_RadioStations, "Select", "Close");
|
||||
return 1;
|
||||
}
|
||||
|
||||
CMD:stopradio( playerid, params[ ] )
|
||||
{
|
||||
if ( IsPlayerUsingRadio( playerid ) ) p_UsingRadio{ playerid } = false;
|
||||
StopAudioStreamForPlayer( playerid );
|
||||
return 1;
|
||||
}
|
||||
|
@ -8,6 +8,11 @@
|
||||
/* ** Includes ** */
|
||||
#include < YSI\y_hooks >
|
||||
|
||||
/* ** Error checking ** */
|
||||
#if !defined __irresistible_servervars
|
||||
#error "You need server variables enabled to track betting."
|
||||
#endif
|
||||
|
||||
/* ** Definitions ** */
|
||||
#define MAX_BLACKJACK_TABLES ( 32 )
|
||||
#define MAX_BLACKJACK_CARDS ( 5 )
|
||||
@ -105,6 +110,10 @@ new
|
||||
/* ** Hooks ** */
|
||||
hook OnGameModeInit( )
|
||||
{
|
||||
// for tracking bets
|
||||
AddServerVariable( "blackjack_bets", "0.0", GLOBAL_VARTYPE_FLOAT );
|
||||
AddServerVariable( "blackjack_wins", "0.0", GLOBAL_VARTYPE_FLOAT );
|
||||
|
||||
// Reset Textdraw Variables
|
||||
for ( new i = 0; i < MAX_BLACKJACK_TABLES; i ++ ) {
|
||||
for ( new x = 0; x < MAX_BLACKJACK_CARDS; x ++ ) {
|
||||
@ -296,7 +305,7 @@ stock CreateBlackjackTable( payout, Float: X, Float: Y, Float: Z, Float: Angle,
|
||||
|
||||
g_blackjackData[ id ] [ E_GAME_TIMER ] = -1;
|
||||
g_blackjackData[ id ] [ E_PAYOUT ] = payout;
|
||||
g_blackjackData[ id ] [ E_OBJECT ] = CreateDynamicObject( 2188, X, Y, Z, 0.00000, 0.00000, Angle );
|
||||
g_blackjackData[ id ] [ E_OBJECT ] = CreateDynamicObject( 2188, X, Y, Z, 0.00000, 0.00000, Angle, .priority = 9999 );
|
||||
g_blackjackData[ id ] [ E_ACTOR ] = CreateActor( 171, X - 0.4 * floatcos( Angle - 90.0, degrees ), Y - 0.4 * floatsin( Angle - 90.0, degrees ), Z, Angle + 180.0 );
|
||||
CreateDynamic3DTextLabel( sprintf( "Press ENTER To Play\n"COL_WHITE"%s Minimum", ConvertPrice( payout ) ), COLOR_GREY, X, Y, Z + 0.25, 15.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, .testlos = 0 );
|
||||
|
||||
@ -306,6 +315,11 @@ stock CreateBlackjackTable( payout, Float: X, Float: Y, Float: Z, Float: Angle,
|
||||
ResetBlackjackTable( id );
|
||||
Iter_Add( blackjacktables, id );
|
||||
}
|
||||
else
|
||||
{
|
||||
static overflow;
|
||||
printf("[BLACKJACK ERROR] Reached limit of %d blackjack tables, increase to %d to fix.", MAX_BLACKJACK_TABLES, MAX_BLACKJACK_TABLES + ( ++ overflow ) );
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -77,7 +77,7 @@ stock ShowPlayerDialogEx(playerid, dialogid, style, caption[], button1[], button
|
||||
#define T_START_DELAY 5 //5 seconds
|
||||
#define T_SAVE_PLAYER_POS true
|
||||
//Max number the chips can express 10^(MAX_CHIP_DIGITS) - 1
|
||||
#define MAX_CHIP_DIGITS 8
|
||||
#define MAX_CHIP_DIGITS 7
|
||||
|
||||
|
||||
//Layout and design
|
||||
@ -261,8 +261,8 @@ new const colors[MAX_CHIP_DIGITS] =
|
||||
0xFF7C4303,//1,000
|
||||
0xFF63720E,//10,000
|
||||
0xFFE2C241,//100,000
|
||||
0xFFE4603F,//1,000,000
|
||||
0xFFCD270A //100,000,000
|
||||
0xFFE4603F//1,000,000
|
||||
//0xFFCD270A, //100,000,000
|
||||
//0xFFFF2424, //1,000,000,000
|
||||
//0xFFFF2424, //10,000,000,000
|
||||
|
||||
@ -276,9 +276,9 @@ new const chip_text[MAX_CHIP_DIGITS][8] =
|
||||
{"$1K"},
|
||||
{"$10K"},
|
||||
{"$100K"},
|
||||
{"$1M"},
|
||||
{"$10M"}
|
||||
//{"$100M"}
|
||||
{"$1M"}
|
||||
//{"$10M"},
|
||||
//{"$100M"},
|
||||
//{"$1,000M"}
|
||||
};
|
||||
/*============*/
|
||||
@ -409,8 +409,8 @@ stock ResetLabel(handle)
|
||||
if(!IsValidTable(handle)) return 0;
|
||||
new const buy_in = TableData[handle][E_TABLE_BUY_IN];
|
||||
new const small_blind = TableData[handle][E_TABLE_SMALL_BLIND];
|
||||
UpdateDynamic3DTextLabelTextEx(TableData[handle][E_TABLE_POT_LABEL], -1,
|
||||
"{FFFFFF}ID: %d\nPress {F98A0F}ENTER {FFFFFF}To Play\n{FFFFFF}$%d Minimum\n$%d / $%d Blinds", handle, buy_in, small_blind, small_blind * 2);
|
||||
UpdateDynamic3DTextLabelTextEx(TableData[handle][E_TABLE_POT_LABEL], COLOR_GREY,
|
||||
"Press ENTER To Play (%d)\n{FFFFFF}%s Minimum\n%s / %s Blinds", handle, ConvertPrice(buy_in), ConvertPrice(small_blind), ConvertPrice(small_blind * 2));
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -476,11 +476,11 @@ stock CreatePokerTable(buy_in, small_blind, Float: X, Float: Y, Float: Z, seats,
|
||||
/* Objects */
|
||||
|
||||
//Table
|
||||
TableData[handle][E_TABLE_OBJECT_IDS][0] = CreateDynamicObject(2189, X, Y, Z + T_Z_OFFSET - 0.01, 0.0, 0.0, 0.0, vworld, interior);
|
||||
TableData[handle][E_TABLE_OBJECT_IDS][1] = CreateDynamicObject(2111, X, Y, Z-0.01, 0.0, 0.0, 0.0, vworld, interior);
|
||||
TableData[handle][E_TABLE_OBJECT_IDS][0] = CreateDynamicObject(2189, X, Y, Z + T_Z_OFFSET - 0.01, 0.0, 0.0, 0.0, vworld, interior, .priority = 9999);
|
||||
TableData[handle][E_TABLE_OBJECT_IDS][1] = CreateDynamicObject(2111, X, Y, Z-0.01, 0.0, 0.0, 0.0, vworld, interior, .priority = 1);
|
||||
|
||||
//Chairs
|
||||
TableData[handle][E_TABLE_POT_LABEL] = CreateDynamic3DTextLabel("-", -1, X+T_CHIP_OFFSET, Y+T_CHIP_OFFSET, Z+0.5, 3.0, .worldid = vworld, .interiorid = interior);
|
||||
TableData[handle][E_TABLE_POT_LABEL] = CreateDynamic3DTextLabel("-", -1, X+T_CHIP_OFFSET, Y+T_CHIP_OFFSET, Z+0.5, 10.0, .worldid = vworld, .interiorid = interior);
|
||||
|
||||
new Float:angle_step = floatdiv(360.0, float(seats));
|
||||
for(new i = 0; i < seats; i++)
|
||||
@ -490,7 +490,7 @@ stock CreatePokerTable(buy_in, small_blind, Float: X, Float: Y, Float: Z, seats,
|
||||
new const Float:o_posx = unit_posx * T_CHAIR_RANGE + X;
|
||||
new const Float:o_posy = unit_posy * T_CHAIR_RANGE + Y;
|
||||
new const Float:c_posz = Z + 0.36;
|
||||
TableData[handle][E_TABLE_CHAIR_OBJECT_IDS][i] = CreateDynamicObject(T_CHAIR_MODEL, o_posx, o_posy, Z + 0.25, 0.0, 0.0, angle_step * float(i), vworld, interior);
|
||||
TableData[handle][E_TABLE_CHAIR_OBJECT_IDS][i] = CreateDynamicObject(T_CHAIR_MODEL, o_posx, o_posy, Z + 0.25, 0.0, 0.0, angle_step * float(i), vworld, interior, .priority = 9999);
|
||||
TableData[handle][E_TABLE_SEAT_POS_X][i] = o_posx;
|
||||
TableData[handle][E_TABLE_SEAT_POS_Y][i] = o_posy;
|
||||
TableData[handle][E_TABLE_SEAT_POS_Z][i] = Z;
|
||||
@ -507,9 +507,9 @@ stock CreatePokerTable(buy_in, small_blind, Float: X, Float: Y, Float: Z, seats,
|
||||
{
|
||||
new Float:rad = 0.11;
|
||||
new rand = random(20);
|
||||
TableChips[handle][i][j] = CreateDynamicObject(1902, rad * floatcos(float(j) * a_s, degrees) + or_x , rad * floatsin(float(j)* a_s, degrees) + or_y, or_z + float(rand) * 0.008, 0.0, 0.0, 0.0, vworld, interior);
|
||||
TableChips[handle][i][j] = CreateDynamicObject(1902, rad * floatcos(float(j) * a_s, degrees) + or_x , rad * floatsin(float(j)* a_s, degrees) + or_y, or_z + float(rand) * 0.008, 0.0, 0.0, 0.0, vworld, interior, .priority = 9999);
|
||||
SetDynamicObjectMaterialText(TableChips[handle][i][j], 0, " ", .backcolor = colors[j]);
|
||||
TableChipsLabel[handle][i][j] = CreateDynamicObject(1905, rad * floatcos(float(j) * a_s, degrees) + or_x , rad * floatsin(float(j)* a_s, degrees) + or_y, or_z + float(rand) * 0.008 + 0.1 + 0.025, 0.0, 0.0, 0.0, vworld, interior);
|
||||
TableChipsLabel[handle][i][j] = CreateDynamicObject(1905, rad * floatcos(float(j) * a_s, degrees) + or_x , rad * floatsin(float(j)* a_s, degrees) + or_y, or_z + float(rand) * 0.008 + 0.1 + 0.025, 0.0, 0.0, 0.0, vworld, interior, .priority = 9999);
|
||||
SetDynamicObjectMaterialText(TableChipsLabel[handle][i][j],
|
||||
0, chip_text[j], 50, "Arial", 44, 1, colors[j], -1, 1 );
|
||||
}
|
||||
@ -523,9 +523,9 @@ stock CreatePokerTable(buy_in, small_blind, Float: X, Float: Y, Float: Z, seats,
|
||||
new rand = random(20);
|
||||
new Float:px = rad * floatcos(float(j) * a_s, degrees) + X + T_CHIP_OFFSET;
|
||||
new Float:py = rad * floatsin(float(j) * a_s, degrees) + Y + T_CHIP_OFFSET;
|
||||
TableData[handle][E_TABLE_CHIPS][j] = CreateDynamicObject(1902, px, py, or_z + float(rand) * 0.008, 0.0, 0.0, 0.0, vworld, interior);
|
||||
TableData[handle][E_TABLE_CHIPS][j] = CreateDynamicObject(1902, px, py, or_z + float(rand) * 0.008, 0.0, 0.0, 0.0, vworld, interior, .priority = 9999);
|
||||
SetDynamicObjectMaterialText(TableData[handle][E_TABLE_CHIPS][j], 0, " ", .backcolor = colors[j]);
|
||||
TableData[handle][E_TABLE_CHIPS_LABEL][j] = CreateDynamicObject(1905, px, py, or_z + float(rand) * 0.008 + 0.1 + 0.025, 0.0, 0.0, 0.0, vworld, interior);
|
||||
TableData[handle][E_TABLE_CHIPS_LABEL][j] = CreateDynamicObject(1905, px, py, or_z + float(rand) * 0.008 + 0.1 + 0.025, 0.0, 0.0, 0.0, vworld, interior, .priority = 9999);
|
||||
SetDynamicObjectMaterialText(TableData[handle][E_TABLE_CHIPS_LABEL][j],
|
||||
0, chip_text[j], 50, "Arial", 44, 1, colors[j], -1, 1 );
|
||||
}
|
||||
@ -729,7 +729,7 @@ stock KickPlayerFromTable(playerid)
|
||||
TogglePlayerControllable(playerid, true);
|
||||
new const Float:angle_step = floatdiv(360.0, TableData[handle][E_TABLE_TOTAL_SEATS]);
|
||||
//Create the chair object again:
|
||||
TableData[handle][E_TABLE_CHAIR_OBJECT_IDS][slot] = CreateDynamicObject(T_CHAIR_MODEL, TableData[handle][E_TABLE_SEAT_POS_X][slot], TableData[handle][E_TABLE_SEAT_POS_Y][slot], TableData[handle][E_TABLE_SEAT_POS_Z][slot], 0.0, 0.0, angle_step * float(slot), TableData[handle][E_TABLE_VIRTUAL_WORLD], TableData[handle][E_TABLE_INTERIOR]);
|
||||
TableData[handle][E_TABLE_CHAIR_OBJECT_IDS][slot] = CreateDynamicObject(T_CHAIR_MODEL, TableData[handle][E_TABLE_SEAT_POS_X][slot], TableData[handle][E_TABLE_SEAT_POS_Y][slot], TableData[handle][E_TABLE_SEAT_POS_Z][slot], 0.0, 0.0, angle_step * float(slot), TableData[handle][E_TABLE_VIRTUAL_WORLD], TableData[handle][E_TABLE_INTERIOR], .priority = 9999);
|
||||
Internal_RemoveChairSlot(handle, slot);
|
||||
SetPlayerPos(playerid, TableData[handle][E_TABLE_SEAT_POS_X][slot], TableData[handle][E_TABLE_SEAT_POS_Y][slot], TableData[handle][E_TABLE_SEAT_POS_Z][slot]);
|
||||
SetCameraBehindPlayer(playerid);
|
||||
@ -994,7 +994,7 @@ stock AddPlayerToTable(playerid, handle)
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(GetPlayerCash(playerid) < TableData[handle][E_TABLE_BUY_IN]) return SendPokerMessage(playerid, "You don't have enough money to access this table. Buy In: $%d", TableData[handle][E_TABLE_BUY_IN]);
|
||||
if(GetPlayerCash(playerid) < TableData[handle][E_TABLE_BUY_IN]) return SendPokerMessage(playerid, "You don't have enough money to access this table. Buy In: %s", ConvertPrice(TableData[handle][E_TABLE_BUY_IN]));
|
||||
|
||||
new index = Player_GetUnusedAttachIndex(playerid);
|
||||
if(index == cellmin)
|
||||
@ -1037,7 +1037,7 @@ stock AddPlayerToTable(playerid, handle)
|
||||
TableData[handle][E_TABLE_CHAIR_PLAYER_ID][slot] = playerid;
|
||||
GivePlayerCash(playerid, -TableData[handle][E_TABLE_BUY_IN]);
|
||||
PlayerData[playerid][E_PLAYER_TOTAL_CHIPS] = TableData[handle][E_TABLE_BUY_IN];
|
||||
SendPokerMessage(playerid, "You've been charged $%d as a result of joining in the table.", TableData[handle][E_TABLE_BUY_IN]);
|
||||
SendPokerMessage(playerid, "You've been charged %s as a result of joining in the table.", ConvertPrice(TableData[handle][E_TABLE_BUY_IN]));
|
||||
//Allow players to join a table where a game has already started but there are empty seats remaining (these players will be able to play once the current match finishes)
|
||||
if(TableData[handle][E_TABLE_CURRENT_STATE] != STATE_BEGIN)
|
||||
{
|
||||
@ -1045,9 +1045,9 @@ stock AddPlayerToTable(playerid, handle)
|
||||
{
|
||||
if(!TableData[handle][E_TABLE_STING_NEW_GAME])
|
||||
{
|
||||
SendTableMessage(handle, "There are currently two players in the table.");
|
||||
SendTableMessage(handle, "Any players interested in being part of this game have "#T_START_DELAY" seconds to join the table.");
|
||||
SendTableMessage(handle, "The game will begin in "#T_START_DELAY" seconds...");
|
||||
SendTableMessage(handle, ""COL_GREY"-- "COL_WHITE"There are currently two players in the table.");
|
||||
SendTableMessage(handle, ""COL_GREY"-- "COL_WHITE"Any players interested in being part of this game have "#T_START_DELAY" seconds to join the table.");
|
||||
SendTableMessage(handle, ""COL_GREY"-- "COL_WHITE"The game will begin in "#T_START_DELAY" seconds...");
|
||||
Iter_Clear(IT_PlayersInGame<handle>);
|
||||
TableData[handle][E_TABLE_LOADING_GAME] = true;
|
||||
SetTimerEx("Poker_StartGame", T_START_DELAY * 1000, false, "ii", handle, INVALID_PLAYER_ID);
|
||||
@ -1098,13 +1098,13 @@ stock UpdateInfoTextdrawsForPlayer(playerid)
|
||||
{
|
||||
new handle = PlayerData[playerid][E_PLAYER_CURRENT_HANDLE];
|
||||
new tstring[64];
|
||||
format(tstring, sizeof(tstring), "~g~Chips:_~w~$%d", PlayerData[playerid][E_PLAYER_TOTAL_CHIPS]);
|
||||
format(tstring, sizeof(tstring), "~g~Chips:_~w~%s", ConvertPrice(PlayerData[playerid][E_PLAYER_TOTAL_CHIPS]));
|
||||
PlayerTextDrawSetString(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][2], tstring);
|
||||
format(tstring, sizeof(tstring), "~y~Pot:_~w~$%d", TableData[handle][E_TABLE_POT_CHIPS][MAIN_POT]);
|
||||
format(tstring, sizeof(tstring), "~y~Pot:_~w~%s", ConvertPrice(TableData[handle][E_TABLE_POT_CHIPS][MAIN_POT]));
|
||||
PlayerTextDrawSetString(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][3], tstring);
|
||||
format(tstring, sizeof(tstring), "~r~Last_bet:_~w~$%d", TableData[handle][E_TABLE_LAST_BET]);
|
||||
format(tstring, sizeof(tstring), "~r~Last_bet:_~w~%s", ConvertPrice(TableData[handle][E_TABLE_LAST_BET]));
|
||||
PlayerTextDrawSetString(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][4], tstring);
|
||||
format(tstring, sizeof(tstring), "~r~Your_bet:_~w~$%d", PlayerData[playerid][E_PLAYER_CURRENT_BET]);
|
||||
format(tstring, sizeof(tstring), "~r~Your_bet:_~w~%s", ConvertPrice(PlayerData[playerid][E_PLAYER_CURRENT_BET]));
|
||||
PlayerTextDrawSetString(playerid, PlayerData[playerid][E_PLAYER_INFO_TXT][5], tstring);
|
||||
return 1;
|
||||
}
|
||||
@ -1131,7 +1131,7 @@ public Poker_StartGame(handle, dealer)
|
||||
{
|
||||
SendPokerMessage(i, "You don't have any chips left.");
|
||||
SendPokerMessage(i, "You may join the table again and pay the buy-in fee to play once again!");
|
||||
SendTableMessage(handle, "Player %s has been kicked out of the table. [Reason: Ran out of chips]");
|
||||
SendTableMessage(handle, ""COL_GREY"-- "COL_WHITE"Player %s has been kicked out of the table. [Reason: Ran out of chips]", ReturnPlayerName(i));
|
||||
KickPlayerFromTable(i);
|
||||
ShowPlayerDialog(i, -1, DIALOG_STYLE_INPUT, " ", " ", " ", " ");
|
||||
}
|
||||
@ -1139,7 +1139,7 @@ public Poker_StartGame(handle, dealer)
|
||||
|
||||
if(Iter_Count(IT_PlayersTable<handle>) < 2)
|
||||
{
|
||||
SendTableMessage(handle, "There aren't enough players to start a game");
|
||||
SendTableMessage(handle, ""COL_GREY"-- "COL_WHITE"There aren't enough players to start a game");
|
||||
TableData[handle][E_TABLE_LOADING_GAME] = false;
|
||||
return 0;
|
||||
}
|
||||
@ -1192,13 +1192,13 @@ public Poker_StartGame(handle, dealer)
|
||||
TableData[handle][E_TABLE_PLAYER_DEALER_ID] = dealer;
|
||||
TableData[handle][E_TABLE_DEALER_SEAT] = PlayerData[dealer][E_PLAYER_CURRENT_CHAIR_SLOT];
|
||||
TableData[handle][E_TABLE_PLAYER_BIG_BLIND_ID] = dealer;
|
||||
SendTableMessage(handle, "Player %s has been chosen to be the dealer and big blind in this first stage of the game!", ReturnPlayerName(dealer));
|
||||
SendTableMessage(handle, ""COL_GREY"-- "COL_WHITE"Player %s has been chosen to be the dealer and big blind in this first stage of the game!", ReturnPlayerName(dealer));
|
||||
UpdateDynamic3DTextLabelTextEx(PlayerData[dealer][E_PLAYER_3D_LABEL], -1, "{7AC72E}%s\n{FD4102}BB-D", ReturnPlayerName(dealer));
|
||||
|
||||
//small blind..
|
||||
new next_turn = GetTurnAfterPlayer(handle, dealer);
|
||||
UpdateDynamic3DTextLabelTextEx(PlayerData[next_turn][E_PLAYER_3D_LABEL], -1, "{7AC72E}%s\n{FD4102}SB", ReturnPlayerName(next_turn));
|
||||
SendTableMessage(handle, "Player %s has been chosen to be the small blind in this first stage of the game!", ReturnPlayerName(next_turn));
|
||||
SendTableMessage(handle, ""COL_GREY"-- "COL_WHITE"Player %s has been chosen to be the small blind in this first stage of the game!", ReturnPlayerName(next_turn));
|
||||
TableData[handle][E_TABLE_PLAYER_SMALL_BLIND_ID] = next_turn;
|
||||
|
||||
|
||||
@ -1208,19 +1208,19 @@ public Poker_StartGame(handle, dealer)
|
||||
|
||||
//Dealer
|
||||
UpdateDynamic3DTextLabelTextEx(PlayerData[dealer][E_PLAYER_3D_LABEL], -1, "{7AC72E}%s\n{FD4102}D", ReturnPlayerName(dealer));
|
||||
SendTableMessage(handle, "Player %s has been chosen to be the dealer in this first stage of the game!", ReturnPlayerName(dealer));
|
||||
SendTableMessage(handle, ""COL_GREY"-- "COL_WHITE"Player %s has been chosen to be the dealer in this first stage of the game!", ReturnPlayerName(dealer));
|
||||
TableData[handle][E_TABLE_PLAYER_DEALER_ID] = dealer;
|
||||
TableData[handle][E_TABLE_DEALER_SEAT] = PlayerData[dealer][E_PLAYER_CURRENT_CHAIR_SLOT];
|
||||
|
||||
//Big blind
|
||||
new next_player = GetTurnAfterPlayer(handle, dealer);
|
||||
UpdateDynamic3DTextLabelTextEx(PlayerData[next_player][E_PLAYER_3D_LABEL], -1, "{7AC72E}%s\n{FD4102}SB", ReturnPlayerName(next_player));
|
||||
SendTableMessage(handle, "Player %s has been chosen to be the Small Blind in this first stage of the game!", ReturnPlayerName(next_player));
|
||||
SendTableMessage(handle, ""COL_GREY"-- "COL_WHITE"Player %s has been chosen to be the Small Blind in this first stage of the game!", ReturnPlayerName(next_player));
|
||||
TableData[handle][E_TABLE_PLAYER_SMALL_BLIND_ID] = next_player;
|
||||
|
||||
//Small blind
|
||||
next_player = GetTurnAfterPlayer(handle, next_player);
|
||||
SendTableMessage(handle, "Player %s has been chosen to be the Big Blind in this first stage of the game!", ReturnPlayerName(next_player));
|
||||
SendTableMessage(handle, ""COL_GREY"-- "COL_WHITE"Player %s has been chosen to be the Big Blind in this first stage of the game!", ReturnPlayerName(next_player));
|
||||
UpdateDynamic3DTextLabelTextEx(PlayerData[next_player][E_PLAYER_3D_LABEL], -1, "{7AC72E}%s\n{FD4102}BB", ReturnPlayerName(next_player));
|
||||
TableData[handle][E_TABLE_PLAYER_BIG_BLIND_ID] = next_player;
|
||||
}
|
||||
@ -1240,8 +1240,8 @@ public Poker_StartGame(handle, dealer)
|
||||
Streamer_Update(playerid);
|
||||
}
|
||||
|
||||
SendTableMessage(handle, "Dealer is shuffling the pack of cards...!");
|
||||
SendTableMessage(handle, "Cards will be handed out in two seconds...!");
|
||||
SendTableMessage(handle, ""COL_GREY"-- "COL_WHITE"Dealer is shuffling the pack of cards...!");
|
||||
SendTableMessage(handle, ""COL_GREY"-- "COL_WHITE"Cards will be handed out in two seconds...!");
|
||||
//If everything executes without stop, it wouldn't look that nice for me, so a timer comes handy..
|
||||
SetTimerEx("Poker_DealCards", 2000, false, "i", handle);
|
||||
return 1;
|
||||
@ -1260,7 +1260,7 @@ public Poker_KickPlayers(handle)
|
||||
{
|
||||
SendPokerMessage(i, "You don't have any chips left.");
|
||||
SendPokerMessage(i, "You may join the table again and pay the buy-in fee to play once again!");
|
||||
SendTableMessage(handle, "Player %s has been kicked out of the table. [Reason: Ran out of chips]");
|
||||
SendTableMessage(handle, ""COL_GREY"-- "COL_WHITE"Player %s has been kicked out of the table. [Reason: Ran out of chips]", ReturnPlayerName(i));
|
||||
KickPlayerFromTable(i);
|
||||
}
|
||||
else
|
||||
@ -1304,12 +1304,12 @@ stock StartNewPokerGame(handle, time)
|
||||
|
||||
if(Iter_Count(IT_PlayersTable<handle>) >= 2)
|
||||
{
|
||||
SendTableMessage(handle, "Starting a new game in %d seconds...", time);
|
||||
SendTableMessage(handle, ""COL_GREY"-- "COL_WHITE"Starting a new game in %d seconds...", time);
|
||||
SetTimerEx("Poker_StartGame", 1000 * time, false, "ii", handle, INVALID_PLAYER_ID);
|
||||
}
|
||||
else
|
||||
{
|
||||
SendTableMessage(handle, "There are not enough players to start a new game!");
|
||||
SendTableMessage(handle, ""COL_GREY"-- "COL_WHITE"There are not enough players to start a new game!");
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
@ -1500,8 +1500,8 @@ public Poker_DealCards(handle)
|
||||
{
|
||||
PlayerData[big_blind][E_PLAYER_CURRENT_BET] = TableData[handle][E_TABLE_BIG_BLIND];
|
||||
PlayerData[small_blind][E_PLAYER_CURRENT_BET] = TableData[handle][E_TABLE_SMALL_BLIND];
|
||||
SendTableMessage(handle, "{2DD9A9} * * %s posts a small blind of $%d.. * *", ReturnPlayerName(TableData[handle][E_TABLE_PLAYER_SMALL_BLIND_ID]), TableData[handle][E_TABLE_SMALL_BLIND]);
|
||||
SendTableMessage(handle, "{2DD9A9} * * %s posts a big blind of $%d.. * *", ReturnPlayerName(TableData[handle][E_TABLE_PLAYER_BIG_BLIND_ID]), TableData[handle][E_TABLE_BIG_BLIND]);
|
||||
SendTableMessage(handle, "{2DD9A9} * * %s posts a small blind of %s.. * *", ReturnPlayerName(TableData[handle][E_TABLE_PLAYER_SMALL_BLIND_ID]), ConvertPrice(TableData[handle][E_TABLE_SMALL_BLIND]));
|
||||
SendTableMessage(handle, "{2DD9A9} * * %s posts a big blind of %s.. * *", ReturnPlayerName(TableData[handle][E_TABLE_PLAYER_BIG_BLIND_ID]), ConvertPrice(TableData[handle][E_TABLE_BIG_BLIND]));
|
||||
new next_turn = GetTurnAfterPlayer(handle, TableData[handle][E_TABLE_PLAYER_BIG_BLIND_ID]);
|
||||
TableData[handle][E_TABLE_LAST_BET] = TableData[handle][E_TABLE_BIG_BLIND];
|
||||
SetLastToRaise(handle, next_turn);
|
||||
@ -1524,7 +1524,7 @@ public Poker_DealCards(handle)
|
||||
}
|
||||
else
|
||||
{
|
||||
SendTableMessage(handle, "{2DD9A9} * * %s posts a small blind of $%d.. * *", ReturnPlayerName(TableData[handle][E_TABLE_PLAYER_SMALL_BLIND_ID]), TableData[handle][E_TABLE_SMALL_BLIND]);
|
||||
SendTableMessage(handle, "{2DD9A9} * * %s posts a small blind of %s.. * *", ReturnPlayerName(TableData[handle][E_TABLE_PLAYER_SMALL_BLIND_ID]), ConvertPrice(TableData[handle][E_TABLE_SMALL_BLIND]));
|
||||
RemoveChipsFromPlayer( small_blind, TableData[handle][E_TABLE_SMALL_BLIND]);
|
||||
PlayerData[small_blind][E_PLAYER_CURRENT_BET] = TableData[handle][E_TABLE_SMALL_BLIND];
|
||||
}
|
||||
@ -1543,7 +1543,7 @@ public Poker_DealCards(handle)
|
||||
else
|
||||
{
|
||||
|
||||
SendTableMessage(handle, "{2DD9A9} * * %s posts a big blind of $%d.. * *", ReturnPlayerName(TableData[handle][E_TABLE_PLAYER_BIG_BLIND_ID]), TableData[handle][E_TABLE_BIG_BLIND]);
|
||||
SendTableMessage(handle, "{2DD9A9} * * %s posts a big blind of %s.. * *", ReturnPlayerName(TableData[handle][E_TABLE_PLAYER_BIG_BLIND_ID]), ConvertPrice(TableData[handle][E_TABLE_BIG_BLIND]));
|
||||
RemoveChipsFromPlayer( big_blind, TableData[handle][E_TABLE_BIG_BLIND]);
|
||||
PlayerData[big_blind][E_PLAYER_CURRENT_BET] = TableData[handle][E_TABLE_BIG_BLIND];
|
||||
TableData[handle][E_TABLE_LAST_BET] = TableData[handle][E_TABLE_BIG_BLIND];
|
||||
@ -1573,14 +1573,14 @@ static stock UpdateTable(handle)
|
||||
UpdateInfoTextdrawsForPlayer(playerid);
|
||||
new const seat = PlayerData[playerid][E_PLAYER_CURRENT_CHAIR_SLOT];
|
||||
new str[128 ];
|
||||
format(str, sizeof(str), "{34c5db}Chips: {db8d34}$%d\n{db3a34}Last bet: {db8d34}$%d", PlayerData[playerid][E_PLAYER_TOTAL_CHIPS], PlayerData[playerid][E_PLAYER_CURRENT_BET]);
|
||||
format(str, sizeof(str), "{34c5db}Chips: {db8d34}%s\n{db3a34}Last bet: {db8d34}%s", ConvertPrice(PlayerData[playerid][E_PLAYER_TOTAL_CHIPS]), ConvertPrice(PlayerData[playerid][E_PLAYER_CURRENT_BET]));
|
||||
UpdateDynamic3DTextLabelText(TableData[handle][E_TABLE_BET_LABELS][seat], T_BET_LABEL_COLOR, str);
|
||||
SetChipsValue(handle, PlayerData[playerid][E_PLAYER_CURRENT_CHAIR_SLOT], PlayerData[playerid][E_PLAYER_TOTAL_CHIPS]);
|
||||
|
||||
}
|
||||
new str[256];
|
||||
new tmp[10];
|
||||
format(str, sizeof(str), "{59cdff}MP: {ff9059}$%d\n", TableData[handle][E_TABLE_POT_CHIPS][MAIN_POT]);
|
||||
format(str, sizeof(str), "{59cdff}MP: {ff9059}%s\n", ConvertPrice(TableData[handle][E_TABLE_POT_CHIPS][MAIN_POT]));
|
||||
SetPotChipsValue(handle, TableData[handle][E_TABLE_POT_CHIPS][MAIN_POT]);
|
||||
if(Iter_Count(IT_Sidepots[handle] > 1))
|
||||
{
|
||||
@ -1588,7 +1588,7 @@ static stock UpdateTable(handle)
|
||||
foreach(new i: IT_Sidepots[handle])
|
||||
{
|
||||
if(i == MAIN_POT) continue;
|
||||
format(tmp, sizeof(tmp), "$%d\n", TableData[handle][E_TABLE_POT_CHIPS][i]);
|
||||
format(tmp, sizeof(tmp), "%s\n", ConvertPrice(TableData[handle][E_TABLE_POT_CHIPS][i]));
|
||||
strcat(str, tmp);
|
||||
}
|
||||
}
|
||||
@ -1824,7 +1824,7 @@ public CheckRounds(handle, bool: start_showdown)
|
||||
SendTableMessage(handle, "{D07035}======================================================================================");
|
||||
SendTableMessage(handle, "{D07035} The River ");
|
||||
SendTableMessage(handle, "{D07035}======================================================================================");
|
||||
//SendTableMessage(handle, "%s, %s, %s", CardData[TableData[handle][T_COM_CARDS_VALUES][0]][E_CARD_NAME], CardData[TableData[handle][T_COM_CARDS_VALUES][1]][E_CARD_NAME], CardData[TableData[handle][T_COM_CARDS_VALUES][2]][E_CARD_NAME]);
|
||||
//SendTableMessage(handle, ""COL_GREY"-- "COL_WHITE"%s, %s, %s", CardData[TableData[handle][T_COM_CARDS_VALUES][0]][E_CARD_NAME], CardData[TableData[handle][T_COM_CARDS_VALUES][1]][E_CARD_NAME], CardData[TableData[handle][T_COM_CARDS_VALUES][2]][E_CARD_NAME]);
|
||||
if(start_showdown)
|
||||
{
|
||||
SetTimerEx("CheckRounds", 2000, false, "ib", handle, false);
|
||||
@ -1920,7 +1920,7 @@ stock CheckShowdown(handle)
|
||||
}
|
||||
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}$%d!", TableData[handle][E_TABLE_POT_CHIPS][pot_id]);
|
||||
SendTableMessage(handle, "{9FCF30}Prize: {377CC8}%s!", ConvertPrice(TableData[handle][E_TABLE_POT_CHIPS][pot_id]));
|
||||
SendTableMessage(handle, "{9FCF30}****************************************************************************************");
|
||||
PlayerData[high_id][E_PLAYER_TOTAL_CHIPS] += TableData[handle][E_TABLE_POT_CHIPS][pot_id];
|
||||
}
|
||||
@ -2023,15 +2023,14 @@ stock CheckPotAndNextTurn(playerid, handle)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(TableData[handle][E_TABLE_FIRST_TURN] == playerid && TableData[handle][E_TABLE_CHECK_FIRST] && PlayerData[playerid][E_PLAYER_FOLDED])
|
||||
/*if(TableData[handle][E_TABLE_FIRST_TURN] == playerid && TableData[handle][E_TABLE_CHECK_FIRST] && PlayerData[playerid][E_PLAYER_FOLDED])
|
||||
{
|
||||
new turn = GetTurnAfterPlayer(handle, playerid);
|
||||
SetLastToRaise(handle, turn);
|
||||
is_cycle_complete = false;
|
||||
TableData[handle][E_TABLE_FIRST_TURN] = INVALID_PLAYER_ID;
|
||||
TableData[handle][E_TABLE_CHECK_FIRST] = false;
|
||||
}
|
||||
}*/
|
||||
|
||||
PlayerData[playerid][E_PLAYER_FOLDED] = false;
|
||||
if(is_cycle_complete)
|
||||
@ -2128,7 +2127,7 @@ stock bool: FoldPlayer(handle, playerid)
|
||||
HidePlayerChoices(winner);
|
||||
SendTableMessage(handle, "{9FCF30}****************************************************************************************");
|
||||
SendTableMessage(handle, "{9FCF30}Player {FF8000}%s {9FCF30}has won the game!", ReturnPlayerName(winner));
|
||||
SendTableMessage(handle, "{9FCF30}Prize: {377CC8}$%d!", TableData[handle][E_TABLE_POT_CHIPS][MAIN_POT]);
|
||||
SendTableMessage(handle, "{9FCF30}Prize: {377CC8}%s!", ConvertPrice(TableData[handle][E_TABLE_POT_CHIPS][MAIN_POT]));
|
||||
SendTableMessage(handle, "{9FCF30}****************************************************************************************");
|
||||
PlayerData[winner][E_PLAYER_TOTAL_CHIPS] += TableData[handle][E_TABLE_POT_CHIPS][MAIN_POT];
|
||||
PlayerData[winner][E_PLAYER_TOTAL_CHIPS] += PlayerData[winner][E_PLAYER_CURRENT_BET];
|
||||
@ -2185,8 +2184,8 @@ hook OnPlayerClickPlayerTD(playerid, PlayerText:playertextid)
|
||||
if(PlayerData[playerid][E_PLAYER_TOTAL_CHIPS] >= dif)
|
||||
{
|
||||
KillPlayerTurnTimer(playerid);
|
||||
SendTableMessage(handle, "{2DD9A9} * * %s calls $%d .. * *", ReturnPlayerName(playerid), dif);
|
||||
SetPlayerChatBubbleEx(playerid, -1, 30.0, 2000, "{22B1BD}** CALLS $%d ** ", dif);
|
||||
SendTableMessage(handle, "{2DD9A9} * * %s calls %s .. * *", ReturnPlayerName(playerid), ConvertPrice(dif));
|
||||
SetPlayerChatBubbleEx(playerid, -1, 30.0, 2000, "{22B1BD}** CALLS %s ** ", ConvertPrice(dif));
|
||||
RemoveChipsFromPlayer( playerid, dif);
|
||||
PlayerData[playerid][E_PLAYER_CURRENT_BET] = TableData[handle][E_TABLE_LAST_BET];
|
||||
SetPlayerClickedTxt(playerid, true);
|
||||
@ -2235,8 +2234,8 @@ stock ForcePlayerAllIn(playerid, handle, bool:checkpot = true)
|
||||
Iter_Add(IT_PlayersAllIn<handle>, playerid);
|
||||
new raise = PlayerData[playerid][E_PLAYER_TOTAL_CHIPS] + PlayerData[playerid][E_PLAYER_CURRENT_BET];
|
||||
PlayerData[playerid][E_PLAYER_CURRENT_BET] = raise;
|
||||
SendTableMessage(handle, "{2DD9A9} * * %s goes all in with $%d .. * *", ReturnPlayerName(playerid), raise);
|
||||
SetPlayerChatBubbleEx(playerid, -1, 30.0, 2000, "{9512CD}** ALL IN with $%d ** ", raise);
|
||||
SendTableMessage(handle, "{2DD9A9} * * %s goes all in with %s .. * *", ReturnPlayerName(playerid), ConvertPrice(raise));
|
||||
SetPlayerChatBubbleEx(playerid, -1, 30.0, 2000, "{9512CD}** ALL IN with %s ** ", ConvertPrice(raise));
|
||||
PlayerData[playerid][E_PLAYER_TOTAL_CHIPS] = 0;
|
||||
if(checkpot)
|
||||
CheckPotAndNextTurn(playerid, handle);
|
||||
@ -2256,11 +2255,11 @@ hook OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
|
||||
{
|
||||
GivePlayerCash(playerid, -TableData[handle][E_TABLE_BUY_IN]);
|
||||
PlayerData[playerid][E_PLAYER_TOTAL_CHIPS] = TableData[handle][E_TABLE_BUY_IN];
|
||||
SendTableMessage(handle, "Player %s has paid the buy-in fee of $%d chips to keep playing.", ReturnPlayerName(playerid), TableData[handle][E_TABLE_BUY_IN]);
|
||||
SendTableMessage(handle, ""COL_GREY"-- "COL_WHITE"Player %s has paid the buy-in fee of %s chips to keep playing.", ReturnPlayerName(playerid), ConvertPrice(TableData[handle][E_TABLE_BUY_IN]));
|
||||
}
|
||||
else
|
||||
{
|
||||
SendTableMessage(handle, "Player %s has been kicked out of the table. [Reason: Failure to pay the buy-in fee]");
|
||||
SendTableMessage(handle, ""COL_GREY"-- "COL_WHITE"Player %s has been kicked out of the table. [Reason: Failure to pay the buy-in fee]", ReturnPlayerName(playerid));
|
||||
KickPlayerFromTable(playerid);
|
||||
}
|
||||
}
|
||||
@ -2300,7 +2299,7 @@ hook OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
|
||||
}
|
||||
else if(raise <= TableData[handle][E_TABLE_LAST_BET])
|
||||
{
|
||||
SendPokerMessage(playerid, "Value must be greater than the last bet: $%d", TableData[handle][E_TABLE_LAST_BET]);
|
||||
SendPokerMessage(playerid, "Value must be greater than the last bet: %s", ConvertPrice(TableData[handle][E_TABLE_LAST_BET]));
|
||||
ShowPlayerRaiseDialog(playerid);
|
||||
return 1;
|
||||
}
|
||||
@ -2309,8 +2308,8 @@ hook OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
|
||||
ApplyAnimation(playerid, "INT_OFFICE", "OFF_Sit_Idle_Loop", 4.1, 1, 1, 1, 0, 0, 1);
|
||||
KillPlayerTurnTimer(playerid);
|
||||
//all in - not mandatory
|
||||
SendTableMessage(handle, "{2DD9A9} * * %s goes all in with $%d .. * *", ReturnPlayerName(playerid), raise);
|
||||
SetPlayerChatBubbleEx(playerid, -1, 30.0, 2000, "{9512CD}** ALL IN with $%d ** ", raise);
|
||||
SendTableMessage(handle, "{2DD9A9} * * %s goes all in with %s .. * *", ReturnPlayerName(playerid), ConvertPrice(raise));
|
||||
SetPlayerChatBubbleEx(playerid, -1, 30.0, 2000, "{9512CD}** ALL IN with %s ** ", ConvertPrice(raise));
|
||||
Iter_Add(IT_PlayersAllIn<handle>, playerid);
|
||||
RemoveChipsFromPlayer( playerid, raise);
|
||||
SetLastToRaise(handle, playerid);
|
||||
@ -2330,13 +2329,13 @@ hook OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
|
||||
RemoveChipsFromPlayer( playerid, dif);
|
||||
if(PlayerData[playerid][E_PLAYER_RCHOICE] == E_RAISE_BET)
|
||||
{
|
||||
SendTableMessage(handle, "{2DD9A9} * * %s bets $%d .. * *", ReturnPlayerName(playerid), raise);
|
||||
SetPlayerChatBubbleEx(playerid, -1, 30.0, 2000, "{31CA15}** BETS $%d ** ");
|
||||
SendTableMessage(handle, "{2DD9A9} * * %s bets %s .. * *", ReturnPlayerName(playerid), ConvertPrice(raise));
|
||||
SetPlayerChatBubbleEx(playerid, -1, 30.0, 2000, "{31CA15}** BETS %s ** ", ConvertPrice(raise));
|
||||
}
|
||||
else
|
||||
{
|
||||
SendTableMessage(handle, "{2DD9A9} * * %s raises to $%d .. * *", ReturnPlayerName(playerid), raise);
|
||||
SetPlayerChatBubbleEx(playerid, -1, 30.0, 2000, "{31CA15}** RAISES to $%d ** ", raise);
|
||||
SendTableMessage(handle, "{2DD9A9} * * %s raises to %s .. * *", ReturnPlayerName(playerid), ConvertPrice(raise));
|
||||
SetPlayerChatBubbleEx(playerid, -1, 30.0, 2000, "{31CA15}** RAISES to %s ** ", ConvertPrice(raise));
|
||||
}
|
||||
CheckPotAndNextTurn(playerid, handle);
|
||||
}
|
||||
@ -2403,7 +2402,7 @@ hook OnPlayerDeath(playerid, killerid, reason)
|
||||
if(!FoldPlayer(handle, playerid))
|
||||
CheckPotAndNextTurn(playerid, handle);
|
||||
|
||||
SendTableMessage(handle, "Player %s has died and has been kicked out from the table.", ReturnPlayerName(playerid));
|
||||
SendTableMessage(handle, ""COL_GREY"-- "COL_WHITE"Player %s has died and has been kicked out from the table.", ReturnPlayerName(playerid));
|
||||
KickPlayerFromTable(playerid);
|
||||
}
|
||||
return 1;
|
||||
@ -2417,7 +2416,7 @@ hook OnPlayerDisconnect(playerid, reason)
|
||||
if(!FoldPlayer(handle, playerid))
|
||||
CheckPotAndNextTurn(playerid, handle);
|
||||
|
||||
SendTableMessage(handle, "Player %s has disconnected and has been kicked out from the table.", ReturnPlayerName(playerid));
|
||||
SendTableMessage(handle, ""COL_GREY"-- "COL_WHITE"Player %s has disconnected and has been kicked out from the table.", ReturnPlayerName(playerid));
|
||||
KickPlayerFromTable(playerid);
|
||||
}
|
||||
return 1;
|
||||
@ -2481,6 +2480,26 @@ hook OnGameModeInit()
|
||||
TableChips[T_MAX_POKER_TABLES][i][2] = 0;
|
||||
TableChips[T_MAX_POKER_TABLES][i][3] = 0;
|
||||
}
|
||||
|
||||
// red dragons casino
|
||||
CreatePokerTable( 5000000, 100000, 1968.395019, 1027.808959, 991.828002, 2, 23, 10 );
|
||||
CreatePokerTable( 2500000, 50000, 1940.795043, 1008.741027, 991.828002, 2, 23, 10 );
|
||||
CreatePokerTable( 1000000, 20000, 1940.795043, 1027.240966, 991.828002, 3, 23, 10 );
|
||||
CreatePokerTable( 500000, 10000, 1940.795043, 1021.075012, 991.828002, 4, 23, 10 );
|
||||
CreatePokerTable( 250000, 5000, 1940.795043, 1014.908996, 991.828002, 4, 23, 10 );
|
||||
CreatePokerTable( 100000, 2000, 1968.395019, 1014.609008, 991.828002, 5, 23, 10 );
|
||||
CreatePokerTable( 250000, 5000, 1968.395019, 1021.208984, 991.828002, 6, 23, 10 );
|
||||
CreatePokerTable( 100000, 2000, 1968.395019, 1008.008972, 991.828002, 6, 23, 10 );
|
||||
|
||||
// caliguas casino
|
||||
CreatePokerTable( 2500000, 50000, 2273.936035, 1597.272949, 1005.568969, 2, 82, 1 );
|
||||
CreatePokerTable( 500000, 10000, 2252.936035, 1591.272949, 1005.568969, 2, 82, 1 );
|
||||
CreatePokerTable( 1000000, 20000, 2255.936035, 1597.272949, 1005.568969, 3, 82, 1 );
|
||||
CreatePokerTable( 500000, 10000, 2258.936035, 1591.272949, 1005.568969, 4, 82, 1 );
|
||||
CreatePokerTable( 250000, 5000, 2261.936035, 1597.272949, 1005.568969, 4, 82, 1 );
|
||||
CreatePokerTable( 100000, 2000, 2264.936035, 1591.272949, 1005.568969, 5, 82, 1 );
|
||||
CreatePokerTable( 50000, 1000, 2267.936035, 1597.272949, 1005.568969, 6, 82, 1 );
|
||||
CreatePokerTable( 25000, 500, 2270.936035, 1591.272949, 1005.568969, 6, 82, 1 );
|
||||
T_SendWarning("TPoker by ThreeKingz has been succesfully loaded!");
|
||||
return 1;
|
||||
}
|
||||
@ -2503,7 +2522,7 @@ CMD:ctable(playerid, params[])
|
||||
new Float:Pos[3];
|
||||
GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
|
||||
new table = CreatePokerTable(buy_in, small_blind, Pos[0], Pos[1], Pos[2]-0.6, seats, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid));
|
||||
SendPokerMessage(playerid, "You have created table ID: %d | Small blind: $%d | Big blind: $%d | Buy In: $%d | Seats: %d", table, small_blind, small_blind*2, buy_in, seats);
|
||||
SendPokerMessage(playerid, "You have created table ID: %d | Small blind: %s | Big blind: %s | Buy In: %s | Seats: %d", table, ConvertPrice(small_blind), ConvertPrice(small_blind*2), ConvertPrice(buy_in), seats);
|
||||
return 1;
|
||||
}
|
||||
CMD:dtable(playerid, params[])
|
||||
|
863
pawno/include/irresistible/features/visage/roulette.inc
Normal file
863
pawno/include/irresistible/features/visage/roulette.inc
Normal file
@ -0,0 +1,863 @@
|
||||
/*
|
||||
* Irresistible Gaming (c) 2018
|
||||
* Developed by Lorenc Pekaj
|
||||
* Module: roulette.inc
|
||||
* Purpose: roulette implementation in SA-MP
|
||||
*/
|
||||
|
||||
/* ** Includes ** */
|
||||
#include < YSI\y_hooks >
|
||||
|
||||
/* ** Error checking ** */
|
||||
#if !defined __irresistible_servervars
|
||||
#error "You need server variables enabled to track betting."
|
||||
#endif
|
||||
|
||||
/* ** Definitions ** */
|
||||
#define MAX_ROULETTE_TABLES 16
|
||||
|
||||
/* ** Macros ** */
|
||||
#define IsPlayerOnRoulette(%0) (p_RouletteTable[%0]!=-1)
|
||||
#define IsRedRouletteNumber(%0) (%0 == 1 || %0 == 3 || %0 == 5 || %0 == 7 || %0 == 9 || %0 == 12 || %0 == 14 || %0 == 16 || %0 == 18 || %0 == 19 || %0 == 21 || %0 == 23 || %0 == 25 || %0 == 27 || %0 == 30 || %0 == 32 || %0 == 34 || %0 == 36)
|
||||
|
||||
/* ** Constants ** */
|
||||
enum E_ROULETTE_OFFSET_DATA
|
||||
{
|
||||
E_VALUE, Float: E_OFFSET, Float: E_ANGLE
|
||||
};
|
||||
|
||||
static const
|
||||
Float: g_rouletteOffsets[ ] [ E_ROULETTE_OFFSET_DATA ] = {
|
||||
|
||||
{ 0, 0.6, 85.0 }, // 0
|
||||
|
||||
// 1, 2, 3
|
||||
{ 1, 0.50, 110.0 }, { 2, 0.44, 85.0 }, { 3, 0.55, 55.0 },
|
||||
|
||||
// 4, 5, 6
|
||||
{ 4, 0.31, 120.0 }, { 5, 0.3, 75.0 }, { 6, 0.43, 40.0 },
|
||||
|
||||
// 7, 8, 9
|
||||
{ 7, 0.20, 147.0 }, { 8, 0.13, 55.0 }, { 9, 0.32, 18.0 },
|
||||
|
||||
// 10, 11, 12
|
||||
{ 10, 0.17, 195.0 }, { 11, 0.08, -25.0 }, { 12, 0.32, -10.0 },
|
||||
|
||||
// 13, 14, 15
|
||||
{ 13, 0.25, 230.0 }, { 14, 0.22, -70.0 }, { 15, 0.38, -33.0 },
|
||||
|
||||
// 16, 17, 18
|
||||
{ 16, 0.39, 244.0 }, { 17, -0.35, 103.0 }, { 18, 0.48, -48.0 },
|
||||
|
||||
// 19, 20, 21
|
||||
{ 19, 0.53, 251.0 }, { 20, 0.51, 278.0 }, { 21, 0.6, -58.0 },
|
||||
|
||||
// 22, 23, 24
|
||||
{ 22, 0.68, 256.0 }, { 23, 0.66, 276.0 }, { 24, 0.73, 295.0 },
|
||||
|
||||
// 25, 26, 27
|
||||
{ 25, 0.82, 259.0 }, { 26, 0.81, 275.0 }, { 27, 0.87, 292.0 },
|
||||
|
||||
// 28, 29, 30
|
||||
{ 28, 0.97, 261.0 }, { 29, 0.96, 275.0 }, { 30, 1.01, 289.0 },
|
||||
|
||||
// 31, 32, 33
|
||||
{ 31, 1.12, 264.0 }, { 32, 1.12, 274.0 }, { 33, 1.17, 286.0 },
|
||||
|
||||
// 34, 35, 36
|
||||
{ 34, 1.28, 264.0 }, { 35, 1.27, 274.0 }, { 36, 1.31, 284.0 },
|
||||
|
||||
// 3to1, 3to1, 3to1
|
||||
{ 3211, 1.43, 264.0 }, { 3212, 1.42, 273.0 }, { 3213, 1.45, 283.0 },
|
||||
|
||||
// 1-18, even, 1st to 12
|
||||
{ 118, 0.73, 152.0 },{ 222, 0.65, 178.0 }, { 112, 0.46, 153.0 },
|
||||
|
||||
// red, black, 2nd 12
|
||||
{ 88, 0.7, 202.0 }, { 44, 0.87, 222.0 }, { 212, 0.59, 227.0 },
|
||||
|
||||
// odd, 19 to 36, 3rd 12
|
||||
{ 333, 1.09, 233.0 }, { 1936, 1.35, 241.0 },{ 312, 1.12, 249.0 }
|
||||
}
|
||||
;
|
||||
|
||||
/* ** Variables ** */
|
||||
enum E_ROULETTE_DATA
|
||||
{
|
||||
E_OBJECT, E_SPINNER_OBJECT, E_SPINNING_TIMER,
|
||||
bool: E_NO_MORE_BETS,
|
||||
|
||||
Float: E_X, Float: E_Y, Float: E_Z,
|
||||
Float: E_ROTATION
|
||||
};
|
||||
|
||||
|
||||
new
|
||||
g_rouletteTableData [ MAX_ROULETTE_TABLES ] [ E_ROULETTE_DATA ],
|
||||
Iterator: roulettetables < MAX_ROULETTE_TABLES >,
|
||||
|
||||
Text: g_rouletteNumberBG [ MAX_ROULETTE_TABLES ],
|
||||
Text: g_rouletteNumberTD [ MAX_ROULETTE_TABLES ],
|
||||
|
||||
g_rouletteChipColor [ MAX_PLAYERS ],
|
||||
g_rouletteChip [ MAX_PLAYERS ] [ sizeof( g_rouletteOffsets ) ],
|
||||
g_rouletteChipValue [ MAX_PLAYERS ] [ sizeof( g_rouletteOffsets ) ],
|
||||
Text3D: g_rouletteChipLabel [ MAX_PLAYERS ] [ sizeof( g_rouletteOffsets ) ],
|
||||
p_rouletteBetValue [ MAX_PLAYERS ],
|
||||
|
||||
p_RouletteMarkerTimer [ MAX_PLAYERS ] = { -1, ... },
|
||||
p_RouletteMarker [ MAX_PLAYERS ] = { -1, ... },
|
||||
p_RouletteTable [ MAX_PLAYERS ] = { -1, ... },
|
||||
p_RouletteMarkerColumn [ MAX_PLAYERS char ],
|
||||
bool: p_rouletteBetLocked [ MAX_PLAYERS char ]
|
||||
;
|
||||
|
||||
/* ** Forwards ** */
|
||||
public OnRouletteWheelStop( rouletteid, winner );
|
||||
public OnSpinRouletteTable( rouletteid, elapsed, steps );
|
||||
public OnRouletteMarkerUpdate( playerid );
|
||||
|
||||
/* ** Hooks ** */
|
||||
hook OnGameModeInit( )
|
||||
{
|
||||
// server variables
|
||||
AddServerVariable( "roulette_bets", "0.0", GLOBAL_VARTYPE_FLOAT );
|
||||
AddServerVariable( "roulette_wins", "0.0", GLOBAL_VARTYPE_FLOAT );
|
||||
|
||||
// create roulette tables
|
||||
CreateRouletteTable( 2242.36719, 1589.18750, 1006.22662, -90.0000 );
|
||||
CreateRouletteTable( 2242.36719, 1594.75781, 1006.22662, 90.00000 );
|
||||
CreateRouletteTable( 2230.57031, 1589.18750, 1006.22662, -90.0000 );
|
||||
CreateRouletteTable( 2230.57031, 1594.75781, 1006.22662, 90.00000 );
|
||||
CreateRouletteTable( 2230.57031, 1614.59375, 1006.22662, -90.0000 );
|
||||
CreateRouletteTable( 2230.57031, 1619.65625, 1006.22662, 90.00000 );
|
||||
CreateRouletteTable( 2241.44531, 1614.55469, 1006.22662, -90.0000 );
|
||||
CreateRouletteTable( 2241.44531, 1619.60938, 1006.22662, 90.00000 );
|
||||
CreateRouletteTable( 1963.71094, 1025.69531, 992.507810, 0.000000 );
|
||||
CreateRouletteTable( 1959.39844, 1025.69531, 992.507810, 0.000000 );
|
||||
CreateRouletteTable( 1963.71094, 1010.11719, 992.507810, 0.000000 );
|
||||
CreateRouletteTable( 1959.39844, 1010.11719, 992.507810, 0.000000 );
|
||||
return 1;
|
||||
}
|
||||
|
||||
hook OnPlayerConnect( playerid )
|
||||
{
|
||||
for ( new i = 0; i < sizeof( g_rouletteOffsets ); i ++ ) {
|
||||
g_rouletteChip[ playerid ] [ i ] = -1;
|
||||
g_rouletteChipLabel[ playerid ] [ i ] = Text3D: INVALID_3DTEXT_ID;
|
||||
g_rouletteChipValue[ playerid ] [ i ] = 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
hook OnPlayerDisconnect( playerid, reason )
|
||||
{
|
||||
RemovePlayerFromRoulette( playerid );
|
||||
return 1;
|
||||
}
|
||||
|
||||
#if defined AC_INCLUDED
|
||||
hook OnPlayerDeathEx( playerid, killerid, reason, Float: damage, bodypart )
|
||||
#else
|
||||
hook OnPlayerDeath( playerid, killerid, reason )
|
||||
#endif
|
||||
{
|
||||
RemovePlayerFromRoulette( playerid );
|
||||
return 1;
|
||||
}
|
||||
|
||||
hook OnPlayerKeyStateChange( playerid, newkeys, oldkeys )
|
||||
{
|
||||
static
|
||||
Float: X, Float: Y, Float: Z, Float: Angle;
|
||||
|
||||
if ( IsPlayerInCasino( playerid ) )
|
||||
{
|
||||
// Roulette
|
||||
if ( p_RouletteMarkerTimer[ playerid ] != -1 )
|
||||
{
|
||||
new
|
||||
rouletteid = p_RouletteTable[ playerid ];
|
||||
|
||||
if ( ! Iter_Contains( roulettetables, rouletteid ) )
|
||||
return SendServerMessage( playerid, "Invalid Roulette Table." );
|
||||
|
||||
if ( GetDistanceFromPlayerSquared( playerid, g_rouletteTableData[ rouletteid ] [ E_X ], g_rouletteTableData[ rouletteid ] [ E_Y ], g_rouletteTableData[ rouletteid ] [ E_Z ] ) > 16.0 ) // Squared
|
||||
return RemovePlayerFromRoulette( playerid );
|
||||
|
||||
// confirm bet
|
||||
if ( PRESSED( KEY_SPRINT ) )
|
||||
{
|
||||
if ( g_rouletteTableData[ rouletteid ] [ E_NO_MORE_BETS ] )
|
||||
return SendError( playerid, "This roulette table must finish its spin before you can bet again." );
|
||||
|
||||
if ( p_rouletteBetLocked{ playerid } )
|
||||
return SendError( playerid, "You have already locked in your bet. Wait for the spin to finish." );
|
||||
|
||||
new
|
||||
totalBet = GetPlayerTotalRouletteBet( playerid );
|
||||
|
||||
if ( totalBet <= 0 )
|
||||
return SendError( playerid, "You cannot spin the roulette without having placed any bets." );
|
||||
|
||||
if ( totalBet > GetPlayerCash( playerid ) )
|
||||
return SendError( playerid, "You do not have enough money to make this bet." );
|
||||
|
||||
// deduct money
|
||||
GivePlayerCash( playerid, -totalBet );
|
||||
|
||||
// lock the player in
|
||||
p_rouletteBetLocked{ playerid } = true;
|
||||
|
||||
if ( g_rouletteTableData[ rouletteid ] [ E_SPINNING_TIMER ] == -1 )
|
||||
{
|
||||
// randomize string
|
||||
GenerateRandomRouletteNumber( rouletteid );
|
||||
|
||||
foreach (new i : Player) if ( p_RouletteTable[ i ] == rouletteid )
|
||||
{
|
||||
TextDrawShowForPlayer( i, g_rouletteNumberBG[ rouletteid ] );
|
||||
TextDrawShowForPlayer( i, g_rouletteNumberTD[ rouletteid ] );
|
||||
|
||||
if ( ! p_rouletteBetLocked{ i } ) {
|
||||
SendServerMessage( i, "%s(%d) has waged %s with this spin, press SPACE to join the spin!", ReturnPlayerName( playerid ), playerid, ConvertPrice( totalBet ) );
|
||||
}
|
||||
}
|
||||
|
||||
// allow bets
|
||||
g_rouletteTableData[ rouletteid ] [ E_NO_MORE_BETS ] = false;
|
||||
|
||||
// fire the spin table
|
||||
g_rouletteTableData[ rouletteid ] [ E_SPINNING_TIMER ] = SetTimerEx( "OnSpinRouletteTable", 25, false, "ddd", rouletteid, 0, 1 );
|
||||
|
||||
// inform other players
|
||||
SendServerMessage( playerid, "You have begun the spin with a wager of %s. Good luck!", ConvertPrice( totalBet ) );
|
||||
}
|
||||
else SendServerMessage( playerid, "You have joined the spin. Good luck!" );
|
||||
}
|
||||
// decrease bet
|
||||
if ( PRESSED( KEY_WALK ) )
|
||||
{
|
||||
if ( ( p_rouletteBetValue[ playerid ] /= 2 ) < 1000 )
|
||||
p_rouletteBetValue[ playerid ] = 1000;
|
||||
|
||||
SendServerMessage( playerid, "You are now betting %s, gamble responsibly!", ConvertPrice( p_rouletteBetValue[ playerid ] ) );
|
||||
}
|
||||
|
||||
// increase bet
|
||||
if ( PRESSED( KEY_JUMP ) )
|
||||
{
|
||||
if ( ( p_rouletteBetValue[ playerid ] *= 2 ) > 100000 )
|
||||
p_rouletteBetValue[ playerid ] = 100000;
|
||||
|
||||
SendServerMessage( playerid, "You are now betting %s, gamble responsibly!", ConvertPrice( p_rouletteBetValue[ playerid ] ) );
|
||||
}
|
||||
|
||||
// Cancel Bets
|
||||
if ( PRESSED( KEY_CROUCH ) )
|
||||
{
|
||||
if ( p_rouletteBetLocked{ playerid } )
|
||||
return SendError( playerid, "You cannot cancel your bet once you have entered a spin." );
|
||||
|
||||
for ( new column = 0; column < sizeof( g_rouletteOffsets ); column ++ )
|
||||
{
|
||||
g_rouletteChipValue[ playerid ] [ column ] = 0;
|
||||
DestroyDynamicObject( g_rouletteChip[ playerid ] [ column ] ), g_rouletteChip[ playerid ] [ column ] = -1;
|
||||
DestroyDynamic3DTextLabel( g_rouletteChipLabel[ playerid ] [ column ] ), g_rouletteChipLabel[ playerid ] [ column ] = Text3D: INVALID_3DTEXT_ID;
|
||||
}
|
||||
}
|
||||
|
||||
// Place bet
|
||||
if ( PRESSED( KEY_FIRE ) || PRESSED( KEY_AIM ) )
|
||||
{
|
||||
if ( p_rouletteBetLocked{ playerid } )
|
||||
return SendError( playerid, "You cannot change your bet once you have entered a spin." );
|
||||
|
||||
new
|
||||
column = p_RouletteMarkerColumn{ playerid };
|
||||
|
||||
new Float: offsetX = g_rouletteTableData[ rouletteid ] [ E_X ] + g_rouletteOffsets[ column ] [ E_OFFSET ] * floatcos( g_rouletteTableData[ rouletteid ] [ E_ROTATION ] + g_rouletteOffsets[ column ] [ E_ANGLE ], degrees );
|
||||
new Float: offsetY = g_rouletteTableData[ rouletteid ] [ E_Y ] + g_rouletteOffsets[ column ] [ E_OFFSET ] * floatsin( g_rouletteTableData[ rouletteid ] [ E_ROTATION ] + g_rouletteOffsets[ column ] [ E_ANGLE ], degrees );
|
||||
|
||||
if ( PRESSED( KEY_FIRE ) )
|
||||
{
|
||||
new
|
||||
totalBet = GetPlayerTotalRouletteBet( playerid );
|
||||
|
||||
// Check if the player has even money
|
||||
if ( totalBet > GetPlayerCash( playerid ) ) {
|
||||
return SendError( playerid, "You cannot afford to wager any more money!" );
|
||||
}
|
||||
|
||||
// Exceeded The Maximum
|
||||
if ( totalBet + p_rouletteBetValue[ playerid ] > 100000 ) {
|
||||
return SendError( playerid, "You are only allowed to bet a total of $100,000 per spin on this table." );
|
||||
}
|
||||
|
||||
PlayerPlaySound( playerid, 1083, 0.0, 0.0, 5.0 );
|
||||
g_rouletteChipValue[ playerid ] [ column ] += p_rouletteBetValue[ playerid ];
|
||||
}
|
||||
else
|
||||
{
|
||||
PlayerPlaySound( playerid, 1084, 0.0, 0.0, 5.0 );
|
||||
g_rouletteChipValue[ playerid ] [ column ] -= p_rouletteBetValue[ playerid ];
|
||||
}
|
||||
|
||||
//printf("COLUMN : %d", column);
|
||||
if ( g_rouletteChipValue[ playerid ] [ column ] <= 0 )
|
||||
{
|
||||
DestroyDynamic3DTextLabel( g_rouletteChipLabel[ playerid ] [ column ] ), g_rouletteChipLabel[ playerid ] [ column ] = Text3D: -1;
|
||||
DestroyDynamicObject( g_rouletteChip[ playerid ] [ column ] ), g_rouletteChip[ playerid ] [ column ] = -1;
|
||||
g_rouletteChipValue[ playerid ] [ column ] = 0;
|
||||
//printf("removed");
|
||||
}
|
||||
else
|
||||
{
|
||||
// Calculate chip height
|
||||
new
|
||||
Float: height = 0.295 - float( g_rouletteChipValue[ playerid ] [ column ] / 1000 ) * 0.005;
|
||||
|
||||
if ( height < 0.18 )
|
||||
height = 0.18;
|
||||
|
||||
//printf("g_rouletteChip[%s][%d] = %d", ReturnPlayerName( playerid ), column, g_rouletteChip[ playerid ] [ column ] );
|
||||
if ( g_rouletteChip[ playerid ] [ column ] == -1 )
|
||||
{
|
||||
g_rouletteChip[ playerid ] [ column ] = CreateDynamicObject( 1902, offsetX, offsetY, g_rouletteTableData[ rouletteid ] [ E_Z ] - height, 0.00000, 0.00000, 0.0, .priority = 9999, .drawdistance = 10.0, .streamdistance = 12.0 ); // 2992
|
||||
SetDynamicObjectMaterial( g_rouletteChip[ playerid ] [ column ], 0, 1902, "chip_stack08", "chip_stck6", ( ( g_rouletteChipColor[ playerid ] >> 8 ) | 0x99000000 ) );
|
||||
g_rouletteChipLabel[ playerid ] [ column ] = CreateDynamic3DTextLabel( sprintf( "%s", ConvertPrice( g_rouletteChipValue[ playerid ] [ column ] ) ), g_rouletteChipColor[ playerid ], offsetX, offsetY, g_rouletteTableData[ rouletteid ] [ E_Z ] - 0.15 + ( float( playerid ) / 100 ), 5.0 ); //INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, playerid );
|
||||
//printf("(%s) CREATED CHIP %d:%d", ReturnPlayerName( playerid ), g_rouletteChip[ playerid ] [ column ], _: g_rouletteChipLabel[ playerid ] [ column ] );
|
||||
}
|
||||
else
|
||||
{
|
||||
SetDynamicObjectPos( g_rouletteChip[ playerid ] [ column ], offsetX, offsetY, g_rouletteTableData[ rouletteid ] [ E_Z ] - height );
|
||||
UpdateDynamic3DTextLabelText( g_rouletteChipLabel[ playerid ] [ column ], g_rouletteChipColor[ playerid ], sprintf( "%s", ConvertPrice( g_rouletteChipValue[ playerid ] [ column ] ) ) );
|
||||
//printf("(%s) UPDATED CHIP %d:%d", ReturnPlayerName( playerid ), g_rouletteChip[ playerid ] [ column ], _: g_rouletteChipLabel[ playerid ] [ column ] );
|
||||
}
|
||||
}
|
||||
|
||||
// sometimes it doesnt show up
|
||||
SyncObject( playerid, 0.005, 0.005, 0.005 );
|
||||
ApplyAnimation( playerid, "DEALER", "DEALER_IDLE", 4.1, 1, 1, 1, 1, 0, 1 );
|
||||
}
|
||||
}
|
||||
|
||||
if ( PRESSED( KEY_SECONDARY_ATTACK ) )
|
||||
{
|
||||
if ( p_rouletteBetLocked{ playerid } )
|
||||
return SendError( playerid, "Please wait until the spin is completed before leaving the table." );
|
||||
|
||||
if ( p_RouletteTable[ playerid ] != -1 )
|
||||
return RemovePlayerFromRoulette( playerid );
|
||||
|
||||
foreach(new id : roulettetables)
|
||||
{
|
||||
if ( IsPlayerInRangeOfPoint( playerid, 3.1, g_rouletteTableData[ id ] [ E_X ], g_rouletteTableData[ id ] [ E_Y ], g_rouletteTableData[ id ] [ E_Z ] ) ) {
|
||||
|
||||
static
|
||||
Float: lookatX, Float: lookatY, Float: lookatZ,
|
||||
Float: tmpX, Float: tmpY, Float: tmpZ
|
||||
;
|
||||
|
||||
GetPlayerCameraPos( playerid, X, Y, Z );
|
||||
GetPlayerCameraFrontVector( playerid, lookatX, lookatY, lookatZ );
|
||||
|
||||
tmpX = g_rouletteTableData[ id ] [ E_X ] + -1.8 * floatcos( g_rouletteTableData[ id ] [ E_ROTATION ] + 74.0, degrees );
|
||||
tmpY = g_rouletteTableData[ id ] [ E_Y ] + -1.8 * floatsin( g_rouletteTableData[ id ] [ E_ROTATION ] + 74.0, degrees );
|
||||
tmpZ = g_rouletteTableData[ id ] [ E_Z ] + 1.7;
|
||||
|
||||
InterpolateCameraPos( playerid, X, Y, Z, tmpX, tmpY, tmpZ, 1000, CAMERA_MOVE );
|
||||
|
||||
X += floatmul( lookatX, 20.0 );
|
||||
Y += floatmul( lookatY, 20.0 );
|
||||
Z += floatmul( lookatZ, 20.0 );
|
||||
|
||||
InterpolateCameraLookAt( playerid, X, Y, Z, g_rouletteTableData[ id ] [ E_X ], g_rouletteTableData[ id ] [ E_Y ], g_rouletteTableData[ id ] [ E_Z ] - 1.0, 1000, CAMERA_MOVE );
|
||||
|
||||
p_RouletteTable[ playerid ] = id;
|
||||
p_RouletteMarkerColumn{ playerid } = 0;
|
||||
|
||||
new Float: offsetX = g_rouletteOffsets[ 0 ] [ E_OFFSET ] * floatcos( Angle + g_rouletteOffsets[ 0 ] [ E_ANGLE ], degrees );
|
||||
new Float: offsetY = g_rouletteOffsets[ 0 ] [ E_OFFSET ] * floatsin( Angle + g_rouletteOffsets[ 0 ] [ E_ANGLE ], degrees );
|
||||
DestroyDynamicObject( p_RouletteMarker[ playerid ] );
|
||||
p_RouletteMarker[ playerid ] = CreateDynamicObject( 2992, X + offsetX, Y + offsetY, Z - 0.17, 0.00000, 0.00000, 0.0, -1, -1, playerid, .priority = 9999, .drawdistance = 10.0, .streamdistance = 12.0 );
|
||||
|
||||
// starting bet
|
||||
p_rouletteBetValue[ playerid ] = 1000;
|
||||
g_rouletteChipColor[ playerid ] = makeColor( RandomEx( 128, 255 ), RandomEx( 128, 255 ), RandomEx( 128, 255 ), 0xFF );
|
||||
SendServerMessage( playerid, "Your starting bet is $1,000 for this table. {%06x}This is your chip color.", g_rouletteChipColor[ playerid ] >>> 8 );
|
||||
|
||||
ApplyAnimation( playerid, "DEALER", "DEALER_IDLE", 4.1, 1, 1, 1, 1, 0, 1 );
|
||||
|
||||
szBigString = "~y~~k~~PED_SPRINT~~w~ - Spin Wheel~n~~y~~k~~PED_FIREWEAPON~/~k~~PED_LOCK_TARGET~~w~ - Place/Remove Bet~n~~y~~k~~PED_JUMPING~/~k~~SNEAK_ABOUT~~w~ - Increase/Decrease Bet~n~~y~~k~~PED_DUCK~~w~ - Cancel Bets~n~~y~~k~~VEHICLE_ENTER_EXIT~~w~ - Exit";
|
||||
ShowPlayerHelpDialog( playerid, 0, szBigString );
|
||||
|
||||
// printf("(%s) BEFORE TIMER %d", ReturnPlayerName( playerid ), p_RouletteMarkerTimer[ playerid ] );
|
||||
KillTimer( p_RouletteMarkerTimer[ playerid ] );
|
||||
p_RouletteMarkerTimer[ playerid ] = SetTimerEx( "OnRouletteMarkerUpdate", 100, true, "d", playerid );
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
hook InitializeTextDraws( )
|
||||
{
|
||||
for ( new handle = 0; handle < MAX_ROULETTE_TABLES; handle ++ )
|
||||
{
|
||||
g_rouletteNumberBG[ handle ] = TextDrawCreate(285.000000, 23.000000, "ld_roul:roulbla");
|
||||
TextDrawBackgroundColor(g_rouletteNumberBG[ handle ], 255);
|
||||
TextDrawFont(g_rouletteNumberBG[ handle ], 4);
|
||||
TextDrawLetterSize(g_rouletteNumberBG[ handle ], 0.500000, 1.000000);
|
||||
TextDrawColor(g_rouletteNumberBG[ handle ], -1);
|
||||
TextDrawSetOutline(g_rouletteNumberBG[ handle ], 0);
|
||||
TextDrawSetProportional(g_rouletteNumberBG[ handle ], 1);
|
||||
TextDrawSetShadow(g_rouletteNumberBG[ handle ], 1);
|
||||
TextDrawUseBox(g_rouletteNumberBG[ handle ], 1);
|
||||
TextDrawBoxColor(g_rouletteNumberBG[ handle ], 255);
|
||||
TextDrawTextSize(g_rouletteNumberBG[ handle ], 60.000000, 60.000000);
|
||||
|
||||
g_rouletteNumberTD[ handle ] = TextDrawCreate(314.000000, 25.000000, "35");
|
||||
TextDrawAlignment(g_rouletteNumberTD[ handle ], 2);
|
||||
TextDrawBackgroundColor(g_rouletteNumberTD[ handle ], 255);
|
||||
TextDrawFont(g_rouletteNumberTD[ handle ], 1);
|
||||
TextDrawLetterSize(g_rouletteNumberTD[ handle ], 0.800000, 4.000000);
|
||||
TextDrawColor(g_rouletteNumberTD[ handle ], -1);
|
||||
TextDrawSetOutline(g_rouletteNumberTD[ handle ], 0);
|
||||
TextDrawSetProportional(g_rouletteNumberTD[ handle ], 1);
|
||||
TextDrawSetShadow(g_rouletteNumberTD[ handle ], 1);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* ** Functions ** */
|
||||
stock CreateRouletteTable( Float: X, Float: Y, Float: Z, Float: Angle )
|
||||
{
|
||||
new
|
||||
id = Iter_Free(roulettetables);
|
||||
|
||||
if ( id != ITER_NONE )
|
||||
{
|
||||
g_rouletteTableData[ id ] [ E_X ] = X;
|
||||
g_rouletteTableData[ id ] [ E_Y ] = Y;
|
||||
g_rouletteTableData[ id ] [ E_Z ] = Z;
|
||||
g_rouletteTableData[ id ] [ E_ROTATION ] = Angle;
|
||||
|
||||
g_rouletteTableData[ id ] [ E_SPINNING_TIMER ] = -1;
|
||||
|
||||
g_rouletteTableData[ id ] [ E_OBJECT ] = CreateDynamicObject( 1978, X, Y, Z, 0.00000, 0.00000, Angle, .priority = 9999 );
|
||||
|
||||
X += 1.365 * floatcos( Angle + 98.0, degrees );
|
||||
Y += 1.365 * floatsin( Angle + 98.0, degrees );
|
||||
|
||||
CreateDynamic3DTextLabel( "Press ENTER To Play\n"COL_WHITE"$1,000 Minimum", COLOR_GREY, X, Y, Z + 0.02, 15.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, .testlos = 0 );
|
||||
|
||||
g_rouletteTableData[ id ] [ E_SPINNER_OBJECT ] = CreateDynamicObject( 1979, X, Y, Z - 0.02, 0.00000, 0.00000, 0.0, .priority = 9999 );
|
||||
Iter_Add( roulettetables, id );
|
||||
}
|
||||
else
|
||||
{
|
||||
static overflow;
|
||||
printf("[ROULETTE ERROR] Reached limit of %d blackjack tables, increase to %d to fix.", MAX_ROULETTE_TABLES, MAX_ROULETTE_TABLES + ( ++ overflow ) );
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
stock GenerateRandomRouletteNumber( rouletteid ) {
|
||||
|
||||
new
|
||||
iRandom = random( 37 );
|
||||
|
||||
if ( iRandom == 0 )
|
||||
TextDrawSetString( g_rouletteNumberBG[ rouletteid ], "ld_roul:roulgre" );
|
||||
|
||||
else if ( ! IsRedRouletteNumber( iRandom ) )
|
||||
TextDrawSetString( g_rouletteNumberBG[ rouletteid ], "ld_roul:roulbla" );
|
||||
|
||||
else
|
||||
TextDrawSetString( g_rouletteNumberBG[ rouletteid ], "ld_roul:roulred" );
|
||||
|
||||
TextDrawSetString( g_rouletteNumberTD[ rouletteid ], sprintf( "%d", iRandom ) );
|
||||
return iRandom;
|
||||
}
|
||||
|
||||
public OnSpinRouletteTable( rouletteid, elapsed, steps )
|
||||
{
|
||||
new
|
||||
Float: fElapsed = float( ( elapsed += 25 ) ),
|
||||
Float: rotation = -0.0001 * ( fElapsed * fElapsed ) + 0.8162 * fElapsed
|
||||
;
|
||||
|
||||
// update it every 50 ms
|
||||
if ( elapsed % 50 == 0 && elapsed != 4000 )
|
||||
GenerateRandomRouletteNumber( rouletteid );
|
||||
|
||||
SetDynamicObjectRot( g_rouletteTableData[ rouletteid ] [ E_SPINNER_OBJECT ], 0.0, 0.0, rotation );
|
||||
|
||||
if ( elapsed >= 3250 )
|
||||
g_rouletteTableData[ rouletteid ] [ E_NO_MORE_BETS ] = true;
|
||||
|
||||
if ( elapsed >= 4000 )
|
||||
{
|
||||
new
|
||||
iWinning = GenerateRandomRouletteNumber( rouletteid );
|
||||
|
||||
// Kill the timer just incase
|
||||
KillTimer( g_rouletteTableData[ rouletteid ] [ E_SPINNING_TIMER ] );
|
||||
g_rouletteTableData[ rouletteid ] [ E_SPINNING_TIMER ] = -1;
|
||||
g_rouletteTableData[ rouletteid ] [ E_NO_MORE_BETS ] = false;
|
||||
|
||||
// Call a win
|
||||
CallLocalFunction( "OnRouletteWheelStop", "dd", rouletteid, iWinning );
|
||||
return 1;
|
||||
}
|
||||
|
||||
return ( g_rouletteTableData[ rouletteid ] [ E_SPINNING_TIMER ] = SetTimerEx( "OnSpinRouletteTable", 25, false, "ddd", rouletteid, elapsed, steps ) );
|
||||
}
|
||||
|
||||
stock GetPlayerTotalRouletteBet( playerid ) {
|
||||
new
|
||||
bet = 0;
|
||||
|
||||
for ( new chipid = 0; chipid < sizeof( g_rouletteChipValue[ ] ); chipid ++ ) if ( g_rouletteChipValue[ playerid ] [ chipid ] >= 100 ) {
|
||||
bet += g_rouletteChipValue[ playerid ] [ chipid ];
|
||||
}
|
||||
return bet;
|
||||
}
|
||||
|
||||
public OnRouletteWheelStop( rouletteid, winner )
|
||||
{
|
||||
new
|
||||
globalWaged = 0, globalWon = 0;
|
||||
|
||||
// printf ( "OnRouletteWheelStop( %d, %d )", rouletteid, winner );
|
||||
foreach(new playerid : Player) if ( p_RouletteTable[ playerid ] == rouletteid && p_rouletteBetLocked{ playerid } )
|
||||
{
|
||||
new
|
||||
waged = 0, won = 0;
|
||||
|
||||
for( new chipid = 0; chipid < sizeof( g_rouletteOffsets ); chipid ++ ) if ( g_rouletteChipValue[ playerid ] [ chipid ] > 0 )
|
||||
{
|
||||
// store chip value here
|
||||
new
|
||||
beforeWin = won,
|
||||
winValue = g_rouletteChipValue[ playerid ] [ chipid ];
|
||||
|
||||
// increment the amount waged
|
||||
waged += g_rouletteChipValue[ playerid ] [ chipid ];
|
||||
|
||||
// calculate wins
|
||||
switch ( g_rouletteOffsets[ chipid ] [ E_VALUE ] )
|
||||
{
|
||||
// 1st 3to1
|
||||
case 3211: {
|
||||
if ( winner == 1 || winner == 4 || winner == 7 || winner == 10 || winner == 13 || winner == 16 || winner == 19 || winner == 22 || winner == 25 || winner == 28 || winner == 31 || winner == 34 )
|
||||
won += winValue * 3;
|
||||
}
|
||||
|
||||
// 2nd 3to1
|
||||
case 3212: {
|
||||
if ( winner == 2 || winner == 5 || winner == 8 || winner == 11 || winner == 14 || winner == 17 || winner == 20 || winner == 23 || winner == 26 || winner == 29 || winner == 32 || winner == 35 )
|
||||
won += winValue * 3;
|
||||
}
|
||||
|
||||
// 2nd 3to1
|
||||
case 3213: {
|
||||
if ( winner == 3 || winner == 6 || winner == 9 || winner == 12 || winner == 15 || winner == 18 || winner == 21 || winner == 24 || winner == 27 || winner == 30 || winner == 33 || winner == 36 )
|
||||
won += winValue * 3;
|
||||
}
|
||||
|
||||
// 1st 18
|
||||
case 118: {
|
||||
if ( 1 <= winner <= 18 )
|
||||
won += winValue * 2;
|
||||
}
|
||||
|
||||
// even
|
||||
case 222: {
|
||||
if ( winner % 2 == 0 )
|
||||
won += winValue * 2;
|
||||
}
|
||||
|
||||
// 1st to 12
|
||||
case 112: {
|
||||
if ( 1 <= winner <= 12 )
|
||||
won += winValue * 3;
|
||||
}
|
||||
|
||||
// black
|
||||
case 44: {
|
||||
if ( ! IsRedRouletteNumber( winner ) && winner != 0 )
|
||||
won += winValue * 2;
|
||||
}
|
||||
|
||||
// red
|
||||
case 88: {
|
||||
if ( IsRedRouletteNumber( winner ) )
|
||||
won += winValue * 2;
|
||||
}
|
||||
|
||||
// 2nd 12
|
||||
case 212: {
|
||||
if ( 13 <= winner <= 24 )
|
||||
won += winValue * 3;
|
||||
}
|
||||
|
||||
// odd
|
||||
case 333: {
|
||||
if ( winner % 2 == 1 && winner != 0 )
|
||||
won += winValue * 2;
|
||||
}
|
||||
|
||||
// 19-36
|
||||
case 1936: {
|
||||
if ( 19 <= winner <= 36 )
|
||||
won += winValue * 2;
|
||||
}
|
||||
|
||||
// 3rd 12
|
||||
case 312: {
|
||||
if ( 25 <= winner <= 36 )
|
||||
won += winValue * 3;
|
||||
}
|
||||
|
||||
// check if its a single
|
||||
default:
|
||||
{
|
||||
if ( winner == g_rouletteOffsets[ chipid ] [ E_VALUE ] )
|
||||
won += winValue * 36;
|
||||
}
|
||||
}
|
||||
|
||||
if ( beforeWin >= won ) {
|
||||
g_rouletteChipValue[ playerid ] [ chipid ] = 0;
|
||||
DestroyDynamicObject( g_rouletteChip[ playerid ] [ chipid ] ), g_rouletteChip[ playerid ] [ chipid ] = -1;
|
||||
DestroyDynamic3DTextLabel( g_rouletteChipLabel[ playerid ] [ chipid ] ), g_rouletteChipLabel[ playerid ] [ chipid ] = Text3D: -1;
|
||||
}
|
||||
|
||||
// track
|
||||
globalWaged += waged;
|
||||
globalWon += won;
|
||||
}
|
||||
|
||||
// bet unlocked and paid
|
||||
GivePlayerCash( playerid, won );
|
||||
p_rouletteBetLocked{ playerid } = false;
|
||||
|
||||
new
|
||||
profit = won - waged;
|
||||
|
||||
// inform users
|
||||
if ( profit >= 10000 ) {
|
||||
SendGlobalMessage( -1, ""COL_GREY"[CASINO]{FFFFFF} %s(%d) has won "COL_GOLD"%s"COL_WHITE" from roulette!", ReturnPlayerName( playerid ), playerid, ConvertPrice( profit ) );
|
||||
}
|
||||
|
||||
// gametext
|
||||
if ( profit > 0 ) {
|
||||
GameTextForPlayer( playerid, sprintf( "~n~~n~~g~%s won!", ConvertPrice( profit ) ), 4000, 3 );
|
||||
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
|
||||
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 );
|
||||
}
|
||||
}
|
||||
|
||||
// log wins/losses
|
||||
UpdateServerVariable( "roulette_bets", 0, GetGVarFloat( "roulette_bets" ) + ( float( globalWaged ) / 1000000.0 ), "", GLOBAL_VARTYPE_FLOAT );
|
||||
UpdateServerVariable( "roulette_wins", 0, GetGVarFloat( "roulette_wins" ) + ( float( globalWon ) / 1000000.0 ), "", GLOBAL_VARTYPE_FLOAT );
|
||||
return 1;
|
||||
}
|
||||
|
||||
public OnRouletteMarkerUpdate( playerid )
|
||||
{
|
||||
new
|
||||
rouletteid = p_RouletteTable[ playerid ], column = p_RouletteMarkerColumn{ playerid };
|
||||
|
||||
if ( rouletteid == -1 || ! Iter_Contains( roulettetables, rouletteid ) )
|
||||
return RemovePlayerFromRoulette( playerid );
|
||||
|
||||
if ( IsValidDynamicObject( p_RouletteMarker[ playerid ] ) )
|
||||
{
|
||||
new ud, lr;
|
||||
GetPlayerKeys( playerid, ud, ud, lr );
|
||||
|
||||
if ( ud == KEY_UP )
|
||||
{
|
||||
// up on 0
|
||||
if ( column == 0 )
|
||||
column = 38;
|
||||
|
||||
// up on 1,2,3
|
||||
else if ( 1 <= column <= 3 )
|
||||
column = 0;
|
||||
|
||||
// up 1st 12
|
||||
else if ( column == 42 )
|
||||
column = 48;
|
||||
|
||||
// up 3rd 12
|
||||
else if ( column == 48 )
|
||||
column = 45;
|
||||
|
||||
// up 2nd 12
|
||||
else if ( column == 45 )
|
||||
column = 42;
|
||||
|
||||
// up 1-to-18
|
||||
else if ( column == 40 )
|
||||
column = 47;
|
||||
|
||||
else if ( column == 41 || column == 44 || column == 47 )
|
||||
column --;
|
||||
|
||||
else if ( column == 43 || column == 46 )
|
||||
column -= 2;
|
||||
|
||||
else
|
||||
column -= 3;
|
||||
}
|
||||
else if ( ud == KEY_DOWN )
|
||||
{
|
||||
// pressed down on 3to1s
|
||||
if ( 36 < column < 40 )
|
||||
column = 0;
|
||||
|
||||
// down on 1st 12
|
||||
else if ( column == 42 )
|
||||
column = 45;
|
||||
|
||||
// down on 2nd 12
|
||||
else if ( column == 45 )
|
||||
column = 48;
|
||||
|
||||
// down 19-to-36
|
||||
else if ( column == 47 )
|
||||
column = 40;
|
||||
|
||||
// down on 3rd 12
|
||||
else if ( column == 48 )
|
||||
column = 42;
|
||||
|
||||
// if pressed down on zero, go to previous
|
||||
else if ( column == 0 )
|
||||
column = 2;
|
||||
|
||||
else if ( column == 40 || column == 43 || column == 46 )
|
||||
column ++;
|
||||
|
||||
else if ( column == 41 || column == 44 )
|
||||
column += 2;
|
||||
|
||||
else
|
||||
column += 3;
|
||||
}
|
||||
else if ( lr == KEY_LEFT )
|
||||
{
|
||||
// right on 0
|
||||
if ( column == 0 )
|
||||
column = 0;
|
||||
|
||||
else if ( column == 1 || column == 4 || column == 7 || column == 10 )
|
||||
column = 42;
|
||||
|
||||
else if ( column == 13 || column == 16 || column == 19 || column == 22 )
|
||||
column = 45;
|
||||
|
||||
else if ( column == 25 || column == 28 || column == 31 || column == 34 )
|
||||
column = 48;
|
||||
|
||||
// left 1 to 18
|
||||
else if ( column == 40 )
|
||||
column = 0;
|
||||
|
||||
else
|
||||
column --;
|
||||
|
||||
}
|
||||
else if ( lr == KEY_RIGHT )
|
||||
{
|
||||
// left on 0
|
||||
if ( column == 0 )
|
||||
column = 0;
|
||||
|
||||
// right 39
|
||||
if ( column == 39 )
|
||||
column = 0;
|
||||
|
||||
// right red black
|
||||
else if ( 43 <= column <= 44 )
|
||||
column = 45;
|
||||
|
||||
// right 1-18,even
|
||||
else if ( 40 <= column <= 41 )
|
||||
column = 42;
|
||||
|
||||
// right odd,19-36
|
||||
else if ( 46 <= column <= 47 )
|
||||
column = 48;
|
||||
|
||||
// right on 3rd 12
|
||||
else if ( column == 48 )
|
||||
column = 25;
|
||||
|
||||
// right on 2nd 12
|
||||
else if ( column == 45 )
|
||||
column = 13;
|
||||
|
||||
// right on 1st 12
|
||||
else if ( column == 42 )
|
||||
column = 1;
|
||||
|
||||
else
|
||||
column ++;
|
||||
}
|
||||
|
||||
// update object pos
|
||||
new Float: offsetX = g_rouletteTableData[ rouletteid ] [ E_X ] + g_rouletteOffsets[ column ] [ E_OFFSET ] * floatcos( g_rouletteTableData[ rouletteid ] [ E_ROTATION ] + g_rouletteOffsets[ column ] [ E_ANGLE ], degrees );
|
||||
new Float: offsetY = g_rouletteTableData[ rouletteid ] [ E_Y ] + g_rouletteOffsets[ column ] [ E_OFFSET ] * floatsin( g_rouletteTableData[ rouletteid ] [ E_ROTATION ] + g_rouletteOffsets[ column ] [ E_ANGLE ], degrees );
|
||||
SetDynamicObjectPos( p_RouletteMarker[ playerid ], offsetX, offsetY, g_rouletteTableData[ rouletteid ] [ E_Z ] - 0.17 );
|
||||
|
||||
// update player column
|
||||
p_RouletteMarkerColumn{ playerid } = column;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
stock RemovePlayerFromRoulette( playerid )
|
||||
{
|
||||
if ( ! ( 0 <= playerid < MAX_PLAYERS ) )
|
||||
return 0;
|
||||
|
||||
// remove chips
|
||||
for ( new i = 0; i < sizeof( g_rouletteOffsets ); i ++ ) {
|
||||
DestroyDynamicObject( g_rouletteChip[ playerid ] [ i ] ), g_rouletteChip[ playerid ] [ i ] = -1;
|
||||
DestroyDynamic3DTextLabel( g_rouletteChipLabel[ playerid ] [ i ] ), g_rouletteChipLabel[ playerid ] [ i ] = Text3D: INVALID_3DTEXT_ID;
|
||||
g_rouletteChipValue[ playerid ] [ i ] = 0;
|
||||
}
|
||||
|
||||
// hide textdraws
|
||||
if ( p_RouletteTable[ playerid ] != -1 ) {
|
||||
TextDrawHideForPlayer( playerid, g_rouletteNumberBG[ p_RouletteTable[ playerid ] ] );
|
||||
TextDrawHideForPlayer( playerid, g_rouletteNumberTD[ p_RouletteTable[ playerid ] ] );
|
||||
}
|
||||
|
||||
// reset user variables
|
||||
HidePlayerHelpDialog( playerid );
|
||||
p_RouletteTable[ playerid ] = -1;
|
||||
p_RouletteMarkerColumn{ playerid } = 0;
|
||||
p_rouletteBetLocked{ playerid } = false;
|
||||
|
||||
// close timers
|
||||
KillTimer( p_RouletteMarkerTimer[ playerid ] ), p_RouletteMarkerTimer[ playerid ] = -1;
|
||||
DestroyDynamicObject( p_RouletteMarker[ playerid ] ), p_RouletteMarker[ playerid ] = -1;
|
||||
|
||||
// clear animations if spawned
|
||||
if ( IsPlayerSpawned( playerid ) ) {
|
||||
SetCameraBehindPlayer( playerid );
|
||||
ClearAnimations( playerid );
|
||||
}
|
||||
return 1;
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -22,6 +22,7 @@
|
||||
#define erase(%0) (%0[0]='\0')
|
||||
#define positionToString(%0) (%0==1?("st"):(%0==2?("nd"):(%0==3?("rd"):("th"))))
|
||||
#define SetPlayerPosEx(%0,%1,%2,%3,%4) SetPlayerPos(%0,%1,%2,%3),SetPlayerInterior(%0,%4)
|
||||
#define mysql_single_query(%0) mysql_function_query(dbHandle,(%0),true,"","")
|
||||
|
||||
// Defines
|
||||
#define KEY_AIM (128)
|
||||
|
@ -14,6 +14,7 @@
|
||||
#include < irresistible\colours >
|
||||
#include < irresistible\attachments >
|
||||
#include < irresistible\lookup >
|
||||
#include < irresistible\servervars >
|
||||
// #include <irresistible\analytics >
|
||||
|
||||
// gta related variables
|
||||
@ -21,21 +22,26 @@
|
||||
#include < irresistible\gta\vehicles >
|
||||
#include < irresistible\gta\weapon_data >
|
||||
|
||||
// cnr configuration
|
||||
#include < irresistible\cnr\vip >
|
||||
#include < irresistible\cnr\dialog_ids >
|
||||
|
||||
// features
|
||||
#include < irresistible\features\fps >
|
||||
#include < irresistible\features\radio >
|
||||
|
||||
// visage casino
|
||||
#include < irresistible\features\visage\roulette >
|
||||
#include < irresistible\features\visage\blackjack >
|
||||
#include < irresistible\features\visage\poker >
|
||||
// #include < irresistible\features\visage\fireworks >
|
||||
#include < irresistible\features\visage\apartments >
|
||||
// #include < irresistible\features\visage\apartments >
|
||||
#include < irresistible\features\visage\static_casino >
|
||||
|
||||
// static
|
||||
#include < irresistible\static_cnr\actors >
|
||||
#include < irresistible\static_cnr\server_vehicles >
|
||||
#include < irresistible\static_cnr\removed_buildings >
|
||||
#include < irresistible\static_cnr\removed_furniture >
|
||||
#include < irresistible\static_cnr\server_objects >
|
||||
#include < irresistible\static_cnr\player_objects >
|
||||
// static cnr features
|
||||
#include < irresistible\cnr\static\actors >
|
||||
#include < irresistible\cnr\static\server_vehicles >
|
||||
#include < irresistible\cnr\static\removed_buildings >
|
||||
#include < irresistible\cnr\static\removed_furniture >
|
||||
#include < irresistible\cnr\static\server_objects >
|
||||
#include < irresistible\cnr\static\player_objects >
|
||||
|
@ -5,17 +5,30 @@
|
||||
* Purpose: security related functions for ig servers
|
||||
*/
|
||||
|
||||
/* ** Includes ** */
|
||||
#include < YSI\y_hooks >
|
||||
|
||||
/* ** Macros ** */
|
||||
#define GetServerName(%0) g_igServerNames[%0]
|
||||
#define GetServerName(%0) g_igServerNames[%0]
|
||||
#define ReturnPlayerIP(%0) (p_PlayerIP[(%0)])
|
||||
#define ReturnPlayerName(%0) (p_PlayerName[(%0)])
|
||||
|
||||
/* ** Constants ** */
|
||||
stock const
|
||||
g_igServerNames [ ] [ 28 ] = { "San Fierro Cops And Robbers" };
|
||||
|
||||
/* ** Variables ** */
|
||||
new
|
||||
g_igServerNames[ 2 ] [ 28 ] = { "San Fierro Cops And Robbers", "Call Of Duty For SA-MP" },
|
||||
p_RconLoginFails[ MAX_PLAYERS char ]
|
||||
p_PlayerName [ MAX_PLAYERS ] [ MAX_PLAYER_NAME ],
|
||||
p_PlayerIP [ MAX_PLAYERS ] [ 16 ],
|
||||
p_RconLoginFails [ MAX_PLAYERS char ]
|
||||
;
|
||||
|
||||
/* ** Callbacks ** */
|
||||
public OnRconLoginAttempt(ip[], password[], success)
|
||||
/* ** Forwards ** */
|
||||
forward OnNpcConnect( npcid );
|
||||
|
||||
/* ** Hooks ** */
|
||||
hook OnRconLoginAttempt( ip[ ], password[ ], success )
|
||||
{
|
||||
new
|
||||
playerid = INVALID_PLAYER_ID,
|
||||
@ -67,6 +80,31 @@ public OnRconLoginAttempt(ip[], password[], success)
|
||||
return 1;
|
||||
}
|
||||
|
||||
hook OnPlayerConnect( playerid )
|
||||
{
|
||||
static
|
||||
szName[ MAX_PLAYER_NAME ], szIP[ 16 ];
|
||||
|
||||
GetPlayerIp( playerid, szIP, sizeof( szIP ) );
|
||||
GetPlayerName( playerid, szName, sizeof( szName ) );
|
||||
|
||||
if ( IsPlayerNPC( playerid ) ) {
|
||||
CallLocalFunction( "OnNpcConnect", "d", playerid );
|
||||
return Y_HOOKS_BREAK_RETURN_1;
|
||||
}
|
||||
|
||||
strcpy( p_PlayerIP[ playerid ], szIP );
|
||||
strcpy( p_PlayerName[ playerid ], szName );
|
||||
|
||||
if ( ! ( 0 <= playerid < MAX_PLAYERS ) )
|
||||
return Kick( playerid ), 1;
|
||||
|
||||
if ( strlen( ReturnPlayerName( playerid ) ) <= 2 )
|
||||
return Kick( playerid ), 1;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
#if defined DEBUG_MODE
|
||||
// aims to clear the banned from the server bug
|
||||
public OnIncomingConnection( playerid, ip_address[ ], port ) {
|
||||
@ -74,6 +112,24 @@ public OnRconLoginAttempt(ip[], password[], success)
|
||||
}
|
||||
#endif
|
||||
|
||||
/* ** Hooked Functions ** */
|
||||
Security_SetPlayerName( playerid, const name[ ] )
|
||||
{
|
||||
if ( 0 <= playerid < MAX_PLAYERS ) {
|
||||
format ( p_PlayerName[ playerid ], sizeof ( p_PlayerName[ ] ), "%s", name );
|
||||
}
|
||||
print ("Hooked SetPlayerName");
|
||||
return SetPlayerName( playerid, name );
|
||||
}
|
||||
|
||||
#if defined _ALS_SetPlayerName
|
||||
#undef SetPlayerName
|
||||
#else
|
||||
#define _ALS_SetPlayerName
|
||||
#endif
|
||||
|
||||
#define SetPlayerName Security_SetPlayerName
|
||||
|
||||
/* ** Functions ** */
|
||||
stock RangeBanPlayer( playerid )
|
||||
{
|
||||
|
84
pawno/include/irresistible/servervars.inc
Normal file
84
pawno/include/irresistible/servervars.inc
Normal file
@ -0,0 +1,84 @@
|
||||
/*
|
||||
* Irresistible Gaming (c) 2018
|
||||
* Developed by Lorenc Pekaj
|
||||
* Module: servervars.inc
|
||||
* Purpose: savable server variables
|
||||
*/
|
||||
|
||||
#if !defined __irresistible_servervars
|
||||
#define __irresistible_servervars
|
||||
#endif
|
||||
|
||||
/* ** Includes ** */
|
||||
#include < YSI\y_hooks >
|
||||
|
||||
/* ** Hooks ** */
|
||||
hook OnGameModeInit( )
|
||||
{
|
||||
mysql_function_query( dbHandle, "SELECT * FROM `SERVER`", true, "OnLoadServerVariables", "" );
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* ** Functions ** */
|
||||
thread OnLoadServerVariables( )
|
||||
{
|
||||
new
|
||||
rows, fields, i = -1,
|
||||
Field[ 30 ],
|
||||
szName[ 64 ],
|
||||
iValue,
|
||||
Float: fValue,
|
||||
iType
|
||||
;
|
||||
|
||||
cache_get_data( rows, fields );
|
||||
if ( rows )
|
||||
{
|
||||
while( ++i < rows )
|
||||
{
|
||||
cache_get_field_content( i, "NAME", szName );
|
||||
cache_get_field_content( i, "STRING_VAL", szBigString );
|
||||
cache_get_field_content( i, "INT_VAL", Field ), iValue = strval( Field );
|
||||
cache_get_field_content( i, "FLOAT_VAL", Field ), fValue = floatstr( Field );
|
||||
cache_get_field_content( i, "TYPE", Field ), iType = strval( Field );
|
||||
|
||||
switch( iType )
|
||||
{
|
||||
case GLOBAL_VARTYPE_INT: SetGVarInt( szName, iValue );
|
||||
case GLOBAL_VARTYPE_STRING: SetGVarString( szName, szBigString );
|
||||
case GLOBAL_VARTYPE_FLOAT: SetGVarFloat( szName, fValue );
|
||||
}
|
||||
}
|
||||
}
|
||||
printf( "[SERVER] %d server variables have been loaded.", rows );
|
||||
return 1;
|
||||
}
|
||||
|
||||
stock UpdateServerVariable( szName[ 64 ], intVal, Float: floatVal, stringVal[ 128 ], type )
|
||||
{
|
||||
static
|
||||
szString[ 256 ];
|
||||
|
||||
switch( type )
|
||||
{
|
||||
case GLOBAL_VARTYPE_INT: format( szString, 128, "UPDATE `SERVER` SET `INT_VAL`=%d WHERE `NAME`='%s'", intVal, mysql_escape( szName ) ), SetGVarInt( szName, intVal );
|
||||
case GLOBAL_VARTYPE_STRING: format( szString, 256, "UPDATE `SERVER` SET `STRING_VAL`='%s' WHERE `NAME`='%s'", mysql_escape( stringVal ), mysql_escape( szName ) ), SetGVarString( szName, stringVal );
|
||||
case GLOBAL_VARTYPE_FLOAT: format( szString, 128, "UPDATE `SERVER` SET `FLOAT_VAL`=%f WHERE `NAME`='%s'", floatVal, mysql_escape( szName ) ), SetGVarFloat( szName, floatVal );
|
||||
default: return;
|
||||
}
|
||||
|
||||
mysql_single_query( szString );
|
||||
}
|
||||
|
||||
stock AddServerVariable( szName[ 64 ], szValue[ 128 ], type )
|
||||
{
|
||||
switch( type )
|
||||
{
|
||||
case GLOBAL_VARTYPE_INT: format( szLargeString, 164, "INSERT IGNORE INTO `SERVER`(`NAME`,`INT_VAL`,`TYPE`) VALUES ('%s',%d,%d)", mysql_escape( szName ), strval( szValue ), type );
|
||||
case GLOBAL_VARTYPE_STRING: format( szLargeString, 296, "INSERT IGNORE INTO `SERVER`(`NAME`,`STRING_VAL`,`TYPE`) VALUES ('%s','%s',%d)", mysql_escape( szName ), mysql_escape( szValue ), type );
|
||||
case GLOBAL_VARTYPE_FLOAT: format( szLargeString, 164, "INSERT IGNORE INTO `SERVER`(`NAME`,`FLOAT_VAL`,`TYPE`) VALUES ('%s',%f,%d)", mysql_escape( szName ), floatstr( szValue ), type );
|
||||
default: return;
|
||||
}
|
||||
|
||||
mysql_single_query( szLargeString );
|
||||
}
|
Loading…
Reference in New Issue
Block a user