-LUA & XML Fluidy u npc.

Status
Zamknięty.

Damian955

Active User
Zarejestrowany
Dołączył
Kwiecień 20, 2009
Posty
54
Liczba reakcji
0
Poszukuj? skryptu/pomocy jak zrobi?, aby dany npc posiada? na sprzeda? butelk? z danym fluidem w ?rodku, np: krew.
 
Odp: Fluidy u npc.

Daj skrypt twojego npc kt?ry ma to sprzedawa?
 
Odp: Fluidy u npc.

Na przyk?ad ten.

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Deruno" script="default.lua" walkinterval="2000" floorchange="0">
<health now="100" max="100"/>
<look type="132" head="20" body="39" legs="45" feet="7" addons="0"/>
<parameters>
<parameter key="module_shop" value="1"/>
<parameter key="shop_buyable" value="parcel,2595,15;letter,2597,10"/>
</parameters>
</npc>
 
Odp: Fluidy u npc.

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)

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

npcHandler:addModule(FocusModule:new())
 
Odp: Fluidy u npc.

Skrypt w kt?rym masz wypisane co sprzedaje, z takim nic nie pomo?emy.

Kod:
<?xml version="1.0" encoding="UTF-8"?><npc name="Rashid" script="data/npc/scripts/default.lua" walkinterval="2000" floorchange="0">
    <health now="185" max="185"/>
    <look type="146" head="0" body="120" legs="120" feet="132" addons="2"/>
    <parameters>
        <parameter key="module_shop" value="1"/>
        <parameter key="message_greet" value="Welcome!"/>
        <parameter key="message_farewall" value="Bye..."/>
        <parameter key="message_walkaway" value="How rude!"/>
        <parameter key="shop_sellable" value="
			abyss hammer,			7414, 20000;
			amber staff,			7426, 8000;
			ancient amulet,			2142, 200;
			assassin daggerf,		7404, 20000;
			bandana,				5917, 150;
			beastslayer axe,		3962, 1500;
			berserker,				7403, 40000;
			bone shield,			2541, 80;
			bonelord helmet,		3972, 7500;
			brutetamer's staff,		7379, 1500;
			castle shield,			2535, 5000;
			chain bolter,			8850, 40000;
			chaos mace,				7427, 9000;
			coconut shoes,			9931, 500;
			composite hornbow,		8855, 25000;
			cranial basher,			7415, 30000;
			crocodile boots,		3982, 1000;
			crystal mace,			2445, 12000;
			crystal necklace,		2125, 400;
			crystal ring,			2124, 250;
			crystal sword,			7449, 600;
			crystalline armor,		8878, 16000;
			daramanian mace,		2439, 110;
			daramanian waraxe,		2440, 1000;
			dark shield,			2521, 400;
			death ring,				6300, 1000;
			demon shield,			2520, 30000;
			demonbone amulet,		2136, 32000;
			demonrage sword,		7382, 36000;
			devil helmet,			2462, 1000;
			diamond sceptre,		7387, 3000;
			djinn blade,			2451, 15000;
			doll,					2110, 200;
			dragon scale mail,		2492, 40000;
			dragon slayer,			7402, 15000;
			dragonbone staff,		7430, 3000;
			dreaded cleaver,		7419, 10000;
			dwarven armor,			2503, 30000;
			earth cranial basher,	7866, 30000;
			earth dragon slayer,	7858, 15000;
			earth heroic axe,		7861, 30000;
			earth mystic blade,		7856, 30000;
			earth relic sword,		7855, 25000;
			earth war axe,			7863, 12000;
			emerald bangle,			2127, 800;
			energy cranial basher,	7881, 30000;
			energy dragon slayer,	7873, 15000;
			energy heroic axe,		7876, 30000;
			energy mystic blade,	7871, 30000;
			energy relic sword,		7870, 25000;
			energy war axe,			7878, 12000;
			epee,					2438, 8000;
			fiery cranial basher,	7756, 30000;
			fiery dragon slayer,	7748, 15000;
			fiery heroic axe,		7751, 30000;
			fiery mystic blade,		7746, 30000;
			fiery relic sword,		7745, 25000;
			fiery war axe,			7753, 12000;
			flower wreath,			9927, 500;
			fur boots,				7457, 2000;
			furry club,				7432, 1000;
			glacier amulet,			7888, 1500;
			glacier kilt,			7896, 11000;
			glacier mask,			7902, 2500;
			glacier robe,			7897, 11000;
			glacier shoes,			7892, 2500;
			gold ring,				2179, 8000;
			golden armor,			2466, 20000;
			golden legs,			2470, 30000;
			guardian halberd,		2427, 11000;
			hammer of wrath,		2444, 30000;
			heavy mace,				2452, 50000;
			heavy machete,			2442, 90;
			heroic axe,				7389, 30000;
			hibiscus dress,			8873, 3000;
			icy cranial basher,		7775, 30000;
			icy dragon slayer,		7767, 15000;
			icy heroic axe,			7770, 30000;
			icy mystic blade,		7765, 30000;
			icy relic sword,		7764, 25000;
			icy war axe,			7772, 12000;
			jade hammer,			7422, 25000;
			krimhorn helmet,		7461, 200;
			lavos armor,			8877, 16000;
			leaf legs,				9928, 500;
			leopard armor,			3968, 1000;
			light shovel,			5710, 300;
			lightning boots,		7893, 2500;
			lightning headband,		7901, 2500;
			lightning legs,			7895, 11000;
			lightning pendant,		7889, 1500;
			lightning robe,			7898, 11000;
			lunar staff,			7424, 5000;
			magic plate armor,		2472, 90000;
			magma amulet,			7890, 1500;
			magma boots,			7891, 2500;
			magma coat,				7899, 11000;
			magma legs,				7894, 11000;
			magma monocle,			7900, 2500;
			mammoth fur cape,		7463, 6000;
			mammoth fur shorts,		7464, 850;
			mammoth whopper,		7381, 300;
			mastermind shield,		2514, 50000;
			medusa shield,			2536, 9000;
			mercenary sword,		7386, 12000;
			mystic blade,			7384 ,30000;
			naginata,				2426, 2000;
			nightmare blade,		7418, 35000;
			noble axe,				7456, 10000;
			norse shield,			7460, 1500;
			paladin armor,			8891, 15000;
			patched boots,			2641, 2000;
			pharaoh sword,			2446, 23000;
			pirate boots,			5462, 3000;
			pirate hat,				6096, 1000;
			pirate knee breeches,	5918, 200;
			pirate shirt,			6095, 500;
			pirate voodoo doll,		5810, 500;
			platinum amulet,		2171, 2500;
			ragnir helmet,			7462, 400;
			relic sword,			7383, 25000;
			ring of the sky,		2123, 30000;
			ruby necklace,			2133, 2000;
			ruthless axe,			6553, 45000;
			sacred tree amulet,		10219, 3000;
			sapphire hammer,		7437, 7000;
			scarab amulet,			2135, 200;
			scarab shield,			2540, 2000;
			shockwave amulet,		10221, 3000;
			silver brooch,			2134, 150;
			silver dagger,			2402, 500;
			skull helmet,			5741, 40000;
			skullcracker armor,		8889, 18000;
			spiked squelcher,		7452, 5000;
			steel boots,			2645, 30000;
			swamplair armor,		8880, 16000;
			taurus mace,			7425, 500;
			tempest shield,			2542, 35000;
			terra amulet,			7887, 1500;
			terra boots,			7886, 2500;	
			terra hood,				7903, 2500;
			terra legs,				7885, 11000;
			terra mantle,			7884, 11000;
			tortoise shield,		6131, 150;
			vile axe,				7388, 30000;
			voodoo doll,			3955, 400;
			war axe,				2454, 12000;
			wyvern fang,			7408, 1500;
			zaoan armor, 			11301,14000;
			zaoan legs, 			11304,14000;
			zaoan helmet,			11302,45000;
			zaoan shoes,			11303,5000;
			drakinata,			11305,10000;
			sais,				11306,16500;
			zaoan sword,			11307,30000;
			darchadu,			11308,10000;
			twin hooks,			11309,500;
			zaoan halberd,		11323, 500;"/>    


</parameters>
</npc>

Co? takiego, ewentualnie pozmieniaj sobie id itemk?w i ceny
 
Ostatnia edycja:
Odp: Fluidy u npc.

Dobra macie inny. Skrypt wymiany item za item mo?e by??

npc.xml
<?xml version="1.0" encoding="UTF-8"?>
<npc name="Tanja" script="Zaopatrzeniowiec.lua" walkinterval="2000" floorchange="0">
<health now="150" max="150"/>
<look type="136" head="79" body="20" legs="90" feet="115" corpse="2212"/>
<parameters>
<parameter key="module_shop" value="1"/>
<parameter key="message_greet" value="Dzien dobry |PLAYERNAME|. Sprzedaje zaopatrzenie na wyprawy oraz skupuje robaki. [TRADE] [WORMS]"/>
<parameter key="shop_buyable" value="backpack,1988,150;bag,1987,25;torch,2050,5;rope,2120,100;shovel,2554,100;pick,2553,200;scythe,2550,250;machete,2420,500;fishing rod,2580,1000;"/>
</parameters>
</npc>



npc.lua
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

function creatureSayCallback(cid, type, msg)

if(not npcHandler:isFocused(cid)) then
return false
end

if msgcontains(msg, "worms") then
if(doPlayerRemoveItem(cid, 3976, 10)) then
doPlayerAddItem(cid, 2148, 2)
selfSay("Trzymaj te drobniaki.", cid)
else
selfSay("Przynies 10 worms, a skombinuje jakies drobniaki.", cid)
end
end
return true
end

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




Luffkay nie mam poj?cia po co mi to da?e?.. Umiem zrobi?, aby npc sprzedawa? konkretny item, ale jak mam zrobi? aby w danym fluid container by?a konkretna zawarto??. Normalnie wszystkie s? puste opr?cz potion?w na mane i hp.
 
Ostatnia edycja:
Odp: Fluidy u npc.

Przecie? ziomal up da? Ci:
[LUA]<?xml version="1.0" encoding="UTF-8"?><npc name="Rashid" script="data/npc/scripts/default.lua" walkinterval="2000" floorchange="0">
<health now="185" max="185"/>
<look type="146" head="0" body="120" legs="120" feet="132" addons="2"/>
<parameters>
<parameter key="module_shop" value="1"/>
<parameter key="message_greet" value="Welcome!"/>
<parameter key="message_farewall" value="Bye..."/>
<parameter key="message_walkaway" value="How rude!"/>
<parameter key="shop_sellable" value="abyss hammer,7414, 20000;/>
</parameters>
</npc>[/LUA]

W linijce shop_sellable 1 to nazwa jaka b?dzie wy?wietlana, 2 to id itema wpisz tu, 3 ile kosztuje kaski.

I to wrzucasz w jeden plik.
 
Odp: Fluidy u npc.

Poszukuj? skryptu/pomocy jak zrobi?, aby dany npc posiada? na sprzeda? butelk? z danym fluidem w ?rodku, np: krew.

Czy wy nie wiecie co ja napisa?em? Zdanie na samej g?rze oznacza, ?e szukam skryptu na npc, kt?ry sprzeda dla gracza (a nie gracz dla npc) item, np: vial, w kt?rym b?dzie jaka? zawarto?? typu krew b?d? woda, itd. Innymi s?owy jak ustawi? sub type dla fluid container je?li chc? go wstawi? do npc, bo inacze nie dzia?a. Nie wiem czy trzeba jaki? nowy skrypt do tego.

Wszystkie nast?pne posty, kt?re nie b?d? zgodne z regulaminem b?d? zg?aszane.

Ju? nie trzeba. Dosta?em info z innej strony.
?eby ka?dy m?g? ogarn?? tak? rzecz to podaje i ja bo szuka?em d?ugo:
Robicie normalnego npc, kt?ry sprzedaje itemy i dajecie mu jaki? container i podajecie id i ile kasy. Na ko?cu nie dajecie ?rednika tylko jeszcze przecinek i liczb?. Zaczynacie od 0 i lecicie do g?ry patrz?c jaka liczba to jaki fluid. Przyk?ad: mug,2012,1,1;
0 - pusty
1 - woda
2 - krew
3 - piwo
4 - szlam
5 - lemoniada
6 - mleko
7 - manafluid
Liczba powy?ej idzie od nowa czyli tak jakby od zera.
PS. czytanie ze zrozumieniem nie boli.
PS. TEMAT DO ZAMKNI?CIA
 
Ostatnia edycja:
Odp: Fluidy u npc.

Powinno zadzia?a?.
[lua]local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)

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 shopOffer = {
{id = 2006, buy = 500, sell = 50, subType = 0, name = 'Pusta butelka'},
{id = 2006, buy = 500, sell = 50, subType = 1, name = 'Butelka z wod?'},
{id = 2006, buy = 500, sell = 50, subType = 2, name = 'Butelka z krwi?'},
{id = 2006, buy = 500, sell = 50, subType = 3, name = 'Butelka z piwem'},
{id = 2006, buy = 500, sell = 50, subType = 4, name = 'Butelka ze szlamem'},
{id = 2006, buy = 500, sell = 50, subType = 5, name = 'Butelka z lemoniad?'},
{id = 2006, buy = 500, sell = 50, subType = 6, name = 'Butelka z mlekiem'},
{id = 2006, buy = 500, sell = 50, subType = 6, name = 'Butelka z manafluidem'}
}

local function getItemList(items, i, itemTable)
v = items
local itemName = v.name:lower()
local sellItemName
if v.classItem then
local explodeName = v.name:explode(' ')
for i = 2, #explodeName do
sellItemName = (sellItemName and (sellItemName .. ' ') or '') .. explodeName
end
end
itemTable[v.id] = {id = v.id, buy = v.buy, sell = v.sell, subType = v.subType or -1, name = itemName:sub(1, 1):upper() .. itemName:sub(2, itemName:len()), sellName = sellItemName or v.name, class = v.classItem or 'normal'}
return itemTable
end

local function openTradeWindow(cid, items)
local itemTable = {}
if #items > 1 then
for i = #items, 1, -1 do
itemTable = getItemList(items, i, itemTable)
end
else
itemTable = getItemList(items, 1, itemTable)
end

--onBuy(cid, item, subType, amount, ignoreCap, inBackpacks, ignoreEquipped)
local function onBuy(cid, item, subType, amount, ignoreCap, inBackpacks, ignoreEquipped)
if not itemTable[item].buy then
return
end

local loopSize = math.ceil(amount / (isItemStackable(itemTable[item].id) and 100 * 15 or 15))
if not ignoreCap then
local capRequied = getItemWeightById(itemTable[item].id, amount)
if inBackpacks then
capRequied = capRequied + (getItemWeightById(ITEM_BACKPACK) * loopSize)
end
if getPlayerFreeCap(cid) < capRequied then
return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Selected items are too heavy.')
end
end

local price = amount * itemTable[item].buy
if inBackpacks then
price = price + (loopSize * 20)
local itemCount = amount
for i = 1, loopSize do
local backpackItem = doPlayerAddItem(cid, ITEM_BACKPACK, 1)
for i = 1, math.max(1, math.min(itemCount, 15)) do
local itemUid = doAddContainerItem(backpackItem, itemTable[item].id, (itemTable[item].subType > -1 and itemTable[item].subType or 1))
if itemUid then
itemCount = itemCount - 1
end
end
end
else
for i = 1, math.max(1, amount) do
doPlayerAddItem(cid, itemTable[item].id, (itemTable[item].subType > -1 and itemTable[item].subType or 1))
end
end
return doPlayerRemoveMoney(cid, price)
end

--onSell(cid, item, subType, amount, ignoreCap, inBackpacks, ignoreEquipped)
local function onSell(cid, item, subType, amount, ignoreEquipped)
if not itemTable[item].sell then
return
end
doPlayerRemoveItem(cid, itemTable[item].id, amount)
return doPlayerAddMoney(cid, itemTable[item].sell * amount)
end

return openShopWindow(cid, itemTable, onBuy, onSell)
end

function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end

if msg:lower() == 'trade' then
selfSay('Oto moja oferta.', cid)
return openTradeWindow(cid, shopOffer)
end
end

npcHandler:addModule(FocusModule:new())[/lua]
 
Status
Zamknięty.
Back
Do góry