Ir para conteúdo

Monster Com Skull Randomicas


Posts Recomendados

Descrição:

Nome : Monster Skull randomicas

Versão : 8.54

 

Bom abra as SOUCER e vai em: luascript.cpp e procure:

 

int32_t LuaScriptInterface::luaGetPlayersOnline(lua_State* L)
{
//getPlayersOnline()
ScriptEnviroment* env = getEnv();
AutoList<Player>::iterator it = Player::autoList.begin();

lua_newtable(L);
for(int32_t i = 1; it != Player::autoList.end(); ++it, ++i)
{
	lua_pushnumber(L, i);
	lua_pushnumber(L, env->addThing(it->second));
	pushTable(L);
}
return 1;
}

 

Embaixo disso Adicione isso :

 

int32_t LuaScriptInterface::luaCheckSpawnMonster(lua_State* L)
{
ScriptEnviroment* env = getEnv();
AutoList<Monster>::iterator it = Monster::autoList.begin();

lua_newtable(L);
for(int32_t i = 1; it != Monster::autoList.end(); ++it, ++i)
{
	lua_pushnumber(L, i);
	lua_pushnumber(L, env->addThing(it->second));
	pushTable(L);
}
return 1;
}

 

Agora Procure essas linhas

//getPlayersOnline()
lua_register(m_luaState, "getPlayersOnline", LuaScriptInterface::luaGetPlayersOnline);

 

E Adicione isso Abaixo delas

 

//checkSpawnMonster()
lua_register(m_luaState, "checkSpawnMonster", LuaScriptInterface::luaCheckSpawnMonster);

 

AGORA EM LUASCRIPT.H PROCURE ESSA LINHA:

 

static int32_t luaGetPlayersOnline(lua_State* L);

 

E bote isso embaixo dela:

static int32_t luaCheckSpawnMonster(lua_State* L);

 

Acabou o Sistema, Agora a 2 jeitos de você usar esse script

 

1° Talkactions ( quando você falar o comando ele vai dar um skull randomica para cada monster, mais caso ele morra quando voltar vai vir sem skull )

 

Data/Talkactions/Scripts

 

function onSay(cid, words, param, channel)
local m = checkSpawnMonster

for _, mid in ipairs(m) do
	local mpos = getThingPos(mid)
	doCreatureSetSkullType(mid, math.random(1, 5))
end
return 0
end

 

Agora crie uma tag e use o sistema.

 

2° jeito, Globalevents ( Agora a cada respow ele ja vem com skull, + demora cerca de 1 milezimo de segundo pra adicionar a skull.

 

Data/globalevents/scripts

 

function onThink(interval, lastExecution, thinkInterval)
   local m = checkSpawnMonster()
   local sex = {1, 2} -- numero da skull ou seja, desenho do sexo

for _, mid in ipairs(m) do
	local mpos = getThingPos(mid)
	if (getCreatureSkullType(mid) == 1) or (getCreatureSkullType(mid) == 2) then
	else
	    doCreatureSetSkullType(mid, math.random(1, #sex))
	end
end
return 0
end

 

Data/Globalevents/Globalevents.xml

 

	<globalevent name="sex" interval="0" event="script" value="sex.lua"/> 

 

Bom galerinha esse script um amigo fez pra mim e se eu não tivese postado só eu teria, não sei se é o lugar certo mais se não for por favor mova o tópico.

 

Se for usar de ++rep

 

ESTE SCRIPT ESTA PROIBIDO DE SER POSTADO EM OUTROS FÓRUM !!!!!

Editado por eduardobean
Link para o comentário
Compartilhar em outros sites

essa função já existe: getWorldCreatures(type) (0 para players, 1 para monsters, 2 para npcs, 3 pra todos)

 

--

edit:

deixa pra lá, falei cagada...

Editado por brun123
Link para o comentário
Compartilhar em outros sites

Quero fala mau nao mais ta bom sim.

Mais podia ser feito por outro jeito implantado no go/back e por uma configuração de 1 para female e 2 para male e assim no momento que o player solta o pokemon ja é adicionado a skull.

Seria mais facil pelo menos eu axo ;S

Talvez eu faça mais a preguiça complica.

REP+

Link para o comentário
Compartilhar em outros sites

man, tenho outra aqui,

diferente da que eu te mandei, essa aqui ja vem com cada respaw, e nao "crasha" o server no global events ...

essa funcao ai eh otima pra varias coisas, exceto random skulls, faz essa aqui que ta perfeita.

 

em monster.CPP

 

troque essa linha

setSkull(mType->skull);

 

por essa aqui

 

if(!isSummon()){

setSkull((Skulls_t) random_range(2, 4));}

 

...

 

so isso, tods os respaws nasceram com skull.

 

abçs. FlpPar

Link para o comentário
Compartilhar em outros sites

Muito bom, +rep pra tu que disponibilizou...

obrigado por compartilhar ^^

 

@edit

gostaria de saber como fica no caso dos monstros(no caso pkmns) que são summons?

como em pokemon os monstros capturados quando soltos ficariam com a skull fixa igual ao que estava no momento que foi pego?

 

tipo, se pego um pkmn com skull + quando eu for usar ele estará +?

Editado por DkAngel
Link para o comentário
Compartilhar em outros sites

man, tenho outra aqui,

diferente da que eu te mandei, essa aqui ja vem com cada respaw, e nao "crasha" o server no global events ...

essa funcao ai eh otima pra varias coisas, exceto random skulls, faz essa aqui que ta perfeita.

 

em monster.CPP

 

troque essa linha

setSkull(mType->skull);

 

por essa aqui

 

if(!isSummon()){

setSkull((Skulls_t) random_range(2, 4));}

 

...

 

so isso, tods os respaws nasceram com skull.

 

abçs. FlpPar

 

 

Utilizei esse sistema que você postou Gender System.

Porém não conseguir fazer para o summon gravar o sexo do catch...

Toda vez que eu solto o pokemon ele sai com sexo diferente.

Teria como você criar um tuto pra ajudar? acredito que irá ajudar muita gente.

Link para o comentário
Compartilhar em outros sites

  • 1 month later...
  • 2 weeks later...

Gravar o sexo do CATCH eu acho que tem que fazer alguma coisa nas Sources para pegar o Corpse quando matar o Pokemon.

Mas pra improvisar voce pode na hora dar catch adicionar:

doItemSetAttribute(item.uid, "gender", math.random(0,1))

 

E no GoBack

doCreatureSetSkullType(creature.uid, getItemAttributte(item.uid, "gender"))

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...