Advertisement
Yiin

first code ever

Dec 5th, 2014
323
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 10.42 KB | None | 0 0
  1. #include <a_samp>
  2. #include <a_players>
  3. #include <a_vehicles>
  4. #include <core>
  5. #include <float>
  6. #include <streamer>
  7. #include <uf>
  8.  
  9. #define STREAMER_TYPE_PICKUP (1)
  10.  
  11.  
  12. #pragma tabsize 0
  13.  
  14. // Kintamieji;
  15. new
  16.     s_cash1[MAX_PLAYERS], // cash 15
  17.     s_cash2[MAX_PLAYERS], // cash 10
  18.  Text:show_dmg,
  19.  Text:show_gdmg,
  20.     dMoney[MAX_PLAYERS][256],
  21.     d_Money[MAX_PLAYERS][MAX_PLAYERS],
  22.     d_pID[MAX_PLAYERS][256],
  23.     p_kills[MAX_PLAYERS], p_deaths[MAX_PLAYERS],
  24.    
  25.     // Parduotuves enter/exit
  26.         binco_enter, // Drabuziai 1
  27.         binco_exit,
  28. /*     
  29.         urban_exit, // Drabuziai 2
  30.         zip_exit, // Drabuziai 3
  31.         ds_exit, // Drabuziai 4
  32.         ammo1_enter, // Ginklai 1
  33.         CrackDen_enter, // Narkotikai (CrackDen)
  34. */
  35.     PlayerText3D:td_d_money[MAX_PLAYERS],
  36.     PlayerText3D:td_s_cash1,
  37.     PlayerText3D:td_s_cash2;
  38.    
  39. enum        // streamer
  40. {
  41.     E_STREAMER_ATTACHED_OBJECT,
  42.     E_STREAMER_ATTACHED_PLAYER,
  43.     E_STREAMER_ATTACHED_VEHICLE,
  44.     E_STREAMER_ATTACH_OFFSET_X,
  45.     E_STREAMER_ATTACH_OFFSET_Y,
  46.     E_STREAMER_ATTACH_OFFSET_Z,
  47.     E_STREAMER_ATTACH_R_X,
  48.     E_STREAMER_ATTACH_R_Y,
  49.     E_STREAMER_ATTACH_R_Z,
  50.     E_STREAMER_ATTACH_X,
  51.     E_STREAMER_ATTACH_Y,
  52.     E_STREAMER_ATTACH_Z,
  53.     E_STREAMER_COLOR,
  54.     E_STREAMER_DRAW_DISTANCE,
  55.     E_STREAMER_EXTRA_ID,
  56.     E_STREAMER_INTERIOR_ID,
  57.     E_STREAMER_MAX_X,
  58.     E_STREAMER_MAX_Y,
  59.     E_STREAMER_MAX_Z,
  60.     E_STREAMER_MIN_X,
  61.     E_STREAMER_MIN_Y,
  62.     E_STREAMER_MIN_Z,
  63.     E_STREAMER_MODEL_ID,
  64.     E_STREAMER_MOVE_R_X,
  65.     E_STREAMER_MOVE_R_Y,
  66.     E_STREAMER_MOVE_R_Z,
  67.     E_STREAMER_MOVE_SPEED,
  68.     E_STREAMER_MOVE_X,
  69.     E_STREAMER_MOVE_Y,
  70.     E_STREAMER_MOVE_Z,
  71.     E_STREAMER_NEXT_X,
  72.     E_STREAMER_NEXT_Y,
  73.     E_STREAMER_NEXT_Z,
  74.     E_STREAMER_PLAYER_ID,
  75.     E_STREAMER_R_X,
  76.     E_STREAMER_R_Y,
  77.     E_STREAMER_R_Z,
  78.     E_STREAMER_SIZE,
  79.     E_STREAMER_STREAM_DISTANCE,
  80.     E_STREAMER_STYLE,
  81.     E_STREAMER_TEST_LOS,
  82.     E_STREAMER_TYPE,
  83.     E_STREAMER_WORLD_ID,
  84.     E_STREAMER_X,
  85.     E_STREAMER_Y,
  86.     E_STREAMER_Z
  87. }
  88.  
  89. forward OnPlayerPickUpDynamicPickup(playerid, pickupid);
  90.  
  91. main()
  92. {
  93.     print("\n----------------------------------");
  94.     print("  San Andreas: World Script\n");
  95.     print("----------------------------------\n");
  96. }
  97.  
  98.  
  99. public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid)
  100. {
  101.     new string[4], Float:health;
  102.    
  103.     GetPlayerHealth(damagedid,health);
  104.    
  105.     if(amount < 0){ amount = amount * -1; }
  106.    
  107.     switch(GetPlayerWeapon(playerid)) {
  108.             case 24:        {amount += 40; SetPlayerHealth(damagedid, -40);  }        //case [weaponid]: Damage = [damage];
  109.             case 32,28:     {amount += 25; SetPlayerHealth(damagedid, -25);  }        //Tec9 & Micru-Uzi
  110.             case 29:        {amount += 30; SetPlayerHealth(damagedid, -30);  }
  111.             case 0:         {amount += 7;  SetPlayerHealth(damagedid, -7);   }
  112.             case 22:        {amount += 25; SetPlayerHealth(damagedid, -25);  }
  113.             case 23:        {amount += 20; SetPlayerHealth(damagedid, -20);  }
  114.             case 5,3,6,7,2: {amount += 10; SetPlayerHealth(damagedid, -10);  }
  115.             case 4:         {amount += 30; SetPlayerHealth(damagedid, -30);  }
  116.             case 25:        {amount += 50; SetPlayerHealth(damagedid, -50);  }
  117.             case 26:        {amount += 50; SetPlayerHealth(damagedid, -50);  }
  118.             case 30,31:     {amount += 40; SetPlayerHealth(damagedid, -40);  }
  119.             case 33,34:     {amount += 95; SetPlayerHealth(damagedid, -95);  }
  120.     }
  121.    
  122.     format(string, sizeof(string), "%f", amount);
  123.     TextDrawSetString(Text:show_dmg, string);
  124.     TextDrawShowForPlayer(playerid, show_dmg);
  125.     return 1;
  126. }
  127.  
  128. public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
  129. {
  130.     if(issuerid != INVALID_PLAYER_ID)
  131.     {      
  132.         new string[4];
  133.         if(amount < 0){ amount = amount * -1; }
  134.        
  135.         switch(GetPlayerWeapon(issuerid)) {
  136.             case 24: amount += 40;                     //case [weaponid]: Damage = [damage];
  137.             case 32,28: amount += 25;                  //Tec9 & Micru-Uzi
  138.             case 29: amount += 30;
  139.             case 0: amount += 7;
  140.             case 22: amount += 25;
  141.             case 23: amount += 20;
  142.             case 5,3,6,7,2: amount += 10;
  143.             case 4: amount += 30;
  144.             case 25: amount += 50;
  145.             case 26: amount += 50;
  146.             case 30,31: amount += 40;
  147.             case 33,34: amount += 95;
  148.     }
  149.        
  150.         format(string, sizeof(string), "%f", amount);
  151.         TextDrawSetString(Text:show_gdmg, string);
  152.         TextDrawShowForPlayer(playerid, show_gdmg);
  153.         return 1;
  154.     }
  155.         new string[4];
  156.         if(amount < 0){ amount = amount * -1; }
  157.        
  158.         format(string, sizeof(string), "-%f", amount);
  159.         TextDrawSetString(Text:show_gdmg, string);
  160.         TextDrawShowForPlayer(playerid, show_gdmg);
  161.         Wait(200);
  162.         TextDrawHideForPlayer(playerid, show_gdmg);
  163.         return 1;
  164. }
  165.  
  166. public OnPlayerConnect(playerid)
  167. {
  168.     GameTextForPlayer(playerid,"~w~San Andreas: ~b~World",5000,5);
  169.    
  170.     return 1;
  171. }
  172.  
  173.  
  174.  
  175. public OnPlayerCommandText(playerid, cmdtext[])
  176. {
  177.     new idx;
  178.     new cmd[30];
  179.     new Text: MyTextDraw;
  180.    
  181.     cmd = strtok(cmdtext, idx);
  182.  
  183.     if(!strcmp(cmdtext, "/apie", true)) {
  184.         SendClientMessage(playerid, 0xFFFFFFFF, "San Andreas: World   |   GameMode by Yiin");
  185.             GivePlayerWeapon(playerid, 38, 25000);
  186.             GivePlayerMoney(playerid, 13265);
  187.             MyTextDraw = TextDrawCreate(100.0, 33.0,"Example TextDraw");
  188.             TextDrawTextSize(MyTextDraw, 2.0, 3.6);
  189.             return 1;
  190.     }
  191.  
  192.     if(!strcmp(cmdtext, "/kill", true)) {
  193.        SetPlayerHealth(playerid, 0);
  194.        return 1;
  195.     }
  196.     return 0;
  197. }
  198.  
  199.  
  200. public OnPlayerSpawn(playerid)
  201. {
  202.     SetPlayerPos(playerid,2889.7627,-2165.0461,3.3291);
  203.     SetPlayerVirtualWorld(playerid, 0);
  204.     SetPlayerInterior(playerid,0);
  205.     TogglePlayerClock(playerid,0);
  206.     GivePlayerWeapon(playerid, 38, 250000);
  207.        
  208.     //Pickup'ai
  209.    
  210. //Pinigai
  211.     td_s_cash1 = CreatePlayer3DTextLabel(playerid, "Pinigai: 10$", 0x00D91DFF, 2827.5657,   -2138.7046, 11.5243, 50.0);
  212.     s_cash1[playerid] = CreatePickup(1212, 3, 2827.5657,    -2138.7046, 11.0943,    0);
  213.    
  214.     td_s_cash2 = CreatePlayer3DTextLabel(playerid, "Pinigai: 15$", 0x00D91DFF, 2888.9446,   -2114.4854, 4.2339,  50.0);
  215.     s_cash2[playerid] = CreatePickup(1212, 3, 2888.9446,    -2114.4854, 3.7339,     0);
  216. //Parduotuves
  217.    
  218.    
  219.     return 1;
  220. }
  221.  
  222. public OnPlayerDeath(playerid, killerid, reason)
  223. {
  224.     p_deaths[playerid]++;
  225.     if(GetPlayerMoney(playerid) > 0)
  226.     {
  227.         new
  228.             string[50],
  229.                 Float:pX, Float:pY, Float:pZ, pI, pVW;
  230.  
  231.         GetPlayerPos(playerid, pX, pY, pZ);
  232.        
  233.                 pI      = GetPlayerInterior(playerid);
  234.                 pVW     = GetPlayerVirtualWorld(playerid);
  235.                 dMoney[playerid][p_deaths[playerid]] = floatround(GetPlayerMoney(playerid) * 0.1);
  236.                
  237.                 if(killerid != INVALID_PLAYER_ID)
  238.                 {
  239.                     p_kills[killerid]++;
  240.                     d_pID[killerid][p_kills[killerid]]  = playerid;
  241.                    
  242.                     GivePlayerMoney(playerid, dMoney[playerid][p_deaths[playerid]] * -1);
  243.                                                                                                                             //  CreateDynamicPickup(modelid,    type,   Float:x, Float:y, Float:z, worldid, interiorid, playerid, Float:streamdistance = 100.0);
  244.                     d_Money[ killerid ][ d_pID[killerid][p_kills[killerid]] ] = CreateDynamicPickup(1212, 23, pX, pY, pZ, pVW, pI,  -1, 70);
  245.                    
  246.                     format(string, sizeof(string), "Pinigai: %i",dMoney);
  247.                     td_d_money[ d_pID[killerid][p_kills[killerid]] ] = CreatePlayer3DTextLabel(killerid, string, 0x00D91DFF, pX, pY, pZ+0.5, 50);
  248.                 }
  249.                 else
  250.                 {
  251.                     GivePlayerMoney(playerid, dMoney[playerid][p_deaths[playerid]] * -2);
  252.                 }
  253.     }
  254.    
  255.     SendClientMessage(playerid, 0xFFFFFF00, "Mirei...");
  256.     return 1;
  257. }
  258.  
  259.  
  260. SetupPlayerForClassSelection(playerid)
  261. {
  262.     SetPlayerInterior(playerid,0);
  263.     SetPlayerVirtualWorld(playerid, 1);
  264.     SetPlayerPos(playerid,2889.7627,-2165.0461,3.3291);
  265.     SetPlayerFacingAngle(playerid,244.2639);
  266.     SetPlayerCameraPos(playerid,2893.1243,-2168.2341,8.2300);
  267.     SetPlayerCameraLookAt(playerid,2889.7627,-2165.0461,7.3291);
  268.  
  269. }
  270.  
  271. public OnPlayerRequestClass(playerid, classid)
  272. {
  273.     SetupPlayerForClassSelection(playerid);
  274.    
  275.    
  276.     return 1;
  277. }
  278.  
  279. public OnGameModeInit()
  280. {
  281.     SetGameModeText("San Andreas: World");
  282.     ShowPlayerMarkers(1);
  283.     ShowNameTags(1);
  284.     AllowAdminTeleport(1);
  285.     UsePlayerPedAnims();
  286.    
  287.     AddPlayerClass(14,2889.7627,-2165.0461,3.3291,64.3824,0,0,0,0,0,0);
  288.     AddPlayerClass(15,2889.7627,-2165.0461,3.3291,64.3824,0,0,0,0,0,0);
  289.    
  290.    
  291.     show_dmg = TextDrawCreate(399 ,188 , " ");
  292.     TextDrawFont(show_dmg , 0);
  293.     TextDrawLetterSize(show_dmg , 0.5, 4.2);
  294.     TextDrawColor(show_dmg , 0xffffffFF);
  295.     TextDrawSetOutline(show_dmg , true);
  296.     TextDrawSetProportional(show_dmg , true);
  297.     TextDrawSetShadow(show_dmg , 1);
  298.    
  299.     show_gdmg = TextDrawCreate(241 ,188 , " ");
  300.     TextDrawFont(show_gdmg , 1);
  301.     TextDrawLetterSize(show_gdmg , 0.5, 3.5);
  302.     TextDrawColor(show_gdmg , 0xfa0000FF);
  303.     TextDrawSetOutline(show_gdmg , false);
  304.     TextDrawSetProportional(show_gdmg , true);
  305.     TextDrawSetShadow(show_gdmg , 1);
  306.        
  307.     // Pickup'ai
  308.         //Parduotuves
  309. //             CreateDynamicPickup(modelid, type,   Float:x, Float:y, Float:z, worldid, interiorid, playerid, Float:streamdistance = 100.0);
  310.     binco_enter = CreateDynamicPickup(1559,     23,     2819.1,  -1614.8,  10.1,        -1,     -1,             -1,         100);
  311.     binco_exit  = CreateDynamicPickup(1559,     23,     207.7,   -110.7,   1004.1-1,     15,         -1,         40);
  312. //  zip_exit    = CreateDynamicPickup(1317,     23,     161.4,   -96.8,    1000.8,  -1,     18,         -1,         40);
  313.    
  314.    
  315.  
  316.     return 1;
  317. }
  318.  
  319. public OnPlayerPickUpDynamicPickup(playerid, pickupid)
  320. {
  321.     if(pickupid == binco_enter){
  322.         SetPlayerInterior(playerid, 15);
  323.         SetPlayerPos(playerid, 209, -110.7, 10004.1);
  324.         return 1;
  325.     }
  326.     if(pickupid == binco_exit){
  327.         SetPlayerInterior(playerid, 0);
  328.         SetPlayerPos(playerid, 2819, -1616, 10.1);
  329.         return 1;
  330.     }
  331.    
  332.     for(new jj = 0; jj <= 50; jj++){
  333.         if(pickupid == d_Money[playerid][d_pID[playerid][p_kills[playerid]-jj]]){
  334.             GivePlayerMoney(playerid, dMoney[d_pID[playerid][p_kills[playerid]-jj]][p_deaths[d_pID[playerid][p_kills[playerid]-jj]]]);
  335.             DeletePlayer3DTextLabel(playerid, td_d_money[d_pID[playerid][p_kills[playerid]-jj]]);
  336.             DestroyDynamicPickup(d_Money[playerid][d_pID[playerid][p_kills[playerid]-jj]]);
  337.             return 1;
  338.         }
  339.     }
  340.    
  341.     return 1;
  342. }
  343.  
  344. public OnPlayerPickUpPickup(playerid, pickupid)
  345. {
  346.    
  347.     if(pickupid == s_cash1[playerid])
  348.     {
  349.         GivePlayerMoney(playerid, 10);
  350.         DestroyPickup(s_cash1[playerid]);
  351.         DeletePlayer3DTextLabel(playerid, td_s_cash1);
  352.         return 1;
  353.     }
  354.     if(pickupid == s_cash2[playerid])
  355.     {
  356.         GivePlayerMoney(playerid, 15);
  357.         DestroyPickup(s_cash2[playerid]);
  358.         DeletePlayer3DTextLabel(playerid, td_s_cash2);
  359.         return 1;
  360.     }
  361.     return 1;
  362. }
  363.  
  364. strtok(const string[], &index)
  365. {
  366.     new length = strlen(string);
  367.     while ((index < length) && (string[index] <= ' '))
  368.     {
  369.         index++;
  370.     }
  371.  
  372.     new offset = index;
  373.     new result[20];
  374.     while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  375.     {
  376.         result[index - offset] = string[index];
  377.         index++;
  378.     }
  379.     result[index - offset] = EOS;
  380.     return result;
  381. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement