Jump to content
  • 0

pomoc Help - Toy System


Guest Thomas.

Dotaz

Zdravím

 

Chtěl bych jsem se zeptat přetahl sem si gamemode z americkeho do jednoho gamemodu toy system co použivam na serveru ale je tam takova chyba že když to nastavim prvne tak ok tu pozici daneho doplnku ale když to podruhe to chci odkryt tak se mi to otevře tabulka na jakou část chci to dát jako pozice se uloži ,ale neziska to z toho configu tu pozici attachu doplnku níže je kod kde je problém sam sem zkoušel i ty výběry odstranit z toho  ale to pak cele znefukčnim to odkryti a zakrytu sám nevim jak na to.

 

 

Děkuji předem za pomoc

 

 

 

    else if(dialogid == 25)
    {
        if(response)
        {
            new bone, index = toyslot[playerid];
            switch(listitem)
            {
                case 0: bone = 1; case 1: bone = 2; case 2: bone = 3; case 3: bone = 4; case 4: bone = 5; case 5: bone = 6;
                case 6: bone = 7; case 7: bone = 8; case 8: bone = 9; case 9: bone = 10; case 10: bone = 11; case 11: bone = 12;
                case 12: bone = 13; case 13: bone = 14; case 14: bone = 15; case 15: bone = 16; case 16: bone = 17; case 17: bone = 18;
            }
            //SetPlayerAttachedObject(playerid, index, PlayerInfo[playerid][pToyModel][index], bone, Float:PlayerInfo[playerid][pToyX][index], Float:PlayerInfo[playerid][pToyY][index], Float:PlayerInfo[playerid][pToyZ][index], Float:PlayerInfo[playerid][pToyRX][index], Float:PlayerInfo[playerid][pToyRY][index], Float:PlayerInfo[playerid][pToyRZ][index], Float:PlayerInfo[playerid][pToySX][index], Float:PlayerInfo[playerid][pToySY][index], Float:PlayerInfo[playerid][pToySZ][index]);
            //
            SetPlayerAttachedObject(playerid, index, PlayerInfo[playerid][pToyModel][index], bone, Float:PlayerInfo[playerid][pToyX][index], Float:PlayerInfo[playerid][pToyY][index], Float:PlayerInfo[playerid][pToyZ][index], Float:PlayerInfo[playerid][pToyRX][index], Float:PlayerInfo[playerid][pToyRY][index], Float:PlayerInfo[playerid][pToyRZ][index], Float:PlayerInfo[playerid][pToySX][index], Float:PlayerInfo[playerid][pToySY][index], Float:PlayerInfo[playerid][pToySZ][index]);
        }
        else SSSShowDialog(playerid, 24);
    }

 

Link to comment
Share on other sites

12 odpovědí na tuto otázku

Recommended Posts

  • 0

Proste toy system ma ukladani pozic ale kdyz to dam jednou nastavit a schovam to tak musim znova nastavit pozici ale pozice se uklada do configu viz kod nahore na odkryti a schovani doplnku

Link to comment
Share on other sites

  • 0

Ok, už tomu tak nějak rozumím. Pošleš obsah callbacku OnPlayerEditAttachedObject?

 

// Měl bys tam mít něco jako (to nejspíš nemáš)

PlayerInfo[playerid][pToyX][index] = fOffsetX;
PlayerInfo[playerid][pToyY][index] = fOffsetY;
PlayerInfo[playerid][pToyZ][index] = fOffsetZ;
PlayerInfo[playerid][pToyRX][index] = fRotX;
PlayerInfo[playerid][pToyRY][index] = fRotY;
PlayerInfo[playerid][pToyRZ][index] = fRotZ;
PlayerInfo[playerid][pToySX][index] = fScaleX;
PlayerInfo[playerid][pToySY][index] = fScaleY;
PlayerInfo[playerid][pToySZ][index] = fScaleZ;

...
Edited by Lukasz
Link to comment
Share on other sites

  • 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)
{
    SetPlayerAttachedObject(playerid, index, modelid, boneid, Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ, Float:fRotX, Float:fRotY, Float:fRotZ, Float:fScaleX, Float:fScaleY, Float:fScaleZ);
    PlayerInfo[playerid][pToyX][index] = fOffsetX;
    PlayerInfo[playerid][pToyY][index] = fOffsetY;
    PlayerInfo[playerid][pToyZ][index] = fOffsetZ;
    PlayerInfo[playerid][pToyRX][index] = fRotX;
    PlayerInfo[playerid][pToyRY][index] = fRotY;
    PlayerInfo[playerid][pToyRZ][index] = fRotZ;
    PlayerInfo[playerid][pToySX][index] = fScaleX;
    PlayerInfo[playerid][pToySY][index] = fScaleY;
    PlayerInfo[playerid][pToySZ][index] = fScaleZ;
    return 1;
}

 

 

prostě se to uloži no ty pozice ale pak jak chci to schovat a zas odkryt tak to musim zas jak idiot to opět nastavit sám sem zkoušel pár věci ale nejde to

Edited by Thomas.
Link to comment
Share on other sites

  • 0

Zítra provedu optimalizaci a korekturu. Zkoušel jsem to a jde to. Pokud někdo něco nechápe, tak se ptejte :d

Má to asi 196 řádků a umí to víc než R0ckyho script na 1500 řádků. lol
 
Příkazy (můžeš si to změnit na co chceš)

/toycreate - tvorba hračky
/toyedit - úprava hračky
/toyshow - skrytí/zobrazení hračky
/toydestroy - odstranění hračky

Script neobsahuje ukládání a načítání při odpojení a připojení hráče a je psán s menším ohledem na čitelnost kódu

#include <a_samp>

#define TOY_SHOW_DIALOG 5000 // id dialogů si dle potřeby změň
#define TOY_DESTROY_DIALOG 5001
#define TOY_EDIT_DIALOG 5002
#define TOY_LIST_DIALOG 5003
#define TOY_BONE_DIALOG 5004

#define MAX_TOYS 2 // počet s(h)raček v seznamu, z kterého má hráč ny výběr (viz toyList)
#define TOY_INDEX_COUNT 10 // počet indexů (SAMP jich má max 10) můžeš nastavit menší číslo...

#undef MAX_PLAYERS
#define MAX_PLAYERS 100 // tvůj počet hráčů 

enum toyInfo {
    t_LISTID,
    t_BONE,
    Float:t_X,
    Float:t_Y,
    Float:t_Z,
    Float:t_RX,
    Float:t_RY,
    Float:t_RZ,
    Float:t_SX,
    Float:t_SY,
    Float:t_SZ
}

enum toyListInfo {
    t_NAME[11],
    t_MODELID
}

new toyList[MAX_TOYS][toyListInfo] = {
    { "Čepice\n", 18939 },      // pouze příklad.. doplň si sem až MAX_TOYS předmětů -> Název, id modelu (pro ulehčení si dej za jméno \n)
    { "Čepice2\n", 18940 }
};

new toyPosInfo[MAX_PLAYERS][TOY_INDEX_COUNT][toyInfo];


public OnPlayerConnect(playerid)
{
    for(new i = 0; i < TOY_INDEX_COUNT; i++) toyPosInfo[playerid][i][t_BONE] = 0; // zresetujeme
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if(!strcmp(cmdtext, "/toyedit"))
    {
	return ShowPlayerDialog(playerid, TOY_EDIT_DIALOG, DIALOG_STYLE_LIST, "Vyberte si s(h)račku, kterou chcete upravit", t_GetToyList(playerid, 1), "Vybrat", "Zrušit");
    }
	
    if(!strcmp(cmdtext, "/toyshow"))
    {
	return ShowPlayerDialog(playerid, TOY_SHOW_DIALOG, DIALOG_STYLE_LIST, "Vyberte si s(h)račku, kterou chcete skrýt/zobrazit", t_GetToyList(playerid, 1), "Skrýt", "Zobrazit");
    }
	
    if(!strcmp(cmdtext, "/toydestroy"))
    {
        return ShowPlayerDialog(playerid, TOY_DESTROY_DIALOG, DIALOG_STYLE_LIST, "Vyberte si s(h)račku, kterou chcete odstranit", t_GetToyList(playerid, 1), "Vybrat", "Zrušit");
    }
	
    if(!strcmp(cmdtext, "/toycreate"))
    {
	if(t_GetFreeSlot(playerid) == -1) return SendClientMessage(playerid, -1, "Používáte všechny sloty na s(h)račky");

	new str[MAX_TOYS*11]; // nepotřebujeme + 1 na nulový znak. Znak na to obsahuje samotný název hračky
	for(new i = 0; i < MAX_TOYS; i++) if(toyList[i][t_NAME][0] != 0) strcat(str, toyList[i][t_NAME]); // celý seznam hodíme do jednoho stringu
	return ShowPlayerDialog(playerid, TOY_LIST_DIALOG, DIALOG_STYLE_LIST, "Vyberte si s(h)račku", str, "Vybrat", "Zrušit");
    }
	
    return 0;
}

stock t_GetIndexFromList(playerid, listitem) // Nalezení indexu z listu (list neobsahuje prázdné řadký pro prázdné indexy)
{
    for(new i = 0; i < TOY_INDEX_COUNT; i++)
    {
	if(toyPosInfo[playerid][i][t_BONE] != 0)
	{
	    if(listitem == 0) return i;
	    listitem--;
	}
    }
    return -1;
}

stock t_GetToyList(playerid, msg) // vrací list s názvy hraček daného hráče
{
    new str[TOY_INDEX_COUNT*11];
    new count;
    for(new i = 0; i < MAX_TOYS; i++)
    {
	if(toyPosInfo[playerid][i][t_BONE] != 0)
	{
	    strcat(str, toyList[toyPosInfo[playerid][i][t_LISTID]][t_NAME]);
	    count++;
	}
    }
    if(count != 0) str[count*11 - 1] = '\0';
    else if(msg) SendClientMessage(playerid, -1, "Nemáte žádnou hračku");
    return str;
}

stock t_GetFreeSlot(playerid) // vrací volný slot
{
    for(new i = 0; i < TOY_INDEX_COUNT; i++) if(toyPosInfo[playerid][i][t_BONE] == 0) return i;
    return -1;
}

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)
{
    if(response) // uložíme nové hodnoty (pozice, rotaci, velikost)
    {
        toyPosInfo[playerid][index][t_X] = fOffsetX;
        toyPosInfo[playerid][index][t_Y] = fOffsetY;
        toyPosInfo[playerid][index][t_Z] = fOffsetZ;
        toyPosInfo[playerid][index][t_RX] = fRotX;
        toyPosInfo[playerid][index][t_RY] = fRotY;
        toyPosInfo[playerid][index][t_RZ] = fRotZ;
        toyPosInfo[playerid][index][t_SX] = fScaleX;
        toyPosInfo[playerid][index][t_SY] = fScaleY;
        toyPosInfo[playerid][index][t_SZ] = fScaleZ;
    } else { // pokud zrušil editaci objektu
	SetPlayerAttachedObject(playerid, index, modelid, boneid, toyPosInfo[playerid][index][t_X], toyPosInfo[playerid][index][t_Y], toyPosInfo[playerid][index][t_Z], toyPosInfo[playerid][index][t_RX], toyPosInfo[playerid][index][t_RY], toyPosInfo[playerid][index][t_RZ], toyPosInfo[playerid][index][t_SX], toyPosInfo[playerid][index][t_SY], toyPosInfo[playerid][index][t_SZ]);
    }
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(TOY_LIST_DIALOG == dialogid) // Výběr pro vytvoření
    {
	if(response)
	{
	    toyPosInfo[playerid][t_GetFreeSlot(playerid)][t_LISTID] = listitem;
	    ShowPlayerDialog(playerid, TOY_BONE_DIALOG, DIALOG_STYLE_LIST, "Vyberte kost pro přichycení s(h)račky", "Páteř\nHlava\nLevá paže\nPravá paže\nLevá ruka\nPravá ruka\nLevé stehno\nPravé stehno\nLevá noha\nPravá noha\nLevé lýtko\nPravé lýtko\nLevé předloktí\nPravé předloktí\nLevé rameno\nPravé rameno\nKrk\nČelist", "Vybrat", "Zrušit");
	}
	return 1;
    }
	
    if(TOY_BONE_DIALOG == dialogid) // Výběr bony pro vytvoření
    {
	if(response)
	{
	    new index = t_GetFreeSlot(playerid);
	    toyPosInfo[playerid][index][t_BONE] = listitem;
	    for(new i = 2; i < 8; i++) toyPosInfo[playerid][index][toyInfo:i] = 0;
	    toyPosInfo[playerid][index][t_SX] = 1;
	    toyPosInfo[playerid][index][t_SY] = 1;
	    toyPosInfo[playerid][index][t_SZ] = 1;
	    SetPlayerAttachedObject(playerid, index, toyList[toyPosInfo[playerid][index][t_LISTID]][t_MODELID], listitem, toyPosInfo[playerid][index][t_X], toyPosInfo[playerid][index][t_Y], toyPosInfo[playerid][index][t_Z], toyPosInfo[playerid][index][t_RX], toyPosInfo[playerid][index][t_RY], toyPosInfo[playerid][index][t_RZ], toyPosInfo[playerid][index][t_SX], toyPosInfo[playerid][index][t_SY], toyPosInfo[playerid][index][t_SZ]);
	    return SendClientMessage(playerid, -1, "S(h)račka vytvořena");
	}
        return 1;
    }


    if(TOY_SHOW_DIALOG == dialogid) // Skrytí/Zobrazení
    {
        new i = t_GetIndexFromList(playerid, listitem);
	if(i != -1)
	{
	    if(response) RemovePlayerAttachedObject(playerid, i);
	    else SetPlayerAttachedObject(playerid, i, toyList[toyPosInfo[playerid][i][t_LISTID]][t_MODELID], toyPosInfo[playerid][i][t_BONE], toyPosInfo[playerid][i][t_X], toyPosInfo[playerid][i][t_Y], toyPosInfo[playerid][i][t_Z], toyPosInfo[playerid][i][t_RX], toyPosInfo[playerid][i][t_RY], toyPosInfo[playerid][i][t_RZ], toyPosInfo[playerid][i][t_SX], toyPosInfo[playerid][i][t_SY], toyPosInfo[playerid][i][t_SZ]);
        }
	return 1;
    }
	
    if(TOY_EDIT_DIALOG == dialogid)
    {
        new i = t_GetIndexFromList(playerid, listitem);
	if(i != -1)
	{
	    if(IsPlayerAttachedObjectSlotUsed(playerid, i)) EditAttachedObject(playerid, i);
	    else SendClientMessage(playerid, -1, "S(h)račka je skrytá");
	}
	return 1;
    }
	
    if(TOY_DESTROY_DIALOG == dialogid) // Odstranění
    {
	new i = t_GetIndexFromList(playerid, listitem);
	if(i != -1)
	{
            RemovePlayerAttachedObject(playerid, i);
            toyPosInfo[playerid][i][t_BONE] = 0; // RESETUJEME POUZE BONE, Ta poslouží jako ukazatel, zda máme uloženo/neuloženo
	}
	return 1;
    }
    return 0;
}

Edited by Lukasz
Link to comment
Share on other sites

  • 0

Kod ti odpo zašlu

zde je celý kod celeho toy systemu je to zvlast system i zvlast ukladani

enum pInfo
{

	// Toys
	pToyModel[10],
	Float:pToyX[10],
	Float:pToyY[10],
	Float:pToyZ[10],
	Float:pToyRX[10],
	Float:pToyRY[10],
	Float:pToyRZ[10],
 	Float:pToySX[10],
    Float:pToySY[10],
    Float:pToySZ[10]

}

new PlayerInfo[MAX_PLAYERS][pInfo];
new toyslot[MAX_PLAYERS];


stock SaveChar(playerid)
{

		    new file[64];
			format(file, sizeof(file), "users/%s.ini", RPNU(playerid));
			if(!dini_Exists(file)) dini_Create(file);


			SaveToys(playerid, file);



	return 1;
}
stock RPNU(playerid)
{
	new name[MAX_PLAYER_NAME];
	GetPlayerName(playerid, name, sizeof(name));
	return name;
}
stock LoadChar(playerid)
{
    new file[64];
	format(file, sizeof(file), "users/%s.ini", RPNU(playerid));
	// Logged in

	LoadToys(playerid, file);

	return 1;
}


stock LoadToys(playerid, file[])
{
	// Toys
	PlayerInfo[playerid][pToyModel][0] = dini_Int(file, "tModel0");
	PlayerInfo[playerid][pToyModel][1] = dini_Int(file, "tModel1");
	PlayerInfo[playerid][pToyModel][2] = dini_Int(file, "tModel2");
	PlayerInfo[playerid][pToyModel][3] = dini_Int(file, "tModel3");
	PlayerInfo[playerid][pToyModel][4] = dini_Int(file, "tModel4");
	PlayerInfo[playerid][pToyModel][5] = dini_Int(file, "tModel5");
	PlayerInfo[playerid][pToyModel][6] = dini_Int(file, "tModel6");
	PlayerInfo[playerid][pToyModel][7] = dini_Int(file, "tModel7");
	PlayerInfo[playerid][pToyModel][8] = dini_Int(file, "tModel8");
	PlayerInfo[playerid][pToyModel][9] = dini_Int(file, "tModel9");
	// Toys X
	PlayerInfo[playerid][pToyX][0] = dini_Float(file, "tX0"); PlayerInfo[playerid][pToyX][1] = dini_Float(file, "tX1");	PlayerInfo[playerid][pToyX][2] = dini_Float(file, "tX2"); PlayerInfo[playerid][pToyX][3] = dini_Float(file, "tX3");
	PlayerInfo[playerid][pToyX][4] = dini_Float(file, "tX4"); PlayerInfo[playerid][pToyX][5] = dini_Float(file, "tX5");	PlayerInfo[playerid][pToyX][6] = dini_Float(file, "tX6"); PlayerInfo[playerid][pToyX][7] = dini_Float(file, "tX7");
	PlayerInfo[playerid][pToyX][8] = dini_Float(file, "tX8"); PlayerInfo[playerid][pToyX][9] = dini_Float(file, "tX9");
	// Toys Y
	PlayerInfo[playerid][pToyY][0] = dini_Float(file, "tY0"); PlayerInfo[playerid][pToyY][1] = dini_Float(file, "tY1");	PlayerInfo[playerid][pToyY][2] = dini_Float(file, "tY2"); PlayerInfo[playerid][pToyY][3] = dini_Float(file, "tY3");
	PlayerInfo[playerid][pToyY][4] = dini_Float(file, "tY4"); PlayerInfo[playerid][pToyY][5] = dini_Float(file, "tY5");	PlayerInfo[playerid][pToyY][6] = dini_Float(file, "tY6"); PlayerInfo[playerid][pToyY][7] = dini_Float(file, "tY7");
	PlayerInfo[playerid][pToyY][8] = dini_Float(file, "tY8"); PlayerInfo[playerid][pToyY][9] = dini_Float(file, "tY9");
	// Toy Z
	PlayerInfo[playerid][pToyZ][0] = dini_Float(file, "tZ0"); PlayerInfo[playerid][pToyZ][1] = dini_Float(file, "tZ1");	PlayerInfo[playerid][pToyZ][2] = dini_Float(file, "tZ2"); PlayerInfo[playerid][pToyZ][3] = dini_Float(file, "tZ3");
	PlayerInfo[playerid][pToyZ][4] = dini_Float(file, "tZ4"); PlayerInfo[playerid][pToyZ][5] = dini_Float(file, "tZ5");	PlayerInfo[playerid][pToyZ][6] = dini_Float(file, "tZ6"); PlayerInfo[playerid][pToyZ][7] = dini_Float(file, "tZ7");
	PlayerInfo[playerid][pToyZ][8] = dini_Float(file, "tZ8"); PlayerInfo[playerid][pToyZ][9] = dini_Float(file, "tZ9");
	// Toy RX
	PlayerInfo[playerid][pToyRX][0] = dini_Float(file, "tRX0"); PlayerInfo[playerid][pToyRX][1] = dini_Float(file, "tRX1");	PlayerInfo[playerid][pToyRX][2] = dini_Float(file, "tRX2"); PlayerInfo[playerid][pToyRX][3] = dini_Float(file, "tRX3");
	PlayerInfo[playerid][pToyRX][4] = dini_Float(file, "tRX4"); PlayerInfo[playerid][pToyRX][5] = dini_Float(file, "tRX5");	PlayerInfo[playerid][pToyRX][6] = dini_Float(file, "tRX6"); PlayerInfo[playerid][pToyRX][7] = dini_Float(file, "tRX7");
	PlayerInfo[playerid][pToyRX][8] = dini_Float(file, "tRX8"); PlayerInfo[playerid][pToyRX][9] = dini_Float(file, "tRX9");
	// Toy RY
	PlayerInfo[playerid][pToyRY][0] = dini_Float(file, "tRY0");	PlayerInfo[playerid][pToyRY][1] = dini_Float(file, "tRY1");	PlayerInfo[playerid][pToyRY][2] = dini_Float(file, "tRY2");	PlayerInfo[playerid][pToyRY][3] = dini_Float(file, "tRY3");
	PlayerInfo[playerid][pToyRY][4] = dini_Float(file, "tRY4");	PlayerInfo[playerid][pToyRY][5] = dini_Float(file, "tRY5");	PlayerInfo[playerid][pToyRY][6] = dini_Float(file, "tRY6");	PlayerInfo[playerid][pToyRY][7] = dini_Float(file, "tRY7");
	PlayerInfo[playerid][pToyRY][8] = dini_Float(file, "tRY8");	PlayerInfo[playerid][pToyRY][9] = dini_Float(file, "tRY9");
	// Toy RZ
	PlayerInfo[playerid][pToyRZ][0] = dini_Float(file, "tRZ0");	PlayerInfo[playerid][pToyRZ][1] = dini_Float(file, "tRZ1");	PlayerInfo[playerid][pToyRZ][2] = dini_Float(file, "tRZ2");	PlayerInfo[playerid][pToyRZ][3] = dini_Float(file, "tRZ3");
	PlayerInfo[playerid][pToyRZ][4] = dini_Float(file, "tRZ4");	PlayerInfo[playerid][pToyRZ][5] = dini_Float(file, "tRZ5");	PlayerInfo[playerid][pToyRZ][6] = dini_Float(file, "tRZ6");	PlayerInfo[playerid][pToyRZ][7] = dini_Float(file, "tRZ7");
	PlayerInfo[playerid][pToyRZ][8] = dini_Float(file, "tRZ8");	PlayerInfo[playerid][pToyRZ][9] = dini_Float(file, "tRZ9");
	// Toy SX
	PlayerInfo[playerid][pToySX][0] = dini_Float(file, "tSX0");	PlayerInfo[playerid][pToySX][1] = dini_Float(file, "tSX1");	PlayerInfo[playerid][pToySX][2] = dini_Float(file, "tSX2");	PlayerInfo[playerid][pToySX][3] = dini_Float(file, "tSX3");
	PlayerInfo[playerid][pToySX][4] = dini_Float(file, "tSX4");	PlayerInfo[playerid][pToySX][5] = dini_Float(file, "tSX5");	PlayerInfo[playerid][pToySX][6] = dini_Float(file, "tSX6");	PlayerInfo[playerid][pToySX][7] = dini_Float(file, "tSX7");
	PlayerInfo[playerid][pToySX][8] = dini_Float(file, "tSX8");	PlayerInfo[playerid][pToySX][9] = dini_Float(file, "tSX9");
	// Toy SY
	PlayerInfo[playerid][pToySY][0] = dini_Float(file, "tSY0");	PlayerInfo[playerid][pToySY][1] = dini_Float(file, "tSY1");	PlayerInfo[playerid][pToySY][2] = dini_Float(file, "tSY2");	PlayerInfo[playerid][pToySY][3] = dini_Float(file, "tSY3");
	PlayerInfo[playerid][pToySY][4] = dini_Float(file, "tSY4");	PlayerInfo[playerid][pToySY][5] = dini_Float(file, "tSY5");	PlayerInfo[playerid][pToySY][6] = dini_Float(file, "tSY6");	PlayerInfo[playerid][pToySY][7] = dini_Float(file, "tSY7");
	PlayerInfo[playerid][pToySY][8] = dini_Float(file, "tSY8");	PlayerInfo[playerid][pToySY][9] = dini_Float(file, "tSY9");
	// Toy SZ
	PlayerInfo[playerid][pToySZ][0] = dini_Float(file, "tSZ0");	PlayerInfo[playerid][pToySZ][1] = dini_Float(file, "tSZ1");	PlayerInfo[playerid][pToySZ][2] = dini_Float(file, "tSZ2");	PlayerInfo[playerid][pToySZ][3] = dini_Float(file, "tSZ3");
	PlayerInfo[playerid][pToySZ][4] = dini_Float(file, "tSZ4");	PlayerInfo[playerid][pToySZ][5] = dini_Float(file, "tSZ5");	PlayerInfo[playerid][pToySZ][6] = dini_Float(file, "tSZ6");	PlayerInfo[playerid][pToySZ][7] = dini_Float(file, "tSZ7");
	PlayerInfo[playerid][pToySZ][8] = dini_Float(file, "tSZ8");	PlayerInfo[playerid][pToySZ][9] = dini_Float(file, "tSZ9");
	for(new i=0; i<10; i++) // Toys
    {
	 	if(PlayerInfo[playerid][pToySX][i] == 0) PlayerInfo[playerid][pToySX][i] = 1;
	    if(PlayerInfo[playerid][pToySY][i] == 0) PlayerInfo[playerid][pToySY][i] = 1;
	    if(PlayerInfo[playerid][pToySZ][i] == 0) PlayerInfo[playerid][pToySZ][i] = 1;
    }
	return 1;
}

stock SaveToys(playerid, file[])
{
	// Toys Model
	dini_IntSet(file, "tModel0", PlayerInfo[playerid][pToyModel][0]);
	dini_IntSet(file, "tModel1", PlayerInfo[playerid][pToyModel][1]);
	dini_IntSet(file, "tModel2", PlayerInfo[playerid][pToyModel][2]);
	dini_IntSet(file, "tModel3", PlayerInfo[playerid][pToyModel][3]);
	dini_IntSet(file, "tModel4", PlayerInfo[playerid][pToyModel][4]);
	dini_IntSet(file, "tModel5", PlayerInfo[playerid][pToyModel][5]);
	dini_IntSet(file, "tModel6", PlayerInfo[playerid][pToyModel][6]);
	dini_IntSet(file, "tModel7", PlayerInfo[playerid][pToyModel][7]);
	dini_IntSet(file, "tModel8", PlayerInfo[playerid][pToyModel][8]);
	dini_IntSet(file, "tModel9", PlayerInfo[playerid][pToyModel][9]);
	// Toys X
	dini_FloatSet(file, "tX0", PlayerInfo[playerid][pToyX][0]);	dini_FloatSet(file, "tX1", PlayerInfo[playerid][pToyX][1]);	dini_FloatSet(file, "tX2", PlayerInfo[playerid][pToyX][2]);	dini_FloatSet(file, "tX3", PlayerInfo[playerid][pToyX][3]);
	dini_FloatSet(file, "tX4", PlayerInfo[playerid][pToyX][4]);	dini_FloatSet(file, "tX5", PlayerInfo[playerid][pToyX][5]);	dini_FloatSet(file, "tX6", PlayerInfo[playerid][pToyX][6]);	dini_FloatSet(file, "tX7", PlayerInfo[playerid][pToyX][7]);
	dini_FloatSet(file, "tX8", PlayerInfo[playerid][pToyX][8]);	dini_FloatSet(file, "tX9", PlayerInfo[playerid][pToyX][9]);
	// Toys Y
	dini_FloatSet(file, "tY0", PlayerInfo[playerid][pToyY][0]);	dini_FloatSet(file, "tY1", PlayerInfo[playerid][pToyY][1]);	dini_FloatSet(file, "tY2", PlayerInfo[playerid][pToyY][2]);	dini_FloatSet(file, "tY3", PlayerInfo[playerid][pToyY][3]);
	dini_FloatSet(file, "tY4", PlayerInfo[playerid][pToyY][4]);	dini_FloatSet(file, "tY5", PlayerInfo[playerid][pToyY][5]);	dini_FloatSet(file, "tY6", PlayerInfo[playerid][pToyY][6]);	dini_FloatSet(file, "tY7", PlayerInfo[playerid][pToyY][7]);
	dini_FloatSet(file, "tY8", PlayerInfo[playerid][pToyY][8]); dini_FloatSet(file, "tY9", PlayerInfo[playerid][pToyY][9]);
	// Toy Z
	dini_FloatSet(file, "tZ0", PlayerInfo[playerid][pToyZ][0]);	dini_FloatSet(file, "tZ1", PlayerInfo[playerid][pToyZ][1]);	dini_FloatSet(file, "tZ2", PlayerInfo[playerid][pToyZ][2]);	dini_FloatSet(file, "tZ3", PlayerInfo[playerid][pToyZ][3]);
	dini_FloatSet(file, "tZ4", PlayerInfo[playerid][pToyZ][4]);	dini_FloatSet(file, "tZ5", PlayerInfo[playerid][pToyZ][5]);	dini_FloatSet(file, "tZ6", PlayerInfo[playerid][pToyZ][6]);	dini_FloatSet(file, "tZ7", PlayerInfo[playerid][pToyZ][7]);
	dini_FloatSet(file, "tZ8", PlayerInfo[playerid][pToyZ][8]);	dini_FloatSet(file, "tZ9", PlayerInfo[playerid][pToyZ][9]);
	// Toy RX
	dini_FloatSet(file, "tRX0", PlayerInfo[playerid][pToyRX][0]); dini_FloatSet(file, "tRX1", PlayerInfo[playerid][pToyRX][1]);	dini_FloatSet(file, "tRX2", PlayerInfo[playerid][pToyRX][2]); dini_FloatSet(file, "tRX3", PlayerInfo[playerid][pToyRX][3]);
	dini_FloatSet(file, "tRX4", PlayerInfo[playerid][pToyRX][4]); dini_FloatSet(file, "tRX5", PlayerInfo[playerid][pToyRX][5]);	dini_FloatSet(file, "tRX6", PlayerInfo[playerid][pToyRX][6]); dini_FloatSet(file, "tRX7", PlayerInfo[playerid][pToyRX][7]);
	dini_FloatSet(file, "tRX8", PlayerInfo[playerid][pToyRX][8]); dini_FloatSet(file, "tRX9", PlayerInfo[playerid][pToyRX][9]);
	// Toy RY
	dini_FloatSet(file, "tRY0", PlayerInfo[playerid][pToyRY][0]); dini_FloatSet(file, "tRY1", PlayerInfo[playerid][pToyRY][1]);	dini_FloatSet(file, "tRY2", PlayerInfo[playerid][pToyRY][2]); dini_FloatSet(file, "tRY3", PlayerInfo[playerid][pToyRY][3]);
	dini_FloatSet(file, "tRY4", PlayerInfo[playerid][pToyRY][4]); dini_FloatSet(file, "tRY5", PlayerInfo[playerid][pToyRY][5]);	dini_FloatSet(file, "tRY6", PlayerInfo[playerid][pToyRY][6]); dini_FloatSet(file, "tRY7", PlayerInfo[playerid][pToyRY][7]);
	dini_FloatSet(file, "tRY8", PlayerInfo[playerid][pToyRY][8]); dini_FloatSet(file, "tRY9", PlayerInfo[playerid][pToyRY][9]);
	// Toy RZ
	dini_FloatSet(file, "tRZ0", PlayerInfo[playerid][pToyRZ][0]); dini_FloatSet(file, "tRZ1", PlayerInfo[playerid][pToyRZ][1]);	dini_FloatSet(file, "tRZ2", PlayerInfo[playerid][pToyRZ][2]); dini_FloatSet(file, "tRZ3", PlayerInfo[playerid][pToyRZ][3]);
	dini_FloatSet(file, "tRZ4", PlayerInfo[playerid][pToyRZ][4]); dini_FloatSet(file, "tRZ5", PlayerInfo[playerid][pToyRZ][5]);	dini_FloatSet(file, "tRZ6", PlayerInfo[playerid][pToyRZ][6]); dini_FloatSet(file, "tRZ7", PlayerInfo[playerid][pToyRZ][7]);
	dini_FloatSet(file, "tRZ8", PlayerInfo[playerid][pToyRZ][8]); dini_FloatSet(file, "tRZ9", PlayerInfo[playerid][pToyRZ][9]);
	// Toy SX
	dini_FloatSet(file, "tSX0", PlayerInfo[playerid][pToySX][0]); dini_FloatSet(file, "tSX1", PlayerInfo[playerid][pToySX][1]);	dini_FloatSet(file, "tSX2", PlayerInfo[playerid][pToySX][2]); dini_FloatSet(file, "tSX3", PlayerInfo[playerid][pToySX][3]);
	dini_FloatSet(file, "tSX4", PlayerInfo[playerid][pToySX][4]); dini_FloatSet(file, "tSX5", PlayerInfo[playerid][pToySX][5]);	dini_FloatSet(file, "tSX6", PlayerInfo[playerid][pToySX][6]); dini_FloatSet(file, "tSX7", PlayerInfo[playerid][pToySX][7]);
	dini_FloatSet(file, "tSX8", PlayerInfo[playerid][pToySX][8]); dini_FloatSet(file, "tSX9", PlayerInfo[playerid][pToySX][9]);
	// Toy SY
	dini_FloatSet(file, "tSY0", PlayerInfo[playerid][pToySY][0]); dini_FloatSet(file, "tSY1", PlayerInfo[playerid][pToySY][1]);	dini_FloatSet(file, "tSY2", PlayerInfo[playerid][pToySY][2]); dini_FloatSet(file, "tSY3", PlayerInfo[playerid][pToySY][3]);
	dini_FloatSet(file, "tSY4", PlayerInfo[playerid][pToySY][4]); dini_FloatSet(file, "tSY5", PlayerInfo[playerid][pToySY][5]);	dini_FloatSet(file, "tSY6", PlayerInfo[playerid][pToySY][6]); dini_FloatSet(file, "tSY7", PlayerInfo[playerid][pToySY][7]);
	dini_FloatSet(file, "tSY8", PlayerInfo[playerid][pToySY][8]); dini_FloatSet(file, "tSY9", PlayerInfo[playerid][pToySY][9]);
	// Toy SZ
	dini_FloatSet(file, "tSZ0", PlayerInfo[playerid][pToySZ][0]); dini_FloatSet(file, "tSZ1", PlayerInfo[playerid][pToySZ][1]);	dini_FloatSet(file, "tSZ2", PlayerInfo[playerid][pToySZ][2]); dini_FloatSet(file, "tSZ3", PlayerInfo[playerid][pToySZ][3]);
	dini_FloatSet(file, "tSZ4", PlayerInfo[playerid][pToySZ][4]); dini_FloatSet(file, "tSZ5", PlayerInfo[playerid][pToySZ][5]);	dini_FloatSet(file, "tSZ6", PlayerInfo[playerid][pToySZ][6]); dini_FloatSet(file, "tSZ7", PlayerInfo[playerid][pToySZ][7]);
	dini_FloatSet(file, "tSZ8", PlayerInfo[playerid][pToySZ][8]); dini_FloatSet(file, "tSZ9", PlayerInfo[playerid][pToySZ][9]);
	return 1;
}



stock ClearChar(playerid)
{
	// Toys
	for(new i=0; i<10; i++)
	{
	    if(IsPlayerAttachedObjectSlotUsed(playerid, i))
	    {
	        RemovePlayerAttachedObject(playerid, i);
	    }
	}
    for(new i=0; i<10; i++) // Toys
    {
        PlayerInfo[playerid][pToyModel][i] = 0;
        PlayerInfo[playerid][pToyX][i] = 0;
		PlayerInfo[playerid][pToyY][i] = 0;
		PlayerInfo[playerid][pToyZ][i] = 0;
		PlayerInfo[playerid][pToyRX][i] = 0;
		PlayerInfo[playerid][pToyRY][i] = 0;
		PlayerInfo[playerid][pToyRZ][i] = 0;
	 	PlayerInfo[playerid][pToySX][i] = 0;
	    PlayerInfo[playerid][pToySY][i] = 0;
	    PlayerInfo[playerid][pToySZ][i] = 0;
    }

	return 1;
}


v login dialog
											new file[64], IP[16], string[128], password[256];
			format(file, sizeof(file), "users/%s.ini", RPNU(playerid));
						if(!dini_Exists(file))
			{

				dini_Create(file);
	dini_IntSet(file, "tModel0", PlayerInfo[playerid][pToyModel][0]);
	dini_IntSet(file, "tModel1", PlayerInfo[playerid][pToyModel][1]);
	dini_IntSet(file, "tModel2", PlayerInfo[playerid][pToyModel][2]);
	dini_IntSet(file, "tModel3", PlayerInfo[playerid][pToyModel][3]);
	dini_IntSet(file, "tModel4", PlayerInfo[playerid][pToyModel][4]);
	dini_IntSet(file, "tModel5", PlayerInfo[playerid][pToyModel][5]);
	dini_IntSet(file, "tModel6", PlayerInfo[playerid][pToyModel][6]);
	dini_IntSet(file, "tModel7", PlayerInfo[playerid][pToyModel][7]);
	dini_IntSet(file, "tModel8", PlayerInfo[playerid][pToyModel][8]);
	dini_IntSet(file, "tModel9", PlayerInfo[playerid][pToyModel][9]);
	// Toys X
	dini_FloatSet(file, "tX0", PlayerInfo[playerid][pToyX][0]);	dini_FloatSet(file, "tX1", PlayerInfo[playerid][pToyX][1]);	dini_FloatSet(file, "tX2", PlayerInfo[playerid][pToyX][2]);	dini_FloatSet(file, "tX3", PlayerInfo[playerid][pToyX][3]);
	dini_FloatSet(file, "tX4", PlayerInfo[playerid][pToyX][4]);	dini_FloatSet(file, "tX5", PlayerInfo[playerid][pToyX][5]);	dini_FloatSet(file, "tX6", PlayerInfo[playerid][pToyX][6]);	dini_FloatSet(file, "tX7", PlayerInfo[playerid][pToyX][7]);
	dini_FloatSet(file, "tX8", PlayerInfo[playerid][pToyX][8]);	dini_FloatSet(file, "tX9", PlayerInfo[playerid][pToyX][9]);
	// Toys Y
	dini_FloatSet(file, "tY0", PlayerInfo[playerid][pToyY][0]);	dini_FloatSet(file, "tY1", PlayerInfo[playerid][pToyY][1]);	dini_FloatSet(file, "tY2", PlayerInfo[playerid][pToyY][2]);	dini_FloatSet(file, "tY3", PlayerInfo[playerid][pToyY][3]);
	dini_FloatSet(file, "tY4", PlayerInfo[playerid][pToyY][4]);	dini_FloatSet(file, "tY5", PlayerInfo[playerid][pToyY][5]);	dini_FloatSet(file, "tY6", PlayerInfo[playerid][pToyY][6]);	dini_FloatSet(file, "tY7", PlayerInfo[playerid][pToyY][7]);
	dini_FloatSet(file, "tY8", PlayerInfo[playerid][pToyY][8]); dini_FloatSet(file, "tY9", PlayerInfo[playerid][pToyY][9]);
	// Toy Z
	dini_FloatSet(file, "tZ0", PlayerInfo[playerid][pToyZ][0]);	dini_FloatSet(file, "tZ1", PlayerInfo[playerid][pToyZ][1]);	dini_FloatSet(file, "tZ2", PlayerInfo[playerid][pToyZ][2]);	dini_FloatSet(file, "tZ3", PlayerInfo[playerid][pToyZ][3]);
	dini_FloatSet(file, "tZ4", PlayerInfo[playerid][pToyZ][4]);	dini_FloatSet(file, "tZ5", PlayerInfo[playerid][pToyZ][5]);	dini_FloatSet(file, "tZ6", PlayerInfo[playerid][pToyZ][6]);	dini_FloatSet(file, "tZ7", PlayerInfo[playerid][pToyZ][7]);
	dini_FloatSet(file, "tZ8", PlayerInfo[playerid][pToyZ][8]);	dini_FloatSet(file, "tZ9", PlayerInfo[playerid][pToyZ][9]);
	// Toy RX
	dini_FloatSet(file, "tRX0", PlayerInfo[playerid][pToyRX][0]); dini_FloatSet(file, "tRX1", PlayerInfo[playerid][pToyRX][1]);	dini_FloatSet(file, "tRX2", PlayerInfo[playerid][pToyRX][2]); dini_FloatSet(file, "tRX3", PlayerInfo[playerid][pToyRX][3]);
	dini_FloatSet(file, "tRX4", PlayerInfo[playerid][pToyRX][4]); dini_FloatSet(file, "tRX5", PlayerInfo[playerid][pToyRX][5]);	dini_FloatSet(file, "tRX6", PlayerInfo[playerid][pToyRX][6]); dini_FloatSet(file, "tRX7", PlayerInfo[playerid][pToyRX][7]);
	dini_FloatSet(file, "tRX8", PlayerInfo[playerid][pToyRX][8]); dini_FloatSet(file, "tRX9", PlayerInfo[playerid][pToyRX][9]);
	// Toy RY
	dini_FloatSet(file, "tRY0", PlayerInfo[playerid][pToyRY][0]); dini_FloatSet(file, "tRY1", PlayerInfo[playerid][pToyRY][1]);	dini_FloatSet(file, "tRY2", PlayerInfo[playerid][pToyRY][2]); dini_FloatSet(file, "tRY3", PlayerInfo[playerid][pToyRY][3]);
	dini_FloatSet(file, "tRY4", PlayerInfo[playerid][pToyRY][4]); dini_FloatSet(file, "tRY5", PlayerInfo[playerid][pToyRY][5]);	dini_FloatSet(file, "tRY6", PlayerInfo[playerid][pToyRY][6]); dini_FloatSet(file, "tRY7", PlayerInfo[playerid][pToyRY][7]);
	dini_FloatSet(file, "tRY8", PlayerInfo[playerid][pToyRY][8]); dini_FloatSet(file, "tRY9", PlayerInfo[playerid][pToyRY][9]);
	// Toy RZ
	dini_FloatSet(file, "tRZ0", PlayerInfo[playerid][pToyRZ][0]); dini_FloatSet(file, "tRZ1", PlayerInfo[playerid][pToyRZ][1]);	dini_FloatSet(file, "tRZ2", PlayerInfo[playerid][pToyRZ][2]); dini_FloatSet(file, "tRZ3", PlayerInfo[playerid][pToyRZ][3]);
	dini_FloatSet(file, "tRZ4", PlayerInfo[playerid][pToyRZ][4]); dini_FloatSet(file, "tRZ5", PlayerInfo[playerid][pToyRZ][5]);	dini_FloatSet(file, "tRZ6", PlayerInfo[playerid][pToyRZ][6]); dini_FloatSet(file, "tRZ7", PlayerInfo[playerid][pToyRZ][7]);
	dini_FloatSet(file, "tRZ8", PlayerInfo[playerid][pToyRZ][8]); dini_FloatSet(file, "tRZ9", PlayerInfo[playerid][pToyRZ][9]);
	// Toy SX
	dini_FloatSet(file, "tSX0", PlayerInfo[playerid][pToySX][0]); dini_FloatSet(file, "tSX1", PlayerInfo[playerid][pToySX][1]);	dini_FloatSet(file, "tSX2", PlayerInfo[playerid][pToySX][2]); dini_FloatSet(file, "tSX3", PlayerInfo[playerid][pToySX][3]);
	dini_FloatSet(file, "tSX4", PlayerInfo[playerid][pToySX][4]); dini_FloatSet(file, "tSX5", PlayerInfo[playerid][pToySX][5]);	dini_FloatSet(file, "tSX6", PlayerInfo[playerid][pToySX][6]); dini_FloatSet(file, "tSX7", PlayerInfo[playerid][pToySX][7]);
	dini_FloatSet(file, "tSX8", PlayerInfo[playerid][pToySX][8]); dini_FloatSet(file, "tSX9", PlayerInfo[playerid][pToySX][9]);
	// Toy SY
	dini_FloatSet(file, "tSY0", PlayerInfo[playerid][pToySY][0]); dini_FloatSet(file, "tSY1", PlayerInfo[playerid][pToySY][1]);	dini_FloatSet(file, "tSY2", PlayerInfo[playerid][pToySY][2]); dini_FloatSet(file, "tSY3", PlayerInfo[playerid][pToySY][3]);
	dini_FloatSet(file, "tSY4", PlayerInfo[playerid][pToySY][4]); dini_FloatSet(file, "tSY5", PlayerInfo[playerid][pToySY][5]);	dini_FloatSet(file, "tSY6", PlayerInfo[playerid][pToySY][6]); dini_FloatSet(file, "tSY7", PlayerInfo[playerid][pToySY][7]);
	dini_FloatSet(file, "tSY8", PlayerInfo[playerid][pToySY][8]); dini_FloatSet(file, "tSY9", PlayerInfo[playerid][pToySY][9]);
	// Toy SZ
	dini_FloatSet(file, "tSZ0", PlayerInfo[playerid][pToySZ][0]); dini_FloatSet(file, "tSZ1", PlayerInfo[playerid][pToySZ][1]);	dini_FloatSet(file, "tSZ2", PlayerInfo[playerid][pToySZ][2]); dini_FloatSet(file, "tSZ3", PlayerInfo[playerid][pToySZ][3]);
	dini_FloatSet(file, "tSZ4", PlayerInfo[playerid][pToySZ][4]); dini_FloatSet(file, "tSZ5", PlayerInfo[playerid][pToySZ][5]);	dini_FloatSet(file, "tSZ6", PlayerInfo[playerid][pToySZ][6]); dini_FloatSet(file, "tSZ7", PlayerInfo[playerid][pToySZ][7]);
	dini_FloatSet(file, "tSZ8", PlayerInfo[playerid][pToySZ][8]); dini_FloatSet(file, "tSZ9", PlayerInfo[playerid][pToySZ][9]);


v ondialogreposnse
				//////////////////////////////////////////////////
					else if(dialogid == 23)
	{
	    if(response)
	    {
	        switch(listitem)
	        {
	            case 0: toyslot[playerid] = 0; case 1: toyslot[playerid] = 1; case 2: toyslot[playerid] = 2; case 3: toyslot[playerid] = 3; case 4: toyslot[playerid] = 4;
	            case 5: toyslot[playerid] = 5; case 6: toyslot[playerid] = 6; case 7: toyslot[playerid] = 7; case 8: toyslot[playerid] = 8; case 9: toyslot[playerid] = 9;
	        }
	        new index = toyslot[playerid];
		    if(PlayerInfo[playerid][pToyModel][index] == 0)
		    {
		        SSSShowDialog(playerid, 23);
		    }
		    else
		    {
	        	SSSShowDialog(playerid, 24);
	        }
	    }
	}
	else if(dialogid == 24)
	{
	    if(response)
	    {
			switch(listitem)
			{
				case 0:
				{
					if(!IsPlayerAttachedObjectSlotUsed(playerid, toyslot[playerid]))
					{
					    SSSShowDialog(playerid, 25);
					}
			    	else
			    	{
			    	    RemovePlayerAttachedObject(playerid, toyslot[playerid]);
			    	}
				}
				case 1:
				{
				    EditAttachedObject(playerid, toyslot[playerid]);
				}
			}
	    }
	    else SSSShowDialog(playerid, 23);
	}
	else if(dialogid == 25)
	{
	    if(response)
	    {
			new bone, index = toyslot[playerid];
	        switch(listitem)
	        {
	            case 0: bone = 1; case 1: bone = 2; case 2: bone = 3; case 3: bone = 4; case 4: bone = 5; case 5: bone = 6;
	            case 6: bone = 7; case 7: bone = 8; case 8: bone = 9; case 9: bone = 10; case 10: bone = 11; case 11: bone = 12;
	            case 12: bone = 13; case 13: bone = 14; case 14: bone = 15; case 15: bone = 16; case 16: bone = 17; case 17: bone = 18;
	        }
			//SetPlayerAttachedObject(playerid, index, PlayerInfo[playerid][pToyModel][index], bone, Float:PlayerInfo[playerid][pToyX][index], Float:PlayerInfo[playerid][pToyY][index], Float:PlayerInfo[playerid][pToyZ][index], Float:PlayerInfo[playerid][pToyRX][index], Float:PlayerInfo[playerid][pToyRY][index], Float:PlayerInfo[playerid][pToyRZ][index], Float:PlayerInfo[playerid][pToySX][index], Float:PlayerInfo[playerid][pToySY][index], Float:PlayerInfo[playerid][pToySZ][index]);
			//
			SetPlayerAttachedObject(playerid, index, PlayerInfo[playerid][pToyModel][index], bone, Float:PlayerInfo[playerid][pToyX][index], Float:PlayerInfo[playerid][pToyY][index], Float:PlayerInfo[playerid][pToyZ][index], Float:PlayerInfo[playerid][pToyRX][index], Float:PlayerInfo[playerid][pToyRY][index], Float:PlayerInfo[playerid][pToyRZ][index], Float:PlayerInfo[playerid][pToySX][index], Float:PlayerInfo[playerid][pToySY][index], Float:PlayerInfo[playerid][pToySZ][index]);
	    }
	    else SSSShowDialog(playerid, 24);
	}



v onplayercommandtext
			dcmd(buytoys,7, cmdtext);
			dcmd(toys,4, cmdtext);

////////////////////////////////////////
dcmd_buytoys(playerid, params[])
{
	new option, index, model, idx = GetPlayerVirtualWorld(playerid)-100, string[128];

	if(sscanf(params, "ii", option, index))
	{
		ShowPlayerDialog(playerid, 9182, DIALOG_STYLE_MSGBOX, "[Usage]: /buytoys [model] [slot (0-9)]", "Glasses (1-30) | Watches (31-45) | Bandanas (46-65) | Hats (66-75)\nMasks (76-85)\n Police Vest (86)\n\nRegular Players: Slots 0~1 (2 Slots)\nBronze VIP: Slots 0~3 (4 Slots)\nSilver VIP: Slots 0~5 (6 Slots)\nGold VIP: Slots 0~7 (8 Slots)\nPlatinum VIP: Slots 0~9 (10 Slots)", "Close", "Close");
	    return 1;
	}

	if(option < 1 || option > 85) return SendClientMessage(playerid, COLOR_RED, "Toys are between 1 and 86.");
	if(index < 0 || index > 9) return SendClientMessage(playerid, COLOR_RED, "Slots are between 0 and 9.");

	switch(option)
	{
	    case 1 : model = 19006; case 2 : model = 19007; case 3 : model = 19008; case 4 : model = 19009; case 5 : model = 19010; // Glasses
	    case 6 : model = 19011; case 7 : model = 19012; case 8 : model = 19013; case 9 : model = 19014; case 10: model = 19015;
	    case 11: model = 19016; case 12: model = 19017; case 13: model = 19018; case 14: model = 19019; case 15: model = 19020;
	    case 16: model = 19021; case 17: model = 19022; case 18: model = 19023; case 19: model = 19024; case 20: model = 19025;
	    case 21: model = 19026; case 22: model = 19027; case 23: model = 19028; case 24: model = 19029; case 25: model = 19030;
	    case 26: model = 19031; case 27: model = 19032; case 28: model = 19033; case 29: model = 19034; case 30: model = 19035;
	    case 31: model = 19039; case 32: model = 19040; case 33: model = 19041; case 34: model = 19042; case 35: model = 19043; // Watches
	    case 36: model = 19044; case 37: model = 19045; case 38: model = 19046; case 39: model = 19047; case 40: model = 19048;
	    case 41: model = 19049; case 42: model = 19050; case 43: model = 19051; case 44: model = 19052; case 45: model = 19053;
	    case 46: model = 18891; case 47: model = 18892; case 48: model = 18893; case 49: model = 18894; case 50: model = 18895; // Bandanas
	    case 51: model = 18896; case 52: model = 18897; case 53: model = 18898; case 54: model = 18899; case 55: model = 18900;
	    case 56: model = 18901; case 57: model = 18902; case 58: model = 18903; case 59: model = 18904; case 60: model = 18905;
	    case 61: model = 18906; case 62: model = 18907; case 63: model = 18908; case 64: model = 18909; case 65: model = 18910;
	    case 66: model = 18926; case 67: model = 18927; case 68: model = 18928; case 69: model = 18929; case 70: model = 18930; // Hats
	    case 71: model = 18931; case 72: model = 18932; case 73: model = 18933; case 74: model = 18934; case 75: model = 18935;
	    case 76: model = 18911; case 77: model = 18912; case 78: model = 18913; case 79: model = 18914; case 80: model = 18915; // Masks
	    case 81: model = 18916; case 82: model = 18917; case 83: model = 18918; case 84: model = 18919; case 85: model = 18920;
	    case 86 : model = 19142;
	}

	PlayerInfo[playerid][pToyModel][index] = model;

	return 1;
}


dcmd_toys(playerid, params[])
{

	SSSShowDialog(playerid, 23);
	return 1;
}



stock SSSShowDialog(playerid, dialogid)
{
    new string[256], line1[256];
	switch(dialogid)
	{

		case 23: // Toys
		{
			// 1 Glasses, 2 watches, 3 bandana, 4 hats

		    format(string, sizeof(string), "Slot 0 (%s)\nSlot 1 (%s)\nSlot 2 (%s)\nSlot 3 (%s)\nSlot 4 (%s)\nSlot 5 (%s)\nSlot 6 (%s)\nSlot 7 (%s)\nSlot 8 (%s)\nSlot 9 (%s)", RPTN(playerid, 0), RPTN(playerid, 1), RPTN(playerid, 2), RPTN(playerid, 3), RPTN(playerid, 4), RPTN(playerid, 5), RPTN(playerid, 6), RPTN(playerid, 7), RPTN(playerid, 8), RPTN(playerid, 9));
			ShowPlayerDialog(playerid, 23, DIALOG_STYLE_LIST, "Your toys", string, "Select", "Cancel");
		}
		case 24: // Toy Add/Remove/Editdi		{
		    new info[16], type[16];
		    if(!IsPlayerAttachedObjectSlotUsed(playerid, toyslot[playerid])) format(info, sizeof(info), "Show Toy");
		    else format(info, sizeof(info), "Hide Toy");
		    format(string, sizeof(string), "%s\nEdit Toy", info);
		    format(type, sizeof(type), "Toy Slot %d", toyslot[playerid]);
		    ShowPlayerDialog(playerid, 24, DIALOG_STYLE_LIST, type, string, "Select", "Back");
		}
		case 25: // Toy adding bones
		{
	    	 /*
             1) Spine | 2) Head | 3) Left upper arm | 4) Right upper arm | 5) Left hand | 6) Right hand | 7) Left thigh
			 8) Right thigh | 9) Left foot | 10) Right foot | 11) Right calf | 12) Left calf | 13) Left forearm
			 14) Right forearm | 15) Left clavicle | 16) Right clavicle | 17) Neck | 18) Jaw
			*/
		    ShowPlayerDialog(playerid, 25, DIALOG_STYLE_LIST, "Select a bone", "Spine\nHead\nLeft upper arm\nRight upper arm\nLeft hand\nRight hand\nLeft thigh\nRight thigh\nLeft foot\nRight foot\nRight calf\nLeft calf\nLeft forearmRight forearm\nLeft clavicle\nRight clavicle\nNeck\nJaw", "Select", "Back");
		}

	}
	return 1;
}

///////////

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)
{
	SetPlayerAttachedObject(playerid, index, modelid, boneid, Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ, Float:fRotX, Float:fRotY, Float:fRotZ, Float:fScaleX, Float:fScaleY, Float:fScaleZ);
	PlayerInfo[playerid][pToyX][index] = fOffsetX;
	PlayerInfo[playerid][pToyY][index] = fOffsetY;
	PlayerInfo[playerid][pToyZ][index] = fOffsetZ;
	PlayerInfo[playerid][pToyRX][index] = fRotX;
	PlayerInfo[playerid][pToyRY][index] = fRotY;
	PlayerInfo[playerid][pToyRZ][index] = fRotZ;
    PlayerInfo[playerid][pToySX][index] = fScaleX;
    PlayerInfo[playerid][pToySY][index] = fScaleY;
    PlayerInfo[playerid][pToySZ][index] = fScaleZ;
    return 1;
}


stock RPTN(playerid, slot)
{
    new name[24], toy = PlayerInfo[playerid][pToyModel][slot];
    format(name, sizeof(name), "Nic");
    // Model assigning
	if(toy >= 19006 && toy <= 19035) format(name, sizeof(name), "Glasses");
	else if(toy >= 19039 && toy <= 19053) format(name, sizeof(name), "Watch");
	else if(toy >= 18891 && toy <= 18910) format(name, sizeof(name), "Bandana");
	else if(toy >= 18926 && toy <= 18935) format(name, sizeof(name), "Hat");
	else if(toy >= 18911 && toy <= 18920) format(name, sizeof(name), "Mask");
	else if(toy == 18640 || toy == 18975 || toy == 19077 || toy == 19136 || toy == 19274) format(name,sizeof(name), "Hair");
	else if(toy == 18643 || toy >= 19080 && toy <= 19084) format(name, sizeof(name), "Iaser");
	else if(toy >= 19421 && toy <= 19424) format(name, sizeof(name), "Headphones");
	else if(toy == 19317) format(name, sizeof(name), "Guitar");
	else if(toy == 19352) format(name, sizeof(name), "TopHat");
	else if(toy == 18645 || toy >= 18976 && toy <= 18979) format(name, sizeof(name), "Motorcycle Helmet");
	else if(toy == 18675) format(name, sizeof(name), "Smoke Puff");
	else if(toy == 19142) format(name, sizeof(name), "Police Vest");
	else if(toy == 19141) format(name, sizeof(name), "Swat Helmet");
	else if(toy == 18637) format(name, sizeof(name), "Police Shield");
	else if(toy == 18642) format(name, sizeof(name), "Tazer");
	else if(toy == 330) format(name, sizeof(name), "Tazer");
	return name;
}

sam sem to zkoušel ale když to opět odkryju tak to musim nastavovat znova ale uklada se to ale nato musi být timer co minutu jinak to nejde ale uklada se ty pozice

Edited by Thomas.
Link to comment
Share on other sites

  • 0

jenže to bych musel překopat tem script aby to šlo nakupovat jak u toho co sem vytahl sice z americkeho gamemodu ja určite vím že v dialogu odkryti a schovani je problém v tomto ale kde :

	else if(dialogid == 25)
	{
	    if(response)
	    {
			new bone, index = toyslot[playerid];
	        switch(listitem)
	        {
	            case 0: bone = 1; case 1: bone = 2; case 2: bone = 3; case 3: bone = 4; case 4: bone = 5; case 5: bone = 6;
	            case 6: bone = 7; case 7: bone = 8; case 8: bone = 9; case 9: bone = 10; case 10: bone = 11; case 11: bone = 12;
	            case 12: bone = 13; case 13: bone = 14; case 14: bone = 15; case 15: bone = 16; case 16: bone = 17; case 17: bone = 18;
	        }
			//SetPlayerAttachedObject(playerid, index, PlayerInfo[playerid][pToyModel][index], bone, Float:PlayerInfo[playerid][pToyX][index], Float:PlayerInfo[playerid][pToyY][index], Float:PlayerInfo[playerid][pToyZ][index], Float:PlayerInfo[playerid][pToyRX][index], Float:PlayerInfo[playerid][pToyRY][index], Float:PlayerInfo[playerid][pToyRZ][index], Float:PlayerInfo[playerid][pToySX][index], Float:PlayerInfo[playerid][pToySY][index], Float:PlayerInfo[playerid][pToySZ][index]);
			//
			SetPlayerAttachedObject(playerid, index, PlayerInfo[playerid][pToyModel][index], bone, Float:PlayerInfo[playerid][pToyX][index], Float:PlayerInfo[playerid][pToyY][index], Float:PlayerInfo[playerid][pToyZ][index], Float:PlayerInfo[playerid][pToyRX][index], Float:PlayerInfo[playerid][pToyRY][index], Float:PlayerInfo[playerid][pToyRZ][index], Float:PlayerInfo[playerid][pToySX][index], Float:PlayerInfo[playerid][pToySY][index], Float:PlayerInfo[playerid][pToySZ][index]);
	    }
	    else SSSShowDialog(playerid, 24);
	}
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...