Ldrozd
Senior User
- Dołączył
- Listopad 26, 2008
- Posty
- 572
- Liczba reakcji
- 44
Witaj!
Id?c za potrzeb?, postanowi?em napisa? dla Ciebie skrypt umo?liwiaj?cy kupowanie potion?w w backpacku, za pomoc? d?wigni. Zapewne powiesz, ?e jest ju? taki skrypt. Jest! Ale m?j jest odpowiedzialny za niesko?czona ilo?? pot?w i jest napisany tylko w jednym pliku .lua, dzi?ki czemu nie trzeba tworzy? niesko?czonej ilo?ci skrypt?w i zawala? ca?y silnik "spamem".
W actions/scripts wklejamy: plik o nazwie potions.lua
w actions.xml
Teraz jak wszystko ustawi? na mapie:
Kolejno od g?ry, od lewej ustawiamy ka?dej wajsze uniqueid: 1007, 1000, 1001, 1002.
Dolny rz?d od lewej: 1003, 1004, 1005, 1006.
Testowane na TFS 0.3.6pl1. Ponadto je?eli chcesz doda?, aby te? inne itemy mo?na by?o kupowa? w backpack'u, wystarczy uzupe?ni? tabele o kolejna linijk?.
Pozdrawiam,
Id?c za potrzeb?, postanowi?em napisa? dla Ciebie skrypt umo?liwiaj?cy kupowanie potion?w w backpacku, za pomoc? d?wigni. Zapewne powiesz, ?e jest ju? taki skrypt. Jest! Ale m?j jest odpowiedzialny za niesko?czona ilo?? pot?w i jest napisany tylko w jednym pliku .lua, dzi?ki czemu nie trzeba tworzy? niesko?czonej ilo?ci skrypt?w i zawala? ca?y silnik "spamem".
Cechy skryptu:
- przy braku capacity i miejsca, wajcha nie sprzeda nam bp potk?w
- napisany w jednym pliku .lua
- napisany najkr?cej jak umia?em
- ogolne pro![]()
W actions/scripts wklejamy: plik o nazwie potions.lua
PHP:
-- Written by Ldrozd with Tairen's 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
w actions.xml
PHP:
<action fromuid="1000" touid="1007" event="script" value="potions.lua" />
Teraz jak wszystko ustawi? na mapie:
Kolejno od g?ry, od lewej ustawiamy ka?dej wajsze uniqueid: 1007, 1000, 1001, 1002.
Dolny rz?d od lewej: 1003, 1004, 1005, 1006.

Testowane na TFS 0.3.6pl1. Ponadto je?eli chcesz doda?, aby te? inne itemy mo?na by?o kupowa? w backpack'u, wystarczy uzupe?ni? tabele o kolejna linijk?.
Pozdrawiam,