Sziasztok.
Valaki erre tudna írni egy questet, sajnos az én képességeimet meghaladja... x)
Ha valakit megölsz, és annak a valakinek van egy pontja (Ezt a pontot pc.setqf-el adom neki) akkor a megölt játékostól elvegye a pontot és annak adja aki megölte.
Egy if meghaladja a képességed? :o ???
Alapvetően nincs "másikjátékos.getqf" funkció, szóval jogos a felvetés.
Pati ha csak egy if lenne, akkor megoldottam volna...
npc = npc.get_vid()
pc.select(npc)
killed_player_flag = pc.getqf(...)
És hogy veszi el a megölt játékostól a pontot?
Rly? :o :o
[spoiler]setqf-gel adsz neki 1-gyel kisebb értéket... vagy amennyit el akarsz venni
pc.setqf("asd", fgh - 1)[/spoiler]
De hát azzal hogy tudnék másnak adni? Hát én ezt most már totálisan nem értem...
Idézetet írta: 5310pati Dátum 2018-06-09, 22:39:38
npc = npc.get_vid()
pc.select(npc)
killed_player_flag = pc.getqf(...)
Üzenet összefésülés: 2018-06-09, 23:03:01
De tessék...
quest asd begin
state start beign
when kill with npc.is_pc() begin
local player = pc.get_vid()
local victim = npc.get_vid()
pc.select(victim) -- switch to killed enemy
local victim_points = pc.getqf("asd")
if victim_points >= 1 then
pc.setqf("asd", victim_points - 1)
pc.select(player) -- switch back to the player
pc.setqf("asd", pc.getqf("asd") + 1)
end
end
end
end
Köszönöm.
Sőt... ha nagyon akarod írtam 1 ilyet (nem teszteltem szóval nem biztos hogy jó)
int npc_get_quest_flag(lua_State* L)
{
CQuestManager& q = CQuestManager::instance();
LPCHARACTER npc = q.GetCurrentNPCCharacterPtr();
if (npc && npc->IsPC())
{
if (!lua_isstring(L, -1))
{
sys_err("QUEST wrong get flag");
return 0;
}
else
{
const char* sz = lua_tostring(L, -1);
lua_pushnumber(L, npc->GetQuestFlag(q.GetCurrentQuestName() + "." + sz));
if (test_server)
sys_log(0, "NPC_GetQF ( %s . %s )", q.GetCurrentQuestName().c_str(), sz);
}
}
return 1;
}
int npc_set_quest_flag(lua_State* L)
{
CQuestManager& q = CQuestManager::instance();
LPCHARACTER npc = q.GetCurrentNPCCharacterPtr();
if (npc && npc->IsPC())
{
if (!lua_isstring(L, 1) || !lua_isnumber(L, 2))
{
sys_err("QUEST wrong set flag");
}
else
{
const char* sz = lua_tostring(L, 1);
npc->SetQuestFlag(sz, int(rint(lua_tonumber(L, 2))));
}
}
return 1;
}
majd
{ "getqf", npc_get_quest_flag },
{ "setqf", npc_set_quest_flag },
Ha jóra sikerült akk nem kell szórakozni, hanem simán npc.getqf és npc.setqf-gel tudod állítgatni.
Idézetet írta: 5310pati Dátum 2018-06-09, 22:39:38
npc = npc.get_vid()
pc.select(npc)
killed_player_flag = pc.getqf(...)
Fúh, még forrás előtt ezzel sokat szórakoztam, viszont komplexebb rendszereknél már megadta magát, amikor többször is kellett váltanom a játékosok között. Kisebb dolgokra lehet megfelelő, de én nem ajánlom a használatát.. :-X
Tesztelt működő forrásos változatot meg ha jól emlékszek devre rakott ki Béla még annó, szóval ha ez nem lenne jó akkor használd azt.