What's new

Jak doda? runy do Ots ???

Jbx19

Active User
Joined
May 26, 2010
Messages
55
Reaction score
0
Mam pytanie jak doda? np. manarune do otsa ? i wybra? ile by dawa?a many i ?eby npc j? sprzedawa? ????
 

unknownn

User
Joined
May 23, 2010
Messages
10
Reaction score
0
Odp: Jak doda? runy do Ots ???

w data\actions\scripts zrob plik lua o nazwia manarune.lua
i wklej do niego :


Code:
function onUse(cid, item, frompos, item2, topos)
if item.itemid == 2270 and item.type > 1 then
doPlayerAddMana(cid,8000)
doChangeTypeItem(item.uid,item.type-1)
doSendMagicEffect(topos,12)
doPlayerSay(cid,"Mniam...",1)
else
doRemoveItem(item.uid,1)

end

return 1
end

nastepnie
w data\actions otwoz plik actions.xml
i doklej tam to:

Code:
<action itemid="2270" script="manarune.lua" />
wlasnie dodales manarune do otsa.

jak ustawic?
Code:
doPlayerAddMana(cid,8000)
w tej linijce ustawiasz ile ma dodawac many aktualnie dodaje 8000

doPlayerSay(cid,"Mniam...",1)
tu mozesz ustawic napis jaki bedzie sie pojawiac po uzyciu runki "Mniam"

hm , aby dodac je do npc wejdz w data/npc/script
i odszukaj npc kt?ry sprzedaje runy . gdy juz go znajdziesz..to
doklej do kodu to..

Code:
elseif msgcontains(msg, 'manarune') then
 buy(cid,2270,100,10)
(wklejasz to tam gdzie masz podane podobne takie linijki z sd, hmm, gfb itd.~):
 

Cosmo

Active User
Joined
Oct 29, 2009
Messages
79
Reaction score
2
Odp: Jak doda? runy do Ots ???

Ok. Na pocz?tku wybierasz jedn? z run, kt?ra jest wolna. w data/items/items.xml, mo?esz wpisa? szukaj: "spell rune". Wybierz jaka Ci odpowiada, (np. id.2270) nast?pnie w items.xml zmie? jej nazw? z "spell rune" na "manarune"; potem zapisz zmiany.

Dobry skrypt na manarune pod 8.54 to skrypt Tairens'a

tutaj oryginalny temat : http://tibia.net.pl/showthread.php?t=261138

Wchodzisz w data/actions/scripts i np. w "liquids" tworzysz plik manarune.lua.
Wklejasz do niego zawarto?? skryptu Tairens'a.

Oto fragment skryptu, w kt?rym modyfikujesz dowolnie rune :

PHP:
strenght = "constant", ---Values: template (strenght dependent on level and magic level), constant (on all level adding same mana)
	template = {min = (((playerinfo.level * 4) + (playerinfo.mlevel * 2)) / 1.5) , max =(((playerinfo.level * 6) + (playerinfo.mlevel * 4)) / 1.5)}, -- only if strenght is template
	constant = {min = 400, max = 800},--only if strenght is constant 
	exhaustion = 2,--exhaustion in secs
	exhaustion_value = 56789, --exhaustion storage value
	minimum_level = 8,--minimum level to use manarune
	minimum_mlevel = 0,--minimum magic level to use manarune
	cannot_use_voc = {} --id vocation which cannot use

Wyb?r opcji "constant" daje ka?demu u?ytkownikowi manarune zawsze tyle samo many, niezale?nie od poziomu i poziomu magicznego.
PHP:
constant = {min = 400, max = 800}
Tutaj wpisujesz minimaln? oraz maksymaln? ilo?c many, kt?r? b?dzie dawa?a manaruna.(Je?eli wybierasz opcje "constant") :)

Opcja "template" pozwala aby ilo?? dodawanej many by?a zale?na od poziomu magicznego i poziomu u?ytkownika. Im wy?szy lvl i mlvl tym wi?cej many dostaniemy.
"template" te? mo?na modyfikowa?, jest opisana wzorem, kt?rego jeszcze nie edytowa?em u siebie, jednak mo?esz co? pokombinowa?.

Ok. W linijce :
PHP:
strenght = "constant"
Wpisujesz constant albo template

Pozosta?e modyfikacje runy :

PHP:
exhaustion = 2,-- exhaustion w sekundach
	exhaustion_value = 56789, --exhaustion storage value (zostawi?)
	minimum_level = 8,--minimalny poziom aby m?c u?ywa? runy
	minimum_mlevel = 0,-- minimalny mlvl aby u?yaw? runy
	cannot_use_voc = {} -- id profesji, kt?re w og?le nie b?d? mog?y korzysta? z manaruny (np.3,4,8,9)

Nie zapomnij doda? w actions.xml

PHP:
	<action itemid="2270" event="script" value="liquids/manarune.lua"/>

Teraz doda? manarune do NPC. Nie pami?tam jego pierwotnej nazwy, poniewa? ja da?em mu w?asn?. Pewnie nie masz problemu ze stworzeniem nowego NPC :) Ok to w skrypcie :
PHP:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}

function onCreatureAppear(cid)				npcHandler:onCreatureAppear(cid)			end
function onCreatureDisappear(cid) 			npcHandler:onCreatureDisappear(cid)			end
function onCreatureSay(cid, type, msg)			npcHandler:onCreatureSay(cid, type, msg)		end
function onThink()					npcHandler:onThink()					end

local shopModule = ShopModule:new()
npcHandler:addModule(shopModule)

shopModule:addBuyableItem({'spellbook'}, 2175, 150, 'spellbook')
shopModule:addBuyableItem({'magic lightwand'}, 2163, 400, 'magic lightwand')

shopModule:addBuyableItem({'small health'}, 8704, 20, 1, 'small health potion')
shopModule:addBuyableItem({'health potion'}, 7618, 45, 1, 'health potion')
shopModule:addBuyableItem({'mana potion'}, 7620, 50, 1, 'mana potion')
shopModule:addBuyableItem({'strong health'}, 7588, 100, 1, 'strong health potion')
shopModule:addBuyableItem({'strong mana'}, 7589, 80, 1, 'strong mana potion')
shopModule:addBuyableItem({'great health'}, 7591, 190, 1, 'great health potion')
shopModule:addBuyableItem({'great mana'}, 7590, 120, 1, 'great mana potion')
shopModule:addBuyableItem({'great spirit'}, 8472, 190, 1, 'great spirit potion')
shopModule:addBuyableItem({'ultimate health'}, 8473, 310, 1, 'ultimate health potion')
shopModule:addBuyableItem({'antidote potion'}, 8474, 50, 1, 'antidote potion')

shopModule:addSellableItem({'normal potion flask', 'normal flask'}, 7636, 5, 'empty small potion flask')
shopModule:addSellableItem({'strong potion flask', 'strong flask'}, 7634, 10, 'empty strong potion flask')
shopModule:addSellableItem({'great potion flask', 'great flask'}, 7635, 15, 'empty great potion flask')

shopModule:addBuyableItem({'instense healing'}, 2265, 95, 1, 'intense healing rune')
shopModule:addBuyableItem({'ultimate healing'}, 2273, 175, 1, 'ultimate healing rune')
shopModule:addBuyableItem({'magic wall'}, 2293, 350, 3, 'magic wall rune')
shopModule:addBuyableItem({'destroy field'}, 2261, 45, 3, 'destroy field rune')
shopModule:addBuyableItem({'light magic missile'}, 2287, 40, 10, 'light magic missile rune')
shopModule:addBuyableItem({'heavy magic missile'}, 2311, 120, 10, 'heavy magic missile rune')
shopModule:addBuyableItem({'great fireball'}, 2304, 180, 4, 'great fireball rune')
shopModule:addBuyableItem({'explosion'}, 2313, 250, 6, 'explosion rune')
shopModule:addBuyableItem({'sudden death'}, 2268, 350, 3, 'sudden death rune')
shopModule:addBuyableItem({'death arrow'}, 2263, 300, 3, 'death arrow rune')
shopModule:addBuyableItem({'paralyze'}, 2278, 700, 1, 'paralyze rune')
shopModule:addBuyableItem({'animate dead'}, 2316, 375, 1, 'animate dead rune')
shopModule:addBuyableItem({'convince creature'}, 2290, 80, 1, 'convince creature rune')
shopModule:addBuyableItem({'chameleon'}, 2291, 210, 1, 'chameleon rune')
shopModule:addBuyableItem({'desintegrate'}, 2310, 80,  3, 'desintegreate rune')

shopModule:addBuyableItemContainer({'bp slhp'}, 2000, 8704, 400, 1, 'backpack of small health potions')
shopModule:addBuyableItemContainer({'bp hp'}, 2000, 7618, 900, 1, 'backpack of health potions')
shopModule:addBuyableItemContainer({'bp mp'}, 2001, 7620, 1000, 1, 'backpack of mana potions')
shopModule:addBuyableItemContainer({'bp shp'}, 2000, 7588, 2000, 1, 'backpack of strong health potions')
shopModule:addBuyableItemContainer({'bp smp'}, 2001, 7589, 1600, 1, 'backpack of strong mana potions')
shopModule:addBuyableItemContainer({'bp ghp'}, 2000, 7591, 3800, 1, 'backpack of great health potions')
shopModule:addBuyableItemContainer({'bp gmp'}, 2001, 7590, 2400, 1, 'backpack of great mana potions')
shopModule:addBuyableItemContainer({'bp gsp'}, 1999, 8472, 3800, 1, 'backpack of great spirit potions')
shopModule:addBuyableItemContainer({'bp uhp'}, 2000, 8473, 6200, 1, 'backpack of ultimate health potions')
shopModule:addBuyableItemContainer({'bp ap'}, 2002, 8474, 2000, 1, 'backpack of antidote potions')

shopModule:addBuyableItem({'wand of vortex', 'vortex'}, 2190, 500, 'wand of vortex')
shopModule:addBuyableItem({'wand of dragonbreath', 'dragonbreath'}, 2191, 1000, 'wand of dragonbreath')
shopModule:addBuyableItem({'wand of decay', 'decay'}, 2188, 5000, 'wand of decay')
shopModule:addBuyableItem({'wand of draconia', 'draconia'}, 8921, 7500, 'wand of draconia')
shopModule:addBuyableItem({'wand of cosmic energy', 'cosmic energy'}, 2189, 10000, 'wand of cosmic energy')
shopModule:addBuyableItem({'wand of inferno', 'inferno'}, 2187, 15000, 'wand of inferno')
shopModule:addBuyableItem({'wand of starstorm', 'starstorm'}, 8920, 18000, 'wand of starstorm')
shopModule:addBuyableItem({'wand of voodoo', 'voodoo'}, 8922, 22000, 'wand of voodoo')

shopModule:addBuyableItem({'snakebite rod', 'snakebite'}, 2182, 500, 'snakebite rod')
shopModule:addBuyableItem({'moonlight rod', 'moonlight'}, 2186, 1000, 'moonlight rod')
shopModule:addBuyableItem({'necrotic rod', 'necrotic'}, 2185, 5000, 'necrotic rod')
shopModule:addBuyableItem({'northwind rod', 'northwind'}, 8911, 7500, 'northwind rod')
shopModule:addBuyableItem({'terra rod', 'terra'}, 2181, 10000, 'terra rod')
shopModule:addBuyableItem({'hailstorm rod', 'hailstorm'}, 2183, 15000, 'hailstorm rod')
shopModule:addBuyableItem({'springsprout rod', 'springsprout'}, 8912, 18000, 'springsprout rod')
shopModule:addBuyableItem({'underworld rod', 'underworld'}, 8910, 22000, 'underworld rod')

shopModule:addSellableItem({'wand of vortex', 'vortex'}, 2190, 250, 'wand of vortex')
shopModule:addSellableItem({'wand of dragonbreath', 'dragonbreath'}, 2191, 500, 'wand of dragonbreath')
shopModule:addSellableItem({'wand of decay', 'decay'}, 2188, 2500, 'wand of decay')
shopModule:addSellableItem({'wand of draconia', 'draconia'}, 8921, 3750, 'wand of draconia')
shopModule:addSellableItem({'wand of cosmic energy', 'cosmic energy'}, 2189, 5000, 'wand of cosmic energy')
shopModule:addSellableItem({'wand of inferno', 'inferno'},2187, 7500, 'wand of inferno')
shopModule:addSellableItem({'wand of starstorm', 'starstorm'}, 8920, 9000, 'wand of starstorm')
shopModule:addSellableItem({'wand of voodoo', 'voodoo'}, 8922, 11000, 'wand of voodoo')

shopModule:addSellableItem({'snakebite rod', 'snakebite'}, 2182, 250,'snakebite rod')
shopModule:addSellableItem({'moonlight rod', 'moonlight'}, 2186, 500,   'moonlight rod')
shopModule:addSellableItem({'necrotic rod', 'necrotic'}, 2185, 2500, 'necrotic rod')
shopModule:addSellableItem({'northwind rod', 'northwind'}, 8911, 3750, 'northwind rod')
shopModule:addSellableItem({'terra rod', 'terra'}, 2181, 5000, 'terra rod')
shopModule:addSellableItem({'hailstorm rod', 'hailstorm'}, 2183, 7500, 'hailstorm rod')
shopModule:addSellableItem({'springsprout rod', 'springsprout'}, 8912, 9000, 'springsprout rod')
shopModule:addSellableItem({'underworld rod', 'underworld'}, 8910, 11000, 'underworld rod')

local items = {[1] = 2190, [2] = 2182, [5] = 2190, [6] = 2182}
function creatureSayCallback(cid, type, msg)
	if(not npcHandler:isFocused(cid)) then
		return false
	end

	local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
	if(msgcontains(msg, 'first rod') or msgcontains(msg, 'first wand')) then
		if(isSorcerer(cid) or isDruid(cid)) then
			if(getPlayerStorageValue(cid, 30002) <= 0) then
				selfSay('So you ask me for a {' .. getItemNameById(items[getPlayerVocation(cid)]) .. '} to begin your advanture?', cid)
				talkState[talkUser] = 1
			else
				selfSay('What? I have already gave you one {' .. getItemNameById(items[getPlayerVocation(cid)]) .. '}!', cid)
			end
		else
			selfSay('Sorry, you aren\'t a druid either a sorcerer.', cid)
		end
	elseif(msgcontains(msg, 'yes')) then
		if(talkState[talkUser] == 1) then
			doPlayerAddItem(cid, items[getPlayerVocation(cid)], 1)
			selfSay('Here you are young adept, take care yourself.', cid)
			setPlayerStorageValue(cid, 30002, 1)
		end
		talkState[talkUser] = 0
	elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser])) then
		selfSay('Ok then.', cid)
		talkState[talkUser] = 0
	end

	return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Np. nad small health potionem dodaj linijk? :

PHP:
shopModule:addBuyableItem({'manarune'}, 2270, 100, 1, 'manarune')

2270 - id manaruny
100 - koszt w gp
1 - ilo?c ?adunk?w w runie

To tyle :)


Ps:
Banalnie jest zmieni? manarune Tairensa na run?, kt?ra daj? hp zamiast many.

Wystarczy w linijce :

PHP:
doCreatureAddMana(cid, rand)

Wpisa? "Health" zamiast "Mana", a zasady konfiguracji s? takie same jak w przypadku manaruny :)

Mam nadziej?, ?e napisa?em do?? zrozumiale co i jak. :) Je?eli co? pokr?ci?em lub wprowadzi?em w b??d to prosz? mi o tym powiedzie? :D

Pozdrawiam, Cosmo.
 
Top