f55felipe 0 Postado Julho 15, 2020 Share Postado Julho 15, 2020 (editado) Fala estou com uma duvida acho que simples so que nao estou conseguindo resolver, vamos la estou usando essa linha de codigo local name = getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid doPlayerSendCancel(cid, tostring(name)) So que eu queria pegar o nome do item, eu ja tentei itemname, item.name e etc, esse ai ta pegando o id dele. consegui ja, podem deletar local name = getItemAttribute(getPlayerSlotItem(cid, CONST_SLOT_LEFT).uid, "name") Editado Julho 15, 2020 por f55felipe Link para o comentário Compartilhar em outros sites More sharing options...
0 Yan Oliveira 211 Postado Julho 16, 2020 Share Postado Julho 16, 2020 (editado) Você também pode usar a função getItemName(uid) ou getItemNameById(itemid) para pegar o nome do item, no seu caso vai usar a função getItemNameById(itemid): local item_name = getItemNameById(getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid) Editado Julho 16, 2020 por Yan18 Link para o comentário Compartilhar em outros sites More sharing options...
0 f55felipe 0 Postado Julho 16, 2020 Autor Share Postado Julho 16, 2020 Sim , mas aquela me atende bem tbm mas vlw porem , tipo estou com um problema aqui, estou usando essa funcao string.match(name,'sword') porem se ela nao acha oque eu quero ela retorna value nil e da erra na distro, tem algum jeito que quando ela retornase nil value nao desse o erro? mesmo com if varias condicoes ela retorna o mesmo erro acho que e a funcao mesmo que nao pode retorna valor nulo. Link para o comentário Compartilhar em outros sites More sharing options...
0 Yan Oliveira 211 Postado Julho 17, 2020 Share Postado Julho 17, 2020 19 horas atrás, f55felipe disse: Sim , mas aquela me atende bem tbm mas vlw porem , tipo estou com um problema aqui, estou usando essa funcao string.match(name,'sword') porem se ela nao acha oque eu quero ela retorna value nil e da erra na distro, tem algum jeito que quando ela retornase nil value nao desse o erro? mesmo com if varias condicoes ela retorna o mesmo erro acho que e a funcao mesmo que nao pode retorna valor nulo. Mas, o que exatamente você quer fazer com essa string do sword no string.match? Me explica sua ideia e tento te ajudar. Link para o comentário Compartilhar em outros sites More sharing options...
0 f55felipe 0 Postado Julho 17, 2020 Autor Share Postado Julho 17, 2020 (editado) Opa eu consigui, ti, essa parte eu resolvi com string.len() ai nao da mais erro quando do string.match(). 4 horas atrás, Yan18 disse: Mas, o que exatamente você quer fazer com essa string do sword no string.match? Me explica sua ideia e tento te ajudar. Estou com um problema ve se voce consegue me ajudar, tenho essa script aqui que muda de voc conforme a arma nao mao so que se o player morrer com ela ele volta para lv 1 e perde a voc os items tbm e bug mana e vida. queria que isso nao acontecesse. local effect = 30 -- Efeito que vai usar local delay = 5000 -- em ms if not setItemName then function setItemName(uid,name) return doItemSetAttribute(uid,'name',name) end end function onLogin(cid) SendEffect(cid) return true end function SendEffect(cid) if not isCreature(cid) then return end if (isItemEquipped(cid, CONST_SLOT_LEFT, 10223) == TRUE) then local name = getItemAttribute(getPlayerSlotItem(cid, CONST_SLOT_LEFT).uid, "name") name = tostring(name) local verify = string.len(name) if verify == 3 or verify == 34 or verify == 26 then doPlayerSendCancel(cid, "sua arma e lv 0") else local lvl = string.match(name,'%s%+(%d+)%s*') local lvnumero = tonumber(lvl) + 5 doSendAnimatedText(getPlayerPosition(cid), "ARMA+".. tonumber(lvl) .."" , TEXTCOLOR_RED) doSendMagicEffect(getThingPos(cid), effect) doPlayerSetVocation(cid, lvnumero) doCreatureSetDropLoot(cid, false) doPlayerSetLossPercent(cid, PLAYERLOSS_ITEMS, 0) doPlayerSetLossPercent(cid, PLAYERLOSS_CONTAINERS, 0) end end if (isItemEquipped(cid, CONST_SLOT_LEFT, 10223) == FALSE) then doPlayerSendCancel(cid, "o item não 10223 está em suas mãos.") doPlayerSetVocation(cid, 2) registerCreatureEvent(cid, "BlessedPlayer") end addEvent(SendEffect, delay, cid) end Editado Julho 17, 2020 por f55felipe Link para o comentário Compartilhar em outros sites More sharing options...
0 Yan Oliveira 211 Postado Julho 18, 2020 Share Postado Julho 18, 2020 9 horas atrás, f55felipe disse: Opa eu consigui, ti, essa parte eu resolvi com string.len() ai nao da mais erro quando do string.match(). Estou com um problema ve se voce consegue me ajudar, tenho essa script aqui que muda de voc conforme a arma nao mao so que se o player morrer com ela ele volta para lv 1 e perde a voc os items tbm e bug mana e vida. queria que isso nao acontecesse. local effect = 30 -- Efeito que vai usar local delay = 5000 -- em ms if not setItemName then function setItemName(uid,name) return doItemSetAttribute(uid,'name',name) end end function onLogin(cid) SendEffect(cid) return true end function SendEffect(cid) if not isCreature(cid) then return end if (isItemEquipped(cid, CONST_SLOT_LEFT, 10223) == TRUE) then local name = getItemAttribute(getPlayerSlotItem(cid, CONST_SLOT_LEFT).uid, "name") name = tostring(name) local verify = string.len(name) if verify == 3 or verify == 34 or verify == 26 then doPlayerSendCancel(cid, "sua arma e lv 0") else local lvl = string.match(name,'%s%+(%d+)%s*') local lvnumero = tonumber(lvl) + 5 doSendAnimatedText(getPlayerPosition(cid), "ARMA+".. tonumber(lvl) .."" , TEXTCOLOR_RED) doSendMagicEffect(getThingPos(cid), effect) doPlayerSetVocation(cid, lvnumero) doCreatureSetDropLoot(cid, false) doPlayerSetLossPercent(cid, PLAYERLOSS_ITEMS, 0) doPlayerSetLossPercent(cid, PLAYERLOSS_CONTAINERS, 0) end end if (isItemEquipped(cid, CONST_SLOT_LEFT, 10223) == FALSE) then doPlayerSendCancel(cid, "o item não 10223 está em suas mãos.") doPlayerSetVocation(cid, 2) registerCreatureEvent(cid, "BlessedPlayer") end addEvent(SendEffect, delay, cid) end Não acho viável fazer a verificação via Creaturescripts pelo evento onLogin, já que depende do item no inventário para mudar a vocation, o ideal seria fazer em Movements no evento onEquip (e onDeEquip caso tenha condição se ficar sem item). Sobre ele perder esses atributos, só acontece isso com esse seu script? Link para o comentário Compartilhar em outros sites More sharing options...
0 f55felipe 0 Postado Julho 18, 2020 Autor Share Postado Julho 18, 2020 (editado) 1 hora atrás, Yan18 disse: Não acho viável fazer a verificação via Creaturescripts pelo evento onLogin, já que depende do item no inventário para mudar a vocation, o ideal seria fazer em Movements no evento onEquip (e onDeEquip caso tenha condição se ficar sem item). Sobre ele perder esses atributos, só acontece isso com esse seu script? Arrumei ja vlw pela tentativa de me ajudar , nao vou mecher ja tenho tdos os scripts feitos. Editado Julho 18, 2020 por f55felipe Link para o comentário Compartilhar em outros sites More sharing options...
0 Yan Oliveira 211 Postado Julho 18, 2020 Share Postado Julho 18, 2020 16 horas atrás, f55felipe disse: Arrumei ja vlw pela tentativa de me ajudar , nao vou mecher ja tenho tdos os scripts feitos. Ai você que vê, se quiser posso te ajudar com esse script de mudar vocation de acordo com item equipado. Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
f55felipe 0
Fala estou com uma duvida acho que simples so que nao estou conseguindo resolver, vamos la
estou usando essa linha de codigo
So que eu queria pegar o nome do item, eu ja tentei itemname, item.name e etc, esse ai ta pegando o id dele.
consegui ja, podem deletar
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados