Ir para conteúdo

Killua

Membro
  • Registro em

  • Última visita

Solutions

  1. Killua's post in (Resolvido)Script não funcional was marked as the answer   
    Você cometeu muitos erros... Vou te ajudar
     
    1 - Pra declarar uma variável local vc usa 'local' (não 'Local') seguido por um '=' e o valor que vc quer armazenar.
    2 - Você usou a função getPlayerSlotItem(cid, slot) entre '', fazendo ela ser somente uma string e não uma função.
    3 - A variável global 'RING' provavelmente não foi declarada em nenhum lugar, os servidores normalmente vem com a variável CONST_SLOT_RING, que se refere ao slot de id 9.
    4 - getPlayerSlotItem(cid, slot) vai te retornar uma tabela com várias informações sobre o item, (exemplos: itemid, uid, itemtype). Quando você vai fazer a comparação em if isInArray({2207,2208,2209,2210,2211}, Ringbase) then você deve especificar quais das informações vc quer usar. No caso vc precisaria usar o id, portanto ficaria assim: if isInArray({2207,2208,2209,2210,2211}, Ringbase.itemid) then
    5 - A função doPlayerRemoveItem(cid, item) precisa de um uniqueid (quase o mesmo caso do item 4), então você deveria usar: doPlayerRemoveItem(cid, Ringbase.uid, 1)
    6 - elseif getPlayerSlotItem(cid, RING) == 2216 then Além de estar totalmente errada é desnecessária pq vc já guardou o valor de getPlayerSlotItem(cid, slot) em um variável. Além disso, vc está tentando comparar uma tabela com um número. O correto seria: elseif Ringbase.itemid == 2216 then
    7 -  Não há necessidade de ficar usando esses returns dentro do escopo, os ifs, elseifs e elses já estão fazendo esse trabalho
    8 - Você não retornou true a function onSay(cid, words, param), por conta disso, sempre que o jogador usar o comando ele vai aparecer como fala.
     
    Espero que vc leia tudo que eu falei e que isso te ajude a aprender.
    Aqui está o script corrigido:
    function onSay(cid, words, param) local Ringbase = getPlayerSlotItem(cid, CONST_SLOT_RING) if isInArray({2207,2208,2209,2210,2211}, Ringbase.itemid) then doPlayerRemoveItem(cid, Ringbase.uid, 1) doPlayerAddItem(cid, 2216, 1) elseif Ringbase.itemid == 2216 then doPlayerSendCancel(cid, "Você já esta nesta forma!") else doPlayerSendCancel(cid, "Você precisa do transformador equipado!") end return true end

Informação Importante

Confirmação de Termo