|
|
- //-------------------------------------------------
- //
- // This is an example of using the EditAttachedObject functions
- // to allow the player to customize their character.
- //
- // h02 2012
- //
- // SA-MP 0.3e and above
- //
- //-------------------------------------------------
-
- #include <a_samp>
-
- #define DIALOG_ATTACH_INDEX 13500
- #define DIALOG_ATTACH_INDEX_SELECTION DIALOG_ATTACH_INDEX+1
- #define DIALOG_ATTACH_EDITREPLACE DIALOG_ATTACH_INDEX+2
- #define DIALOG_ATTACH_MODEL_SELECTION DIALOG_ATTACH_INDEX+3
- #define DIALOG_ATTACH_BONE_SELECTION DIALOG_ATTACH_INDEX+4
-
- enum AttachmentEnum
- {
- attachmodel,
- attachname[24]
- }
-
- new AttachmentObjects[][AttachmentEnum] = {
- {18632, "FishingRod"},
- {18633, "GTASAWrench1"},
- {18634, "GTASACrowbar1"},
- {18635, "GTASAHammer1"},
- {18636, "PoliceCap1"},
- {18637, "PoliceShield1"},
- {18638, "HardHat1"},
- {18639, "BlackHat1"},
- {18640, "Hair1"},
- {18975, "Hair2"},
- {19136, "Hair4"},
- {19274, "Hair5"},
- {18641, "Flashlight1"},
- {18642, "Taser1"},
- {18643, "LaserPointer1"},
- {19080, "LaserPointer2"},
- {19081, "LaserPointer3"},
- {19082, "LaserPointer4"},
- {19083, "LaserPointer5"},
- {19084, "LaserPointer6"},
- {18644, "Screwdriver1"},
- {18645, "MotorcycleHelmet1"},
- {18865, "MobilePhone1"},
- {18866, "MobilePhone2"},
- {18867, "MobilePhone3"},
- {18868, "MobilePhone4"},
- {18869, "MobilePhone5"},
- {18870, "MobilePhone6"},
- {18871, "MobilePhone7"},
- {18872, "MobilePhone8"},
- {18873, "MobilePhone9"},
- {18874, "MobilePhone10"},
- {18875, "Pager1"},
- {18890, "Rake1"},
- {18891, "Bandana1"},
- {18892, "Bandana2"},
- {18893, "Bandana3"},
- {18894, "Bandana4"},
- {18895, "Bandana5"},
- {18896, "Bandana6"},
- {18897, "Bandana7"},
- {18898, "Bandana8"},
- {18899, "Bandana9"},
- {18900, "Bandana10"},
- {18901, "Bandana11"},
- {18902, "Bandana12"},
- {18903, "Bandana13"},
- {18904, "Bandana14"},
- {18905, "Bandana15"},
- {18906, "Bandana16"},
- {18907, "Bandana17"},
- {18908, "Bandana18"},
- {18909, "Bandana19"},
- {18910, "Bandana20"},
- {18911, "Mask1"},
- {18912, "Mask2"},
- {18913, "Mask3"},
- {18914, "Mask4"},
- {18915, "Mask5"},
- {18916, "Mask6"},
- {18917, "Mask7"},
- {18918, "Mask8"},
- {18919, "Mask9"},
- {18920, "Mask10"},
- {18921, "Beret1"},
- {18922, "Beret2"},
- {18923, "Beret3"},
- {18924, "Beret4"},
- {18925, "Beret5"},
- {18926, "Hat1"},
- {18927, "Hat2"},
- {18928, "Hat3"},
- {18929, "Hat4"},
- {18930, "Hat5"},
- {18931, "Hat6"},
- {18932, "Hat7"},
- {18933, "Hat8"},
- {18934, "Hat9"},
- {18935, "Hat10"},
- {18936, "Helmet1"},
- {18937, "Helmet2"},
- {18938, "Helmet3"},
- {18939, "CapBack1"},
- {18940, "CapBack2"},
- {18941, "CapBack3"},
- {18942, "CapBack4"},
- {18943, "CapBack5"},
- {18944, "HatBoater1"},
- {18945, "HatBoater2"},
- {18946, "HatBoater3"},
- {18947, "HatBowler1"},
- {18948, "HatBowler2"},
- {18949, "HatBowler3"},
- {18950, "HatBowler4"},
- {18951, "HatBowler5"},
- {18952, "BoxingHelmet1"},
- {18953, "CapKnit1"},
- {18954, "CapKnit2"},
- {18955, "CapOverEye1"},
- {18956, "CapOverEye2"},
- {18957, "CapOverEye3"},
- {18958, "CapOverEye4"},
- {18959, "CapOverEye5"},
- {18960, "CapRimUp1"},
- {18961, "CapTrucker1"},
- {18962, "CowboyHat2"},
- {18963, "CJElvisHead"},
- {18964, "SkullyCap1"},
- {18965, "SkullyCap2"},
- {18966, "SkullyCap3"},
- {18967, "HatMan1"},
- {18968, "HatMan2"},
- {18969, "HatMan3"},
- {18970, "HatTiger1"},
- {18971, "HatCool1"},
- {18972, "HatCool2"},
- {18973, "HatCool3"},
- {18974, "MaskZorro1"},
- {18976, "MotorcycleHelmet2"},
- {18977, "MotorcycleHelmet3"},
- {18978, "MotorcycleHelmet4"},
- {18979, "MotorcycleHelmet5"},
- {19006, "GlassesType1"},
- {19007, "GlassesType2"},
- {19008, "GlassesType3"},
- {19009, "GlassesType4"},
- {19010, "GlassesType5"},
- {19011, "GlassesType6"},
- {19012, "GlassesType7"},
- {19013, "GlassesType8"},
- {19014, "GlassesType9"},
- {19015, "GlassesType10"},
- {19016, "GlassesType11"},
- {19017, "GlassesType12"},
- {19018, "GlassesType13"},
- {19019, "GlassesType14"},
- {19020, "GlassesType15"},
- {19021, "GlassesType16"},
- {19022, "GlassesType17"},
- {19023, "GlassesType18"},
- {19024, "GlassesType19"},
- {19025, "GlassesType20"},
- {19026, "GlassesType21"},
- {19027, "GlassesType22"},
- {19028, "GlassesType23"},
- {19029, "GlassesType24"},
- {19030, "GlassesType25"},
- {19031, "GlassesType26"},
- {19032, "GlassesType27"},
- {19033, "GlassesType28"},
- {19034, "GlassesType29"},
- {19035, "GlassesType30"},
- {19036, "HockeyMask1"},
- {19037, "HockeyMask2"},
- {19038, "HockeyMask3"},
- {19039, "WatchType1"},
- {19040, "WatchType2"},
- {19041, "WatchType3"},
- {19042, "WatchType4"},
- {19043, "WatchType5"},
- {19044, "WatchType6"},
- {19045, "WatchType7"},
- {19046, "WatchType8"},
- {19047, "WatchType9"},
- {19048, "WatchType10"},
- {19049, "WatchType11"},
- {19050, "WatchType12"},
- {19051, "WatchType13"},
- {19052, "WatchType14"},
- {19053, "WatchType15"},
- {19085, "EyePatch1"},
- {19086, "ChainsawDildo1"},
- {19090, "PomPomBlue"},
- {19091, "PomPomRed"},
- {19092, "PomPomGreen"},
- {19093, "HardHat2"},
- {19094, "BurgerShotHat1"},
- {19095, "CowboyHat1"},
- {19096, "CowboyHat3"},
- {19097, "CowboyHat4"},
- {19098, "CowboyHat5"},
- {19099, "PoliceCap2"},
- {19100, "PoliceCap3"},
- {19101, "ArmyHelmet1"},
- {19102, "ArmyHelmet2"},
- {19103, "ArmyHelmet3"},
- {19104, "ArmyHelmet4"},
- {19105, "ArmyHelmet5"},
- {19106, "ArmyHelmet6"},
- {19107, "ArmyHelmet7"},
- {19108, "ArmyHelmet8"},
- {19109, "ArmyHelmet9"},
- {19110, "ArmyHelmet10"},
- {19111, "ArmyHelmet11"},
- {19112, "ArmyHelmet12"},
- {19113, "SillyHelmet1"},
- {19114, "SillyHelmet2"},
- {19115, "SillyHelmet3"},
- {19116, "PlainHelmet1"},
- {19117, "PlainHelmet2"},
- {19118, "PlainHelmet3"},
- {19119, "PlainHelmet4"},
- {19120, "PlainHelmet5"},
- {19137, "CluckinBellHat1"},
- {19138, "PoliceGlasses1"},
- {19139, "PoliceGlasses2"},
- {19140, "PoliceGlasses3"},
- {19141, "SWATHelmet1"},
- {19142, "SWATArmour1"},
- {19160, "HardHat3"},
- {19161, "PoliceHat1"},
- {19162, "PoliceHat2"},
- {19163, "GimpMask1"},
- {19317, "bassguitar01"},
- {19318, "flyingv01"},
- {19319, "warlock01"},
- {19330, "fire_hat01"},
- {19331, "fire_hat02"},
- {19346, "hotdog01"},
- {19347, "badge01"},
- {19348, "cane01"},
- {19349, "monocle01"},
- {19350, "moustache01"},
- {19351, "moustache02"},
- {19352, "tophat01"},
- {19487, "tophat02"},
- {19488, "HatBowler6"},
- {19513, "whitephone"},
- {19578, "Banana"},
- {19418, "HandCuff"}
- };
-
- new AttachmentBones[][24] = {
- {"Spine"},
- {"Head"},
- {"Left upper arm"},
- {"Right upper arm"},
- {"Left hand"},
- {"Right hand"},
- {"Left thigh"},
- {"Right thigh"},
- {"Left foot"},
- {"Right foot"},
- {"Right calf"},
- {"Left calf"},
- {"Left forearm"},
- {"Right forearm"},
- {"Left clavicle"},
- {"Right clavicle"},
- {"Neck"},
- {"Jaw"}
- };
-
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if(!strcmp(cmdtext, "/attachments", true))
- {
- new string[128];
- for(new x;x<MAX_PLAYER_ATTACHED_OBJECTS;x++)
- {
- if(IsPlayerAttachedObjectSlotUsed(playerid, x)) format(string, sizeof(string), "%s%d (Used)\n", string, x);
- else format(string, sizeof(string), "%s%d\n", string, x);
- }
- ShowPlayerDialog(playerid, DIALOG_ATTACH_INDEX_SELECTION, DIALOG_STYLE_LIST, \
- "{FF0000}Attachment Modification - Index Selection", string, "Select", "Cancel");
- return 1;
- }
- return 0;
- }
-
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- switch(dialogid)
- {
- case DIALOG_ATTACH_INDEX_SELECTION:
- {
- if(response)
- {
- if(IsPlayerAttachedObjectSlotUsed(playerid, listitem))
- {
- ShowPlayerDialog(playerid, DIALOG_ATTACH_EDITREPLACE, DIALOG_STYLE_MSGBOX, \
- "{FF0000}Attachment Modification", "Do you wish to edit the attachment in that slot, or delete it?", "Edit", "Delete");
- }
- else
- {
- new string[4000+1];
- for(new x;x<sizeof(AttachmentObjects);x++)
- {
- format(string, sizeof(string), "%s%s\n", string, AttachmentObjects[x][attachname]);
- }
- ShowPlayerDialog(playerid, DIALOG_ATTACH_MODEL_SELECTION, DIALOG_STYLE_LIST, \
- "{FF0000}Attachment Modification - Model Selection", string, "Select", "Cancel");
- }
- SetPVarInt(playerid, "AttachmentIndexSel", listitem);
- }
- return 1;
- }
- case DIALOG_ATTACH_EDITREPLACE:
- {
- if(response) EditAttachedObject(playerid, GetPVarInt(playerid, "AttachmentIndexSel"));
- else RemovePlayerAttachedObject(playerid, GetPVarInt(playerid, "AttachmentIndexSel"));
- DeletePVar(playerid, "AttachmentIndexSel");
- return 1;
- }
- case DIALOG_ATTACH_MODEL_SELECTION:
- {
- if(response)
- {
- if(GetPVarInt(playerid, "AttachmentUsed") == 1) EditAttachedObject(playerid, listitem);
- else
- {
- SetPVarInt(playerid, "AttachmentModelSel", AttachmentObjects[listitem][attachmodel]);
- new string[256+1];
- for(new x;x<sizeof(AttachmentBones);x++)
- {
- format(string, sizeof(string), "%s%s\n", string, AttachmentBones[x]);
- }
- ShowPlayerDialog(playerid, DIALOG_ATTACH_BONE_SELECTION, DIALOG_STYLE_LIST, \
- "{FF0000}Attachment Modification - Bone Selection", string, "Select", "Cancel");
- }
- }
- else DeletePVar(playerid, "AttachmentIndexSel");
- return 1;
- }
- case DIALOG_ATTACH_BONE_SELECTION:
- {
- if(response)
- {
- SetPlayerAttachedObject(playerid, GetPVarInt(playerid, "AttachmentIndexSel"), GetPVarInt(playerid, "AttachmentModelSel"), listitem+1);
- EditAttachedObject(playerid, GetPVarInt(playerid, "AttachmentIndexSel"));
- SendClientMessage(playerid, 0xFFFFFFFF, "Hint: Use {FFFF00}~k~~PED_SPRINT~{FFFFFF} to look around.");
- }
- DeletePVar(playerid, "AttachmentIndexSel");
- DeletePVar(playerid, "AttachmentModelSel");
- return 1;
- }
- }
- return 0;
- }
-
- public OnPlayerEditAttachedObject( playerid, response, index, modelid, boneid,
- Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ,
- Float:fRotX, Float:fRotY, Float:fRotZ,
- Float:fScaleX, Float:fScaleY, Float:fScaleZ )
- {
- new debug_string[256+1];
- format(debug_string,256,"SetPlayerAttachedObject(playerid,%d,%d,%d,%f,%f,%f,%f,%f,%f,%f,%f,%f)",
- index,modelid,boneid,fOffsetX,fOffsetY,fOffsetZ,fRotX,fRotY,fRotZ,fScaleX,fScaleY,fScaleZ);
-
- print(debug_string);
- SendClientMessage(playerid, 0xFFFFFFFF, debug_string);
-
- SetPlayerAttachedObject(playerid,index,modelid,boneid,fOffsetX,fOffsetY,fOffsetZ,fRotX,fRotY,fRotZ,fScaleX,fScaleY,fScaleZ);
- SendClientMessage(playerid, 0xFFFFFFFF, "You finished editing an attached object");
-
- return 1;
- }
|