SK

[Dúvida] Corpo Some E Aparece Um Item

Por SkyDangerous, 03 de mar. de 2012 em Scripts

script
10
1.4k
SkyDangerousS
03 de março de 2012 às 21:02

Alguém sabe me dizer onde eu errei no script?

 

local array = {
[1] = 2160,
[2] = 2160,
[3] = 2160,
[4] = 2160
}

function onDeath(cid, corpse)
for vocation, itemid in pairs(array) do
if getPlayerVocation(cid) == vocation then
doTransformItem(corpse.uid,itemid[array],1)
doDecayItem(corpse.uid)
break
end
end
return true
end

 

até !

ZmovirZ
03 de março de 2012 às 21:05

1º pra que que e esse script?

 

2º nessa linha eu acho doTransformItem(corpse.uid,itemid[array],1) mando transfroma o corpse no item ali de cima

SkyDangerousS
03 de março de 2012 às 21:08

1- se você fosse um scripter saberia o que é.

 

2- Sério? achava que desligava o server.

 

quem pode me ajudar ai? to com problema .. ele some o corpo mas o item nao aparece..

HisashiitYamagutiH
03 de março de 2012 às 21:14

Bom, você quer substituir o corpse por um item?

Se for isso, é apenas você procurar o nome do bicho na pasta do ot serv e depois procurar a palavra: corpse=

Agora coloque o número do ID do corpse que você quer, caso for undead dragon, ficará assim:

 

corpse="6306" />

 

Frase completa:

<look type="231" corpse="6306" />

SkyDangerousS
03 de março de 2012 às 21:16

Não é isso :p

 

O script faz o seguinte.

 

Dependendo da vocação o corpo some e troca por um item diferente.

Se fosse por monstro é muito facil :o

jhon992J
03 de março de 2012 às 21:46

tenta assim:

 

function onDeath(cid, corpse)

local array = {2160, 2160, 2160, 2160}

for i=1, #array do
   if (getPlayerVocation(cid) == i) then
       doTransformItem(corpse.uid, array[i], 1)
       doDecayItem(corpse.uid)
       return true
   end
end
return true
end

 

Obs: nem testei.

SkyDangerousS
03 de março de 2012 às 22:23

Que dorgas :p

 

não deu.. tem como testar pra ver se não é meu servidor que ta com problema.

 

a ideia do script foi muito boa , curti ;D

jhon992J
04 de março de 2012 às 11:27

Sky, se tu soube-se o tanto que eu demorei pra resolver isso se me dava um beijo! saduhada

Passei trabalho, mais agora ta funfando e ja testei aqui! Vê se aew vai funfar néh.

 

function onDeath(cid, corpse, deathList)

array = {2160, 2160, 2160, 2160}
pos = getCreaturePosition(cid)

for i=1, #array do
   if (getPlayerVocation(cid) == i) then
       addEvent(removeCorpse,300,pos,array[i])    
    return true
   end
end
return true
end

function removeCorpse(pos,n)
   doCleanTile(pos, removeLoaded)
   doCreateItem(n, 1, pos)
return true
end

SkyDangerousS
04 de março de 2012 às 14:45

huauha.

parece tão simples, mas é mais complexo que parece.

 

reputado ;D

3 meses depois...
bepokemonB
09 de junho de 2012 às 12:45

Meu Deus ... Desculpa reviver esse tópico mas tava precisando...

Por que voce nao leu o erro? "Attempt to index a nil value."

É por que voce estava pedindo um valor na tabela que nao existe.

itemid[array]

Era pra ser:

array[vocation]

Editado Junho 9 por Byerne