BlackTibia

No estás conectado. Conéctate o registrate

 » Open Tibia » Pedido de Scripts » 

Ayuda con Script

Ayuda con Script

#1 Ayuda con Script el Miér Abr 23, 2014 9:26 am

extefania


Estudiante
Alguien me podria ayudar con este e Script es de potion

1:Lo Que quiero es que tenga un storage de recargar por comando
Si alguien me puede ayudar se lo agradeceria mucho


Código:
local MIN = 200
local MAX = 300
local EMPTY_POTION = 1938, storage = 49985

local exhaust = createConditionObject(CONDITION_EXHAUST)
setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100))

function onUse(cid, item, fromPosition, itemEx, toPosition)
 if isPlayer(itemEx.uid) == FALSE then
 return FALSE
 end

 if hasCondition(cid, CONDITION_EXHAUST_HEAL) == TRUE then
 doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
 return TRUE
 end

 if((not(isSorcerer(itemEx.uid) or isDruid(itemEx.uid)) or getPlayerLevel(itemEx.uid) < 80) and getPlayerCustomFlagValue(itemEx.uid, PlayerCustomFlag_GamemasterPrivileges) == FALSE) then
 doCreatureSay(itemEx.uid, "Only sorcerers and druids of level 80 or above may drink this fluid.", TALKTYPE_ORANGE_1)
 return TRUE
 end

 if doPlayerAddMana(itemEx.uid, math.random(MIN, MAX)) == LUA_ERROR then
 return FALSE
 end

if getPlayerStorageValue(cid, potion.storage) > 1 then
        local health = potion.health
        if(health and not doCreatureAddHealth(itemEx.uid, math.ceil(math.random(health[1], health[2]) * config.healthMultiplier))) then
            return false
        end
 
       local mana = potion.mana
        if(mana and not doPlayerAddMana(itemEx.uid, math.ceil(math.random(mana[1], mana[2]) * config.manaMultiplier))) then
            return false
        end
        setPlayerStorageValue(cid, potion.storage, getPlayerStorageValue(cid, potion.storage)-1)
        doPlayerSendTextMessage(cid, 19, "Haz usado una potion de "..getPlayerStorageValue(cid, potion.storage).." charges.")
    else
       doPlayerSendTextMessage(cid, 19, "Se te han acabado las cargas, compra mas diciendo: !charges |type|,|amount|.")
        return false
    end

 doAddCondition(cid, exhaust)
 doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_BLUE)
 doCreatureSay(itemEx.uid, "Marihuana...", TALKTYPE_ORANGE_1)
 
return TRUE
end

aqui esta el talkactions

Código:
--Fixed by falcon--
function onSay(cid, words, param, channel)
--configuration --
    local items =
   {
     ['hp'] = {cost = 45, storage = 49989},
     ['shp'] = {cost = 100, storage = 49988},
     ['ghp'] = {cost = 190, storage = 49987},
     ['uhp'] = {cost = 310, storage = 49986},
     ['mp'] = {cost = 50, storage = 49985},
     ['smp'] = {cost = 80, storage = 49984},
     ['gmp'] = {cost = 120, storage = 49983},
    ['gsp'] = {cost = 190, storage = 49982}
    }    
-- Fin configuration --    
 
   local t = string.explode(param, ",")
    local item = items[t[1]]
    local amount = tonumber(t[2])    
 
   -- Checks if we can buy that itemname --
    if item then
        -- Checks if the player has enough money --
        if doPlayerRemoveMoney(cid, item.cost*amount) == LUA_NO_ERROR then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'You have bought '..amount..' '..t[1]..' charges for '..(item.cost*amount)..' golden pieces.')
            setPlayerStorageValue(cid, item.storage, getPlayerStorageValue(cid, item.storage)+amount)
        else
            doPlayerSendCancel(cid, 'You dont have enough money to buy that many charges.')
            doSendMagicEffect(getPlayerPosition (cid), CONST_ME_POFF)    
        end
    else            
        -- Sends the player a message wich includes items he can buy --
        text = "Charges you can buy:\n"
        -- Getting the all itemnames and prics --
        for item1 in pairs (items) do    
            -- Sends a message with each itemname and price --
            text = text .. "\n" .. item1
        end
        text = text .. "\n\nexample: type '!charges gmp,100' para comprar 100 gmp."
        doPlayerPopupFYI(cid, text)
    end
    return true
    end

[Tienes que estar registrado y conectado para ver esa imagen]

http://www.facebook.com/china.bella.184?ref=tn_tnmn

#2 Re: Ayuda con Script el Miér Abr 23, 2014 10:39 am

Sirakx


Moderador
Aqui tienes el talkaction creo que con ese es mas que suficiente solamente acomoda bien esta parte idpot = 7618 pon bien las ids de su respestiva pot ya que algunas solo las repeti.

Código:

function onSay(cid, words, param, channel)
--configuration --
    local items =
   {
     ['hp'] = {cost = 45, idpot = 7618,storage = 49989},
     ['shp'] = {cost = 100, idpot = 7590,storage = 49988},
     ['ghp'] = {cost = 190, idpot = 7590,storage = 49987},
     ['uhp'] = {cost = 310, idpot = 7590,storage = 49986},
     ['mp'] = {cost = 50, idpot = 7620,storage = 49985},
     ['smp'] = {cost = 80, idpot = 7590,storage = 49984},
     ['gmp'] = {cost = 120, idpot = 7590,storage = 49983},
    ['gsp'] = {cost = 190, idpot = 7590,storage = 49982}
    }    
-- Fin configuration --    
 
   local t = string.explode(param, ",")
    local item = items[t[1]]
    local amount = tonumber(t[2])    
 
   -- Checks if we can buy that itemname --
    if item then
        -- Checks if the player has enough money --
        if doPlayerRemoveMoney(cid, item.cost*amount) == LUA_NO_ERROR then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'You have bought '..amount..' '..t[1]..' charges for '..(item.cost*amount)..' golden pieces.')
            doPlayerAddItem(cid, item.idpot, amount)
            setPlayerStorageValue(cid, item.storage, getPlayerStorageValue(cid, item.storage)+amount)
        else
            doPlayerSendCancel(cid, 'You dont have enough money to buy that many charges.')
            doSendMagicEffect(getPlayerPosition (cid), CONST_ME_POFF)    
        end
    else            
        -- Sends the player a message wich includes items he can buy --
        text = "Charges you can buy:\n"
        -- Getting the all itemnames and prics --
        for item1 in pairs (items) do    
            -- Sends a message with each itemname and price --
            text = text .. "\n" .. item1
        end
        text = text .. "\n\nexample: type '!charges gmp,100' para comprar 100 gmp."
        doPlayerPopupFYI(cid, text)
    end
    return true
    end

http://celesta-global.net/

#3 Re: Ayuda con Script el Miér Abr 23, 2014 11:25 am

extefania


Estudiante
Esta bien ese script q me mandaste es q ya lo tengo Pero lo que yo necesito es q la potiones sean x stages Como por ejemp

lvl100= mana, 200
Lvl200= mana, 300 Asi sucesivamente
y gracias x responder tienes rep+ :*

http://www.facebook.com/china.bella.184?ref=tn_tnmn

#4 Re: Ayuda con Script el Miér Abr 23, 2014 12:01 pm

Belerofonte


Administrador
[Tienes que estar registrado y conectado para ver este vínculo] escribió:
Alguien me podria ayudar con este e Script es de potion

1:Lo Que quiero es que tenga un storage de recargar por comando
Si alguien me puede ayudar se lo agradeceria mucho


Código:
local MIN = 200
local MAX = 300
local EMPTY_POTION = 1938, storage = 49985

local exhaust = createConditionObject(CONDITION_EXHAUST)
setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100))

function onUse(cid, item, fromPosition, itemEx, toPosition)
 if isPlayer(itemEx.uid) == FALSE then
 return FALSE
 end

 if hasCondition(cid, CONDITION_EXHAUST_HEAL) == TRUE then
 doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
 return TRUE
 end

 if((not(isSorcerer(itemEx.uid) or isDruid(itemEx.uid)) or getPlayerLevel(itemEx.uid) < 80) and getPlayerCustomFlagValue(itemEx.uid, PlayerCustomFlag_GamemasterPrivileges) == FALSE) then
 doCreatureSay(itemEx.uid, "Only sorcerers and druids of level 80 or above may drink this fluid.", TALKTYPE_ORANGE_1)
 return TRUE
 end

 if doPlayerAddMana(itemEx.uid, math.random(MIN, MAX)) == LUA_ERROR then
 return FALSE
 end

if getPlayerStorageValue(cid, potion.storage) > 1 then
        local health = potion.health
        if(health and not doCreatureAddHealth(itemEx.uid, math.ceil(math.random(health[1], health[2]) * config.healthMultiplier))) then
            return false
        end
 
       local mana = potion.mana
        if(mana and not doPlayerAddMana(itemEx.uid, math.ceil(math.random(mana[1], mana[2]) * config.manaMultiplier))) then
            return false
        end
        setPlayerStorageValue(cid, potion.storage, getPlayerStorageValue(cid, potion.storage)-1)
        doPlayerSendTextMessage(cid, 19, "Haz usado una potion de "..getPlayerStorageValue(cid, potion.storage).." charges.")
    else
       doPlayerSendTextMessage(cid, 19, "Se te han acabado las cargas, compra mas diciendo: !charges |type|,|amount|.")
        return false
    end

 doAddCondition(cid, exhaust)
 doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_BLUE)
 doCreatureSay(itemEx.uid, "Marihuana...", TALKTYPE_ORANGE_1)
 
return TRUE
end

aqui esta el talkactions

Código:
--Fixed by falcon--
function onSay(cid, words, param, channel)
--configuration --
    local items =
   {
     ['hp'] = {cost = 45, storage = 49989},
     ['shp'] = {cost = 100, storage = 49988},
     ['ghp'] = {cost = 190, storage = 49987},
     ['uhp'] = {cost = 310, storage = 49986},
     ['mp'] = {cost = 50, storage = 49985},
     ['smp'] = {cost = 80, storage = 49984},
     ['gmp'] = {cost = 120, storage = 49983},
    ['gsp'] = {cost = 190, storage = 49982}
    }    
-- Fin configuration --    
 
   local t = string.explode(param, ",")
    local item = items[t[1]]
    local amount = tonumber(t[2])    
 
   -- Checks if we can buy that itemname --
    if item then
        -- Checks if the player has enough money --
        if doPlayerRemoveMoney(cid, item.cost*amount) == LUA_NO_ERROR then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'You have bought '..amount..' '..t[1]..' charges for '..(item.cost*amount)..' golden pieces.')
            setPlayerStorageValue(cid, item.storage, getPlayerStorageValue(cid, item.storage)+amount)
        else
            doPlayerSendCancel(cid, 'You dont have enough money to buy that many charges.')
            doSendMagicEffect(getPlayerPosition (cid), CONST_ME_POFF)    
        end
    else            
        -- Sends the player a message wich includes items he can buy --
        text = "Charges you can buy:\n"
        -- Getting the all itemnames and prics --
        for item1 in pairs (items) do    
            -- Sends a message with each itemname and price --
            text = text .. "\n" .. item1
        end
        text = text .. "\n\nexample: type '!charges gmp,100' para comprar 100 gmp."
        doPlayerPopupFYI(cid, text)
    end
    return true
    end

[Tienes que estar registrado y conectado para ver esa imagen]

1. @Topic, Para solventar el error creo que hay que sustituir en el Script llamado great_mana.lua procedente de tu Servidor/Data/Actions/Scripts/... en la línea número 3 lo siguiente:
Código:
local EMPTY_POTION, storage = 1938, 49985

2. @God Rakzzo. Si te fijas, el Storage del Script de Talkactions está relacionado con el otro script de la great_mana.lua:
Talkactions escribió:    --Fixed by falcon--
   function onSay(cid, words, param, channel)
   --configuration --
       local items =
      {
        ['hp'] = {cost = 45, storage = 49989},
        ['shp'] = {cost = 100, storage = 49988},
        ['ghp'] = {cost = 190, storage = 49987},
        ['uhp'] = {cost = 310, storage = 49986},
        ['mp'] = {cost = 50, storage = 49985},
        ['smp'] = {cost = 80, storage = 49984},
        ['gmp'] = {cost = 120, storage = 49983},
       ['gsp'] = {cost = 190, storage = 49982}
       }    
   -- Fin configuration --  

Great_Mana.lua escribió:local MIN = 200
local MAX = 300
local EMPTY_POTION, storage = 1938, 49985

local exhaust = createConditionObject(CONDITION_EXHAUST)
setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100))

Tú lo que hicíste fue añadirle la función secundaria:
Código:
doPlayerAddItem(cid, item.idpot, amount)
Con su respectivas variables en la table de arriba para que así se le agregue una poción al decir el comando, es decir, comprarse vía comando... y está muy bien, pero no es el caso, extefania lo que pide es que se recarguen. Si por ejemplo tienes una sola poción pues se le reponen X cargas a una sóla poción... no que se le añadan X pociones

3. @extefania. Por lo anterior no entiendo qué es lo que ocurre con el script de Talkactions... si el error proviene del otro script, mi pregunta es ¿qué falla tiene este otro?

EDIT:
Tal vez te falte por poner el otro script de potions.lua en este otro post Falcón lo explica todo:
[Tienes que estar registrado y conectado para ver este vínculo]



Sugerencia para evitar futuros quebraderos de cabeza:
[Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo]
[Tienes que estar registrado y conectado para ver esa imagen]

#5 Re: Ayuda con Script el Miér Sep 28, 2016 4:55 pm

extefania


Estudiante
:o gracias!!
pero tambien necesito un limite de potions
ya que si tienen muchos crytal coin pueden comprar todoas las que quieran

http://www.facebook.com/china.bella.184?ref=tn_tnmn

#6 Re: Ayuda con Script Hoy a las 1:39 pm

Contenido patrocinado


Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.

 

¿Quién está en línea?

En total hay 0 usuarios en línea: 0 Registrados, 0 Ocultos y 0 Invitado

Usuarios navegando en este foro: Ninguno

Forum Statistics

Nuestros miembros han públicado un total de posts en temas.
Actualmente hay miembros registrados.
Démosle la bienvenida al miembro más reciente,
La mayor cantidad de usuarios en línea ha sido de .