Borsuk93

Untitled

Apr 13th, 2018
261
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 12.94 KB | None | 0 0
  1.  
  2. #include <a_samp>
  3. #include <zcmd>
  4. #include <mysql>
  5. #include <sscanf2>
  6. #include <a_actor>
  7. #include <streamer>
  8.  
  9. #if defined FILTERSCRIPT
  10.  
  11. public OnFilterScriptInit()
  12. {
  13.     print("\n--------------------------------------");
  14.     print(" Casino Games v0.1");
  15.     print("--------------------------------------\n");
  16.     return 1;
  17. }
  18.  
  19. public OnFilterScriptExit()
  20. {
  21.     return 1;
  22. }
  23.  
  24. #else
  25.  
  26. main()
  27. {
  28.     print("\n----------------------------------");
  29.     print(" Casino Games v0.1");
  30.     print("----------------------------------\n");
  31. }
  32.  
  33. #endif
  34.  
  35. public OnGameModeExit()
  36. {
  37.     return 1;
  38. }
  39.  
  40. new MainPlayerTable[MAX_PLAYERS];
  41.  
  42.  
  43. // Limity
  44. #define MAX_ANIMATIONS          100
  45.  
  46. // Typy botów
  47. #define ACTOR_NONE      0
  48. #define ACTOR_CASINO    1           // krupier
  49. #define ACTOR_NIGHTCLUB 2           // tancerka go go
  50. #define ACTOR_SHOP      3           // sprzedawca
  51.  
  52. // Kolory
  53. #define COLOR_GREY          0xAFAFAFAA
  54. #define COLOR_WHITE         0xFFFFFFFF
  55. #define COLOR_DO            0x9A9CCDFF
  56. #define COLOR_ADMIN         0xEEE8AAFF
  57.  
  58. // Dialogi
  59. #define D_INFO              1
  60.  
  61.  
  62. enum sPlayer
  63. {
  64.     bool: pCasinoGaming,
  65.     bool: pBotChat,
  66.  
  67.     bool: pRob,
  68.     pRobTime
  69. }
  70. new PlayerCache[MAX_PLAYERS][sPlayer];
  71.  
  72. enum sActor
  73.  
  74. {
  75.     aUID,
  76.     aName[24],
  77.     aDesc[128],
  78.     Text3D:aNameTag,
  79.     Text3D:aDescTag,
  80.     aSkin,
  81.     aType,
  82.     Float:aPosX,
  83.     Float:aPosY,
  84.     Float:aPosZ,
  85.     Float:aPosA,
  86.     aVW,
  87.     aInt,
  88.     aAnim,
  89.     aNickColor
  90. }
  91. new ActorCache[MAX_ACTORS][sActor];
  92.  
  93. enum sAnimData
  94. {
  95.     aUID,
  96.    
  97.     aCommand[32],
  98.     aLib[32],
  99.     aName[32],
  100.    
  101.     Float:aSpeed,
  102.    
  103.     aOpt1,
  104.     aOpt2,
  105.     aOpt3,
  106.     aOpt4,
  107.     aOpt5,
  108.    
  109.     aAction
  110. }
  111. new AnimInfo[MAX_ANIMATIONS][sAnimData];
  112.  
  113.  
  114. public OnPlayerConnect(playerid)
  115. {
  116.     return 1;
  117. }
  118.  
  119. public OnPlayerDisconnect(playerid, reason)
  120. {
  121.     return 1;
  122. }
  123.  
  124. public OnPlayerSpawn(playerid)
  125. {
  126.     return 1;
  127. }
  128.  
  129. public OnPlayerDeath(playerid, killerid, reason)
  130. {
  131.     return 1;
  132. }
  133.  
  134. public OnVehicleSpawn(vehicleid)
  135. {
  136.     return 1;
  137. }
  138.  
  139. public OnVehicleDeath(vehicleid, killerid)
  140. {
  141.     return 1;
  142. }
  143.  
  144. public OnPlayerText(playerid, text[])
  145. {
  146.     return 1;
  147. }
  148.  
  149. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  150. {
  151.     return 1;
  152. }
  153.  
  154. public OnPlayerExitVehicle(playerid, vehicleid)
  155. {
  156.     return 1;
  157. }
  158.  
  159. public OnPlayerStateChange(playerid, newstate, oldstate)
  160. {
  161.     return 1;
  162. }
  163.  
  164. public OnPlayerEnterCheckpoint(playerid)
  165. {
  166.     return 1;
  167. }
  168.  
  169. public OnPlayerLeaveCheckpoint(playerid)
  170. {
  171.     return 1;
  172. }
  173.  
  174. public OnPlayerEnterRaceCheckpoint(playerid)
  175. {
  176.     return 1;
  177. }
  178.  
  179. public OnPlayerLeaveRaceCheckpoint(playerid)
  180. {
  181.     return 1;
  182. }
  183.  
  184. public OnRconCommand(cmd[])
  185. {
  186.     return 1;
  187. }
  188.  
  189. public OnPlayerRequestSpawn(playerid)
  190. {
  191.     return 1;
  192. }
  193.  
  194. public OnObjectMoved(objectid)
  195. {
  196.     return 1;
  197. }
  198.  
  199. public OnPlayerObjectMoved(playerid, objectid)
  200. {
  201.     return 1;
  202. }
  203.  
  204. public OnPlayerPickUpPickup(playerid, pickupid)
  205. {
  206.     return 1;
  207. }
  208.  
  209. public OnVehicleMod(playerid, vehicleid, componentid)
  210. {
  211.     return 1;
  212. }
  213.  
  214. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  215. {
  216.     return 1;
  217. }
  218.  
  219. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  220. {
  221.     return 1;
  222. }
  223.  
  224. public OnPlayerSelectedMenuRow(playerid, row)
  225. {
  226.     return 1;
  227. }
  228.  
  229. public OnPlayerExitedMenu(playerid)
  230. {
  231.     return 1;
  232. }
  233.  
  234. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  235. {
  236.     return 1;
  237. }
  238.  
  239. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  240. {
  241.     new actorid = GetPlayerTargetActor(playerid), string[128];  
  242.     if(actorid != INVALID_ACTOR_ID)
  243.     {
  244.         if(newkeys & KEY_SPRINT && (oldkeys == KEY_HANDBRAKE))
  245.         {
  246.             if(ActorCache[actorid][aType] == ACTOR_CASINO)
  247.             {
  248.                 SendClientMessage(playerid, COLOR_GREY, "Użycie: /kasyno [low/high] [stawka]");
  249.                 PlayerCache[playerid][pCasinoGaming] = true;
  250.                 MainPlayerTable[playerid] = actorid;
  251.                 return 1;              
  252.             }
  253.             else if(ActorCache[actorid][aType] == ACTOR_NIGHTCLUB)
  254.             {
  255.                 format(string, sizeof(string), "%s mówi: No hej, zatańczyć dla Ciebie?", ActorCache[actorid][aName]);
  256.                 SendClientMessage(playerid, COLOR_WHITE, string);
  257.                 MainPlayerTable[playerid] = actorid;
  258.                 PlayerCache[playerid][pBotChat] = true;
  259.                 return 1;
  260.             }
  261.         }
  262.         else
  263.         {
  264.             return 1;
  265.         }
  266.     }
  267.     return 1;
  268. }
  269.  
  270. public OnRconLoginAttempt(ip[], password[], success)
  271. {
  272.     return 1;
  273. }
  274.  
  275. public OnPlayerUpdate(playerid)
  276. {
  277.     return 1;
  278. }
  279.  
  280. public OnPlayerStreamIn(playerid, forplayerid)
  281. {
  282.     return 1;
  283. }
  284.  
  285. public OnPlayerStreamOut(playerid, forplayerid)
  286. {
  287.     return 1;
  288. }
  289.  
  290. public OnVehicleStreamIn(vehicleid, forplayerid)
  291. {
  292.     return 1;
  293. }
  294.  
  295. public OnVehicleStreamOut(vehicleid, forplayerid)
  296. {
  297.     return 1;
  298. }
  299.  
  300. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  301. {
  302.     if(dialogid == D_INFO)
  303.     {
  304.         return 1;
  305.     }
  306.     return 1;
  307. }
  308.  
  309. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  310. {
  311.     return 1;
  312. }
  313.  
  314.  
  315.  
  316. stock UnloadBot(gameid)
  317. {  
  318.     ActorCache[gameid][aUID] = 0;
  319.     ActorCache[gameid][aSkin] =0;
  320.     ActorCache[gameid][aType] =0;
  321.     ActorCache[gameid][aPosX] = 0;
  322.     ActorCache[gameid][aPosY] = 0;
  323.     ActorCache[gameid][aPosZ] = 0;
  324.     ActorCache[gameid][aPosA] = 0;
  325.     ActorCache[gameid][aVW] = 0;
  326.     ActorCache[gameid][aInt] = 0;
  327.     ActorCache[gameid][aAnim] = 0;
  328.     ActorCache[gameid][aNickColor] = 0;
  329.     ActorCache[gameid][aName] = 0;
  330.     DestroyActor(gameid);
  331.     DestroyDynamic3DTextLabel(Text3D:ActorCache[gameid][aNameTag]);
  332.     DestroyDynamic3DTextLabel(Text3D:ActorCache[gameid][aDescTag]);
  333.     return 1;
  334. }
  335.  
  336. stock UnloadBots()
  337. {
  338.     for(new i = 0;  i < MAX_ACTORS; i++)
  339.     {  
  340.         if(ActorCache[i][aUID] > 0)
  341.         {
  342.             UnloadBot(i);
  343.         }
  344.     }
  345.     return 1
  346. }
  347.  
  348. stock ReloadBots()
  349. {
  350.     for(new i = 0;  i < MAX_ACTORS; i++)
  351.     {
  352.         UnloadBot(i);
  353.     }
  354.    
  355.     LoadActors();
  356.     return 1;
  357. }
  358.  
  359. forward ReloadBot(actor_id);
  360. public ReloadBot(actor_id)
  361. {
  362.     new data[128], string[128];
  363.     format(data, sizeof(data), "SELECT * FROM actors WHERE actor_uid = %d LIMIT 1", ActorCache[actor_id][aUID]);
  364.     mysql_query(data);
  365.     DestroyActor(actor_id);
  366.     DestroyDynamic3DTextLabel(Text3D:ActorCache[actor_id][aNameTag]);
  367.     mysql_store_result();
  368.     if(mysql_fetch_row(data, "|"))
  369.     {
  370.         sscanf(data, "p<|>ds[32]s[128]ddffffddd",
  371.             ActorCache[actor_id][aUID],
  372.             ActorCache[actor_id][aName],
  373.             ActorCache[actor_id][aDesc],
  374.             ActorCache[actor_id][aSkin],
  375.             ActorCache[actor_id][aType],
  376.             ActorCache[actor_id][aPosX],
  377.             ActorCache[actor_id][aPosY],
  378.             ActorCache[actor_id][aPosZ],
  379.             ActorCache[actor_id][aPosA],
  380.             ActorCache[actor_id][aVW],
  381.             ActorCache[actor_id][aInt],
  382.             ActorCache[actor_id][aAnim]);
  383.  
  384.         CreateActor(ActorCache[actor_id][aSkin], ActorCache[actor_id][aPosX], ActorCache[actor_id][aPosY], ActorCache[actor_id][aPosZ], ActorCache[actor_id][aPosZ]);
  385.         format(string, sizeof(string), "%s (ID %d)", ActorCache[actor_id][aName], actor_id);
  386.         ActorCache[actor_id][aNameTag] = CreateDynamic3DTextLabel(string, COLOR_DO, ActorCache[actor_id][aPosX], ActorCache[actor_id][aPosY], ActorCache[actor_id][aPosZ]+1, 10.0);
  387.  
  388.         format(ActorCache[actor_id][aDesc], 128, "%s", ActorCache[actor_id][aDesc]);
  389.         format(string, sizeof(string), "%s", ActorCache[actor_id][aDesc]);
  390.         ActorCache[actor_id][aDescTag] = CreateDynamic3DTextLabel(string, COLOR_DO, ActorCache[actor_id][aPosX], ActorCache[actor_id][aPosY], ActorCache[actor_id][aPosZ], 10.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, ActorCache[actor_id][aVW], -1, -1, STREAMER_3D_TEXT_LABEL_SD, STREAMER_TAG_AREA -1, 0);
  391.        
  392.         for (new anim_uid = 1; anim_uid < MAX_ANIMATIONS; anim_uid++)
  393.         {
  394.             ApplyActorAnimation(actor_id, AnimInfo[anim_uid][aLib], AnimInfo[anim_uid][aName], AnimInfo[anim_uid][aSpeed], AnimInfo[anim_uid][aOpt1], AnimInfo[anim_uid][aOpt2], AnimInfo[anim_uid][aOpt3], AnimInfo[anim_uid][aOpt4], AnimInfo[anim_uid][aOpt5]);
  395.         }
  396.     }
  397.     mysql_free_result();
  398.     return 1;
  399. }
  400.  
  401. forward LoadActors();
  402. public LoadActors()
  403. {
  404.     new query[512], gameid, string[128];
  405.  
  406.     printf("[load] Rozpoczynam wczytywanie botów z bazy danych...");
  407.  
  408.     format(query, sizeof(query), "SELECT * FROM actors");
  409.     mysql_query(query);
  410.     new ActorTemp[sActor];
  411.     mysql_store_result();
  412.  
  413.     while(mysql_fetch_row(query, "|"))
  414.     {
  415.         sscanf(query, "p<|>ds[32]s[128]ddffffddd",
  416.             ActorTemp[aUID],
  417.             ActorTemp[aName],
  418.             ActorTemp[aDesc],
  419.             ActorTemp[aSkin],
  420.             ActorTemp[aType],
  421.             ActorTemp[aPosX],
  422.             ActorTemp[aPosY],
  423.             ActorTemp[aPosZ],
  424.             ActorTemp[aPosA],
  425.             ActorTemp[aVW],
  426.             ActorTemp[aInt],
  427.             ActorTemp[aAnim]);
  428.  
  429.         gameid = CreateActor(ActorTemp[aSkin], ActorTemp[aPosX], ActorTemp[aPosY], ActorTemp[aPosZ], ActorTemp[aPosA]);
  430.  
  431.         ActorCache[gameid][aUID] = ActorTemp[aUID];
  432.         ActorCache[gameid][aSkin] = ActorTemp[aSkin];
  433.         ActorCache[gameid][aType] = ActorTemp[aType];
  434.         ActorCache[gameid][aPosX] = ActorTemp[aPosX];
  435.         ActorCache[gameid][aPosY] = ActorTemp[aPosY];
  436.         ActorCache[gameid][aPosZ] = ActorTemp[aPosZ];
  437.         ActorCache[gameid][aPosA] = ActorTemp[aPosA];
  438.         ActorCache[gameid][aVW] = ActorTemp[aVW];
  439.         ActorCache[gameid][aInt] = ActorTemp[aInt];
  440.         ActorCache[gameid][aAnim] = ActorTemp[aAnim];
  441.         ActorCache[gameid][aNickColor] = COLOR_DO;
  442.  
  443.         format(ActorCache[gameid][aName], 32, "%s", ActorTemp[aName]);
  444.         format(string, sizeof(string), "%s (ID %d)", ActorCache[gameid][aName], gameid);
  445.         ActorCache[gameid][aNameTag] = CreateDynamic3DTextLabel(string, ActorCache[gameid][aNickColor], ActorCache[gameid][aPosX], ActorCache[gameid][aPosY], ActorCache[gameid][aPosZ]+1, 10.0);
  446.  
  447.         format(ActorCache[gameid][aDesc], 128, "%s", ActorTemp[aDesc]);
  448.         format(string, sizeof(string), "%s", ActorCache[gameid][aDesc]);
  449.         ActorCache[gameid][aDescTag] = CreateDynamic3DTextLabel(string, COLOR_DO, ActorCache[gameid][aPosX], ActorCache[gameid][aPosY], ActorCache[gameid][aPosZ], 10.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, ActorCache[gameid][aVW], -1, -1, STREAMER_3D_TEXT_LABEL_SD, STREAMER_TAG_AREA -1, 0);
  450.        
  451.  
  452.         for(new anim_id = 1; anim_id < MAX_ANIMATIONS; anim_id++)
  453.         {
  454.             if(AnimInfo[anim_id][aUID] == ActorCache[gameid][aAnim])
  455.             {
  456.                 ApplyActorAnimation(gameid, AnimInfo[anim_id][aLib], AnimInfo[anim_id][aName], AnimInfo[anim_id][aSpeed], AnimInfo[anim_id][aOpt1], AnimInfo[anim_id][aOpt2], AnimInfo[anim_id][aOpt3], AnimInfo[anim_id][aOpt4], AnimInfo[anim_id][aOpt5]);
  457.             }
  458.         }
  459.     }
  460.  
  461.     mysql_free_result();
  462.  
  463.     printf("[load] Wczytano %d aktorów z bazy danych.", gameid+1);
  464.     return 1;
  465. }
  466.  
  467. CMD:kasyno(playerid, params[])
  468. {
  469.     if(!PlayerCache[playerid][pCasinoGaming])
  470.     {
  471.         GuiMsg(playerid, "Nie rozgrywasz obecnie żadnej gry z krupierem.", 0);
  472.         MainPlayerTable[playerid] = 0;
  473.         return 1;
  474.     }
  475.     new type[32], varchar[32], string[64];
  476.     if(sscanf(params, "s[32]S()[32]", type, varchar))
  477.     {
  478.         Tip(playerid, "/kasyno [low | high] [stawka]");
  479.         return 1;
  480.     }
  481.     if(!strcmp(type, "low", true))
  482.     {
  483.         new bidlow;
  484.         if(sscanf(varchar, "d", bidlow))
  485.         {
  486.             Tip(playerid, "/kasyno low [stawka]");
  487.             return 1;
  488.         }
  489.         new bot_id = MainPlayerTable[playerid];
  490.         MainPlayerTable[playerid] = 0;
  491.  
  492.         new rand = 1 + random(6);
  493.  
  494.         format(string, sizeof(string), "* %s wyrzucił %d oczek na 6.", ActorCache[bot_id][aName], rand);
  495.         //ProxDetector(10.0, playerid, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, false);
  496.         SendClientMessage(playerid, COLOR_DO, string);
  497.  
  498.         if(rand < 4)
  499.         {
  500.             GivePlayerMoney(playerid, bidlow);
  501.             format(string, sizeof(string), "Wygrałeś $%d!", bidlow);
  502.             GameTextForPlayer(playerid,"~g~WYGRANA!", 2000, 4);
  503.             SendClientMessage(playerid, COLOR_ADMIN, string);
  504.             PlayerCache[playerid][pCasinoGaming] = false;
  505.             return 1;
  506.         }
  507.         else
  508.         {
  509.             GameTextForPlayer(playerid, "~r~PRZEGRANA", 2000, 4);
  510.             GivePlayerMoney(playerid, -bidlow);
  511.             PlayerCache[playerid][pCasinoGaming] = false;
  512.             return 1;
  513.         }
  514.         //return 1;
  515.     }
  516.     if(!strcmp(type, "high", true))
  517.     {
  518.         new bidhigh;
  519.         if(sscanf(varchar, "d", bidhigh))
  520.         {
  521.             Tip(playerid, "/kasyno high [stawka]");
  522.             return 1;
  523.         }
  524.         new bot_id = MainPlayerTable[playerid];
  525.         MainPlayerTable[playerid] = 0;
  526.  
  527.         new rand = 1 + random(6);
  528.  
  529.         format(string, sizeof(string), "* %s wyrzucił %d oczek na 6.", ActorCache[bot_id][aName], rand);
  530.         //ProxDetector(10.0, playerid, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, false);
  531.         SendClientMessage(playerid, -1, string);
  532.  
  533.         if(rand > 3)
  534.         {
  535.             GivePlayerMoney(playerid, bidhigh);
  536.             format(string, sizeof(string), "BRAWO! Wygrałeś $%d!", bidhigh);
  537.             SendClientMessage(playerid, -1, string);
  538.             PlayerCache[playerid][pCasinoGaming] = false;
  539.             return 1;
  540.         }
  541.         else
  542.         {
  543.             SendClientMessage(playerid, -1, "Niestety przegrałeś.");
  544.             GivePlayerMoney(playerid, -bidhigh);
  545.             PlayerCache[playerid][pCasinoGaming] = false;
  546.             return 1;
  547.         }
  548.     }
  549.     return 1;
  550. }
  551.  
  552. stock Tip(playerid, givenstring[])
  553. {
  554.     new string[128];
  555.     format(string, sizeof(string), "Użycie: %s", givenstring);
  556.     SendClientMessage(playerid, COLOR_GREY, string);
  557.     return 1;
  558. }
  559.  
  560. stock GuiMsg(playerid, text[], isError)
  561. {
  562.     if(isError == 0)
  563.     {
  564.         ShowPlayerDialog(playerid, D_INFO, DIALOG_STYLE_MSGBOX, "Wystąpił błąd", text, "OK", "");
  565.     }
  566.     else
  567.     {
  568.         ShowPlayerDialog(playerid, D_INFO, DIALOG_STYLE_MSGBOX, "Informacja", text, "OK", "");
  569.     }
  570.    
  571.     return 1;
  572. }
Add Comment
Please, Sign In to add comment