WE
suporte scripts

Resolvido ajudem a retirar bug desse script??

Por wevertonvrb, 17 de abr. de 2017 em Resolvidos

34
16.9k
wevertonvrbW
25 de abril de 2017 às 19:42
Em 21/04/2017 at 22:24, Poccnn disse:

Eu desconheço uma forma de fazer isso.

Para que algo possa ser usado, tem que ser declarado.

talvez uma creaturescript

PoccnnP
26 de abril de 2017 às 08:16

O que tem haver action com creaturescript?

26 de abril de 2017 às 09:55
14 horas atrás, wevertonvrb disse:

talvez uma creaturescript

 

pode ser, não sei se entendi direito...

mas você pode criar uma creaturescript para adicionar uma uniqueid ou actionid, em todo corpse..

e em action colocar a tag com a mesm actionid que é adicionado nos corpse, e dentro do codigo lua a condição do nome... 

 

entendeu?

wevertonvrbW
26 de abril de 2017 às 17:29
7 horas atrás, Ed'Specter disse:

 

pode ser, não sei se entendi direito...

mas você pode criar uma creaturescript para adicionar uma uniqueid ou actionid, em todo corpse..

e em action colocar a tag com a mesm actionid que é adicionado nos corpse, e dentro do codigo lua a condição do nome... 

 

entendeu?

sim entendi mas não tenho conhecimento suficiente para criar tal script

28 de abril de 2017 às 08:34
Em 26/04/2017 at 17:29, wevertonvrb disse:

sim entendi mas não tenho conhecimento suficiente para criar tal script

 

function onDeath(cid, corpse, deathList)  if corpse.uid > 0 then    doItemSetAttribute(corpse.uid, "aid", 12526)  endreturn trueend

fiz essa base pra você, coloca em creaturescripts

e em action coloca a mesma action id que está ai na parte

doItemSetAttribute(corpse.uid, "aid", 12526)

se quiser pode mudar.

wevertonvrbW
28 de abril de 2017 às 18:55
13 horas atrás, Ed'Specter disse:

 

function onDeath(cid, corpse, deathList)  if corpse.uid > 0 then    doItemSetAttribute(corpse.uid, "aid", 12526)  endreturn trueend

fiz essa base pra você, coloca em creaturescripts

e em action coloca a mesma action id que está ai na parte

doItemSetAttribute(corpse.uid, "aid", 12526)

se quiser pode mudar.

ok entendido mas surgiu uma duvida

 eu tenho q adicionar essa tag em todos os corpos??

<attribute key="corpseType" value="blood" />

pois os corpos dos pokes não tem isso 

<item id="9867" article="a" name="fainted magcargo">

        <attribute key="containerSize" value="10" />

        <attribute key="decayTo" value="0" />

        <attribute key="duration" value="55" />

    </item>

oque faz o corpo ser identificado como corpo é a palavra fainted no nome

Editado Abril 28 por wevertonvrb

03 de maio de 2017 às 10:52
Em 28/04/2017 at 18:55, wevertonvrb disse:

ok entendido mas surgiu uma duvida

 eu tenho q adicionar essa tag em todos os corpos??

<attribute key="corpseType" value="blood" />

pois os corpos dos pokes não tem isso 

<item id="9867" article="a" name="fainted magcargo">

        <attribute key="containerSize" value="10" />

        <attribute key="decayTo" value="0" />

        <attribute key="duration" value="55" />

    </item>

oque faz o corpo ser identificado como corpo é a palavra fainted no nome

 

não mano, nem sei da onde você tirou essa tag..

esse script ai que respondi, vai adicionar uma actionid para todo corpse 

e em actions vc usa o mesmo actionid para rodar o script..

não estou mais entendendo oq vc quer

wevertonvrbW
03 de maio de 2017 às 20:08
Em 03/05/2017 at 10:52, Ed'Specter disse:

 

não mano, nem sei da onde você tirou essa tag..

esse script ai que respondi, vai adicionar uma actionid para todo corpse 

e em actions vc usa o mesmo actionid para rodar o script..

não estou mais entendendo oq vc quer

desisto, n estou conseguindo Man o script q tu passou n funcionou de nenhuma forma também n gerou erro

eu queria que esse script funcionasse em todos os corpos ou items que tenha a palavra fainted no nome

sem a necessidade de fazer algo assim no action.xml

 

Spoiler

<action itemid="11826-11837;11737-11748;10975-10977;12621-12623;12826-12831;12861-13781;13797-13823;13836-13861;13902-13904;13919-13930;13933-13935;13937-13939;14020-14022;14015-14017;14033-14035;14038-14040;14043-14045;14141-14143;14157-14159;14163-14165;14173-14175;14081-14083;14190-14192;14178-14180;14193-14195;14086-14088;14091-14093;14096-14098;14121-14123;14131-14133;14136-14138;14200-14202;14206-14208;14210-14212;14106-14108;14111-14113;14116-14118;14234-14248;14076-14078;14066-14068;14061-14063;14056-14058;14071-14073;14168-14170;14101-14103;14285-14305;14310-14318;14343-14402;14617-14925;14927-14935;14942-14944;15000-15128;15224-15232;15508-15525;2260-2280" event="script" value="script.lua"/>

 

sim eu quero que eles funcionem em corpos mas como eu defino se o item é um corpo ou não?

como o script vai saber definir se o item é um corpo??

aquela tag eu tirei no item.xml

<item id="7926" article="a" name="dead troll champion">

        <attribute key="containerSize" value="10" />

        <attribute key="decayTo" value="7927" />

        <attribute key="duration" value="10" />

        <attribute key="corpseType" value="blood" />

        <attribute key="fluidSource" value="blood" />

    </item>

 

o meu corpo não tem essa tag em outra paravras os corpos do meu é como se foce uma backpack com decay & oque define se é corpo é a palavra fainted no nome

a não ser que o xml do monstro registre o item como corpise

<item id="9867" article="a" name="fainted magcargo">
        <attribute key="containerSize" value="10" />
        <attribute key="decayTo" value="0" />
        <attribute key="duration" value="55" />
    </item>

 

o script que voce me passou não funcionou nem deu erro

em um outro script tenho isso

if getTopCorpse(topos) == null then 

return true

end

talvez sirva para algo

Editado Maio 4 por wevertonvrb

PoccnnP
03 de maio de 2017 às 21:14
53 minutos atrás, wevertonvrb disse:

desisto, n estou conseguindo Man

Desistir é para os fracos, os fortes vão a luta.

 

Tu já testou o script que o ed postou?

wevertonvrbW
03 de maio de 2017 às 21:57


sim testei mas não acontece nada, sem erro tambem

Editado Maio 4 por wevertonvrb

04 de maio de 2017 às 22:43
Em 03/05/2017 at 21:57, wevertonvrb disse:

 

sim testei mas não acontece nada, sem erro tambem

 

o script que eu te enviei é em creaturesctips, você colocou a tag em creaturescripts.xml e registro em onlogin?

pq dessa forma ai, com o script que te postei, todo player ou monster que morrer, ao criar o corpse, o script vai adicionar uma actionid no corpse.

dai você só vai ter que colocar essa actionid em action.xml e pronto..

 

entendeu?

wevertonvrbW
04 de maio de 2017 às 22:44
Em 03/05/2017 at 21:14, Poccnn disse:

Desistir é para os fracos, os fortes vão a luta.

 

Tu já testou o script que o ed postou?

sim testei mas não acontece nada, sem erro tambem

Agora, Ed'Specter disse:

 

o script que eu te enviei é em creaturesctips, você colocou a tag em creaturescripts.xml e registro em onlogin?

pq dessa forma ai, com o script que te postei, todo player ou monster que morrer, ao criar o corpse, o script vai adicionar uma actionid no corpse.

dai você só vai ter que colocar essa actionid em action.xml e pronto..

 

entendeu?

sim fiz tudo isso aee e não deu erro mas também n funcionou

04 de maio de 2017 às 22:51
Agora, wevertonvrb disse:

sim testei mas não acontece nada, sem erro tambem

sim fiz tudo isso aee e não deu erro mas também n funcionou

 

é pokemon né?

 

talvez o parametro corpse não retorne nada ;s

vamos para os teste..

quando alguém morre, e o corpse ta no chão, vc da look com o god e não tem nenhuma actionid no corpse? o correto é aparecer a actionid

 

substitui por esse...

function onDeath(cid, corpse, deathList)print("morreu")  if corpse.uid > 0 then	print("entrou no if do corpse")    doItemSetAttribute(corpse.uid, "aid", 12526)  endreturn trueend

e vê oq printa na distro quando alguém morre

wevertonvrbW
04 de maio de 2017 às 22:59
21 horas atrás, Ed'Specter disse:

 

é pokemon né?

 

talvez o parametro corpse não retorne nada ;s

vamos para os teste..

quando alguém morre, e o corpse ta no chão, vc da look com o god e não tem nenhuma actionid no corpse? o correto é aparecer a actionid

 

substitui por esse...

function onDeath(cid, corpse, deathList)print("morreu")  if corpse.uid > 0 then	print("entrou no if do corpse")    doItemSetAttribute(corpse.uid, "aid", 12526)  endreturn trueend

e vê oq printa na distro quando alguém morre

não printou nada na distro

em creaturescript

<event type="death" name="autoloot" event="script" value="autoloot.lua"/> 

autoloot.lua

Spoiler

function onDeath(cid, corpse, deathList)

print("morreu")

  if corpse.uid > 0 then

    print("entrou no if do corpse")

    doItemSetAttribute(corpse.uid, "aid", 12526)

  end

return true

end

em loguin.lua

registerCreatureEvent(cid, "autoloot")

 

em actions.xml

<action actionid="12526" event="script" value="autoloot.lua"/>

 

 

OBS: essa função é usada para verificar se é um corpse

 

Spoiler

function getTopCorpse(position)

local pos = position

for n = 1, 255 do

    pos.stackpos = n

    local item = getTileThingByPos(pos)

    if item.itemid >= 2 and (string.find(getItemNameById(item.itemid), "fainted ") or string.find(getItemNameById(item.itemid), "defeated ")) then

       return getTileThingByPos(pos)

    end

end

return null

end

 

 

 

 

quando morre um player

22:58 You see a dead human. (Vol:10).

ItemID: [3058]

Position: [X: 990][Y: 1042][Z: 7]

 

quando morre um monstro

22:57 You see a fainted abra. (Vol: 10) It is genderless.

23:00 You see a fainted kadabra. (Vol: 10)

It is genderless.

 

acredito q seria melhor adicionar essa aid em todos os itens que tenha a palavra fainted no nome pois o catch funciona assim

 

isso esta presente no catch

local name = string.lower(getItemNameById(item2.itemid))

      name = string.gsub(name, "fainted ", "")

      name = string.gsub(name, "defeated ", "")

      name = doCorrectPokemonName(name)

Editado Maio 5 por wevertonvrb

PoccnnP
05 de maio de 2017 às 06:49
Melhor resposta

Eu não sei como é que funciona pokelixo, mas como está mechendo com monstros, não deveria por o evento no xml do monstro?