//==============================================================================
#include <a_samp> // Alap függvénykönyvtár
#include <mSelection> // Model elõnézethez
#include <sscanf2> //Dialoghoz
#include <dini> // \"INI Processor\"
#include <zcmd> // Parancshoz
//==============================================================================
#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] = {
{\"Gerinc\"},
{\"Fej\"},
{\"Bal oldali felkar\"},
{\"Jobb oldali felkar\"},
{\"Bal kéz\"},
{\"Jobb kéz\"},
{\"Bal oldali comb\"},
{\"Jobb oldali comb\"},
{\"Bal láb\"},
{\"Jobb láb\"},
{\"Bal sípcsont\"},
{\"Jobb sípcsont\"},
{\"Bal alkar\"},
{\"Jobb alkar},
{\"Bal kulcscsont\"},
{\"Jobb kulcscsont\"},
{\"Nyak\"},
{\"Száj\"}
};
//==============================================================================
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\"Használt 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,\"Játékostárgy\\Melléklet: (Válasz slotot)\", dialog, \"Választ\", \"Zár(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, \\
\"Játékostárgy\\Melléklet: (Töröl/Szerkeszt)\", \"\"COL_WHITE\"Szeretnéd szerkeszteni a mellékletet abban a slotban, vagy szeretnéd törölni azt?\", \"Szerkeszt(!)\", \"Töröl(X)\");
}
else
{
ShowPlayerDialog(playerid,DIALOG_ATTACH_OBJECT_SELECTION,DIALOG_STYLE_LIST,\"Játékostárgy\\Melléklet: (Válogatott tárgyútvonal)\",\"Tárgy:1 :: \"COL_GREY\"Szerver tárgy menü\\n\"COL_WHITE\"Tárgy:2 :: \"COL_GREY\"Egyedi tárgy\",\"Következõ(>>)\",\"Vissza(<<)\");
}
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, \"Játékostárgy\", 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,\"Játékostárgy\\Melléklet: (Tárgyid beillesztés)\",\"\"COL_WHITE\"Ha szeretnél betenni egyedi tárgyat az alábbi linken tudod elérni. \'\'
http://wiki.sa-mp.com\'\'.\",\"Szerkeszt\",\"Vissza(<<)\");
}
}
case DIALOG_ATTACH_OBJECT2_SELECTION:
{
if(!response)
{ ShowPlayerDialog(playerid,DIALOG_ATTACH_OBJECT_SELECTION,DIALOG_STYLE_LIST,\"Játékostárgy\\Melléklet: (Tárgyid beillesztés)\",\"Tárgy:1 :: \"COL_GREY\"Szerver tárgy menü\\n\"COL_WHITE\"Tárgy:2 :: \"COL_GREY\"Egyedi tárgy\",\"Következõ(>>)\",\"Vissza(<<)\"); }
if(response)
{
if(!strlen(inputtext))return SendClientMessage(playerid,-1,\"Játékos: Nem tudod elhagyni az ûrlapot.\"),ShowPlayerDialog(playerid,DIALOG_ATTACH_OBJECT2_SELECTION,DIALOG_STYLE_INPUT,\"Játékostárgy\\Melléklet: (Tárgyid beillesztés)\",\"\"COL_WHITE\"Ha szeretnél betenni egyedi tárgyat az alábbi linken tudod elérni. \'\'
http://wiki.sa-mp.com\'\'.\",\"Szerkeszt\",\"Vissza(<<)\");
if(!IsNumeric(inputtext)) return SendClientMessage(playerid,-1,\"Játékos: Nem tudsz több tárgyat ilyen tárgyat betölteni, egyetlen tárgyid engedélyezet.\"),ShowPlayerDialog(playerid,DIALOG_ATTACH_OBJECT2_SELECTION,DIALOG_STYLE_INPUT,\"Játékostárgy\\Melléklet: (Tárgyid beillesztés)\",\"\"COL_WHITE\"Ha szeretnél betenni egyedi tárgyat az alábbi linken tudod elérni. \'\'
http://wiki.sa-mp.com\'\'.\",\"Szerkeszt\",\"Vissza(<<)\");
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), \"Csont:%s\\n\", AttachmentBones
strcat(dialog,string);
}
ShowPlayerDialog(playerid, DIALOG_ATTACH_BONE_SELECTION, DIALOG_STYLE_LIST, \\
\"{FF0000}Melléklet módosítás - Csont kiválasztása\", dialog, \"Választ\", \"Mégse\");
}
}
}
}
case DIALOG_ATTACH_EDITREPLACE:
{
if(response) EditAttachedObject(playerid, GetPVarInt(playerid, \"AttachmentIndexSel\"));
else
{
RemovePlayerAttachedObject(playerid, GetPVarInt(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);
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, \"JÁTÉKOS: Tudod tartani a spawn helyet, vagy az Egérel tudod irányítani.\");
}
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, \"JÁTÉKOS: Abba hagytad a melléklet szerkesztését, a jelenlegi helyzetét elmentettük.\");
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, modelid)
{
if(extraid==DIALOG_ATTACH_MODEL_SELECTION)
{
if(!response)
{ ShowPlayerDialog(playerid,DIALOG_ATTACH_OBJECT_SELECTION,DIALOG_STYLE_LIST,\"Játékostárgy\\Melléklet: (Tárgyid beillesztés)\",\"Tárgy:1 :: \"COL_GREY\"Szerver tárgy menü\\n\"COL_WHITE\"Tárgy:2 :: \"COL_GREY\"Egyedi tárgy\",\"Következõ(>>)\",\"Vissza(<<)\"); }
if(response)
{
if(GetPVarInt(playerid, \"AttachmentUsed\") == 1) EditAttachedObject(playerid, modelid);
else
{
SetPVarInt(playerid, \"AttachmentModelSel\", modelid);
new string[256+1];
new dialog[500];
for(new x;x<sizeof(AttachmentBones);x++)
{
format(string, sizeof(string), \"Bone:%s\\n\", AttachmentBones
strcat(dialog,string);
}
ShowPlayerDialog(playerid, DIALOG_ATTACH_BONE_SELECTION, DIALOG_STYLE_LIST, \\
\"{FF0000}Melléklet módosítás - Csont kiválasztása\", dialog, \"Kiválaszt\", \"Mégse\");
}//else DeletePVar(playerid, \"AttachmentIndexSel\");
}
}
return 1;
}
//==============================================================================
stock IsNumeric(string[])
{
for (new i = 0, j = strlen(string); i < j; i++)
{
if (string
> \'9\' || string < \'0\') return 0;
}
return 1;
}
//==============================================================================
Hozzáfûzni való: Eredeti topic, itt van!
Haladó SAMP-Mellékletek
E, filterszkript verziója 1. E, filterszkript készítõje Excel. E, filterszkriptet 2014.03.23.-án ossztották meg.
Információ
Ez a szkriptet teljesen egyszerû használni. Ebben a szkriptben bármely SA-MP Objectet lehet csalatkoztatni a játékoshoz. Ez a szkript Dini-t használ elsõ sorban, mivel a készítõ elmondása szerint a y_ini-t nem tudja jól kezelni,zcmd parancs feldolgozó, mSelection tárgy elõnézetéhez kell, sscanf2 párbeszéd kialakítás, és további. Itt a tárgyat dialog párbeszédel tudod hozzáadni/törölni/kiválasztani.
Tulajdonságok
- Menti a tárgyakat.
- 2 fajta dolgot lehet választani: Megadott tárgyak között, vagy egyedi tárgyakat(ID szerint).
- Felhasználó barát szkript
- Könnyen tudsz hozzáadni tárgyakat, és eltávolítani is.
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
};
Képek
Kattints ide!
Letöltés
(Angol)
(Magyar) //==============================================================================
#include <a_samp> // Alap függvénykönyvtár
#include <mSelection> // Model elõnézethez
#include <sscanf2> //Dialoghoz
#include <dini> // \"INI Processor\"
#include <zcmd> // Parancshoz
//==============================================================================
#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] = {
{\"Gerinc\"},
{\"Fej\"},
{\"Bal oldali felkar\"},
{\"Jobb oldali felkar\"},
{\"Bal kéz\"},
{\"Jobb kéz\"},
{\"Bal oldali comb\"},
{\"Jobb oldali comb\"},
{\"Bal láb\"},
{\"Jobb láb\"},
{\"Bal sípcsont\"},
{\"Jobb sípcsont\"},
{\"Bal alkar\"},
{\"Jobb alkar},
{\"Bal kulcscsont\"},
{\"Jobb kulcscsont\"},
{\"Nyak\"},
{\"Száj\"}
};
//==============================================================================
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\"Használt 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,\"Játékostárgy\\Melléklet: (Válasz slotot)\", dialog, \"Választ\", \"Zár(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, \\
\"Játékostárgy\\Melléklet: (Töröl/Szerkeszt)\", \"\"COL_WHITE\"Szeretnéd szerkeszteni a mellékletet abban a slotban, vagy szeretnéd törölni azt?\", \"Szerkeszt(!)\", \"Töröl(X)\");
}
else
{
ShowPlayerDialog(playerid,DIALOG_ATTACH_OBJECT_SELECTION,DIALOG_STYLE_LIST,\"Játékostárgy\\Melléklet: (Válogatott tárgyútvonal)\",\"Tárgy:1 :: \"COL_GREY\"Szerver tárgy menü\\n\"COL_WHITE\"Tárgy:2 :: \"COL_GREY\"Egyedi tárgy\",\"Következõ(>>)\",\"Vissza(<<)\");
}
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, \"Játékostárgy\", 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,\"Játékostárgy\\Melléklet: (Tárgyid beillesztés)\",\"\"COL_WHITE\"Ha szeretnél betenni egyedi tárgyat az alábbi linken tudod elérni. \'\'
http://wiki.sa-mp.com\'\'.\",\"Szerkeszt\",\"Vissza(<<)\");
}
}
case DIALOG_ATTACH_OBJECT2_SELECTION:
{
if(!response)
{ ShowPlayerDialog(playerid,DIALOG_ATTACH_OBJECT_SELECTION,DIALOG_STYLE_LIST,\"Játékostárgy\\Melléklet: (Tárgyid beillesztés)\",\"Tárgy:1 :: \"COL_GREY\"Szerver tárgy menü\\n\"COL_WHITE\"Tárgy:2 :: \"COL_GREY\"Egyedi tárgy\",\"Következõ(>>)\",\"Vissza(<<)\"); }
if(response)
{
if(!strlen(inputtext))return SendClientMessage(playerid,-1,\"Játékos: Nem tudod elhagyni az ûrlapot.\"),ShowPlayerDialog(playerid,DIALOG_ATTACH_OBJECT2_SELECTION,DIALOG_STYLE_INPUT,\"Játékostárgy\\Melléklet: (Tárgyid beillesztés)\",\"\"COL_WHITE\"Ha szeretnél betenni egyedi tárgyat az alábbi linken tudod elérni. \'\'
http://wiki.sa-mp.com\'\'.\",\"Szerkeszt\",\"Vissza(<<)\");
if(!IsNumeric(inputtext)) return SendClientMessage(playerid,-1,\"Játékos: Nem tudsz több tárgyat ilyen tárgyat betölteni, egyetlen tárgyid engedélyezet.\"),ShowPlayerDialog(playerid,DIALOG_ATTACH_OBJECT2_SELECTION,DIALOG_STYLE_INPUT,\"Játékostárgy\\Melléklet: (Tárgyid beillesztés)\",\"\"COL_WHITE\"Ha szeretnél betenni egyedi tárgyat az alábbi linken tudod elérni. \'\'
http://wiki.sa-mp.com\'\'.\",\"Szerkeszt\",\"Vissza(<<)\");
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), \"Csont:%s\\n\", AttachmentBones
strcat(dialog,string);
}
ShowPlayerDialog(playerid, DIALOG_ATTACH_BONE_SELECTION, DIALOG_STYLE_LIST, \\
\"{FF0000}Melléklet módosítás - Csont kiválasztása\", dialog, \"Választ\", \"Mégse\");
}
}
}
}
case DIALOG_ATTACH_EDITREPLACE:
{
if(response) EditAttachedObject(playerid, GetPVarInt(playerid, \"AttachmentIndexSel\"));
else
{
RemovePlayerAttachedObject(playerid, GetPVarInt(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);
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, \"JÁTÉKOS: Tudod tartani a spawn helyet, vagy az Egérel tudod irányítani.\");
}
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, \"JÁTÉKOS: Abba hagytad a melléklet szerkesztését, a jelenlegi helyzetét elmentettük.\");
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, modelid)
{
if(extraid==DIALOG_ATTACH_MODEL_SELECTION)
{
if(!response)
{ ShowPlayerDialog(playerid,DIALOG_ATTACH_OBJECT_SELECTION,DIALOG_STYLE_LIST,\"Játékostárgy\\Melléklet: (Tárgyid beillesztés)\",\"Tárgy:1 :: \"COL_GREY\"Szerver tárgy menü\\n\"COL_WHITE\"Tárgy:2 :: \"COL_GREY\"Egyedi tárgy\",\"Következõ(>>)\",\"Vissza(<<)\"); }
if(response)
{
if(GetPVarInt(playerid, \"AttachmentUsed\") == 1) EditAttachedObject(playerid, modelid);
else
{
SetPVarInt(playerid, \"AttachmentModelSel\", modelid);
new string[256+1];
new dialog[500];
for(new x;x<sizeof(AttachmentBones);x++)
{
format(string, sizeof(string), \"Bone:%s\\n\", AttachmentBones
strcat(dialog,string);
}
ShowPlayerDialog(playerid, DIALOG_ATTACH_BONE_SELECTION, DIALOG_STYLE_LIST, \\
\"{FF0000}Melléklet módosítás - Csont kiválasztása\", dialog, \"Kiválaszt\", \"Mégse\");
}//else DeletePVar(playerid, \"AttachmentIndexSel\");
}
}
return 1;
}
//==============================================================================
stock IsNumeric(string[])
{
for (new i = 0, j = strlen(string); i < j; i++)
{
if (string
> \'9\' || string < \'0\') return 0;
}
return 1;
}
//==============================================================================
Hozzáfûzni való: Eredeti topic, itt van!