PDA

View Full Version : [JX] làm ơn giúp mình AddNpcEX() mà tên NPC có màu tím với!!-- LINUX



yeuVLTK
27-04-16, 01:23 AM
Mình đã tìm mấy ngày nay rồi mà không thể nào Add 1 con Npc có tên màu tím hoặc mầu vàng cả... làm ơn giúp mình với.. mình xin hậu tạ 10 Thaks!!

VanSuKhoiDau
27-04-16, 03:12 AM
Mình đã tìm mấy ngày nay rồi mà không thể nào Add 1 con Npc có tên màu tím hoặc mầu vàng cả... làm ơn giúp mình với.. mình xin hậu tạ 10 Thaks!!

local npcindex = AddNpcEx(nID,nLevel,npcSeries,nMapIndex,nPosX,nPos Y,noRV,npcName,isBoss)

Bạn thay isBoss = 1 (Màu Vàng) , isBoss = 2 (Màu Xanh) . v.v.......

cabato
27-04-16, 06:31 AM
Mình đã tìm mấy ngày nay rồi mà không thể nào Add 1 con Npc có tên màu tím hoặc mầu vàng cả... làm ơn giúp mình với.. mình xin hậu tạ 10 Thaks!!

Tên màu xanh.tím hay vàng chỉ dành cho quái thôi bạn nhé. Ko áp dụng cho npc
có thể set màu = hàm hoặc chỉnh trong npcs.txt

trungkhuyen
27-04-16, 10:54 AM
local npcindex = AddNpcEx(nID,nLevel,npcSeries,nMapIndex,nPosX,nPos Y,noRV,npcName,isBoss)

Bạn thay isBoss = 1 (Màu Vàng) , isBoss = 2 (Màu Xanh) . v.v.......

Ủa? Phải có thêm "local npcindex.." mới được hả bạn??

--- Chế độ gộp bài viết ---


Tên màu xanh.tím hay vàng chỉ dành cho quái thôi bạn nhé. Ko áp dụng cho npc
có thể set màu = hàm hoặc chỉnh trong npcs.txt

Trong npcs.txt thì mình tìm ko có cột Isboss nào cả, còn set màu bằng hàm thì thế nào bạn?

yeuVLTK
27-04-16, 03:42 PM
local npcindex = AddNpcEx(nID,nLevel,npcSeries,nMapIndex,nPosX,nPos Y,noRV,npcName,isBoss)

Bạn thay isBoss = 1 (Màu Vàng) , isBoss = 2 (Màu Xanh) . v.v.......

sao mình add trong autoexec.lua giống cấu trúc trên mà ko được vậy???

yeuVLTK
27-04-16, 11:36 PM
Mình đã làm được rồi cảm ơn các bạn... chỉ có AddNpcEx() mới Set màu tên Npc đc, và chỉ có đc màu xanh và vàng thôi, ko có màu tím.. Với lại như bạn Vạn Sự Khởi đầu thì mình ko làm được - thêm Local thì bị lỗi! và
không hiểu sao mình không thể viết hàm AddNpcEx () hoặc AddNpc() vào item (thêm vào script npc thoại) được...
Mình phải thêm Tab ở các file Autoecex.lua hoặc addxisancunnpc.lua mới add được. Mình hoàn toàn không thể dùng cả 2 lệnh add

nhaodzo
28-04-16, 12:35 PM
Mình đã làm được rồi cảm ơn các bạn... chỉ có AddNpcEx() mới Set màu tên Npc đc, và chỉ có đc màu xanh và vàng thôi, ko có màu tím.. Với lại như bạn Vạn Sự Khởi đầu thì mình ko làm được - thêm Local thì bị lỗi! và
không hiểu sao mình không thể viết hàm AddNpcEx () hoặc AddNpc() vào item (thêm vào script npc thoại) được...
Mình phải thêm Tab ở các file Autoecex.lua hoặc addxisancunnpc.lua mới add được. Mình hoàn toàn không thể dùng cả 2 lệnh add
màu tím đổi thành 6 xem được ko nhé

lengoctuan.dl
15-01-21, 08:26 AM
Mình đã tìm mấy ngày nay rồi mà không thể nào Add 1 con Npc có tên màu tím hoặc mầu vàng cả... làm ơn giúp mình với.. mình xin hậu tạ 10 Thaks!!

Cấu trúc của hàm AddNpcEx bạn ngâm cứu để add theo ý

int __cdecl LuaAddNpc(lua_State_0 *L)
{
const char *v2; // eax
int v3; // ebx
signed int v4; // eax
int v5; // esi
double v6; // ST28_8
double v7; // ST30_8
long double v8; // fst7
int v9; // eax
KNpc *v10; // ebx
const char *v11; // eax
KNpc *v12; // esi
CHAR *v13; // ebx
int v14; // eax
int v15; // eax
int v16; // eax
signed int nParamCount; // [esp+3Ch] [ebp-3Ch]
NPCKIND nKind; // [esp+40h] [ebp-38h]
int nNpcIdx; // [esp+44h] [ebp-34h]
int nRemoveWhenDeath; // [esp+48h] [ebp-30h]
int nNpcSettingIdxInfo; // [esp+4Ch] [ebp-2Ch]
int v22; // [esp+50h] [ebp-28h]

nParamCount = lua_gettop(L);
if ( nParamCount <= 4 )
return 0;
if ( lua_type(L, 1) == 2 )
{
v3 = (signed __int64)lua_tonumber(L, 1);
}
else
{
if ( !lua_isstring(L, 1) )
return 0;
v2 = lua_tostring(L, 1);
v3 = KTabFile::FindRow(&g_NpcSetting, v2, 1) - 2;
}
nNpcSettingIdxInfo = 1;
v4 = (signed int)lua_tonumber(L, 2);
if ( v4 >= 0 )
nNpcSettingIdxInfo = (unsigned __int16)v4;
nKind = -1;
v5 = rand();
if ( nParamCount > 8 )
nKind = (unsigned int)(signed __int64)lua_tonumber(L, 9);
v6 = lua_tonumber(L, 5);
v7 = lua_tonumber(L, 4);
v8 = lua_tonumber(L, 3);
v9 = KNpcSet::Add(
&NpcSet,
v5 % 5,
((~(v3 >> 31) & v3) << 16) | nNpcSettingIdxInfo,
(signed int)v8,
(signed int)v7,
(signed int)v6,
nKind);
nNpcIdx = v9;
if ( v9 > 0 )
{
if ( nParamCount == 5 )
{
nRemoveWhenDeath = 0;
v22 = v9;
}
else
{
nRemoveWhenDeath = (signed __int64)lua_tonumber(L, 6);
v22 = nNpcIdx;
Npc[nNpcIdx].m_bRemoveWhenDeath = nRemoveWhenDeath != 0;
if ( nParamCount > 6 )
{
v11 = lua_tostring(L, 7);
if ( v11 )
{
if ( *v11 )
{
v12 = &Npc[v22];
v13 = Npc[v22].Name;
g_StrCpyLen(v13, v11, 32);
v12->m_dwNameID = g_FileName2Id(v13);
}
}
}
}
v10 = &Npc[v22];
if ( Npc[v22].m_Kind == 3 )
{
v15 = v10->m_SubWorldIndex;
if ( v15 >= 0 && v15 < unk_82BB4A0 )
v16 = SubWorld[v15].m_SubWorldID;
else
v16 = 0;
v10->m_dwPermitDialogInfo = KGlobalValue::GetNpcPermitDialogInfo(&g_GlobalSetting, v10->Name, v16);
}
else
{
v10->m_dwPermitDialogInfo = 0;
}
if ( nParamCount > 7 )
{
v14 = (signed __int64)lua_tonumber(L, 8);
if ( v14 == 1 )
{
KNpc::AppendBossProp(&Npc[v22]);
if ( nRemoveWhenDeath )
Npc[v22].m_eIsGoldBoss = 3;
else
Npc[v22].m_eIsGoldBoss = 2;
}
else if ( v14 == 2 )
{
KNpcGold::SetGoldTypeAndBackData(&Npc[v22].m_cGold);
KNpcGold::RandChangeGold(&Npc[v22].m_cGold, 1000000, 0);
}
}
}
lua_pushnumber(L, (long double)nNpcIdx);
return 1;
}