Advertisement
Guest User

Nützliche Funktionen

a guest
Dec 7th, 2012
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 12.87 KB | None | 0 0
  1. /* Sa-Mp Include Datei [Allgemeine Verbesserungen]
  2.  *
  3.  * (c) by Kaliber
  4.  *
  5.  */
  6. #include <a_samp>
  7. #pragma tabsize 0
  8. #if !defined PROPERTY_OFFSET
  9.     #define PROPERTY_OFFSET(%0) \
  10.         ((((%0) * ((%0) << 1)) << 2) + 65536)
  11. #endif
  12. static Float:Pickup_Pos[MAX_PICKUPS][3],Vint[MAX_VEHICLES],engine,lights,alarm,doors,bonnet,boot,objective;
  13.  
  14. native __CreateVehicle(modelid, Float:_x, Float:_y, Float:_z, Float:_a, color1, color2, respawn) = CreateVehicle;
  15. native __CreatePickup(model, type, Float: X, Float: Y, Float: Z, virtualworld = 0) = CreatePickup;
  16.  
  17. stock GetVehicleInterior(vehicleid)
  18. {
  19.     return Vint[vehicleid];
  20. }
  21. stock _CreateVehicle(modelid, Float:_x, Float:_y, Float:_z, Float:_a, color1, color2, respawn)
  22. {
  23.     new veh = CreateVehicle(modelid, Float:_x, Float:_y, Float:_z, Float:_a, color1, color2, respawn, int);
  24.     LinkVehicleToInterior(veh, int);
  25.     Vint[veh] = int;
  26.     __CreateVehicle(modelid, Float:_x, Float:_y, Float:_z, Float:_a, color1, color2, respawn);
  27.     return veh;
  28. }
  29. #if defined _ALS_CreateVehicle
  30.     #undef CreateVehicle
  31. #else
  32.     #define _ALS_CreateVehicle
  33. #endif
  34. #define CreateVehicle __CreateVehicle
  35. stock _CreatePickup(model, type, Float: X, Float: Y, Float: Z, virtualworld = 0)
  36. {
  37.     new pickupid = CreatePickup(model, type, X, Y, Z, virtualworld);
  38.     Pickup_Pos[pickupid][0] = X, Pickup_Pos[pickupid][1] = Y, Pickup_Pos[pickupid][2] = Z;
  39.     __CreatePickup(model, type, Float: X, Float: Y, Float: Z, virtualworld = 0);
  40.     return pickupid;
  41. }
  42. #if defined _ALS_CreatePickup
  43.     #undef CreatePickup
  44. #else
  45.     #define _ALS_CreatePickup
  46. #endif
  47. #define CreatePickup __CreatePickup
  48.  
  49. stock Float:GetPickupPos(pickupid, &Float: X, &Float: Y, &Float: Z)
  50. {
  51.     return X = Pickup_Pos[pickupid][0], Y = Pickup_Pos[pickupid][1], Z = Pickup_Pos[pickupid][2];
  52. }
  53.  
  54. stock GivePlayerJetpack(playerid, bool: var)
  55. {
  56.     if(var) return SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USEJETPACK);
  57.     return SetPlayerSpecialAction(playerid,SPECIAL_ACTION_NONE);
  58. }
  59.  
  60. stock GetIP(playerid)
  61. {
  62.     new Ip[16];
  63.     GetPlayerIp(playerid, Ip, 16);
  64.     return Ip;
  65. }
  66.  
  67. stock GetVehicleDriver(vehicleid)
  68. {
  69.     new vehicleDriver = INVALID_PLAYER_ID;
  70.     for(new i; i<GetMaxPlayers(); i++)
  71.     {
  72.         if(!IsPlayerConnected(i)) continue;
  73.         if(GetPlayerState(i) != PLAYER_STATE_DRIVER) continue;
  74.         if(GetPlayerVehicleID(i) != vehicleid) continue;
  75.         vehicleDriver = i;
  76.         break;
  77.     }
  78.     return vehicleDriver;
  79. }
  80.  
  81. stock CountAllObjects()
  82. {
  83.     new zahl;
  84.     for(new objectid, Float: objectsPosition[3]; objectid < MAX_OBJECTS; objectid++)
  85.     {
  86.         GetObjectPos(objectid, objectsPosition[0], objectsPosition[1], objectsPosition[2]);
  87.         if(objectsPosition[0] != 0.0 || objectsPosition[1] != 0.0 || objectsPosition[2] != 0.0)
  88.         {
  89.             zahl++;
  90.         }
  91.     }
  92.     return zahl;
  93. }
  94.  
  95. stock CountAllPickups()
  96. {
  97.     new zahl;
  98.     for(new pickupid, Float: pickupPos[3]; pickupid < MAX_PICKUPS; pickupid++)
  99.     {
  100.         GetPickupPos(pickupid, pickupPos[0], pickupPos[1], pickupPos[2]);
  101.         if(pickupPos[0] != 0.0 || pickupPos[1] != 0.0 || pickupPos[2] != 0.0)
  102.         {
  103.             zahl++;
  104.         }
  105.     }
  106.     return zahl;
  107. }
  108.  
  109. stock CountAllVehicles()
  110. {
  111.     new zahl;
  112.     for(new veh, Float: vehPos[3]; veh < MAX_VEHICLES; veh++)
  113.     {
  114.         GetVehiclePos(veh, vehPos[0], vehPos[1], vehPos[2]);
  115.         if(vehPos[0] != 0.0 || vehPos[1] != 0.0 || vehPos[2] != 0.0)
  116.         {
  117.             zahl++;
  118.         }
  119.     }
  120.     return zahl;
  121. }
  122.  
  123. stock InRange(playerid, Float: range, Float: _X, Float: _Y)//danke an IPrototypeI
  124. {
  125.     new Float: X, Float: Y, Float: Z;
  126.     GetPlayerPos(playerid, X, Y, Z);
  127.     if((X - _X)*(X - _X) + (Y - _Y)*(Y - _Y) > range*range) return 0;
  128.     else return 1;
  129. }
  130.  
  131. stock GetVehicleColor(veh, &color1, &color2)
  132. {
  133.     veh = PROPERTY_OFFSET(veh);
  134.     if(existproperty(_, "", veh))
  135.     {
  136.         new colorStr[24],pos;
  137.         getproperty(_, "", veh, colorStr);
  138.         strunpack(colorStr, colorStr);
  139.         if((pos=strfind(colorStr, "-")) != -1)
  140.         {
  141.             color1 = strval(colorStr);
  142.             color2 = strval(colorStr[pos+1]);
  143.             return 1;
  144.         }
  145.      }
  146.      return 0;
  147. }
  148.  
  149. stock VehiclePort(playerid, modelid, Float: range)
  150. {
  151.     new Float:X, Float: Y, Float: Z;
  152.     for(new v; v<MAX_VEHICLES; v++)
  153.     {
  154.         GetVehiclePos(v, X, Y, Z);
  155.         if(GetVehicleModel(v) != modelid) continue;
  156.         if(!IsPlayerInRangeOfPoint(playerid, range, X, Y, Z)) continue;
  157.         SetVehiclePos(v, X+v, Y, Z);
  158.     }
  159.     return 1;
  160. }
  161.  
  162. stock RangeFreeze(playerid, Float: range, bool: var)
  163. {
  164.     new Float: X, Float: Y, Float: Z;
  165.     if(var)
  166.     {
  167.         for(new i; i<GetMaxPlayers(); i++)
  168.         {
  169.             if(i == playerid) continue;
  170.             if(!IsPlayerConnected(i)) continue;
  171.             GetPlayerPos(i, X, Y, Z);
  172.             if(!IsPlayerInRangeOfPoint(playerid, range, X, Y, Z)) continue;
  173.             TogglePlayerControllable(i, 0);
  174.         }
  175.     }
  176.     else
  177.     {
  178.         for(new i; i<GetMaxPlayers(); i++)
  179.         {
  180.             if(i == playerid) continue;
  181.             if(!IsPlayerConnected(i)) continue;
  182.             GetPlayerPos(i, X, Y, Z);
  183.             if(!IsPlayerInRangeOfPoint(playerid, range, X, Y, Z)) continue;
  184.             TogglePlayerControllable(i, 1);
  185.         }
  186.     }
  187.     return 1;
  188. }
  189.  
  190. stock CutIp(Ip[])
  191. {
  192.     new z = strfind(Ip, ".", true), rangeban[7];
  193.     if(z != -1)
  194.     {
  195.         strdel(Ip, z, z+1);
  196.         new y = strfind(Ip, ".", true);
  197.         strins(Ip, ".", z, 1);
  198.         strmid(rangeban, Ip, 0, y+2, strlen(Ip));
  199.     }
  200.     return rangeban;
  201. }
  202.  
  203. stock GetVehicleSeats(vehicleid)
  204. {
  205.     new m = GetVehicleModel(vehicleid), z = 0;
  206.     switch(m)
  207.     {
  208.         case 400:z=4; case 401:z=2; case 402:z=2; case 403:z=2; case 404:z=4; case 405:z=4;
  209.         case 406:z=2; case 407:z=2; case 408:z=2; case 409:z=4; case 410:z=2; case 411:z=2;
  210.         case 412:z=2; case 413:z=4; case 414:z=2; case 415:z=2; case 416:z=2; case 417:z=2;
  211.         case 418:z=4; case 419:z=2; case 420:z=4; case 421:z=4; case 422:z=2; case 423:z=2;
  212.         case 424:z=2; case 425:z=1; case 426:z=4; case 427:z=4; case 428:z=4; case 429:z=2;
  213.         case 430:z=1; case 431:z=8; case 432:z=1; case 433:z=2; case 434:z=2; case 435:z=0;
  214.         case 436:z=2; case 437:z=8; case 438:z=4; case 439:z=2; case 440:z=2; case 441:z=1;
  215.         case 442:z=4; case 443:z=2; case 444:z=2; case 445:z=4; case 446:z=1; case 447:z=2;
  216.         case 448:z=1; case 449:z=2; case 450:z=0; case 451:z=2; case 452:z=1; case 453:z=1;
  217.         case 454:z=1; case 455:z=2; case 456:z=2; case 457:z=2; case 458:z=4; case 459:z=4;
  218.         case 460:z=2; case 461:z=2; case 462:z=2; case 463:z=2; case 464:z=1; case 465:z=1;
  219.         case 466:z=4; case 467:z=2; case 468:z=2; case 469:z=2; case 470:z=4; case 471:z=2;
  220.         case 472:z=1; case 473:z=1; case 474:z=2; case 475:z=2; case 476:z=1; case 477:z=2;
  221.         case 478:z=2; case 479:z=4; case 480:z=2; case 481:z=1; case 482:z=2; case 483:z=4;
  222.         case 484:z=1; case 485:z=1; case 486:z=1; case 487:z=4; case 488:z=2; case 489:z=2;
  223.         case 490:z=4; case 491:z=2; case 492:z=4; case 493:z=1; case 494:z=2; case 495:z=2;
  224.         case 496:z=2; case 497:z=4; case 498:z=2; case 499:z=2; case 500:z=2; case 501:z=1;
  225.         case 502:z=2; case 503:z=2; case 504:z=4; case 505:z=2; case 506:z=2; case 507:z=4;
  226.         case 508:z=2; case 509:z=1; case 510:z=1; case 511:z=2; case 512:z=1; case 513:z=1;
  227.         case 514:z=2; case 515:z=2; case 516:z=2; case 517:z=2; case 518:z=2; case 519:z=1;
  228.         case 520:z=1; case 521:z=2; case 522:z=2; case 523:z=2; case 524:z=2; case 525:z=2;
  229.         case 526:z=2; case 527:z=2; case 528:z=2; case 529:z=4; case 530:z=1; case 531:z=1;
  230.         case 532:z=1; case 533:z=2; case 534:z=2; case 535:z=2; case 536:z=2; case 537:z=2;
  231.         case 538:z=2; case 539:z=1; case 540:z=2; case 541:z=2; case 542:z=2; case 543:z=2;
  232.         case 544:z=2; case 545:z=2; case 546:z=4; case 547:z=4; case 548:z=2; case 549:z=2;
  233.         case 550:z=4; case 551:z=4; case 552:z=2; case 553:z=1; case 554:z=2; case 555:z=2;
  234.         case 556:z=2; case 557:z=2; case 558:z=2; case 559:z=2; case 560:z=4; case 561:z=4;
  235.         case 562:z=2; case 563:z=2; case 564:z=1; case 565:z=2; case 566:z=2; case 567:z=2;
  236.         case 568:z=1; case 569:z=0; case 570:z=2; case 571:z=1; case 572:z=1; case 573:z=2;
  237.         case 574:z=2; case 575:z=2; case 576:z=2; case 577:z=1; case 578:z=2; case 579:z=4;
  238.         case 580:z=4; case 581:z=2; case 582:z=4; case 583:z=1; case 584:z=0; case 585:z=4;
  239.         case 586:z=2; case 587:z=2; case 588:z=2; case 589:z=2; case 590:z=0; case 591:z=0;
  240.         case 592:z=1; case 593:z=2; case 594:z=1; case 595:z=1; case 596:z=4; case 597:z=4;
  241.         case 598:z=4; case 599:z=2; case 600:z=2; case 601:z=2; case 602:z=2; case 603:z=2;
  242.         case 604:z=2; case 605:z=2; case 606:z=0; case 607:z=0; case 608:z=0; case 609:z=2;
  243.         case 610:z=0; case 611:z=0;
  244.     }
  245.     return z;
  246. }
  247.  
  248. stock GetVehicleEmptySeats(vehicleid)
  249. {
  250.     new count, z;
  251.     for(new i; i<GetMaxPlayers(); i++)
  252.     {
  253.         if(!IsPlayerConnected(i)) continue;
  254.         if(!IsPlayerInVehicle(i, vehicleid)) continue;
  255.         count++;
  256.     }
  257.     z = GetVehicleSeats(vehicleid)-count;
  258.     return z;
  259. }
  260.  
  261. stock IsAlpha(text[])
  262. {
  263.     new y[10], q = 0;
  264.     format(y, sizeof y, "0");
  265.     while(strval(y) != 10)
  266.     {
  267.         new z = strfind(text, y, true);
  268.         if(z != -1)
  269.         {
  270.             return 0;
  271.         }
  272.         q = (strval(y)+1);
  273.         format(y, sizeof y,"%d",q);
  274.     }
  275.     return 1;
  276. }
  277.  
  278. stock GetIDFromName(name[])
  279. {
  280.     new z = INVALID_PLAYER_ID, nn[24];
  281.     for(new i; i<GetMaxPlayers(); i++)
  282.     {
  283.         if(!IsPlayerConnected(i)) continue;
  284.         GetPlayerName(i, nn, 24);
  285.         if(!strcmp(nn, name, true))
  286.         {
  287.             z = i;
  288.             break;
  289.         }
  290.     }
  291.     return z;
  292. }
  293.  
  294. stock WriteList(nam[])
  295. {
  296.     if(fexist("Whitelist.cfg"))
  297.     {
  298.         new File: w_F = fopen("Whitelist.cfg", io_read), string[128];
  299.         fread(w_F, string);
  300.         new z = strfind(string, nam, true);
  301.         if(z != -1)
  302.         {
  303.             fclose(w_F);
  304.             return 1;
  305.         }
  306.         else
  307.         {
  308.             fclose(w_F);
  309.             new File: _F = fopen("Whitelist.cfg", io_append);
  310.             new str[128];
  311.             format(str, 128, "%s\n",nam);
  312.             fwrite(_F, str);
  313.             fclose(_F);
  314.         }
  315.     } else {
  316.     new File: _F = fopen("Whitelist.cfg", io_write);
  317.     new str[128];
  318.     format(str, 128, "%s\n",nam);
  319.     fwrite(_F, str);
  320.     fclose(_F);
  321.     }
  322.     return 1;
  323. }
  324.  
  325. stock ListActive(playerid)
  326. {
  327.     new nam[24], string[128];
  328.     GetPlayerName(playerid, nam, 24);
  329.     new File: w_F = fopen("Whitelist.cfg", io_read);
  330.     fread(w_F, string);
  331.     new z = strfind(string, nam, true);
  332.     if(z == -1)
  333.     {
  334.         Kick(playerid);
  335.     }
  336.     fclose(w_F);
  337.     return 1;
  338. }
  339.  
  340. stock LogMessage(filename[], msg[])
  341. {
  342.     new str[128];
  343.     if(fexist(filename))
  344.     {
  345.         new File: l_F = fopen(filename, io_append);
  346.         format(str, 128,"%s\n",msg);
  347.         fwrite(l_F, str);
  348.         fclose(l_F);
  349.     }
  350.     else
  351.     {
  352.         new File: l_F = fopen(filename, io_write);
  353.         format(str, 128,"%s\n",msg);
  354.         fwrite(l_F, str);
  355.         fclose(l_F);
  356.     }
  357.     return 1;
  358. }
  359.  
  360. stock GetVehicleCoDriver(vehicleid)
  361. {
  362.     new id = INVALID_PLAYER_ID;
  363.     for(new i; i<GetMaxPlayers(); i++)
  364.     {
  365.         if(!IsPlayerConnected(i)) continue;
  366.         if(!IsPlayerInVehicle(i, vehicleid)) continue;
  367.         if(GetPlayerVehicleSeat(i) == 1)
  368.         {
  369.             id = i;
  370.             break;
  371.         }
  372.     }
  373.     return id;
  374. }
  375.  
  376. stock GetOnlinePlayers()
  377. {
  378.     new z;
  379.     for(new i; i<GetMaxPlayers(); i++)
  380.     {
  381.         if(!IsPlayerConnected(i)) continue;
  382.         z++;
  383.     }
  384.     return z;
  385. }
  386.  
  387. stock SetEngine(vid, bool:var)
  388. {
  389.     GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
  390.     if(var) SetVehicleParamsEx(vid,1,lights,alarm,doors,bonnet,boot,objective);
  391.     else SetVehicleParamsEx(vid,0,lights,alarm,doors,bonnet,boot,objective);
  392.     return 1;
  393. }
  394.  
  395. stock SetDoors(vid, bool:var)
  396. {
  397.     GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
  398.     if(var) SetVehicleParamsEx(vid,engine,lights,alarm,1,bonnet,boot,objective);
  399.     else SetVehicleParamsEx(vid,engine,lights,alarm,0,bonnet,boot,objective);
  400.     return 1;
  401. }
  402.  
  403. stock SetLights(vid, bool:var)
  404. {
  405.     GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
  406.     if(var) SetVehicleParamsEx(vid,engine,1,alarm,doors,bonnet,boot,objective);
  407.     else SetVehicleParamsEx(vid,engine,0,alarm,doors,bonnet,boot,objective);
  408.     return 1;
  409. }
  410.  
  411. stock SetAlarm(vid, bool:var)
  412. {
  413.     GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
  414.     if(var) SetVehicleParamsEx(vid,engine,lights,1,doors,bonnet,boot,objective);
  415.     else SetVehicleParamsEx(vid,engine,lights,0,doors,bonnet,boot,objective);
  416.     return 1;
  417. }
  418.  
  419. stock SetBonnet(vid, bool:var)
  420. {
  421.     GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
  422.     if(var) SetVehicleParamsEx(vid,engine,lights,alarm,doors,1,boot,objective);
  423.     else SetVehicleParamsEx(vid,engine,lights,alarm,doors,0,boot,objective);
  424.     return 1;
  425. }
  426.  
  427. stock SetBoot(vid, bool:var)
  428. {
  429.     GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
  430.     if(var) SetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,1,objective);
  431.     else SetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,0,objective);
  432.     return 1;
  433. }
  434.  
  435. stock SetObjective(vid, bool:var)
  436. {
  437.     GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
  438.     if(var) SetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,1);
  439.     else SetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,0);
  440.     return 1;
  441. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement