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

NPC Travel System by NPC Trade

Status
Zamknięty.

Dantez

Moim sekretem jest ciasto
Dołączył
Maj 22, 2008
Posty
1206
Liczba reakcji
202
Author: Dantez
Platform: The Forgotten Server 0.3.6pl1

tradey.png

npc/name.xml
[XML]<?xml version="1.0" encoding="UTF-8"?>
<npc name="Captain Jack" script="travel.lua" walkinterval="2000" floorchange="0">
<health now="150" max="150"/>
<look type="96" head="78" body="115" legs="118" feet="39" corpse="2212"/>
<parameters>
<parameter key="message_greet" value="Arr |PLAYERNAME|. Maybe you want {travel} somewhere?"/>
</parameters>
</npc>[/XML]

npc/scripts/travel.lua
[LUA]
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
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 greetCallback(cid)
talkState[talkUser] = 0
return true
end
function creatureSayCallback(cid, type, msg)
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
if(not npcHandler:isFocused(cid)) then
return false
end
local trade = {
-- Kazde id musi by? inne! buy - cena; pos - pozycja, na kt?r? nas wysy?a; name - nazwa miasta
{id=2113, buy=230, pos={x=1000, y=1010, z=7}, name="Thais"},
{id=2180, buy=160, pos={x=1005, y=1009, z=7}, name="Lazienka iSanto"},
}
local items = {}
for _, item in ipairs(trade) do
items[item.id] = {pos = item.pos, item_id = item.id, buyPrice = item.buy, subType = 0, realName = item.name}
end
local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks)
doPlayerRemoveMoney(cid, items[item].buyPrice)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE , "You have travelled to "..items[item].realName..".")
doTeleportThing(cid, items[item].pos)
doSendMagicEffect(getCreaturePosition(cid), 29)
end
if msgcontains(msg, 'travel') or msgcontains(msg, 'passage') then
openShopWindow(cid, trade, onBuy, onSell)
selfSay("Where do you want go?", cid)
end
return true
end
npcHandler:setMessage(MESSAGE_WALKAWAY, "See you soon!")
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())[/LUA]
Co do dodawania nowych miast - KA?DE ID MUSI BY? INNE!
 
Odp: Travel System by NPC Trade

Wed?ug mnie skrypt ma?o przydatny gdy? mamy Kapitan?w ;].
Aczkolwiek schludnie wykonane, brak niepotrzebnych p?tli (wed?ug mnie), nie powinien sprawia? problem?w.
Ocena 5/10
Dlaczego tak ma?o?
Wed?ug mnie to du?o, bo skrypt ma?o przydatny, a a? 5 poniewa? Koffam Danteza XD
 
Odp: Travel System by NPC Trade

mi si? bardzo podoba, raczej u?yj? w swoim ots, dzi?ki
 
Odp: Travel System by NPC Trade

Zajebisty jestes wiesz? Reput ;>
 
Odp: Travel System by NPC Trade

I skromny te? ;D
dobra a tak apropos, zadzia?a na 8.6 my?l?, i czy to dzia?a na zasadzie klikasz na Thais, ok i lecisz, czy kupuje ci item?
jezeli odrazu po naci?ni?ciu ok lecisz, to mo?e zablokowa? mo?liwo?? zmiany ilo?ci, bo z tego co widz? mo?esz zmieni? ilo?? ;p
 
Odp: Travel System by NPC Trade

I skromny te? ;D
dobra a tak apropos, zadzia?a na 8.6 my?l?, i czy to dzia?a na zasadzie klikasz na Thais, ok i lecisz, czy kupuje ci item?
jezeli odrazu po naci?ni?ciu ok lecisz, to mo?e zablokowa? mo?liwo?? zmiany ilo?ci, bo z tego co widz? mo?esz zmieni? ilo?? ;p

Klikasz i teleportuje. Zmiana ilo?ci nie wp?ywa na cen?.
 
Odp: Travel System by NPC Trade

domy?lam si? ?e nie zmienia to ceny, ale fakt, faktem, przyjmniej si? 'pacza' gdy ilo?? jest 1 ;] niezmienna, do tego OTClient kt?ry ma trade na ca?ym ekranie i bomba skrypt. ;) Jeste? wielki Dan~.
 
Odp: Travel System by NPC Trade

Skrypt wydaje si? by? du?ym urozmaiceniem dla serwer?w.
Taka opcja jest o wiele ciekawsza i interaktywna ni? hi>thais>yes.

Pozdrawiam i napadywuje repem.
 
Odp: Travel System by NPC Trade

Skrypt wydaje si? by? du?ym urozmaiceniem dla serwer?w.
Taka opcja jest o wiele ciekawsza i interaktywna ni? hi>thais>yes.

Pozdrawiam i napadywuje repem.

Yup, a dodaj do tego otclienta, widzia?e? jaki tam system jest handlowania? ca?y ekran jak na prawdziwym MMO, i to ju? jest mega urozmaicenie, jeszcze zrobi? itemki z Nazwami miast, etc. o meeega ;D

@Edit
chyba co? Zdupcy?em ;D


Can help me everyone? :>
 
Ostatnia edycja:
Odp: Travel System by NPC Trade

Dobra to naprawione, dzi?ku UP.

NPC bierze kase ale nie przenosi ;D hehe Dowcipni?.
8.6 0.4 bug?
 
Odp: Travel System by NPC Trade

Zapewne nie mo?e przenie?? na dane position (?ciana czy cu?)
 
Odp: Travel System by NPC Trade

w?a?nie mi u?wiadomi?e? ?e nie zmieni?em <x,y,z> :>
 
Odp: Travel System by NPC Trade

a da rad? to zrobi? tylko dla pacc ?
 
Ostatnia edycja:
Odp: Travel System by NPC Trade

[LUA]local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
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 greetCallback(cid)
talkState[talkUser] = 0
return true
end

function creatureSayCallback(cid, type, msg)
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

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

local trade = {
-- Kazde id musi by? inne! buy - cena; pos - pozycja, na kt?r? nas wysy?a; name - nazwa miasta
{id=2113, buy=230, pos={x=1000, y=1010, z=7}, name="Thais"},
{id=2180, buy=160, pos={x=1005, y=1009, z=7}, name="Lazienka iSanto"},
}

local items = {}

for _, item in ipairs(trade) do
items[item.id] = {pos = item.pos, item_id = item.id, buyPrice = item.buy, subType = 0, realName = item.name}
end

local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks)
doPlayerRemoveMoney(cid, items[item].buyPrice)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE , "You have travelled to "..items[item].realName..".")
doTeleportThing(cid, items[item].pos)
doSendMagicEffect(getCreaturePosition(cid), 29)
end

if msgcontains(msg, 'travel') or msgcontains(msg, 'passage') then
if(isPremium(cid)) then
openShopWindow(cid, trade, onBuy, onSell)
selfSay("Where do you want go?", cid)
else
selfSay("You need premium to sail that bloody boat!", cid)
end
end

return true
end

npcHandler:setMessage(MESSAGE_WALKAWAY, "See you soon!")
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())[/LUA]
 
Status
Zamknięty.
Do góry