KA

[Ajuda] Table.Insert

Por KarlKalvin, 15 de abr. de 2016 em C e C++

12
2.7k
KarlKalvinK
15 de abril de 2016 às 22:22

Galera to com um server e tô com talvez um pequeno problema, não sei... é que percebi que nos scripts não estão utilizando a função table.insert nos scripts e tô querendo adicionar alguns scripts que tem essa função então adicionei um aqui e fiz o teste só que quando utilizo o tal script ele da um erro na distro que é...

 

 

: bad argument #1 to 'insert' (table expected, got string)
[15/04/2016 22:16:49] stack traceback:
[15/04/2016 22:16:49]     [C]: in function 'insert'

 

 

Acho que está faltando algo na minha source, eu tenho a source mas não tenho o código e não sei nem onde colocar... alguém poderia me ajudar?

 

PoccnnP
16 de abril de 2016 às 10:08

Table.insert somente funciona para tabelas.

Isso são tabelas { isso é uma tabelas }.

No seu caso, você está usando a função em uma string e não em tabela.

KarlKalvinK
16 de abril de 2016 às 12:11

Removido -

Editado Abril 16 por KarlKalvin

KarlKalvinK
16 de abril de 2016 às 12:11
2 horas atrás, Poccnn disse:

Table.insert somente funciona para tabelas.

Isso são tabelas { isso é uma tabelas }.

No seu caso, você está usando a função em uma string e não em tabela.

Então eu troco a table.insert pelo oque?

PoccnnP
16 de abril de 2016 às 14:41
2 horas atrás, KarlKalvin disse:

Então eu troco a table.insert pelo oque?

Depende do que você queira fazer.

KarlKalvinK
16 de abril de 2016 às 20:09
5 horas atrás, Poccnn disse:

Depende do que você queira fazer.

Quero adicionar isso ...

 

Citar

 

local mEvolve

if not getCreatureName(summon):find("Mega") and getItemAttribute(getPlayerSlotItem(cid, 8).uid, "megaStone") then

    if not isInArray(ret, "Mega Evolution,") then

        table.insert(ret, "Mega Evolution,")

        mEvolve = true

    end

end

if not mEvolve then

    table.insert(ret, "n/n,")

end

    end

end

 

 

 

Nessa função...

 

 

Citar

 

function doUpdateMoves(cid)

local summon = getCreatureSummons(cid)[1]

local ret = "12&,"

if not summon then

   for a = 1, 12 do

       ret = ret.."n/n,"

   end

   doPlayerSendCancel(cid, ret)

   addEvent(doUpdateCooldowns, 100, cid)

   return true

end

local ret = "12&,"

if getCreatureName(summon) == "Ditto" and pokes[getPlayerStorageValue(summon, 1010)] and getPlayerStorageValue(summon, 1010) ~= "Ditto" then

   moves = movestable[getPlayerStorageValue(summon, 1010)]

else                                                       --alterado v2.6

   moves = movestable[getCreatureName(summon)]

end

for a = 1, 12 do

    local b = getNewMoveTable(moves, a)

    if b then

       ret = ret..""..b.name..","

    else

       ret = ret.."n/n,"

    end

end

doPlayerSendCancel(cid, ret)

addEvent(doUpdateCooldowns, 100, cid)

end

 

 

 

Editado Abril 16 por KarlKalvin

DanihcvD
16 de abril de 2016 às 20:33

@KarlKalvin, acho que deu um probleminha aqui na sua postagem...

Esse código:

local mEvolveif not getCreatureName(summon):find("Mega") and getItemAttribute(getPlayerSlotItem(cid, 8).uid, "megaStone") then    if not isInArray(ret, "Mega Evolution,") then        table.insert(ret, "Mega Evolution,")        mEvolve = true    endendif not mEvolve then    table.insert(ret, "n/n,")end    endend

Está com problemas. Logo na primeira linha temos a declaração incompleta de uma variável:

Citar

local mEvolve

 

Por favor, certifique-se de que os códigos estejam completos para que possamos te ajudar de forma mais precisa.

 

Quanto ao table.insert, aqui dá pra ver que a "table" q ele está tentando inserir um valor, é a "table" ret:

table.insert(ret, "Mega Evolution,")table.insert(ret, "n/n,")

E o que acontece, é que a variável ret é uma string:

local ret = "12&,"

 

 

EDIT:

Isso está me parecendo erro de codificação. Tipo, como se o script estivesse escrito em ANSI e aí foi convertido pra UTF-8 (apenas um exemplo). E aí foi o que ocasionou todo o problema.

Editado Abril 16 por danihcv

KarlKalvinK
16 de abril de 2016 às 23:51
3 horas atrás, danihcv disse:

@KarlKalvin, acho que deu um probleminha aqui na sua postagem...

Esse código:

local mEvolveif not getCreatureName(summon):find("Mega") and getItemAttribute(getPlayerSlotItem(cid, 8).uid, "megaStone") then    if not isInArray(ret, "Mega Evolution,") then        table.insert(ret, "Mega Evolution,")        mEvolve = true    endendif not mEvolve then    table.insert(ret, "n/n,")end    endend

Está com problemas. Logo na primeira linha temos a declaração incompleta de uma variável:

 

Por favor, certifique-se de que os códigos estejam completos para que possamos te ajudar de forma mais precisa.

 

Quanto ao table.insert, aqui dá pra ver que a "table" q ele está tentando inserir um valor, é a "table" ret:

table.insert(ret, "Mega Evolution,")table.insert(ret, "n/n,")

E o que acontece, é que a variável ret é uma string:

local ret = "12&,"

 

 

EDIT:

Isso está me parecendo erro de codificação. Tipo, como se o script estivesse escrito em ANSI e aí foi convertido pra UTF-8 (apenas um exemplo). E aí foi o que ocasionou todo o problema.

Nossa, palavras tão técnicas que chega da orgulho de ver alguém tão inteligente... você poderia então me ajudar a colocar esse código no meu script?

O codigo que me passaram é esse, se tem algo pra complementar nele então tá faltando alguma coisa mesmo que não sei

Editado Abril 16 por KarlKalvin

DanihcvD
17 de abril de 2016 às 00:51

sahusahuas, quê isso cara... Não é pra tanto... shuahushu

 

Mas infelizmente eu ñ sei comot e ajudar... Pq eu ñ to vendo logica...

Tipo, aqui:

if not mEvolve then

Não dá pra dizer o que é esse mEvolve pq, como eu disse, ela não foi declarada por completo....

Citar
local mEvolve

 

E eu tb ñ sei nada de sistemas de derivados aí só piora a situação... sahusahusa

PoccnnP
18 de abril de 2016 às 08:30

Substitua isso:

Citar

  table.insert(ret, "Mega Evolution,")

 

Por isto:

Citar

ret = ret.."Mega Evolution,"

 

PoccnnP
18 de abril de 2016 às 08:32
Em 17/04/2016 at 00:51, danihcv disse:

sahusahuas, quê isso cara... Não é pra tanto... shuahushu

 

Mas infelizmente eu ñ sei comot e ajudar... Pq eu ñ to vendo logica...

Tipo, aqui:

if not mEvolve then

Não dá pra dizer o que é esse mEvolve pq, como eu disse, ela não foi declarada por completo....

 

E eu tb ñ sei nada de sistemas de derivados aí só piora a situação... sahusahusa

 

mEvolve é uma variável que não tem atribuição portanto fica com valor nil.

DanihcvD
18 de abril de 2016 às 15:07
6 horas atrás, Poccnn disse:

 

mEvolve é uma variável que não tem atribuição portanto fica com valor nil.

exatamente. .-.