Primes007

Easy Attach 1.0

Dec 31st, 2017
1,448
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 17.28 KB | None | 0 0
  1. /*-------------------------------------------------------------------------------------------------------
  2.  
  3. |--[Easy Attach FS by Primes]--|
  4. |
  5. |Relase date:   31/12/2017
  6. |Last Updated:  31/12/2017
  7. |Version:       1.0
  8.  
  9. * Please donot remove the credits.
  10. * This script is provided to public as is without any conditions or agreement.
  11. * You are permitted to edit until and unless you retain the credits.
  12. * You can't re-release the script untill you have got the permission from the real owner (Primes007).
  13.  
  14. -------------------------------------------------------------------------------------------------------*/
  15.  
  16.  
  17. #include <a_samp>   //Thanks to Samp Team
  18. #include <zcmd>     //Thanks to Zeex
  19. #include <sscanf2>  //Thanks to Lord Y_Less
  20.  
  21. new sstr[256],ProjectName[32];
  22. new Float:NudgeVal = 0.05;
  23. new EditOX,EditOY,EditOZ,EditRX,EditRY,EditRZ;
  24.  
  25. new ObjName[][]=
  26. {
  27.     {},
  28.     {"Object 1"},
  29.     {"Object 2"},
  30.     {"Object 3"},
  31.     {"Object 4"},
  32.     {"Object 5"},
  33.     {"Object 6"},
  34.     {"Object 7"},
  35.     {"Object 8"},
  36.     {"Object 9"},
  37.     {"Object 10"}
  38. };
  39.  
  40. enum Obj
  41. {
  42.     Model,
  43.     AT,
  44.     OID,
  45.     Float:OX,
  46.     Float:OY,
  47.     Float:OZ,
  48.     Float:RX,
  49.     Float:RY,
  50.     Float:RZ
  51. };
  52.  
  53. new Objects[11][Obj];
  54.  
  55.  
  56. public OnFilterScriptInit()
  57. {
  58.     print("\n--------------------------------------");
  59.     print(" >>    Easy Attach by Primes   << Loaded");
  60.     print("--------------------------------------\n");
  61.    
  62.     for(new i = 0; i <= 10; i++)
  63.     {
  64.         Objects[i][Model] = 0;
  65.         Objects[i][AT] = 0;
  66.         Objects[i][OID] = 0;
  67.         Objects[i][OX] = 0;
  68.         Objects[i][OY] = 0;
  69.         Objects[i][OZ] = 0;
  70.         Objects[i][RX] = 0;
  71.         Objects[i][RY] = 0;
  72.         Objects[i][RZ] = 0;
  73.     }
  74.    
  75.     new ran = random(9999);
  76.     format(ProjectName,32,"Attachment%d",ran); //In case Project Name is not provided.
  77.    
  78.     SetSVarInt("currobj",-1);
  79.    
  80.     return 1;
  81. }
  82.  
  83. public OnFilterScriptExit()
  84. {
  85.     print("\n--------------------------------------");
  86.     print(">>   Easy Attach by Primes   << Unloaded");
  87.     print("--------------------------------------\n");
  88.    
  89.     DeleteSVar("currobj");
  90.     DeleteSVar("currobjno");
  91.    
  92.     return 1;
  93. }
  94.  
  95. public OnPlayerUpdate(playerid)
  96. {
  97.     if(EditOX || EditOY || EditOZ || EditRX || EditRY || EditRZ)    GetPlayerHoldingKey(playerid);
  98.    
  99.     return 1;
  100. }
  101.  
  102. stock GetPlayerHoldingKey(playerid)
  103. {
  104.     new key,lr,ud;
  105.     new objno = GetSVarInt("currobjno");
  106.    
  107.     GetPlayerKeys(playerid,key,lr,ud);
  108.    
  109.     if(key == KEY_ANALOG_RIGHT)
  110.     {
  111.         if(EditOX)  Objects[objno][OX] += NudgeVal;
  112.         else if(EditOY) Objects[objno][OY] += NudgeVal;
  113.         else if(EditOZ) Objects[objno][OZ] += NudgeVal;
  114.         else if(EditRX) Objects[objno][RX] += NudgeVal;
  115.         else if(EditRY) Objects[objno][RY] += NudgeVal;
  116.         else if(EditRZ) Objects[objno][RZ] += NudgeVal;
  117.     }
  118.     else if(key == KEY_YES)
  119.     {
  120.         if(EditOX)  Objects[objno][OX] += NudgeVal;
  121.         else if(EditOY) Objects[objno][OY] += NudgeVal;
  122.         else if(EditOZ) Objects[objno][OZ] += NudgeVal;
  123.         else if(EditRX) Objects[objno][RX] += NudgeVal;
  124.         else if(EditRY) Objects[objno][RY] += NudgeVal;
  125.         else if(EditRZ) Objects[objno][RZ] += NudgeVal;
  126.     }
  127.     else if(key == KEY_ANALOG_LEFT)
  128.     {
  129.         if(EditOX)  Objects[objno][OX] -= NudgeVal;
  130.         else if(EditOY) Objects[objno][OY] -= NudgeVal;
  131.         else if(EditOZ) Objects[objno][OZ] -= NudgeVal;
  132.         else if(EditRX) Objects[objno][RX] -= NudgeVal;
  133.         else if(EditRY) Objects[objno][RY] -= NudgeVal;
  134.         else if(EditRZ) Objects[objno][RZ] -= NudgeVal;
  135.     }
  136.     else if(key == KEY_NO)
  137.     {
  138.         if(EditOX)  Objects[objno][OX] -= NudgeVal;
  139.         else if(EditOY) Objects[objno][OY] -= NudgeVal;
  140.         else if(EditOZ) Objects[objno][OZ] -= NudgeVal;
  141.         else if(EditRX) Objects[objno][RX] -= NudgeVal;
  142.         else if(EditRY) Objects[objno][RY] -= NudgeVal;
  143.         else if(EditRZ) Objects[objno][RZ] -= NudgeVal;
  144.     }
  145.     else if(key == KEY_SECONDARY_ATTACK)
  146.     {
  147.         EditOX = 0;
  148.         EditOY = 0;
  149.         EditOZ = 0;
  150.         EditRX = 0;
  151.         EditRY = 0;
  152.         EditRZ = 0;
  153.         ShowPlayerDialog(playerid,20004,DIALOG_STYLE_LIST,"Edit Position","Edit X\nEdit Y\nEdit Z\nEdit X Rotation\nEdit Y Rotation\nEdit Z Rotation\nNudge Value","Select","Back");
  154.     }
  155.     else if(key == KEY_SUBMISSION)
  156.     {
  157.         EditOX = 0;
  158.         EditOY = 0;
  159.         EditOZ = 0;
  160.         EditRX = 0;
  161.         EditRY = 0;
  162.         EditRZ = 0;
  163.         ShowPlayerDialog(playerid,20004,DIALOG_STYLE_LIST,"Edit Position","Edit X\nEdit Y\nEdit Z\nEdit X Rotation\nEdit Y Rotation\nEdit Z Rotation\nNudge Value","Select","Back");
  164.     }
  165.    
  166.     if(Objects[objno][AT] == 1) AttachObjectToPlayer(Objects[objno][OID],playerid,Objects[objno][OX],Objects[objno][OY],Objects[objno][OZ],Objects[objno][RX],Objects[objno][RY],Objects[objno][RZ]);
  167.     else if(Objects[objno][AT] == 2)   AttachObjectToVehicle(Objects[objno][OID],GetPlayerVehicleID(playerid),Objects[objno][OX],Objects[objno][OY],Objects[objno][OZ],Objects[objno][RX],Objects[objno][RY],Objects[objno][RZ]);
  168.    
  169.     return 1;
  170. }
  171.    
  172.  
  173. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  174. {
  175.     switch(dialogid)
  176.     {
  177.         case 20001:
  178.         {
  179.             if(response)
  180.             {
  181.                 switch(listitem)
  182.                 {
  183.                     case 0:
  184.                     {
  185.                         ShowPlayerDialog(playerid,20002,DIALOG_STYLE_INPUT,"Enter project name","The final file will be created in the scriptfiles folder with this name:","Ok","");
  186.                         return 1;
  187.                     }
  188.                     case 1:
  189.                     {
  190.                         sstr = "";
  191.                         for(new i = 1; i <= 10; i++)
  192.                         {
  193.                             if(Objects[i][Model] == 0) strcat(sstr,"+");
  194.                             else    strcat(sstr,ObjName[i]);
  195.                             strcat(sstr,"\n");
  196.                         }
  197.                         ShowPlayerDialog(playerid,20003,DIALOG_STYLE_LIST,"Objects",sstr,"Select","Back");
  198.                         return 1;
  199.                     }
  200.                     case 2:
  201.                     {
  202.                         if(GetSVarInt("currobj") == -1)
  203.                         {
  204.                             sstr = "";
  205.                             for(new i = 1; i <= 10; i++)
  206.                             {
  207.                                 if(Objects[i][Model] == 0) strcat(sstr,"+");
  208.                                 else    strcat(sstr,ObjName[i]);
  209.                                 strcat(sstr,"\n");
  210.                             }
  211.                             ShowPlayerDialog(playerid,20003,DIALOG_STYLE_LIST,"Objects",sstr,"Select","Back");
  212.                             return SendClientMessage(playerid,0xFFFFFFC8,"{ffffff}No object selected!");
  213.                         }
  214.                         if(GetPlayerState(playerid) ==  PLAYER_STATE_ONFOOT)
  215.                         {
  216.                             AttachObjectToPlayer(Objects[GetSVarInt("currobjno")][OID],playerid,0,0,1.5,0,0,0);
  217.                             Objects[GetSVarInt("currobjno")][OZ] = 1.5;
  218.                             Objects[GetSVarInt("currobjno")][AT] = 1;
  219.                             ShowPlayerDialog(playerid,20004,DIALOG_STYLE_LIST,"Edit Position","Edit X\nEdit Y\nEdit Z\nEdit X Rotation\nEdit Y Rotation\nEdit Z Rotation\nNudge Value","Select","Back");
  220.                         }
  221.                         else
  222.                         {
  223.                             SendClientMessage(playerid,0xFFFFFFC8,"{ffffff}You must be {61c5dd}on foot {ffffff}to do this");
  224.                             ShowPlayerDialog(playerid,20001,DIALOG_STYLE_LIST,"Menu","Project Name\nObjects\nAttach To Player\nAttach To Vehicle\nDestroy Object\nSave","Select","Cancel");
  225.                         }
  226.                         return 1;
  227.                     }
  228.                     case 3:
  229.                     {
  230.                         if(GetSVarInt("currobj") == -1)
  231.                         {
  232.                             sstr = "";
  233.                             for(new i = 1; i <= 10; i++)
  234.                             {
  235.                                 if(Objects[i][Model] == 0) strcat(sstr,"+");
  236.                                 else    strcat(sstr,ObjName[i]);
  237.                                 strcat(sstr,"\n");
  238.                             }
  239.                             ShowPlayerDialog(playerid,20003,DIALOG_STYLE_LIST,"Objects",sstr,"Select","Back");
  240.                             return SendClientMessage(playerid,0xFFFFFFC8,"No object selected");
  241.                         }
  242.                         if(IsPlayerInAnyVehicle(playerid))
  243.                         {
  244.                             new Float:opos[3],Float:vpos[3];
  245.                             new Float:ox,Float:oy,Float:oz;
  246.                             GetObjectPos(GetSVarInt("currobj"),opos[0],opos[1],opos[2]);
  247.                             GetVehiclePos(GetPlayerVehicleID(playerid),vpos[0],vpos[1],vpos[2]);
  248.                             ox = opos[0] - vpos[0];
  249.                             oy = opos[1] - vpos[1];
  250.                             oz = opos[2] - vpos[2];
  251.                             Objects[GetSVarInt("currobjno")][AT] = 2;
  252.                             Objects[GetSVarInt("currobjno")][OX] = ox;
  253.                             Objects[GetSVarInt("currobjno")][OY] = oy;
  254.                             Objects[GetSVarInt("currobjno")][OZ] = oz;
  255.                             AttachObjectToVehicle(Objects[GetSVarInt("currobjno")][OID],GetPlayerVehicleID(playerid),ox,oy,oz,0,0,0);
  256.                             ShowPlayerDialog(playerid,20004,DIALOG_STYLE_LIST,"Edit Position","Edit X\nEdit Y\nEdit Z\nEdit X Rotation\nEdit Y Rotation\nEdit Z Rotation\nNudge Value","Select","Back");
  257.                         }
  258.                         else
  259.                         {
  260.                             SendClientMessage(playerid,0xFFFFFFC8,"{ffffff}You must be {61c5dd}in a vehicle {ffffff}to do this");
  261.                             ShowPlayerDialog(playerid,20001,DIALOG_STYLE_LIST,"Menu","Project Name\nObjects\nAttach To Player\nAttach To Vehicle\nDestroy Object\nSave","Select","Cancel");
  262.                         }
  263.                         return 1;
  264.                     }
  265.                     case 4:
  266.                     {
  267.                         sstr = "";
  268.                         for(new i = 1; i <= 10; i++)
  269.                         {
  270.                             if(Objects[i][Model] != 0) strcat(sstr,ObjName[i]);
  271.                             else strcat(sstr,"-");
  272.                             strcat(sstr,"\n");
  273.                         }
  274.                         ShowPlayerDialog(playerid,20005,DIALOG_STYLE_LIST,"Delete Object",sstr,"Delete","Back");
  275.                         return 1;
  276.                     }
  277.                     case 5:
  278.                     {
  279.                         new path[128];
  280.                         format(path, 128, "%s.pwn", ProjectName);
  281.                         new File:file = fopen(path,io_readwrite);
  282.                         for(new i = 1; i<=10; i++)
  283.                         {
  284.                             if(Objects[i][Model] != 0 && Objects[i][AT] == 1)
  285.                             {
  286.                                 format(sstr,256,"AttachObjectToPlayer(%d,playerid,%f,%f,%f,%f,%f,%f); //%s\r\n",Objects[i][Model],Objects[i][OX],Objects[i][OY],Objects[i][OZ],Objects[i][RX],Objects[i][RY],Objects[i][RZ],ObjName[i]);
  287.                                 fwrite(file,sstr);
  288.                             }
  289.                             else if(Objects[i][Model] != 0 && Objects[i][AT] == 2)
  290.                             {
  291.                                 format(sstr,256,"AttachObjectToVehicle(%d,vehicleid,%f,%f,%f,%f,%f,%f); //%s\r\n",Objects[i][Model],Objects[i][OX],Objects[i][OY],Objects[i][OZ],Objects[i][RX],Objects[i][RY],Objects[i][RZ],ObjName[i]);
  292.                                 fwrite(file,sstr);
  293.                             }
  294.                         }
  295.                         fwrite(file,"\r\n\r\n/* > Created through Easy Attach by Primes < */");
  296.                         fclose(file);
  297.                         format(sstr,256,"{ffffff}Project exported as {61c5dd}%s{ffffff}. You can find the file in your {61c5dd}scriptfiles {ffffff}folder.",path);
  298.                         SendClientMessage(playerid,0xFFFFFFC8,sstr);
  299.                         return 1;
  300.                     }
  301.                 }
  302.             }
  303.             else return 0;
  304.         }
  305.         case 20002:
  306.         {
  307.             if(response)
  308.             {
  309.                 format(ProjectName,sizeof(ProjectName),"%s",inputtext);
  310.                 return ShowPlayerDialog(playerid,20001,DIALOG_STYLE_LIST,"Menu","Project Name\nObjects\nAttach To Player\nAttach To Vehicle\nDestroy Object\nSave","Select","Cancel");
  311.             }
  312.             else return ShowPlayerDialog(playerid,20001,DIALOG_STYLE_LIST,"Menu","Project Name\nObjects\nAttach To Player\nAttach To Vehicle\nDestroy Object\nSave","Select","Cancel");
  313.         }
  314.         case 20003:
  315.         {
  316.             if(response)
  317.             {
  318.                 if(Objects[listitem+1][Model] == 0) ShowPlayerDialog(playerid,20006,DIALOG_STYLE_INPUT,"Object Model","Enter Object Model ID and desired Name for the object:\n\nSyntax: [ObjectID] <space> [DesiredName]\nExample: 1468 GreenBottle","Ok","");
  319.                 else
  320.                 {
  321.                     SetSVarInt("currobj",Objects[listitem+1][OID]);
  322.                     SetSVarInt("currobjno",listitem+1);
  323.                     SendClientMessage(playerid,0xFFFFFFC8,"{ffffff}Object Selected!");
  324.                     if(Objects[listitem+1][AT] == 0) ShowPlayerDialog(playerid,20001,DIALOG_STYLE_LIST,"Menu","Project Name\nObjects\nAttach To Player\nAttach To Vehicle\nDestroy Object\nSave","Select","Cancel");
  325.                     else ShowPlayerDialog(playerid,20004,DIALOG_STYLE_LIST,"Edit Position","Edit X\nEdit Y\nEdit Z\nEdit X Rotation\nEdit Y Rotation\nEdit Z Rotation\nNudge Value","Select","Back");
  326.                 }
  327.             }
  328.             else    ShowPlayerDialog(playerid,20001,DIALOG_STYLE_LIST,"Menu","Project Name\nObjects\nAttach To Player\nAttach To Vehicle\nDestroy Object\nSave","Select","Cancel");
  329.             return 1;
  330.         }
  331.         case 20004:
  332.         {
  333.             if(response)
  334.             {
  335.                 switch(listitem)
  336.                 {
  337.                     case 0: EditOX = 1;
  338.                     case 1: EditOY = 1;
  339.                     case 2: EditOZ = 1;
  340.                     case 3: EditRX = 1;
  341.                     case 4: EditRY = 1;
  342.                     case 5: EditRZ = 1;
  343.                     case 6: ShowPlayerDialog(playerid,20007,DIALOG_STYLE_INPUT,"Nudge Value","Enter the value by which you want to increment the object movement:\n\nIdeal value for Offset: 0.05\nIdeal value for Rotation: 0.5","Set","Cancel");
  344.                 }
  345.                 if(listitem != 6)
  346.                 {
  347.                     if(!IsPlayerInAnyVehicle(playerid))
  348.                     {
  349.                         SendClientMessage(playerid,0xFFFFFFC8,"{ffffff}Press   {61c5dd}~k~~VEHICLE_TURRETLEFT~   {ffffff}and   {61c5dd}~k~~VEHICLE_TURRETRIGHT~   {ffffff}to move the object");
  350.                         SendClientMessage(playerid,0xFFFFFFC8,"{ffffff}Press   ~k~~VEHICLE_ENTER_EXIT~   {ffffff}to finish editing");
  351.                     }
  352.                     else
  353.                     {
  354.                         SendClientMessage(playerid,0xFFFFFFC8,"{ffffff}Press   {61c5dd}~k~~CONVERSATION_YES~   {ffffff}and   {61c5dd}~k~~CONVERSATION_NO~   {ffffff}to move the object");
  355.                         SendClientMessage(playerid,0xFFFFFFC8,"{ffffff}Press   {61c5dd}~k~~TOGGLE_SUBMISSIONS~   {ffffff}to finish editing");
  356.                     }
  357.                 }
  358.             }
  359.             else
  360.             {
  361.                 sstr = "";
  362.                 for(new i = 1; i <= 10; i++)
  363.                 {
  364.                     if(Objects[i][Model] == 0) strcat(sstr,"+");
  365.                     else    strcat(sstr,ObjName[i]);
  366.                     strcat(sstr,"\n");
  367.                 }
  368.                 return ShowPlayerDialog(playerid,20003,DIALOG_STYLE_LIST,"Objects",sstr,"Select","Back");
  369.             }
  370.         }
  371.         case 20005:
  372.         {
  373.             if(response)
  374.             {
  375.                 if(Objects[listitem+1][Model] != 0)
  376.                 {
  377.                     Objects[listitem+1][Model] = 0;
  378.                     Objects[listitem+1][AT] = 0;
  379.                     Objects[listitem+1][OX] = 0;
  380.                     Objects[listitem+1][OY] = 0;
  381.                     Objects[listitem+1][OZ] = 0;
  382.                     Objects[listitem+1][RX] = 0;
  383.                     Objects[listitem+1][RY] = 0;
  384.                     Objects[listitem+1][RZ] = 0;
  385.                     DestroyObject(Objects[listitem+1][OID]);
  386.                     Objects[listitem+1][OID] = 0;
  387.                     format(sstr,256,"Object %d",listitem+1);
  388.                     format(ObjName[listitem+1],256,"%s",sstr);
  389.                     sstr = "";
  390.                     for(new i = 1; i <= 10; i++)
  391.                     {
  392.                         if(Objects[i][Model] != 0) strcat(sstr,ObjName[i]);
  393.                         else strcat(sstr,"-");
  394.                         strcat(sstr,"\n");
  395.                     }
  396.                     ShowPlayerDialog(playerid,20005,DIALOG_STYLE_LIST,"Delete Object",sstr,"Delete","Back");
  397.                 }
  398.                 else
  399.                 {
  400.                     SendClientMessage(playerid,0xFFFFFFC8,"{ffffff}No object is created for that slot");
  401.                     sstr = "";
  402.                     for(new i = 1; i <= 10; i++)
  403.                     {
  404.                         if(Objects[i][Model] != 0) strcat(sstr,ObjName[i]);
  405.                         else strcat(sstr,"-");
  406.                         strcat(sstr,"\n");
  407.                     }
  408.                     ShowPlayerDialog(playerid,20005,DIALOG_STYLE_LIST,"Delete Object",sstr,"Delete","Back");
  409.                 }
  410.             }
  411.             else ShowPlayerDialog(playerid,20001,DIALOG_STYLE_LIST,"Menu","Project Name\nObjects\nAttach To Player\nAttach To Vehicle\nDestroy Object\nSave","Select","Cancel");
  412.             return 1;
  413.         }
  414.         case 20006:
  415.         {
  416.             new objno;
  417.             for(new i = 1; i <= 10; i++)
  418.             {
  419.                 if(Objects[i][Model] == 0)
  420.                 {
  421.                     objno = i;
  422.                     break;
  423.                 }
  424.             }
  425.             if(sscanf(inputtext,"is[32]",Objects[objno][Model],ObjName[objno]))
  426.             {
  427.                 Objects[objno][Model] = 0;
  428.                 format(ObjName[objno],32,"Object %d",objno);
  429.                 SendClientMessage(playerid,0xFFFFFFC8,"{ffffff}Invalid Format!");
  430.                 return ShowPlayerDialog(playerid,20006,DIALOG_STYLE_INPUT,"Object Model","Enter Object Model ID:\n\nSyntax: [ObjectID] <space> [DesiredName]\nExample: 1468 GreenBottle","Ok","");
  431.             }
  432.             else
  433.             {
  434.                 new Float:pos[3];
  435.                 GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
  436.                 Objects[objno][OID] = CreateObject(Objects[objno][Model],pos[0],pos[1],pos[2]+2,0.0,0.0,0.0,0);
  437.                 format(sstr,126,"{ffffff}Created Object ID: {61c5dd}%d",Objects[objno][OID]);
  438.                 SendClientMessageToAll(0xFFFFFFC8,sstr);
  439.                 sstr = "";
  440.                 for(new i = 1; i <= 10; i++)
  441.                 {
  442.                     if(Objects[i][Model] == 0) strcat(sstr,"+");
  443.                     else    strcat(sstr,ObjName[i]);
  444.                     strcat(sstr,"\n");
  445.                 }
  446.                 ShowPlayerDialog(playerid,20003,DIALOG_STYLE_LIST,"Objects",sstr,"Select","Back");
  447.                 return 1;
  448.             }
  449.         }
  450.         case 20007:
  451.         {
  452.             if(response)
  453.             {
  454.                 if(sscanf(inputtext,"f",NudgeVal))
  455.                 {
  456.                     SendClientMessage(playerid,0xFFFFFFC8,"{61c5dd}Nudge Value {ffffff}must be a {61c5dd}number{ffffff}. {61c5dd}Note: {ffffff}Float values also possible(Eg: 0.005)");
  457.                     return ShowPlayerDialog(playerid,20007,DIALOG_STYLE_INPUT,"Nudge Value","Enter the value by which you want to increment the object movement:\n\nIdeal value for Offset: 0.05\nIdeal value for Rotation: 0.5","Set","Cancel");
  458.                 }
  459.                 return ShowPlayerDialog(playerid,20004,DIALOG_STYLE_LIST,"Edit Position","Edit X\nEdit Y\nEdit Z\nEdit X Rotation\nEdit Y Rotation\nEdit Z Rotation\nNudge Value","Select","Back");
  460.             }
  461.             else return ShowPlayerDialog(playerid,20004,DIALOG_STYLE_LIST,"Edit Position","Edit X\nEdit Y\nEdit Z\nEdit X Rotation\nEdit Y Rotation\nEdit Z Rotation\nNudge Value","Select","Back");
  462.         }
  463.     }
  464.     return 0;
  465. }
  466.  
  467. CMD:ea(playerid)
  468. {
  469.     if(IsPlayerAdmin(playerid)) return ShowPlayerDialog(playerid,20001,DIALOG_STYLE_LIST,"Menu","Project Name\nObjects\nAttach To Player\nAttach To Vehicle\nDestroy Object\nSave","Select","Cancel");
  470.     else return 0;
  471. }
  472.  
  473. CMD:v(playerid,params[])
  474. {
  475.     if(IsPlayerAdmin(playerid))
  476.     {
  477.         new vid;
  478.         if(sscanf(params,"i",vid) || (vid < 400 || vid > 611)) return SendClientMessage(playerid,0xFFFFFFC8,"Please enter a valid vehicle id. {61c5dd}(400-611)");
  479.         new Float:pos[4];
  480.         GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
  481.         GetPlayerFacingAngle(playerid,pos[3]);
  482.         PutPlayerInVehicle(playerid,CreateVehicle(vid,pos[0],pos[1],pos[2],pos[3],-1,-1,0,0),0);
  483.         SendClientMessage(playerid,0xFFFFFFC8,"Vehicle Spawned!");
  484.         return 1;
  485.     }
  486.     else return 0;
  487. }
Add Comment
Please, Sign In to add comment