• logo_cipsoft
    Nowe serwery zostały otwarte 19 Lut 2025:
    Noctalia (Open PvP) Ignitera (Open PvP) us_logo Xybra (Open PvP)

Poprawa Skryptu.

Danabur

Active User
Dołączył
Listopad 1, 2008
Posty
63
Liczba reakcji
9
Witam.
Jezeli wybralem zly dzial to przepraszam i prosze o przeniesienie.

NO wiec do rzeczy. Mam skrypt na kupowanie potow na dzwignie ,lecz nie dziala on do konca poprawnie. Gdy klikam na dzwignie dostaje to co chcialem placac przy tym $podane w silniku. Lecz gdy money sie skonczy nadal wszystko dostaje nie placac przy tym nic.

Oto skrypt:

Kod:
function onUse(cid, item, fromPosition, itemEx, toPosition)
local pot = 8473
local kasa = 3500
backpack = doPlayerAddItem(cid,2004,1)
for i = 1, 20 do
doAddContainerItem(backpack, pot, 1)
if doPlayerRemoveMoney(cid,kasa) == 1 then
end
doPlayerSendCancel(cid, 'You don\'t have enough money.')
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
end
return 1
end

PS. Dodam ze ,gdy w 9 linijce dodane jest "else" skrypt nie dziala wogole.

ZA POMOC REPUT POLECI.

Notka moderatorska:
Z?y dzia?, przenosz?
 
Odp: Poprawa Skryptu.

a koniecznie chcesz nowy skrypt ? bo przeciez na tym forum sa juz skrypty na to.. jesli chcesz nowy to bez problemu Ci go napisze:)
SKRYPT NIE MOJ CO ZRESZTA PISZE W SAMYM SKRYPCIE!
Kod:
-- Written by Ldrozd with Tairens advice; do not delete it, you arent the creator
function onUse(cid, item, fromPosition, itemEx, toPosition)
    local potion = {
        [1000] = {id = 7620, bp = 2001, cost = 10000, anim = 30, text = "mana potion"}, 
        [1001] = {id = 7589, bp = 2001, cost = 16000, anim = 30, text = "strong mana potion"},
        [1002] = {id = 7590, bp = 2001, cost = 24000, anim = 30, text = "great mana potion"},
        [1003] = {id = 7618, bp = 1988, cost = 9200, anim = 29, text = "health potion"},
        [1004] = {id = 7588, bp = 1988, cost = 20000, anim = 29, text = "strong health potion"},
        [1005] = {id = 7591, bp = 1988, cost = 38000, anim = 29, text = "great health potion"},
        [1006] = {id = 8473, bp = 1988, cost = 62000, anim = 29, text = "ultimate health potion"},
        [1007] = {id = 8472, bp = 1999, cost = 38000, anim = 28, text = "great spirit potion"}
    }
        
        local actuallPotion = potion[item.uid]
        local weight = getItemWeightById(actuallPotion.id, 20) + getItemWeightById(actuallPotion.bp, 1)                    
        if(getPlayerFreeCap(cid) >= weight) then
            if getPlayerMoney(cid) >= actuallPotion.cost then
                local bp = doCreateItemEx(cid, actuallPotion.bp, 1)
                doAddContainerItem(bp, actuallPotion.id, 20)
                    if(doPlayerAddItemEx(cid, bp) ~= RETURNVALUE_NOERROR) then
                        doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"You need more space in your container.")
                    else
                        doPlayerRemoveMoney(cid, actuallPotion.cost)
                        doSendMagicEffect(toPosition, actuallPotion.anim)
                        doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"You have bought backpack of "..potion[item.uid].text.."s for "..potion[item.uid].cost.." gold coins.")
                    end
            else
                doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"You need "..potion[item.uid].cost.." gold coins to buy these potions.")
            end
        else
            doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"You need at least "..math.floor(weight).." oz to buy this item.")
        end
           
            if item.itemid == 1945 then
                doTransformItem(item.uid, item.itemid+1)
            elseif item.itemid == 1946 then
                doTransformItem(item.uid, item.itemid-1)
            else
                return true
            end                     
return true
end
actions.xml
Kod:
<action fromuid="1000" touid="1007" event="script" value="potions.lua" />
oryginalny temat:
http://tibia.net.pl/actions/266676-dzwignia-na-bp-potionow.html
 
Ostatnia edycja:
Odp: Poprawa Skryptu.

Odrazu m?wi? i? przerobi?em ci skrypt tak jak chcia?e?. Ale tamten up jest lepszy ;p

Kod:
local pot = 8473
local kasa = 3500

function onUse(cid, item, fromPosition, itemEx, toPosition)

if doPlayerRemoveMoney(cid, kasa) == TRUE then

 local backpack = doPlayerAddItem(cid,2004,1)

    for i = 1, 20 do
       doAddContainerItem(backpack, pot, 1)
    end

else
    doPlayerSendCancel(cid, 'You don\'t have enough money.')
    doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
end

return TRUE
end
 
Odp: Poprawa Skryptu.

Oba skrypty dzialaja poprawnie tak wiec reput dla obu panow.
 
Do góry