Attach Objects error [reps+]
#1

Here is the total script

Код:
//Player Attachments system by Excel
//==============================================================================
#include <a_samp>
#include <mSelection>
#include <sscanf2>
#include <dini>
#include <zcmd>
//==============================================================================
#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
#define DIALOG_ATTACH_OBJECT_SELECTION  DIALOG_ATTACH_INDEX+5
#define DIALOG_ATTACH_OBJECT2_SELECTION DIALOG_ATTACH_INDEX+6
//==============================================================================
#define MAX_OSLOTS  MAX_PLAYER_ATTACHED_OBJECTS
//==============================================================================
#define 	COL_WHITE       "{FFFFFF}"
#define 	COL_BLACK       "{0E0101}"
#define 	COL_GREY        "{C3C3C3}"
#define 	COL_GREEN       "{6EF83C}"
#define 	COL_RED         "{F81414}"
#define 	COL_YELLOW      "{F3FF02}"
#define 	COL_ORANGE      "{FFAF00}"
#define 	COL_LIME        "{B7FF00}"
#define 	COL_CYAN        "{00FFEE}"
#define 	COL_BLUE        "{0049FF}"
#define 	COL_MAGENTA     "{F300FF}"
#define 	COL_VIOLET      "{B700FF}"
#define 	COL_PINK        "{FF00EA}"
#define 	COL_MARONE      "{A90202}"
//==============================================================================
new AttachmentObjectsList[] = {
18632,
18633,
18634,
18635,
18636, 
18637, 
18638,
18639,
18640,
18975,
19136, 
19274, 
18641, 
18642, 
18643,
18644,
18645, 
18865, 
18866,
18867, 
18868, 
18869, 
18870,
18871,
18872, 
18873,
18874, 
18875, 
18890, 
18891,
18892,
18893,
18894, 
18895, 
18896, 
18897, 
18898,
18899, 
18900, 
18901,
18902,
18903, 
18904,
18905, 
18906, 
18907,
18908, 
18909,
18910, 
18911,
18912,
18913,
18914, 
18915, 
18916,
18917, 
18918, 
18919, 
18920,
18921,
18922,
18923,
18924,
18925,
18926,
18927,
18928, 
18929, 
18930, 
18931,
18932,
18933,
18934, 
18935, 
18936, 
18937,
18938, 
18939, 
18940, 
18941, 
18942,
18943, 
18944,
18945,
18946,
18947, 
18948, 
18949, 
18950, 
18951, 
18952, 
18953, 
18954,
18955,
18956,
18957,
18958, 
18959,
18960, 
18961, 
18962, 
18963, 
18964, 
18965, 
18966, 
18967,
18968, 
18969, 
18970, 
18971, 
18972, 
18973, 
18974,
18976,
18977, 
18978,
18979, 
19006, 
19007,
19008, 
19009, 
19010, 
19011, 
19012, 
19013, 
19014, 
19015,
19016, 
19017,
19018,
19019, 
19020,
19021, 
19022, 
19023, 
19024,
19025, 
19026, 
19027,
19028,
19029,
19030, 
19031,
19032, 
19033, 
19034,
19035, 
19036, 
19037,
19038, 
19039,
19040,
19041,
19042,
19043,
19044,
19045, 
19046,
19047,
19048, 
19049,
19050,
19051, 
19052, 
19053,
19085, 
19086, 
19090, 
19091, 
19092, 
19093, 
19094, 
19095, 
19096,
19097, 
19098,
19099,
19100,
19101, 
19102,
19103,
19104, 
19105, 
19106, 
19107, 
19108, 
19109,
19110, 
19111,
19112, 
19113, 
19114, 
19115, 
19116,
19117, 
19118, 
19119, 
19120, 
19137,
19138,
19139, 
19140, 
19141,
19142,
19160, 
19161,
19162, 
19163,
19317, 
19318, 
19319, 
19330,
19331,
19346, 
19347, 
19348, 
19349, 
19350,
19351,
19352,
19487, 
19488, 
19513, 
19515,
331,
333,
334,
335,
336,
337,
338,
339,
341,
321,
322,
323,
324,
325,
326,
343,
346,
347,
348,
349,
350,
351,
352,
353,
355,
356,
372,
357,
358,
361,
363,
364,
365,
366,
367,
368,
369,
371
};
//==============================================================================
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"}
};
//==============================================================================
CMD:o(playerid,params[])
{
	new string[128];
	new dialog[500];
	for(new x;x<MAX_OSLOTS;x++)
	{
        if(IsPlayerAttachedObjectSlotUsed(playerid, x))
		{	format(string, sizeof(string), ""COL_WHITE"Slot:%d :: "COL_GREEN"Used Slot\n", x);    }
		else format(string, sizeof(string), ""COL_WHITE"Slot:%d\n", x);
		strcat(dialog,string);
   	}
   	ShowPlayerDialog(playerid, DIALOG_ATTACH_INDEX_SELECTION, DIALOG_STYLE_LIST,"Player Objects/Attachment: (Select Slot)", dialog, "Select", "Close(X)");
	return 1;
}
CMD:att(playerid,params[])
{
	return cmd_o(playerid,params);
}
CMD:attachments(playerid,params[])
{
	return cmd_o(playerid,params);
}
//==============================================================================
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, \
                    "Player Objects/Attachment: (Delete/Edit)", ""COL_WHITE"Do you wish to edit the attachment in that slot, or delete it?", "Edit(!)", "Delete(X)");
                }
                else
                {
					ShowPlayerDialog(playerid,DIALOG_ATTACH_OBJECT_SELECTION,DIALOG_STYLE_LIST,"Player Objects/Attachment: (Select Object Path)","Path:1 :: "COL_GREY"Server Objects Menu\n"COL_WHITE"Path:2 :: "COL_GREY"Custom Object","Next(>>)","Back(<<)");
     			}
                SetPVarInt(playerid, "AttachmentIndexSel", listitem);
            }
            return 1;
        }
        case DIALOG_ATTACH_OBJECT_SELECTION:
        {
            if(!response)
            {
                cmd_o(playerid,"");
            }
            if(response)
            {
            	if(listitem==0) ShowModelSelectionMenuEx(playerid, AttachmentObjectsList, 228+38, "Player Objects", DIALOG_ATTACH_MODEL_SELECTION, 0.0, 0.0, 0.0, 1.0, 0x00000099, 0x000000EE, 0xACCBF1FF);
            	if(listitem==1) ShowPlayerDialog(playerid,DIALOG_ATTACH_OBJECT2_SELECTION,DIALOG_STYLE_INPUT,"Player Objects/Attachment: (Insert objectid)",""COL_WHITE"Put your custom objectid below, You can also take help from ''http://wiki.sa-mp.com''.","Edit","Back(<<)");
			}
		}
        case DIALOG_ATTACH_OBJECT2_SELECTION:
        {
            if(!response)
            {   ShowPlayerDialog(playerid,DIALOG_ATTACH_OBJECT_SELECTION,DIALOG_STYLE_LIST,"Player Objects/Attachment: (Select Object Path)","Path:1 :: "COL_GREY"Server Objects Menu\n"COL_WHITE"Path:2 :: "COL_GREY"Custom Object","Next(>>)","Back(<<)");    }
			if(response)
			{
				if(!strlen(inputtext))return SendClientMessage(playerid,-1,"PLAYER: You can't leave the coloumn blank."),ShowPlayerDialog(playerid,DIALOG_ATTACH_OBJECT2_SELECTION,DIALOG_STYLE_INPUT,"Player Objects/Attachment: (Insert objectid)",""COL_WHITE"Put your custom objectid below, You can also take help from ''http://wiki.sa-mp.com''.","Edit","Back(<<)");
				if(!IsNumeric(inputtext)) return SendClientMessage(playerid,-1,"PLAYER: You can't fill a object name, only object id's allowed."),ShowPlayerDialog(playerid,DIALOG_ATTACH_OBJECT2_SELECTION,DIALOG_STYLE_INPUT,"Player Objects/Attachment: (Insert objectid)",""COL_WHITE"Put your custom objectid below, You can also take help from ''http://wiki.sa-mp.com''.","Edit","Back(<<)");
				new obj;
			    if(!sscanf(inputtext, "i", obj))
				{
					if(GetPVarInt(playerid, "AttachmentUsed") == 1) EditAttachedObject(playerid, obj);
				    else
				    {
					    SetPVarInt(playerid, "AttachmentModelSel", obj);
					    new string[256+1];
					    new dialog[500];
					    for(new x;x<sizeof(AttachmentBones);x++)
					    {
					     	format(string, sizeof(string), "Bone:%s\n", AttachmentBones[x]);
					     	strcat(dialog,string);
					    }
						ShowPlayerDialog(playerid, DIALOG_ATTACH_BONE_SELECTION, DIALOG_STYLE_LIST, \
					 	"{FF0000}Attachment Modification - Bone Selection", dialog, "Select", "Cancel");
				    }
				}
			}
        }
        case DIALOG_ATTACH_EDITREPLACE:
        {
            if(response) EditAttachedObject(playerid, GetPVarInt(playerid, "AttachmentIndexSel"));
            else
			{
			    RemovePlayerAttachedObject(playerid, GetPVarInt(playerid, "AttachmentIndexSel"));
            	DeletePVar(playerid, "AttachmentIndexSel");
			    new file[256];
			    new name[24];
			    new x=GetPVarInt(playerid, "AttachmentIndexSel");
			    new f1[15],f2[15],f3[15],f4[15],f5[15],f6[15],f7[15],f8[15],f9[15],f10[15],f11[15];
			    GetPlayerName(playerid,name,24);
			    format(file,sizeof(file),"Player Objects/%s.ini",name);
			    if(!dini_Exists(file)) return 1;
			    format(f1,15,"O_Model_%d",x);
			    format(f2,15,"O_Bone_%d",x);
				format(f3,15,"O_OffX_%d",x);
			    format(f4,15,"O_OffY_%d",x);
			    format(f5,15,"O_OffZ_%d",x);
			    format(f6,15,"O_RotX_%d",x);
			    format(f7,15,"O_RotY_%d",x);
			    format(f8,15,"O_RotZ_%d",x);
			    format(f9,15,"O_ScaleX_%d",x);
			    format(f10,15,"O_ScaleY_%d",x);
			    format(f11,15,"O_ScaleZ_%d",x);
			    dini_Unset(file,f1);
			    dini_Unset(file,f2);
			    dini_Unset(file,f3);
			    dini_Unset(file,f4);
			    dini_Unset(file,f5);
			    dini_Unset(file,f6);
			    dini_Unset(file,f7);
			    dini_Unset(file,f8);
			    dini_Unset(file,f9);
			    dini_Unset(file,f10);
			    dini_Unset(file,f11);
            }
			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, "PLAYER: You can also hold SPAWN and use MOUSE to view from either sides.");
            }
            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);*/

    SetPlayerAttachedObject(playerid,index,modelid,boneid,fOffsetX,fOffsetY,fOffsetZ,fRotX,fRotY,fRotZ,fScaleX,fScaleY,fScaleZ);
    SendClientMessage(playerid, 0xFFFFFFFF, "PLAYER: You have finished editing attachments, it has been saved to your database.");

    new file[256];
    new name[24];
    new f1[15],f2[15],f3[15],f4[15],f5[15],f6[15],f7[15],f8[15],f9[15],f10[15],f11[15];
    GetPlayerName(playerid,name,24);
    format(file,sizeof(file),"Player Objects/%s.ini",name);
    if(!dini_Exists(file)) return 1;
    format(f1,15,"O_Model_%d",index);
    format(f2,15,"O_Bone_%d",index);
	format(f3,15,"O_OffX_%d",index);
    format(f4,15,"O_OffY_%d",index);
    format(f5,15,"O_OffZ_%d",index);
    format(f6,15,"O_RotX_%d",index);
    format(f7,15,"O_RotY_%d",index);
    format(f8,15,"O_RotZ_%d",index);
    format(f9,15,"O_ScaleX_%d",index);
    format(f10,15,"O_ScaleY_%d",index);
    format(f11,15,"O_ScaleZ_%d",index);
    dini_IntSet(file,f1,modelid);
    dini_IntSet(file,f2,boneid);
    dini_FloatSet(file,f3,fOffsetX);
    dini_FloatSet(file,f4,fOffsetY);
    dini_FloatSet(file,f5,fOffsetZ);
    dini_FloatSet(file,f6,fRotX);
    dini_FloatSet(file,f7,fRotY);
    dini_FloatSet(file,f8,fRotZ);
    dini_FloatSet(file,f9,fScaleX);
    dini_FloatSet(file,f10,fScaleY);
    dini_FloatSet(file,f11,fScaleZ);
    return 1;
}
//==============================================================================
public OnPlayerConnect(playerid)
{
    new file[256];
    new name[24];
    new f1[15],f2[15],f3[15],f4[15],f5[15],f6[15],f7[15],f8[15],f9[15],f10[15],f11[15];
    GetPlayerName(playerid,name,24);
    format(file,sizeof(file),"Player Objects/%s.ini",name);
	if(!dini_Exists(file))
	{
	    dini_Create(file);
		for(new x;x<MAX_OSLOTS;x++)
		{
		    if(IsPlayerAttachedObjectSlotUsed(playerid, x))
		    {
			    format(f1,15,"O_Model_%d",x);
			    format(f2,15,"O_Bone_%d",x);
				format(f3,15,"O_OffX_%d",x);
			    format(f4,15,"O_OffY_%d",x);
			    format(f5,15,"O_OffZ_%d",x);
			    format(f6,15,"O_RotX_%d",x);
			    format(f7,15,"O_RotY_%d",x);
			    format(f8,15,"O_RotZ_%d",x);
			    format(f9,15,"O_ScaleX_%d",x);
			    format(f10,15,"O_ScaleY_%d",x);
			    format(f11,15,"O_ScaleZ_%d",x);
			    dini_IntSet(file,f1,0);
			    dini_IntSet(file,f2,0);
			    dini_FloatSet(file,f3,0.0);
			    dini_FloatSet(file,f4,0.0);
			    dini_FloatSet(file,f5,0.0);
			    dini_FloatSet(file,f6,0.0);
			    dini_FloatSet(file,f7,0.0);
			    dini_FloatSet(file,f8,0.0);
			    dini_FloatSet(file,f9,0.0);
			    dini_FloatSet(file,f10,0.0);
			    dini_FloatSet(file,f11,0.0);
			}
	 	}
	}
}
//==============================================================================
public OnPlayerSpawn(playerid)
{
    new file[256];
    new name[24];
    new f1[15],f2[15],f3[15],f4[15],f5[15],f6[15],f7[15],f8[15],f9[15],f10[15],f11[15];
    GetPlayerName(playerid,name,24);
    format(file,sizeof(file),"Player Objects/%s.ini",name);
    if(!dini_Exists(file)) return 1;
    for(new x;x<MAX_OSLOTS;x++)
	{
	    format(f1,15,"O_Model_%d",x);
		format(f2,15,"O_Bone_%d",x);
		format(f3,15,"O_OffX_%d",x);
  		format(f4,15,"O_OffY_%d",x);
		format(f5,15,"O_OffZ_%d",x);
		format(f6,15,"O_RotX_%d",x);
		format(f7,15,"O_RotY_%d",x);
		format(f8,15,"O_RotZ_%d",x);
		format(f9,15,"O_ScaleX_%d",x);
		format(f10,15,"O_ScaleY_%d",x);
		format(f11,15,"O_ScaleZ_%d",x);
	    if(dini_Int(file,f1)!=0)
	    {
	        SetPlayerAttachedObject(playerid,x,dini_Int(file,f1),dini_Int(file,f2),dini_Float(file,f3),dini_Float(file,f4),dini_Float(file,f5),dini_Float(file,f6),dini_Float(file,f7),dini_Float(file,f8),dini_Float(file,f9),dini_Float(file,f10),dini_Float(file,f11));
		}
	}
	return 1;
}
//==============================================================================
public OnPlayerModelSelectionEx(playerid, response, extraid, modelid2)
{
	if(extraid==DIALOG_ATTACH_MODEL_SELECTION)
	{
	    if(!response)
     	{   ShowPlayerDialog(playerid,DIALOG_ATTACH_OBJECT_SELECTION,DIALOG_STYLE_LIST,"Player Objects/Attachment: (Select Object Path)","Path:1 :: "COL_GREY"Server Objects Menu\n"COL_WHITE"Path:2 :: "COL_GREY"Custom Object","Next(>>)","Back(<<)");    }
	    if(response)
	    {
		    if(GetPVarInt(playerid, "AttachmentUsed") == 1) EditAttachedObject(playerid, modelid2);
		    else
		    {
			    SetPVarInt(playerid, "AttachmentModelSel", modelid2);
                new string[256+1];
				new dialog[500];
				for(new x;x<sizeof(AttachmentBones);x++)
    			{
					format(string, sizeof(string), "Bone:%s\n", AttachmentBones[x]);
					strcat(dialog,string);
				}
				ShowPlayerDialog(playerid, DIALOG_ATTACH_BONE_SELECTION, DIALOG_STYLE_LIST, \
				"{FF0000}Attachment Modification - Bone Selection", dialog, "Select", "Cancel");
		    }//else DeletePVar(playerid, "AttachmentIndexSel");
		}
 	}
	return 1;
}
//==============================================================================
stock IsNumeric(string[])
{
	for (new i = 0, j = strlen(string); i < j; i++)
	{
		if (string[i] > '9' || string[i] < '0') return 0;
	}
	return 1;
}
//==============================================================================
Iv problem:-
Код:
C:\Users\MaHdy\Desktop\Untitled.pwn(572) : error 025: function heading differs from prototype
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


1 Error.
LINE 572:
Код:
public OnPlayerModelSelectionEx(playerid, response, extraid, modelid2)
{
	if(extraid==DIALOG_ATTACH_MODEL_SELECTION)
	{
	    if(!response)
     	{   ShowPlayerDialog(playerid,DIALOG_ATTACH_OBJECT_SELECTION,DIALOG_STYLE_LIST,"Player Objects/Attachment: (Select Object Path)","Path:1 :: "COL_GREY"Server Objects Menu\n"COL_WHITE"Path:2 :: "COL_GREY"Custom Object","Next(>>)","Back(<<)");    }
	    if(response)
	    {
		    if(GetPVarInt(playerid, "AttachmentUsed") == 1) EditAttachedObject(playerid, modelid2);
		    else
		    {
			    SetPVarInt(playerid, "AttachmentModelSel", modelid2);
                new string[256+1];
				new dialog[500];
				for(new x;x<sizeof(AttachmentBones);x++)
    			{
					format(string, sizeof(string), "Bone:%s\n", AttachmentBones[x]);
					strcat(dialog,string);
				}
				ShowPlayerDialog(playerid, DIALOG_ATTACH_BONE_SELECTION, DIALOG_STYLE_LIST, \
				"{FF0000}Attachment Modification - Bone Selection", dialog, "Select", "Cancel");
		    }//else DeletePVar(playerid, "AttachmentIndexSel");
		}
 	}
	return 1;
}
Reply
#2

Do you have OnPlayerModelSelectionEx defined elsewhere in your script? Use Ctrl+F and search for it. Search in your includes also. Try to add 'stock' before the function:
Reply
#3

Quote:
Originally Posted by GShock
Посмотреть сообщение
Do you have OnPlayerModelSelectionEx defined elsewhere in your script? Use Ctrl+F and search for it. Search in your includes also. Try to add 'stock' before the function:
Nothing worked but i v tried to change the variables of modile2 to modile it worked but server keep crashing :/
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)