Béla kereskedőháza - 6 kő

Indította josikaaa, 2017-01-14, 13:01:24

Sziasztok!

Elkezdtem berakni Béla kereskedőházát, viszont van vele egy problémám.

Alapértelmezetten a quest és a lua kompatibilis a 6 kővel, viszont a py már nem, ezt bővítettem, így már a kereskedőházba berakás tökéletes, tehát megvan mind a 6 kő, keresés után kiírja a 6 követ, vásárlás után még jó, de amint kiveszem a tárgyat már csak 3 kő marad benne a másik 3 tökéletesen eltűnik.

Valakinek van ötlete mi lehet a gond?

Előre is köszönöm

Esetleg a forrásban nincs átírva a item.set_socket (vagy mittomén mi a neve) funkció, hogy megadja a 6 követ?
Ha nem látod a válaszom, valamit elrontottál:

A raktár nem kúrja el az optokat, hogy bekerült a 6 kő?
[spoiler]Csak kíváncsiság mert, nálam ez volt a gond mindig.[/spoiler]

raktárat nem néztem még, később meg tudom nézni,

Béla esetleg el tudod küldeni azt hogy a questlua_pc.cpp bővített verzióját?

leírást nem találtam, próbáltam megírni, de nem nagyon jött össze

int pc_give_item_with(lua_State* L)
{
if (lua_gettop(L) != 19)
{
lua_pushboolean(L, false);
return 1;
}

LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();

if (!ch)
{
sys_err("Char not found (give item with)");
lua_pushboolean(L, false);
return 1;
}

if (!lua_isstring(L, 1) && !lua_isnumber(L, 1))
{
sys_err("QUEST Make item call error : wrong argument");
lua_pushboolean(L, false);
return 1;
}

DWORD dwVnum;

if (lua_isnumber(L, 1)) // ąřČŁŔΰćżě ąřČŁ·Î ÁŘ´Ů.
{
dwVnum = (int)lua_tonumber(L, 1);
}
else if (!ITEM_MANAGER::instance().GetVnum(lua_tostring(L, 1), dwVnum))
{
sys_err("QUEST Make item call error : wrong item name : %s", lua_tostring(L, 1));
lua_pushboolean(L, false);
return 1;
}

int icount = 1;
if (lua_isnumber(L, 2) && lua_tonumber(L, 2)>0)
{
icount = (int)rint(lua_tonumber(L, 2));
if (icount <= 0)
{
sys_err("QUEST Make item call error : wrong item count : %g", lua_tonumber(L, 2));
lua_pushboolean(L, false);
return 1;
}
}

LPITEM item = ch->AutoGiveItem(dwVnum, icount);

if (NULL != item)
{
int attr1;
int value1;
int attr2;
int value2;
int attr3;
int value3;
int attr4;
int value4;
int attr5;
int value5;
int attr6;
int value6;
int attr7;
int value7;
int socket1;
int socket2;
int socket3;

if (lua_isnumber(L, 3) && lua_isnumber(L, 4) && lua_isnumber(L, 5) && lua_isnumber(L, 6) && lua_isnumber(L, 7) && lua_isnumber(L, 8) && lua_isnumber(L, 9) && lua_isnumber(L, 10) && lua_isnumber(L, 11) && lua_isnumber(L, 12) && lua_isnumber(L, 13) && lua_isnumber(L, 14) && lua_isnumber(L, 15) && lua_isnumber(L, 16) && lua_isnumber(L, 17) && lua_isnumber(L, 18) && lua_isnumber(L, 19))
{
attr1 = (int)lua_tonumber(L, 3);
value1 = (int)lua_tonumber(L, 4);

attr2 = (int)lua_tonumber(L, 5);
value2 = (int)lua_tonumber(L, 6);

attr3 = (int)lua_tonumber(L, 7);
value3 = (int)lua_tonumber(L, 8);

attr4 = (int)lua_tonumber(L, 9);
value4 = (int)lua_tonumber(L, 10);

attr5 = (int)lua_tonumber(L, 11);
value5 = (int)lua_tonumber(L, 12);

attr6 = (int)lua_tonumber(L, 13);
value6 = (int)lua_tonumber(L, 14);

attr7 = (int)lua_tonumber(L, 15);
value7 = (int)lua_tonumber(L, 16);

socket1 = (int)lua_tonumber(L, 17);
socket2 = (int)lua_tonumber(L, 18);
socket3 = (int)lua_tonumber(L, 19);


item->SetForceAttribute(0, attr1, value1);
item->SetForceAttribute(1, attr2, value2);
item->SetForceAttribute(2, attr3, value3);
item->SetForceAttribute(3, attr4, value4);
item->SetForceAttribute(4, attr5, value5);
item->SetForceAttribute(5, attr6, value6);
item->SetForceAttribute(6, attr7, value7);

item->SetSocket(0, socket1);
item->SetSocket(1, socket2);
item->SetSocket(2, socket3);

lua_pushboolean(L, true);
return 1;
}

lua_pushboolean(L, false);
return 1;
}
lua_pushboolean(L, false);
return 1;
}


Ezt nehogy már ne bírd átírni... (btw omg hogy néz ez ki (le is tagadnám, hogy én írtam, de hiába))
Ha nem látod a válaszom, valamit elrontottál:

Igen meg vagy vadulva Bélám.