quest kérés

Indította Fantasy™, 2017-07-30, 14:22:10

Sziasztok nem találok olyan questet ami 250-ről leszintel 1 re egyáltalán létezik? Ha igen valaki eltudná küldeni?

2017-07-30, 14:39:40 #1 Utolsó szerkesztés: 2017-07-30, 14:41:24 Szerző: Nexus™
Ez vissza tesz 1-es szintre is.

quest test begin
state start begin
when NPCID.chat."ADOKÉNSZINTETTEPARASZT" begin
local szint, yang
say("MENNYISZINTKÖLLNEKEDTELEGÉNY")
say("MEGADOKNEKEDMINDENTTEBUTA")
local s = select("Szint 1", "Szint 250","Mégse")
if s == 1 then
szint = 1
elseif s == 2 then
szint = 250
elseif s == 3 then
return
end
if pc.level >= szint then
syschat("MITAKARSZMÁELÉRTEDASZINTEDET")
return
end
while pc.get_level() < szint do
pc.give_exp2(pc.get_next_exp()-pc.get_exp())
end
end
end
end
Az élet olyan mint egy pohár stampó, sok van belÅ'le de sohasem elég!

Nem jó sajnos nem szintel le

2017-08-01, 11:53:44 #3 Utolsó szerkesztés: 2017-08-01, 11:56:30 Szerző: Distraught
hozz létre quest funkciót a szintadáshoz
tessék, gyorsan írtam egyet, szerintem működik
questlua_pc.cpp:

int szintallitas(lua_State * L)
{
if (!lua_isnumber(L, 1))
{
return 0;
}
LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();
ch->ResetPoint(MINMAX(1, lua_tonumber(L,1), PLAYER_MAX_LEVEL_CONST));
ch->ClearSkill();
ch->ClearSubSkill();
return 0;
}


majd a RegisterPCFunctionTable-be:

{"szintallitas", szintallitas},

questben pedig ezután:
pc.szintallitas(1)

nem teszteltem, épp munkában vagyok, de szerintem működik

C++ programmer at Gameloft

Alapból van a forrásban ilyen funkció, ezt tegnap el is küldtem neki privátban:
int pc_set_level(lua_State * L) 
{
if (!lua_isnumber(L, 1))
{
sys_err("invalid argument");
return 0;
}
else
{
int newLevel = lua_tonumber(L, 1);
LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();


sys_log(0,"QUEST [LEVEL] %s jumpint to level %d", ch->GetName(), (int)rint(lua_tonumber(L,1)));

PC* pPC = CQuestManager::instance().GetCurrentPC();
LogManager::instance().QuestRewardLog(pPC->GetCurrentQuestName().c_str(), ch->GetPlayerID(), ch->GetLevel(), newLevel, 0);

//Ć÷ŔÎĆ® : ˝şĹł, Ľ­şę˝şĹł, ˝şĹČ
ch->PointChange(POINT_SKILL, newLevel - ch->GetLevel());
ch->PointChange(POINT_SUB_SKILL, newLevel < 10 ? 0 : newLevel - MAX(ch->GetLevel(), 9));
ch->PointChange(POINT_STAT, ((MINMAX(1, newLevel, 90) - ch->GetLevel()) * 3) + ch->GetPoint(POINT_LEVEL_STEP));
//·ąş§
ch->PointChange(POINT_LEVEL, newLevel - ch->GetLevel());
//HP, SP
ch->SetRandomHP((newLevel - 1) * number(JobInitialPoints[ch->GetJob()].hp_per_lv_begin, JobInitialPoints[ch->GetJob()].hp_per_lv_end));
ch->SetRandomSP((newLevel - 1) * number(JobInitialPoints[ch->GetJob()].sp_per_lv_begin, JobInitialPoints[ch->GetJob()].sp_per_lv_end));


// ȸşą
ch->PointChange(POINT_HP, ch->GetMaxHP() - ch->GetHP());
ch->PointChange(POINT_SP, ch->GetMaxSP() - ch->GetSP());

ch->ComputePoints();
ch->PointsPacket();
ch->SkillLevelPacket();

return 0;
}
}

és még ez is meg van hozzá
{ "set_level", pc_set_level },
szóval simán használható questbe.