Advertisement
Guest User

Untitled

a guest
Aug 15th, 2012
290
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.61 KB | None | 0 0
  1. /* ------------------------- */
  2. /* bDynamisches Fraktions Car System */
  3. /* Erstellt am 15 August 2012 */
  4. /* von Big_Ben */
  5. /* ------------------------- */
  6.  
  7. #include <ocmd> // Wird benötigt
  8. #include <dini> // Wird ebenfalls benötigt
  9.  
  10. #define MAX_FRAKTIONSCARS 500 // Maximale Fraktions Autos Anzahl
  11.  
  12. enum FCarDaten {
  13. Fraktion, // Fraktion des Cars
  14. fvID, // Vehicle ID
  15. fc1, // Color 1 des Cars
  16. fc2, // Color 2 des Cars
  17. Float:fx, // X Koord des Cars
  18. Float:fy, // Y Koord des Cars
  19. Float:fz, // Z Koord des Cars
  20. Float:fa // Angle Koord des Cars
  21. };
  22. new FCar[MAX_FRAKTIONSCARS][FCarDaten];
  23. new fvzID;
  24.  
  25. public OnGameModeInit() {
  26. LoadFCars();
  27. return true;
  28. }
  29. public OnGameModeExit() {
  30. SaveFCars();
  31. return true;
  32. }
  33. public OnPlayerStateChange(playerid, newstate, oldstate) {
  34. for(new v=0; v<MAX_FRAKTIONSCARS; v++) {
  35. if(GetPlayerVehicleID(playerid) == v) {
  36. if(SpielerInfo[playerid][sFraktion] != FCar[v][Fraktion]) { // SpielerInfo[playerid][sFraktion] mit der Fraktionsvariable ersetzen
  37. SendClientMessage(playerid,-1,"Fehler : Du darfst dieses Auto nicht fahren !");
  38. }
  39. }
  40. }
  41. return true;
  42. }
  43. ocmd:fveh(playerid,params[])
  44. {
  45. if(IsPlayerConnected(playerid) || !IsPlayerNPC(playerid))
  46. {
  47. if(!IsPlayerAdmin(playerid)) return true;
  48. new frvID,fID,c1,c2,Float:x,Float:y,Float:z,Float:a;
  49. if(sscanf(params,"dddd",frvID,fID,c1,c2)) return SendClientMessage(playerid,COLOR_RED,"Nutze : /fveh [Vehicle ID] [Fraktions ID] [Farbe 1] [Farbe 2]");
  50. if(frvID < 400 || frvID > 611) return SendClientMessage(playerid,COLOR_RED,"Fehler : Die Vehicle ID darf nicht unter 400 oder über 611 liegen !");
  51. if(c1 < 0 || c1 > 252) return SendClientMessage(playerid,COLOR_RED,"Fehler : Die Farbe 1 kann nicht niedriger als 0 und nicht größer als 252 sein !");
  52. if(c2 < 0 || c2 > 252) return SendClientMessage(playerid,COLOR_RED,"Fehler : Die Farbe 2 kann nicht niedriger als 0 und nicht größer als 252 sein !");
  53. if(fID < 1 || fID > MAX_FRAKTIONEN) return SendClientMessage(playerid,COLOR_RED,"Fehler : Die Fraktion existiert leider nicht !");
  54. GetPlayerPos(playerid,x,y,z);
  55. GetPlayerFacingAngle(playerid,a);
  56. FCar[fvzID][Fraktion] = fID;
  57. FCar[fvzID][fvID] = frvID;
  58. FCar[fvzID][fc1] = c1;
  59. FCar[fvzID][fc2] = c2;
  60. FCar[fvzID][fx] = x;
  61. FCar[fvzID][fy] = y;
  62. FCar[fvzID][fz] = z;
  63. FCar[fvzID][fa] = a;
  64. CreateVehicle(FCar[fvzID][fvID],FCar[fvzID][fx],FCar[fvzID][fy],FCar[fvzID][fz],FCar[fvzID][fa],FCar[fvzID][fc1],FCar[fvzID][fc2],-1);
  65. fvzID ++;
  66. }
  67. return true;
  68. }
  69. ocmd:fpark(playerid,params[]) {
  70. if(IsPlayerConnected(playerid) || !IsPlayerNPC(playerid)) {
  71. new Float:x,Float:y,Float:z,Float:a;
  72. for(new v=0; v<MAX_FRAKTIONSCARS; v++) {
  73. if(GetPlayerVehicleID(playerid) == v) {
  74. if(FCar[v][Fraktion] != SpielerInfo[playerid][pFraktion]) return SendClientMessage(playerid,COLOR_RED,"Fehler : Du bist nicht in einem Fraktionsauto deiner Fraktion !");
  75. if(SpielerInfo[playerid][pFRank] != 12) return SendClientMessage(playerid,COLOR_RED,"Fehler : Du bist nicht der Leader dieser Fraktion !");
  76. GetPlayerPos(playerid,x,y,z);
  77. GetPlayerFacingAngle(playerid,a);
  78. FCar[v][fx] = x;
  79. FCar[v][fy] = y;
  80. FCar[v][fz] = z;
  81. FCar[v][fa] = a;
  82. DestroyVehicle(v);
  83. CreateVehicle(FCar[v][fvID],FCar[v][fx],FCar[v][fy],FCar[v][fz],FCar[v][fa],FCar[v][fc1],FCar[v][fc2],-1);
  84. SaveFCars();
  85. }
  86. }
  87. }
  88. return true;
  89. }
  90.  
  91. stock SaveFCars() {
  92. for(new v=0; v<MAX_FRAKTIONSCARS; v++) {
  93. new save[128];
  94. format(save,sizeof(save),"/FrakCars/%s.fcar",v);
  95. dini_IntSet(save,"Fraktion",FCar[v][Fraktion]);
  96. dini_IntSet(save,"FVehicleID",FCar[v][fvID]);
  97. dini_IntSet(save,"Color1",FCar[v][fc1]);
  98. dini_IntSet(save,"Color2",FCar[v][fc2]);
  99. dini_FloatSet(save,"fX",FCar[v][fx]);
  100. dini_FloatSet(save,"fY",FCar[v][fy]);
  101. dini_FloatSet(save,"fZ",FCar[v][fz]);
  102. dini_FloatSet(save,"fA",FCar[v][fa]);
  103. }
  104. return 1;
  105. }
  106.  
  107. stock LoadFCars() {
  108. for(new v=0; v<MAX_FRAKTIONSCARS; v++) {
  109. new save[128];
  110. format(save,sizeof(save),"/FrakCars/%s.fcar",v);
  111. FCar[v][Fraktion] = dini_Int(save,"Fraktion");
  112. FCar[v][fvID] = dini_Int(save,"FVehicleID");
  113. FCar[v][fc1] = dini_Int(save,"Color1");
  114. FCar[v][fc2] = dini_Int(save,"Color2");
  115. FCar[v][fx] = dini_Float(save,"fX");
  116. FCar[v][fy] = dini_Float(save,"fY");
  117. FCar[v][fz] = dini_Float(save,"fZ");
  118. FCar[v][fa] = dini_Float(save,"fA");
  119. }
  120. return 1;
  121. }
  122. /* ------------------------- */
  123. #define Script_Copyright 2012 by Big_Ben
  124. /* ------------------------- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement