Salut Comunitate.
Are careva un quest ce iti da +1 la level??
Ex: Daca am level 10 sa utilizez un obiect si sa primesc lvl 11.
Multumesc.
Cerere Quest
- [RaffaeL]
-

- Mesaje: 3223
- Membru din: 19 Mar 2016, 12:58
- Server: ...
- Aprecieri: 15
- Mulţumiri: 2502
- Rezolvări prob.: 2
- Discord: Copiază ID
- Contact:
Presupunand ca folosesti game r40k (majoritatea au adaugata functia set_level), creaza un quest simplu de forma:demonboy12 scrie:Salut Comunitate.
Are careva un quest ce iti da +1 la level??
Ex: Daca am level 10 sa utilizez un obiect si sa primesc lvl 11.
Multumesc.
quest uplevel begin state start begin when xyz.use begin --xyz = vnum item utilizat local lvl = pc.get_level()+1 pc.set_level(lvl) end end end
- Pentru acest mesaj, [RaffaeL] for the post:
- demonboy12
Nu merge... dau pe obiect , nu se intampla nimic.[RaffaeL] scrie:Presupunand ca folosesti game r40k (majoritatea au adaugata functia set_level), creaza un quest simplu de forma:demonboy12 scrie:Salut Comunitate.
Are careva un quest ce iti da +1 la level??
Ex: Daca am level 10 sa utilizez un obiect si sa primesc lvl 11.
Multumesc.quest uplevel begin state start begin when xyz.use begin --xyz = vnum item utilizat local lvl = pc.get_level()+1 pc.set_level(lvl) end end end
- [RaffaeL]
-

- Mesaje: 3223
- Membru din: 19 Mar 2016, 12:58
- Server: ...
- Aprecieri: 15
- Mulţumiri: 2502
- Rezolvări prob.: 2
- Discord: Copiază ID
- Contact:
demonboy12 scrie:Nu merge... dau pe obiect , nu se intampla nimic.[RaffaeL] scrie:Presupunand ca folosesti game r40k (majoritatea au adaugata functia set_level), creaza un quest simplu de forma:demonboy12 scrie:Salut Comunitate.
Are careva un quest ce iti da +1 la level??
Ex: Daca am level 10 sa utilizez un obiect si sa primesc lvl 11.
Multumesc.quest uplevel begin state start begin when xyz.use begin --xyz = vnum item utilizat local lvl = pc.get_level()+1 pc.set_level(lvl) end end end
Verifica urmatoarele:
1. Itemul sa fie pe TYPE_QUEST(txt), sau type 18(sql)
2. Verifica daca exista, sau adauga in cazul in care lipseste:
-sursa game/ questlua_pc.cpp-> cauta
Cod: Selectaţi tot
int pc_get_level(lua_State * L)Cod: Selectaţi tot
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;
}
}Cod: Selectaţi tot
void RegisterPCFunctionTable()Cod: Selectaţi tot
{ "get_level", pc_get_level },Cod: Selectaţi tot
{ "set_level", pc_set_level },Cod: Selectaţi tot
pc.set_level- Pentru acest mesaj, [RaffaeL] for the post:
- demonboy12
Am functia adaugata deja.[RaffaeL] scrie:demonboy12 scrie:Nu merge... dau pe obiect , nu se intampla nimic.[RaffaeL] scrie:
Presupunand ca folosesti game r40k (majoritatea au adaugata functia set_level), creaza un quest simplu de forma:quest uplevel begin state start begin when xyz.use begin --xyz = vnum item utilizat local lvl = pc.get_level()+1 pc.set_level(lvl) end end end
Verifica urmatoarele:
1. Itemul sa fie pe TYPE_QUEST(txt), sau type 18(sql)
2. Verifica daca exista, sau adauga in cazul in care lipseste:
-sursa game/ questlua_pc.cpp-> cautaAdauga sub acea functie:Cod: Selectaţi tot
int pc_get_level(lua_State * L)In acelasi fisier cautaCod: Selectaţi tot
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; } }vei gasi mai josCod: Selectaţi tot
void RegisterPCFunctionTable()adauga subCod: Selectaţi tot
{ "get_level", pc_get_level },In quest_function adaugaCod: Selectaţi tot
{ "set_level", pc_set_level },Bafta.Cod: Selectaţi tot
pc.set_level
Multumesc ca incerci sa ma ajuti.
demonboy12 scrie:Am functia adaugata deja.[RaffaeL] scrie:demonboy12 scrie: Nu merge... dau pe obiect , nu se intampla nimic.
Verifica urmatoarele:
1. Itemul sa fie pe TYPE_QUEST(txt), sau type 18(sql)
2. Verifica daca exista, sau adauga in cazul in care lipseste:
-sursa game/ questlua_pc.cpp-> cautaAdauga sub acea functie:Cod: Selectaţi tot
int pc_get_level(lua_State * L)In acelasi fisier cautaCod: Selectaţi tot
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; } }vei gasi mai josCod: Selectaţi tot
void RegisterPCFunctionTable()adauga subCod: Selectaţi tot
{ "get_level", pc_get_level },In quest_function adaugaCod: Selectaţi tot
{ "set_level", pc_set_level },Bafta.Cod: Selectaţi tot
pc.set_level
Multumesc ca incerci sa ma ajuti.
Doar ca pana la lvl 30 imi da exp pe minus..
Iar de la lvl 92 incepe sa imi ia din punctele status cele ce nu sunt bagate pe int /vit etc
- [RaffaeL]
-

- Mesaje: 3223
- Membru din: 19 Mar 2016, 12:58
- Server: ...
- Aprecieri: 15
- Mulţumiri: 2502
- Rezolvări prob.: 2
- Discord: Copiază ID
- Contact:
Nu inteleg de ce ar trebui sa adaugi info level (acel (1)), atat timp cat functia pc.get_level() verifica nivelul actual al jucatorului indiferent care ar fi acela...demonboy12 scrie:Sub forma asta imi da +1 la lvl.
Doar ca pana la lvl 30 imi da exp pe minus..
Exista vre-o functie ceva sa imi dea exp pe 0.?
Exact in forma in care l-am scris mai sus functioneaza perfect, poti vedea asta aici:

- Pentru acest mesaj, [RaffaeL] for the post:
- demonboy12
Acum merge , multumesc.[RaffaeL] scrie:Nu inteleg de ce ar trebui sa adaugi info level (acel (1)), atat timp cat functia pc.get_level() verifica nivelul actual al jucatorului indiferent care ar fi acela...demonboy12 scrie:Sub forma asta imi da +1 la lvl.
Doar ca pana la lvl 30 imi da exp pe minus..
Exista vre-o functie ceva sa imi dea exp pe 0.?
Exact in forma in care l-am scris mai sus functioneaza perfect, poti vedea asta aici:
Sunt insa 2 probleme.
1. pana la lvl aproximativ 50 imi da exp pe minus.
Apoi de la lvl 92 ( eu am maxim 120) incepe sa imi scada din punctele status ce inca nu sunt bagate pe int / vit etc.
Ai idee cum as putea sa rezolv?
Inca o problema ... da dublu puncte status pe fiecare lvl facut !demonboy12 scrie:Acum merge , multumesc.[RaffaeL] scrie:Nu inteleg de ce ar trebui sa adaugi info level (acel (1)), atat timp cat functia pc.get_level() verifica nivelul actual al jucatorului indiferent care ar fi acela...demonboy12 scrie:Sub forma asta imi da +1 la lvl.
Doar ca pana la lvl 30 imi da exp pe minus..
Exista vre-o functie ceva sa imi dea exp pe 0.?
Exact in forma in care l-am scris mai sus functioneaza perfect, poti vedea asta aici:
Sunt insa 2 probleme.
1. pana la lvl aproximativ 50 imi da exp pe minus.
Apoi de la lvl 92 ( eu am maxim 120) incepe sa imi scada din punctele status ce inca nu sunt bagate pe int / vit etc.
Ai idee cum as putea sa rezolv?
- [RaffaeL]
-

- Mesaje: 3223
- Membru din: 19 Mar 2016, 12:58
- Server: ...
- Aprecieri: 15
- Mulţumiri: 2502
- Rezolvări prob.: 2
- Discord: Copiază ID
- Contact:
Verifica functia de puncte status dupa nivelul 90, sa fie corect scrisa(daca este modificata, cea initiala),demonboy12 scrie:Inca o problema ... da dublu puncte status pe fiecare lvl facut !demonboy12 scrie:Acum merge , multumesc.[RaffaeL] scrie:
Nu inteleg de ce ar trebui sa adaugi info level (acel (1)), atat timp cat functia pc.get_level() verifica nivelul actual al jucatorului indiferent care ar fi acela...
Exact in forma in care l-am scris mai sus functioneaza perfect, poti vedea asta aici:
Sunt insa 2 probleme.
1. pana la lvl aproximativ 50 imi da exp pe minus.
Apoi de la lvl 92 ( eu am maxim 120) incepe sa imi scada din punctele status ce inca nu sunt bagate pe int / vit etc.
Ai idee cum as putea sa rezolv?
si rescrie questul de forma:
quest uplevel begin state start begin when xyz.use begin local exp=pc.get_exp() local lvl = pc.get_level() + 1 pc.set_level(lvl) pc.give_exp2(-exp) end end endpentru 0 exp la lvlup.
- Pentru acest mesaj, [RaffaeL] for the post:
- demonboy12
Răspunsuri
6 Vizualizări
350
6 Vizualizări
350
Răspunsuri
2 Vizualizări
463
2 Vizualizări
463
Răspunsuri
5 Vizualizări
1777
5 Vizualizări
1777
-
- Informaţie
-
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 20 vizitatori



