Advertisement
Pablo_Borsellino

[Include] pOneArmedBandit

Oct 16th, 2011
429
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 7.71 KB | None | 0 0
  1. /************************************************************ pOneArmedBandit***
  2. *
  3. * Scriptname:
  4. * -» pOneArmedBandit
  5. *
  6. * Author:
  7. * -» Pablo_Borsellino
  8. *
  9. * Creation Date:
  10. * -» 15th October 2011
  11. *
  12. * Release Date:
  13. * -» 16th October 2011
  14. *
  15. * Version:
  16. * -» 1.0
  17. *
  18. * Need to use:
  19. * -» Sa:Mp 0.3d RC5-3 or higher
  20. *
  21. * Language:
  22. * -» English
  23. *
  24. * Description:
  25. * -» Player can play One-armed Bandit without being in the Casino.
  26. *
  27. * Functions:
  28. * -» StartOnArmedBanditForPlayer(playerid);
  29. * -» StopOnArmedBanditForPlayer(playerid);
  30. *
  31. * Public's:
  32. * -» OnPlayerFinishOnArmedBandit(playerid,correct)
  33. *
  34. * Credit's:
  35. * -» n/a
  36. *                                           Copyright © 2011 by Pablo_Borsellino
  37. *******************************************************************************/
  38.  
  39. //_____________________________________________________________________Include's
  40. #include <a_samp>
  41.  
  42. //_______________________________________________________________Variable's & co.
  43. new bool:_OAB_PlayerPlays[MAX_PLAYERS],
  44.     _OAB_TICKS[MAX_PLAYERS],
  45.     _OAB_CURRENT_TD_SLOT_1[MAX_PLAYERS],
  46.     _OAB_CURRENT_TD_SLOT_2[MAX_PLAYERS],
  47.     _OAB_CURRENT_TD_SLOT_3[MAX_PLAYERS],
  48.     Text:_OAB_TD_SLOT_1[MAX_PLAYERS],
  49.     Text:_OAB_TD_SLOT_2[MAX_PLAYERS],
  50.     Text:_OAB_TD_SLOT_3[MAX_PLAYERS];
  51.  
  52. //_______________________________________________________________User Function's
  53. forward StartOnArmedBanditForPlayer(playerid);
  54. public StartOnArmedBanditForPlayer(playerid)
  55. {
  56.     if(_OAB_PlayerPlays[playerid]==true)return true;
  57.     _OAB_PlayerPlays[playerid]=true;
  58.     _OAB_TICKS[playerid]=30;
  59.     _OAB_CURRENT_TD_SLOT_1[playerid]=random(5-2)+2;
  60.     _OAB_CURRENT_TD_SLOT_2[playerid]=random(5-2)+2;
  61.     _OAB_CURRENT_TD_SLOT_3[playerid]=random(5-2)+2;
  62.     _OAB_TD_SLOT_1[playerid] = TextDrawCreate(274,300,"LD_SLOT:r_69");
  63.     _OAB_TD_SLOT_2[playerid] = TextDrawCreate(200,300,"LD_SLOT:r_69");
  64.     _OAB_TD_SLOT_3[playerid] = TextDrawCreate(348,300,"LD_SLOT:r_69");
  65.     TextDrawFont(_OAB_TD_SLOT_1[playerid],4);
  66.     TextDrawFont(_OAB_TD_SLOT_2[playerid],4);
  67.     TextDrawFont(_OAB_TD_SLOT_3[playerid],4);
  68.     TextDrawColor(_OAB_TD_SLOT_1[playerid],0xFFFFFFFF);
  69.     TextDrawColor(_OAB_TD_SLOT_2[playerid],0xFFFFFFFF);
  70.     TextDrawColor(_OAB_TD_SLOT_3[playerid],0xFFFFFFFF);
  71.     TextDrawTextSize(_OAB_TD_SLOT_1[playerid],75,75);
  72.     TextDrawTextSize(_OAB_TD_SLOT_2[playerid],75,75);
  73.     TextDrawTextSize(_OAB_TD_SLOT_3[playerid],75,75);
  74.     TextDrawShowForPlayer(playerid,_OAB_TD_SLOT_1[playerid]);
  75.     TextDrawShowForPlayer(playerid,_OAB_TD_SLOT_2[playerid]);
  76.     TextDrawShowForPlayer(playerid,_OAB_TD_SLOT_3[playerid]);
  77.     StartOABForPlayer(playerid);
  78.     return true;
  79. }
  80.  
  81. //______________________________________________________________________________
  82. forward StartOABForPlayer(playerid);
  83. public StartOABForPlayer(playerid)
  84. {
  85.     if(_OAB_PlayerPlays[playerid]==false)return true;
  86.     if(_OAB_TICKS[playerid]>=30)return SetTimerEx("_OAB_PLAYER_TIMER",50,false,"d",playerid);
  87.     else if(_OAB_TICKS[playerid]>=20)return SetTimerEx("_OAB_PLAYER_TIMER",60,false,"d",playerid);
  88.     else if(_OAB_TICKS[playerid]>=10)return SetTimerEx("_OAB_PLAYER_TIMER",70,false,"d",playerid);
  89.     else if(_OAB_TICKS[playerid]==9)return SetTimerEx("_OAB_PLAYER_TIMER",80,false,"d",playerid);
  90.     if(_OAB_TICKS[playerid]==8)return SetTimerEx("_OAB_PLAYER_TIMER",90,false,"d",playerid);
  91.     else if(_OAB_TICKS[playerid]==7)return SetTimerEx("_OAB_PLAYER_TIMER",100,false,"d",playerid);
  92.     else if(_OAB_TICKS[playerid]==6)return SetTimerEx("_OAB_PLAYER_TIMER",110,false,"d",playerid);
  93.     else if(_OAB_TICKS[playerid]==5)return SetTimerEx("_OAB_PLAYER_TIMER",120,false,"d",playerid);
  94.     else if(_OAB_TICKS[playerid]==4)return SetTimerEx("_OAB_PLAYER_TIMER",130,false,"d",playerid);
  95.     else if(_OAB_TICKS[playerid]==3)return SetTimerEx("_OAB_PLAYER_TIMER",140,false,"d",playerid);
  96.     else if(_OAB_TICKS[playerid]==2)return SetTimerEx("_OAB_PLAYER_TIMER",150,false,"d",playerid);
  97.     else if(_OAB_TICKS[playerid]==1)return SetTimerEx("_OAB_PLAYER_TIMER",160,false,"d",playerid);
  98.     else if(_OAB_TICKS[playerid]==0)
  99.     {
  100.         SetTimerEx("StopOnArmedBanditForPlayer",2500,false,"d",playerid);
  101.         _OAB_PLAYER_FINISH_TURN(playerid);
  102.     }
  103.     return true;
  104. }
  105.  
  106. /*______________________________________________________________________________
  107. Example for OnPlayerFinishOnArmedBandit(..) in the Gamemode:
  108. ________________________________________________________________________________
  109.  
  110. public OnPlayerFinishOnArmedBandit(playerid,correct)
  111. {
  112.     if(correct==3) //All three are the same
  113.     {
  114.         GameTextForPlayer(playerid,"~g~Win",2000,6);
  115.         GivePlayerMoney(playerid,OAB_MONEY_AT_WIN_OR_LOSE); //Give for ex. 100$
  116.     }
  117.     else if(correct<=2) //None are the same or only two are the same
  118.     {
  119.         GameTextForPlayer(playerid,"~r~Lose",2000,6);
  120.         GivePlayerMoney(playerid,OAB_MONEY_AT_WIN_OR_LOSE); //Give for ex. -100$
  121.     }
  122.     return 1;
  123. }
  124. ______________________________________________________________________________*/
  125. forward StopOnArmedBanditForPlayer(playerid);
  126. public StopOnArmedBanditForPlayer(playerid)
  127. {
  128.     TextDrawDestroy(_OAB_TD_SLOT_1[playerid]);
  129.     TextDrawDestroy(_OAB_TD_SLOT_2[playerid]);
  130.     TextDrawDestroy(_OAB_TD_SLOT_3[playerid]);
  131.     _OAB_PlayerPlays[playerid]=false;
  132.     return true;
  133. }
  134.  
  135. //______________________________________________________________Script Function's
  136. forward _OAB_PLAYER_FINISH_TURN(playerid);
  137. public _OAB_PLAYER_FINISH_TURN(playerid)
  138. {
  139.     if(_OAB_CURRENT_TD_SLOT_1[playerid]==_OAB_CURRENT_TD_SLOT_2[playerid]&&_OAB_CURRENT_TD_SLOT_1[playerid]!=_OAB_CURRENT_TD_SLOT_3[playerid])return CallRemoteFunction("OnPlayerFinishOnArmedBandit","dd",playerid,2);
  140.     else if(_OAB_CURRENT_TD_SLOT_2[playerid]==_OAB_CURRENT_TD_SLOT_3[playerid]&&_OAB_CURRENT_TD_SLOT_2[playerid]!=_OAB_CURRENT_TD_SLOT_1[playerid])return CallRemoteFunction("OnPlayerFinishOnArmedBandit","dd",playerid,2);
  141.     else if(_OAB_CURRENT_TD_SLOT_1[playerid]==_OAB_CURRENT_TD_SLOT_3[playerid]&&_OAB_CURRENT_TD_SLOT_1[playerid]!=_OAB_CURRENT_TD_SLOT_2[playerid])return CallRemoteFunction("OnPlayerFinishOnArmedBandit","dd",playerid,2);
  142.     else if(_OAB_CURRENT_TD_SLOT_1[playerid]==_OAB_CURRENT_TD_SLOT_2[playerid]&&_OAB_CURRENT_TD_SLOT_1[playerid]==_OAB_CURRENT_TD_SLOT_3[playerid])return CallRemoteFunction("OnPlayerFinishOnArmedBandit","dd",playerid,3);
  143.     else if(_OAB_CURRENT_TD_SLOT_1[playerid]!=_OAB_CURRENT_TD_SLOT_2[playerid]&&_OAB_CURRENT_TD_SLOT_1[playerid]!=_OAB_CURRENT_TD_SLOT_3[playerid])return CallRemoteFunction("OnPlayerFinishOnArmedBandit","dd",playerid,0);
  144.     else return CallRemoteFunction("OnPlayerFinishOnArmedBandit","dd",playerid,1);
  145. }
  146.  
  147. forward _OAB_PLAYER_TIMER(playerid);
  148. public _OAB_PLAYER_TIMER(playerid)
  149. {
  150.     _OAB_CURRENT_TD_SLOT_1[playerid]++;
  151.     _OAB_CURRENT_TD_SLOT_2[playerid]--;
  152.     _OAB_CURRENT_TD_SLOT_3[playerid]++;
  153.     if(_OAB_CURRENT_TD_SLOT_1[playerid]>6)_OAB_CURRENT_TD_SLOT_1[playerid]=1;
  154.     if(_OAB_CURRENT_TD_SLOT_2[playerid]<1)_OAB_CURRENT_TD_SLOT_2[playerid]=6;
  155.     if(_OAB_CURRENT_TD_SLOT_3[playerid]>6)_OAB_CURRENT_TD_SLOT_3[playerid]=1;
  156.     TextDrawSetString(_OAB_TD_SLOT_1[playerid],_OAB_GET_TEXTURE(_OAB_CURRENT_TD_SLOT_1[playerid]));
  157.     TextDrawSetString(_OAB_TD_SLOT_2[playerid],_OAB_GET_TEXTURE(_OAB_CURRENT_TD_SLOT_2[playerid]));
  158.     TextDrawSetString(_OAB_TD_SLOT_3[playerid],_OAB_GET_TEXTURE(_OAB_CURRENT_TD_SLOT_3[playerid]));
  159.     TextDrawShowForPlayer(playerid,_OAB_TD_SLOT_1[playerid]);
  160.     TextDrawShowForPlayer(playerid,_OAB_TD_SLOT_2[playerid]);
  161.     TextDrawShowForPlayer(playerid,_OAB_TD_SLOT_3[playerid]);
  162.     _OAB_TICKS[playerid]--;
  163.     StartOABForPlayer(playerid);
  164.     return true;
  165. }
  166.  
  167. stock _OAB_GET_TEXTURE(ID)
  168. {
  169.     new TextureName[20];
  170.     if(ID==1)TextureName="LD_SLOT:r_69";
  171.     if(ID==2)TextureName="LD_SLOT:grapes";
  172.     if(ID==3)TextureName="LD_SLOT:cherry";
  173.     if(ID==4)TextureName="LD_SLOT:bell";
  174.     if(ID==5)TextureName="LD_SLOT:bar2_o";
  175.     if(ID==6)TextureName="LD_SLOT:bar1_o";
  176.     return TextureName;
  177. }
  178.  
  179.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement