Ultima modifica da un moderatore:
Salve Community ,
Vi disturbo per una release relativamente sciocca , ma preferisco pubblicare anche queste fesserie piuttosto che lasciarle marcire nella mia ROM.
Sono dei nuovi comandi e funzioni da usare in lua:
1. pc.is_invisible
2. pc.set_invisibility
3. npc.purge_by_race
Non sono comandi complicati che necessitano di molte spiegazioni , ma meglio che vi spieghi l'utilizzo:
pc.is_invisible() ->(ritorna vero se il pg attualmente invisibile , falso se è visibile)
pc.set_invisibility(parametro) * ->(passando il parametro 0 rendi il player visibile - passando il parametro 1 il player scompare )
npc.purge_by_race (parametro) ->( passando come parametro la razza (comunemente chiamata vnum) del mob , si purgeranno tutti i mob della razza indicata MA SOLO NELLA MAPPA IN CUI CI SI TROVA )
Scrivo in inglese l'installazione del codice perchè sono abituato così (in realtà anche il codice usa un dizionario inglese ).
A differenza delle ultime release che ho visto , questo codice è opera delle mie manine (non che sia nulla di cui vantarsi , anzi è roba da nulla e lo dico chiaro ) e non è stato semplicemente leakerato in giro.
Prego in anticipo per il tempo che ho perso a scriverlo (10 minuti a scrivere , mezzoretta per testare).
Non voglio like per questa roba da nulla quindi astenetevi dal pigiare quel tasto ( come se servisse dirvelo
).
Questi comandi sono stati scritti per aiutare un utente in help development , ma mi pareva utile rilasciarli in un thread a sè.
Vi rilascio anche una quest che ho scritto per testare i comandi , nel caso qualcuno voglia testarli prima di usarli. Siete liberi di non usare questa quest.
Agli haters che non vedono l'ora di screditarmi dico : risparmiatevela , sto dicendo io stesso che è robetta da poco. Nessuno vi obbliga ad usarla, nessuno vi impedisce di scrivervi i vostri MEGA SYSTEM ULTRA PROFFESSIONNAALL.
Se per caso sta leggendo qualcuno che sta aspettando lo sharing system (prestito item a tempo) sappiate che lo rilascio a breve ( non so ancora quando di preciso ma questione di giorni ).
Per motivi personali e per via del mio trasloco da una casa ad un altra , ho dovuto ritardarne l'uscita.
(non che serva giustificarsi per una free released , però giusto anche che sappiate le circostanze)
Per qualunque problema , sono disponibile per aiutarvi.
Enjoy
Vi disturbo per una release relativamente sciocca , ma preferisco pubblicare anche queste fesserie piuttosto che lasciarle marcire nella mia ROM.
Sono dei nuovi comandi e funzioni da usare in lua:
1. pc.is_invisible
2. pc.set_invisibility
3. npc.purge_by_race
Non sono comandi complicati che necessitano di molte spiegazioni , ma meglio che vi spieghi l'utilizzo:
pc.is_invisible() ->(ritorna vero se il pg attualmente invisibile , falso se è visibile)
pc.set_invisibility(parametro) * ->(passando il parametro 0 rendi il player visibile - passando il parametro 1 il player scompare )
npc.purge_by_race (parametro) ->( passando come parametro la razza (comunemente chiamata vnum) del mob , si purgeranno tutti i mob della razza indicata MA SOLO NELLA MAPPA IN CUI CI SI TROVA )
Scrivo in inglese l'installazione del codice perchè sono abituato così (in realtà anche il codice usa un dizionario inglese ).
C++:
//search :
LPCHARACTER CHARACTER_MANAGER::SpawnMobRandomPosition(DWORD dwVnum, long lMapIndex)
//add before -WARNING BEFORE :
#ifdef IKARUS_QUEST_COMMAND
struct FuncPurgeAllMobByRace
{
DWORD m_race;
FuncPurgeAllMobByRace(DWORD race) : m_race(race)
{
}
void operator () (LPENTITY ent)
{
if (ent->IsType(ENTITY_CHARACTER))
{
LPCHARACTER pkChr = (LPCHARACTER) ent;
if(pkChr->IsPC())
return;
if(pkChr->GetRaceNum() != m_race )
return;
M2_DESTROY_CHARACTER(pkChr);
}
}
};
bool CHARACTER_MANAGER::PurgeAllMobByRace( DWORD race , LPSECTREE_MAP map )
{
if(race < 0 || !map )
return false;
FuncPurgeAllMobByRace purge_all_mob(race);
map->for_each(purge_all_mob);
return true;
}
#endif
C++:
//search :
LPCHARACTER SpawnMobRandomPosition(DWORD dwVnum, long lMapIndex);
//add before -WARNING BEFORE
#ifdef IKARUS_QUEST_COMMAND
bool PurgeAllMobByRace( DWORD race , LPSECTREE_MAP map );
#endif
C++:
//search:
#include "desc.h"
//add under:
#ifdef IKARUS_QUEST_COMMAND
#include "sectree_manager.h"
#endif
////////////////////////////////////////////////
//search :
int npc_get_exp(lua_State* L)
{
lua_pushnumber(L, CQuestManager::instance().GetCurrentNPCCharacterPtr()->GetMobTable().dwExp);
return 1;
}
//add under :
#ifdef IKARUS_QUEST_COMMAND
int npc_purge_by_race(lua_State* L)
{
LPCHARACTER pc = CQuestManager::Instance().GetCurrentCharacterPtr();
LPSECTREE_MAP pcMap = SECTREE_MANAGER::instance().GetMap(pc->GetMapIndex());
DWORD race = (DWORD)lua_tonumber(L , 1);
if( !pcMap || !lua_isnumber(L , 1) || !race )
{
sys_err("Ikarus >> npc_purge_by_race : if(!pcMap || !lua_isnumber(L , 1) || !race ) , return before purge ");
return 1;
}
CHARACTER_MANAGER::Instance().PurgeAllMobByRace( race , pcMap);
return 2;
}
#endif
//////////////////////////////////////////////////////
//search :
{ "purge", npc_purge },
//add under :
#ifdef IKARUS_QUEST_COMMAND
{ "purge_by_race", npc_purge_by_race },
#endif
C++:
//add between the others define
#define IKARUS_QUEST_COMMAND
Codice:
//search :
int pc_get_start_location(lua_State * L)
//add before WARNING BEFORE
#ifdef IKARUS_QUEST_COMMAND
int pc_get_invisibility(lua_State * L)
{
LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();
if (ch->IsAffectFlag(AFF_INVISIBILITY))
{
lua_pushboolean(L, true);
return 1;
}
else
{
lua_pushboolean(L, false);
return 1;
}
}
int pc_set_invisibility(lua_State * L)
{
if(!lua_isnumber(L,1) )
{
sys_err("Ikarus >> Error in pc.set_invisibility (for add inv inserti 1 , to remove inv use 0.)");
return 1;
}
LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();
int StateToSet = (int) lua_tonumber(L,1);
if (ch->IsAffectFlag(AFF_INVISIBILITY))
{
if(StateToSet > 0)
{
sys_err("ikarus >> try to set invisibility to 1 , already set to 1 ! ");
return 1;
}
ch->RemoveAffect(AFFECT_INVISIBILITY);
return 2;
}
else
{
if(StateToSet <= 0)
{
sys_err("Ikarus >> try to remove invisibility , already removed.");
return 1;
}
ch->AddAffect(AFFECT_INVISIBILITY, POINT_NONE, 0, AFF_INVISIBILITY, INFINITE_AFFECT_DURATION, 0, true);
return 2;
}
}
#endif
///////////////////////////////////////////////////////////////////////
//search:
{ "set_warp_location_local",pc_set_warp_location_local },
//add under :
#ifdef IKARUS_QUEST_COMMAND
{ "is_invisible", pc_get_invisibility},
{ "set_invisibility", pc_set_invisibility},
#endif
A differenza delle ultime release che ho visto , questo codice è opera delle mie manine (non che sia nulla di cui vantarsi , anzi è roba da nulla e lo dico chiaro ) e non è stato semplicemente leakerato in giro.
Prego in anticipo per il tempo che ho perso a scriverlo (10 minuti a scrivere , mezzoretta per testare).
Non voglio like per questa roba da nulla quindi astenetevi dal pigiare quel tasto ( come se servisse dirvelo

Questi comandi sono stati scritti per aiutare un utente in help development , ma mi pareva utile rilasciarli in un thread a sè.
Vi rilascio anche una quest che ho scritto per testare i comandi , nel caso qualcuno voglia testarli prima di usarli. Siete liberi di non usare questa quest.
Codice:
quest test_command begin
state start begin
when letter begin
send_letter("test_command")
end
when info or button begin
say("Scegli cosa fare : ")
say("")
local test_to_do = select("test comando get_inv","test comando set_inv","test comando purge","nulla")
if test_to_do == 1 then
if pc.is_invisible() then
chat("Sei invisibile")
else
chat("Sei visibile")
end
elseif test_to_do == 2 then
say("Scegli come vuoi settare l'invisibilità ")
say("")
local inv_to_set = select("Visibile","Invisibile","Nulla")
if inv_to_set != 3 then
pc.set_invisibility(inv_to_set - 1)
end
elseif test_to_do == 3 then
say("Scegli la razza da purgare")
say("")
local race = tonumber(input())
npc.purge_by_race(race)
end
end
end
end
Agli haters che non vedono l'ora di screditarmi dico : risparmiatevela , sto dicendo io stesso che è robetta da poco. Nessuno vi obbliga ad usarla, nessuno vi impedisce di scrivervi i vostri MEGA SYSTEM ULTRA PROFFESSIONNAALL.
Se per caso sta leggendo qualcuno che sta aspettando lo sharing system (prestito item a tempo) sappiate che lo rilascio a breve ( non so ancora quando di preciso ma questione di giorni ).
Per motivi personali e per via del mio trasloco da una casa ad un altra , ho dovuto ritardarne l'uscita.
(non che serva giustificarsi per una free released , però giusto anche che sappiate le circostanze)
Per qualunque problema , sono disponibile per aiutarvi.
Enjoy
