NPC na zam?wienie.

Status
Zamknięty.

Oskar

Forum friend
Przyjaciel forum
Zarejestrowany
Dołączył
Styczeń 24, 2009
Posty
2256
Liczba reakcji
331
Nie widzia?em tutaj takiego tematu, wi?c sobie za?o?? w?asny.
Ot?? robi? NPCty na zam?wienie, ale jest pewien haczyk.
Jak wiadomo NPCtowie to jedne z najbardziej rozbudowanych i najd?u?szych skrypt?w, w zwi?zku z tym wykonuj? JEDNO ZLECENIE na osob?, z ilo?ci? post?w wi?ksz? ani?eli 50.
Wykonuj? jednocze?nie maksymalnie trzy zam?wienia, ka?de nast?pne b?dzie ignorowane.
Nie b?d? wymy?la? za was tekstu b?d? nagr?d, je?li nie opiszecie dok?adnie co NPC ma m?wi?/robi? to nie zabior? si? za t? cz??? skryptu.
Mo?na tak?e zamawia? do dw?ch powi?zanych z sob? w jaki? spos?b NPCt?w.
NPCty wykonuj? na wersje 8.42 i wy?ej.

PS. Nie jestem jakim? mega super skrypterem, wi?c nie ujrzycie w moich pracach p?tli czy innych dupereli. Wszystko buduj? na podstawie tabel i tak ju? zostanie.



orzeleagle122 Uzyskuje moje pozwolenie na zam?wienia wi?kszej ilo?ci NPCt?w ani?eli jest to w regulaminie.
Notka moderatorska:
Przypinam, temat sprawuje si? znakomicie ;)

Notka moderatorska:
Ze wzgl?du na to, i? autor jest zbanowany temat zamykam i odklejam.
 
Odp: NPC na zam?wienie.

potrzeba mi npc do temple od runek i rodow wandow z g?ry THX
Notka moderatorska:
Brak wymaganych 50 post?w
 
Ostatnio edytowane przez moderatora:
Odp: NPC na zam?wienie.

Witam.
Potrzebuj? NPC kt?ry zmieni mi Vokacj? oraz Outfit (outf na sta?e).

Protok??: 8.0
Silnik: DevLand

Rozmowa:
-hi
-Welcome in my house [nick]? What you need?.
-blossom
-Very much you blossomed

Outfit oraz #vokacji sam sobie ustawi?, prosz? tylko szkielet
 
Odp: NPC na zam?wienie.

Pan UP nie czyta wyra?nie. Zam?wienia przyjmuj? od wersji 8.1 i wy?ej, gdy? wtedy zacz??y si? tworzy? silniki sql.

~~OD?WIE?AM~~



#down
Opisz dok?adnie jak ma przebiega? rozmowa z tym NPCtem, jakie maj? by? nagrody oraz jakie potwory i jak? ich ilo?? trzeba zabi?.​
 
Ostatnia edycja:
Odp: NPC na zam?wienie.

Chodzi mi O NPC ZADANIA

Tibia 8.54
Np .Podchodzisz bierzesz misj? zeby zabic potwory

zabijesz wystarczajaca ilosc i i dostajesz itemy na addon

Np,
Ja , hi mission yes

NPc Zadan manas OTs, Misja polega na tym ze masz zabic 30 demonow a otrzymasz royal piece

hi mission 2 yes

NPc Masz za zadanie zabic 15 morghorot?w otrzymasz za to all items do barbariana !!!!

I tak dalej :) mam nadziej? ?e dasz sobie Rade !!!
 
Ostatnia edycja:
Odp: NPC na zam?wienie.

Tibia: 8.55
Info: Przerobiony npc varkhal, ka?dy addon za 100 gp

Tibia: 8.55
Info: Npc Kupuj?cy talony przez trade, jeden talon --> 1 gp
 
Odp: NPC na zam?wienie.

Tibia: 8.54
NPC: Chcia?bym npc'a kt?ry po wpisaniu hi wy?wietli liste quest? na servie kt?re trzeba wykona? zeby np zosta? tutorem lub co? w tym stylu. Mam nadzieje ze jasno napisane ;):>
Silnik: tfs 0.3.6
 
Odp: NPC na zam?wienie.

~~ZAM?WIENIE~~
Chodzi mi O NPC ZADANIA
Tibia 8.54
Np .Podchodzisz bierzesz misj? zeby zabic potwory
zabijesz wystarczajaca ilosc i i dostajesz itemy na addon
Np,
Ja , hi mission yes
NPc Zadan manas OTs, Misja polega na tym ze masz zabic 30 demonow a otrzymasz royal piece
hi mission 2 yes
NPc Masz za zadanie zabic 15 morghorot?w otrzymasz za to all items do barbariana !!!!
I tak dalej :) mam nadziej? ?e dasz sobie Rade !!!
~~SKRYPT~~
Nie testowa?em, ale powinno dzia?a?.
We folderze creaturescripts/scripts tworzysz plik o nazwie
Nazwa.lua i wklejasz do niego:
PHP:
local monsters = {
	["demon"] = 35000,
	["morgaroth"] = 35001,
	}

function onKill(cid, target)
	if(isPlayer(target) ~= TRUE) then
		local name = getCreatureName(target)
		local monster = monsters[string.lower(name)]
		if(monster) then
			local killedMonsters = getPlayerStorageValue(cid, monster)
			if(killedMonsters == -1) then
				killedMonsters = 1
			end
			if((name == "demon" and getPlayerStorageValue(cid, 66666) == 1) then
				doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You killed " .. killedMonsters .. " of 30 demons.")
				setPlayerStorageValue(cid, monster, killedMonsters + 1)
				if getPlayerStorageValue(cid, 35000)>30 then 
					setPlayerStorageValue(cid, 66666, 2)
					doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Congratulations! You have killed enough demons.")
				end
			elseif((name == "morgaroth" and getPlayerStorageValue(cid, 66666) == 4) then
				doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You killed " .. killedMonsters .. " of 15 Morgaroths.")
				setPlayerStorageValue(cid, monster, killedMonsters + 1)
				if getPlayerStorageValue(cid, 35001)>15 then 
					setPlayerStorageValue(cid, 66666, 5)
					doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Congratulations! You have killed enough Morgaroths.")
						end
					end
				end
			end			
		end
	end
	return TRUE
end
Do
login.lua przed:
PHP:
return true
end
Wklejasz:
PHP:
registerCreatureEvent(cid, "Nazwa")
Do
creaturescripts.xml wklejasz:
PHP:
<event type="kill" name="Nazwa" event="script" value="Nazwa.lua"/>

Id? teraz do folderu
NPC/scripts i stw?rz plik o nazwie nazwa.lua i wklej:
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
function say(param)
            npcHandler:say(param.text,param.cid)
         end
    function delayedSay(text, delay, cid)
    if(not npcHandler:isFocused(cid)) then
                return FALSE
     else
         local param = {cid = cid, text = text}
            local delay = delay or 0
            local cid = cid or 0
            local nid = getNpcCid()
            addEvent(say, delay, param)


        end
    end

function creatureSayCallback(cid, type, msg)
    if(not npcHandler:isFocused(cid)) then
    return false
end
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
local quest = 66666
local getquest = getPlayerStorageValue(cid, quest)
local second = 100
local nagrody = {
	[1] = {royal = 5887}
	[2] = {spirit = 5884, sweat = 5885, redpoc = 5911, greenpoc = 5910, yarn = 5886, ore = 5880, iron = 5892, fang = 5893, liza = 5876}
	}
	if msgcontains(msg, 'mission') then
		if getquest == -1 then
			delayedSay("Cos tam mowi...", second, cid)
			talkState[talkUser] = 1
		elseif getquest == 2 then
			delayedSay("Wykonales misje . . . oto nagroda.", second, cid)
			doPlayerAddItem(cid, nagrody[1].royal, 1)
			setPlayerStorageValue(cid, quest, 3)
		elseif getquest == 3 then	
			delayedSay("Czy chcesz zadanie?", second, cid)
			talkState[talkUser] = 2
		elseif getquest == 5 then
			delayedSay("Wykonales misje . . . oto nagroda.", second, cid)
			doPlayerAddItem(cid, nagrody[2].spirit, 1)
			doPlayerAddItem(cid, nagrody[2].sweat, 1)
			doPlayerAddItem(cid, nagrody[2].redpoc, 50)
			doPlayerAddItem(cid, nagrody[2].greenpoc, 50)
			doPlayerAddItem(cid, nagrody[2].yarn, 10)
			doPlayerAddItem(cid, nagrody[2].ore, 100)
			doPlayerAddItem(cid, nagrody[2].iron, 1)
			doPlayerAddItem(cid, nagrody[2].fang, 50)
			doPlayerAddItem(cid, nagrody[2].liza, 50)
			setPlayerStorageValue(cid, quest, 6)
	
	
	elseif msgcontains(msg, 'yes') then
		if talkState[talkUser] == 1 then
			delayedSay("Misja polega na tym ze masz zabic 30 demonow a otrzymasz royal piece.", 100, cid)
			setPlayerStorageValue(cid, quest, 1)
		elseif talkState[talkUser] == 2 then
			delayedSay("Masz za zadanie zabic 15 morghorot?w otrzymasz za to all items do barbariana !!!!", 100, cid)
			setPlayerStorageValue(cid, quest, 4)
			end
		end	
	end
return TRUE
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Cofnij si? o jeden folder i stw?rz plik o nazwie
Nazwa.xml i wklej:
PHP:
<?xml version="1.0" encoding="UTF-8"?>
<npc name="Aesteron" script="Nazwa.lua" walkinterval="2000" floorchange="0">
	<health now="150" max="150"/>
<look type="131" head="114" body="113" legs="114" feet="113" addons="3"/>
</npc>
 
Odp: NPC na zam?wienie.

~~ZAM?WIENIE~~
Tibia: 8.55
Info: Przerobiony npc varkhal, ka?dy addon za 100 gp
Tibia: 8.55
Info: Npc Kupuj?cy talony przez trade, jeden talon --> 1 gp
~~SKRYPT~~
Varkhal:
PHP:
local focus = 0
local talk_start = 0
local target = 0
local following = false
local attacking = false
function onThingMove(creature, thing, oldpos, oldstackpos)
end
function onCreatureAppear(creature)
end
function onCreatureDisappear(cid, pos)
      if focus == cid then
          selfSay('Good bye.')
          focus = 0
          talk_start = 0
      end
end
function onCreatureTurn(creature)
end
function msgcontains(txt, str)
      return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))
end
function onCreatureSay(cid, type, msg)
      msg = string.lower(msg)
      if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then
          selfSay('Hello ' .. creatureGetName(cid) .. '! I sell {first addon} for 50 gold pieces and {second addon} for 50 gold pieces.')
          focus = cid
          talk_start = os.clock()
      elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then
          selfSay('Sorry, ' .. creatureGetName(cid) .. '! I talk you in a minute.')
    elseif focus == cid then
        talk_start = os.clock()
        if msgcontains(msg, 'first addon') then
            selfSay('Do you want buy first addon for 50 gold pieces?')
            talk_state = 1
        elseif msgcontains(msg, 'second addon') then
            selfSay('Do you want buy second addon for 50 gold pieces?')
            talk_state = 2    
        elseif talk_state == 1 then
            if msgcontains(msg, 'yes') then
                if pay(cid,50) then
                    addon(cid, 1)
                else
                    selfSay('You don\'t have enough money.')
                end
             end
            talk_state = 0
        elseif talk_state == 2 then
            if msgcontains(msg, 'yes') then
                if pay(cid,50) then
                    addon(cid, 2)
                else
                    selfSay('You don\'t have enough money.')
                end
             end
            talk_state = 0
        elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then
            selfSay('Good bye, ' .. creatureGetName(cid) .. '!')
            focus = 0
            talk_start = 0
        end
    end
end
function onCreatureChangeOutfit(creature)
end
function onThink()
    doNpcSetCreatureFocus(focus)
    if (os.clock() - talk_start) > 30 then
          if focus > 0 then
              selfSay('Next please...')
          end
              focus = 0
      end
     if focus ~= 0 then
         if getDistanceToCreature(focus) > 5 then
             selfSay('How rude!')
             focus = 0
         end
     end
end
Talon:
PHP:
<?xml version="1.0" encoding="UTF-8"?>
<npc name="Chubb" script="default.lua" walkinterval="2000">
	<health now="150" max="150"/>
<look type="328" head="78" body="128" legs="86" feet="116" />
<parameters>
	<parameter key="module_shop" value="1"/>
	<parameter key="shop_sellable" value="bread,2151,1"/>
</parameters>
</npc>
 
Odp: NPC na zam?wienie.

ok kolejne zlecenie :D


Tibia: 8.55
Info: Npc Backpacker
Tibia: 8.55
Info: Sprzedaje przez trade wszystkie rodzaje backpack?w (tych demon itp.) cena backpacka 1k gp :)


//lol nie masz teraz nic innego do zrobienia to chyba m?g?by? go zrobi? nie?
 
Ostatnia edycja:
Odp: NPC na zam?wienie.

w zwi?zku z tym wykonuj? JEDNO ZLECENIE na osob?, z ilo?ci? post?w wi?ksz? ani?eli 50.
Wykonuj? jednocze?nie maksymalnie trzy zam?wienia, ka?de nast?pne b?dzie ignorowane.
Czytanie ze zrozumieniem si? k?ania.

#up
Skoro wed?ug Ciebie nie mam nic co roboty to postaw si? na moim miejscu. Wtedy szybko zmieni?by? zdanie na temat mojej obecnej sytuacji.

#down
Przykro mi, zasady s? zasadami, ale mi?o, ?e chocia? kto? je przeczyta?.
 
Ostatnia edycja:
Odp: NPC na zam?wienie.

Hey wiem ze nie mam 50 post?w ale bardzo potrzebuje tego NPC
jezeli sie namyslisz zeby go zrobic to:
Npc kt?ry sprzedaje profesje i mozna ja kupic z max 8 lvl Prosze cie!!:lol::lol:
Tibia 8.1 Np.
Ja.Hi Profesja
Npc:Witam mam do zaoferowania 1 profesje [Ninja].Musisz Posiada? 8lvl nie wiekszy.
Ja:Ninja
Npc: Czy jestes pewien zamiany profesji? <<gdy mamy 8 lvl
Npc: Posaidasz wiekszy lvl od wymaganego! <<w wypatku gdy nie mamy 8 lvl
Ja:tak
Npc:twoja profesja zosta?a zmieniona mi?ej gry.
Ja:Bye
NPC:Cze??
 
Ostatnia edycja:
Odp: NPC na zam?wienie.

Co? cicho si? tu zrobi?o.
Nie potrzebuje nikt NPCta? Aktualnie nie mam nic ciekawego do roboty, wi?c m?g?bym nawet wykona? zam?wienie dla osoby niespe?niaj?cej moje kryteria.
 
Odp: NPC na zam?wienie.

O to skoro masz czas i naginasz zasady :D:D:D to m?g? by? mi zrobi? npc od uleczania hp oraz mane ?
Rozmowa powinna by? taka
Gracz: hi
Npc: Witaj <Gracz> co ci? do mnie sprowadza ?
Gracz: hp/mana (do wyboru)
Npc: A wi?c mam ci? uleczy? ?/A wi?c chcesz abym doda? many ?
Grasz: yes
Npc: Niema sprawy :D nie musisz p?aci? moje us?ugi s? za free ;]
Gdy gracz odejdzie bez bye niech powie >Npc: ... < a jak powie bye to niech odpowie >Npc: Do zobaczenia ;]
A imie mo?esz mu da? jakie kolwiek bo nie mam pomys?u :p
Czekam na twoj? prace ;D
PS: mam nadzieje ?e nie dostane upomnienia za to ?e niemam 50 post?w :(
 
Odp: NPC na zam?wienie.

Oto Tw?j NPC.
Tworzysz najpierw plik o nazwie:
PHP:
Gain_hp_mp.lua
We folderze NPC/scripts oczywi?cie.
I wklejasz do niego:
PHP:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
local voc = {}
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)
        local s = getPlayerStorageValue(cid, storage)
        if(not npcHandler:isFocused(cid)) then
                return false
        end
        local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_PRIVATE and 0 or cid
	local pos = getCreaturePosition(cid)
	local rand = math.random(100, 1000)
		if msgcontains(msg, 'hp') then
				selfSay("A wiec mam cie uleczyc?", cid)
				talkState[talkUser] = 1
		elseif msgcontains(msg, 'mana') then
				selfSay("A wiec chcesz abym dodal many?", cid)
				talkState[talkUser] = 2
		elseif msgcontains(msg, 'yes') then
			if talkState[talkUser] == 1 then
				selfSay("Nie ma sprawy. Nie musisz placic, moje uslugi sa za free ;]", cid)
				doCreatureAddHealth(cid, rand)
				doSendAnimatedText(pos, "+ "..rand.."", 180)
			elseif talkState[talkUser] == 2 then
				selfSay("Nie ma sprawy. Nie musisz placic, moje uslugi sa za free ;]", cid)
				doCreatureAddMana(cid, rand)
				doSendAnimatedText(pos, "+ "..rand.."", 10)
				end
		end
	return TRUE
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Nast?pnie idziesz do folderu NPC i tam tworzysz plik o nazwie:
PHP:
Halt.xml
I wklejasz:
PHP:
<?xml version="1.0" encoding="UTF-8"?>
<npc name="Halt" script="Gain_hp_mp.lua" walkinterval="2000">
	<health now="150" max="150"/>
<look type="131" head="78" body="78" legs="96" feet="116" addons="3"/>
<parameters>
	<parameter key="message_greet" value="Witaj |PLAYERNAME| co ci? do mnie sprowadza?."/>
</parameters>
</npc>
~~NOTKA~~
Ilo?? otrzymywanego HP oraz MP ustawiasz tutaj:
PHP:
local rand = math.random(100, 1000)
Gdzie pierwsza liczba to minimum, a druga to maksimum.
Gracz dostaje losow? ilo?? z tego przedzia?u.
 
Ostatnia edycja:
Odp: NPC na zam?wienie.

Siema nie mam 50 post?w ale ten NPC mi si? bardzo przyda ;D

A wi?c tibia 8.54
Info: NPC daje nam zadanie zabi? yymmm... 5 wilk?w kiedy je wykonamy nagrod? jest Wolf Tooth Chain . ;D (A i czy NPC m?g?by si? nazywa? Edir?)
Rozmowa:
Ja: Hi
NPC: Witaj pordozniku co cie do mnie sprowadza?
Ja: Quest
NPC: A wiec chesz wykonac zadanie tak?
Ja: Yes
NPC: Zabij wiec 5 wilkow i przyjdz do mnie.
Ja: Bye
NPC: Zegnaj!

PO ZABICIU POTWOROW

Ja: Hi
NPC: Witaj czy wypelniles juz zadanie?
Ja: Yes
NPC: A wiec masz ten amulet! I pilnuj go przyniesie ci szczescie.
Ja: Bye
NPC: Szerokiej drogi!
 
Odp: NPC na zam?wienie.

I prosz? bardzo.
Plik w NPC/scripts o nazwie:
PHP:
Edir.lua
I wklej:
PHP:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
local voc = {}
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)
        local s = getPlayerStorageValue(cid, storage)
        if(not npcHandler:isFocused(cid)) then
                return false
        end
        local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_PRIVATE and 0 or cid
	local storage = 2500
	local pos = getCreaturePosition(cid)
        if msgcontains(msg, 'quest') then
			if getPlayerStorageValue(cid, storage) == -1 then
                selfSay("A wiec chesz wykonac zadanie tak?", cid)
                talkState[talkUser] = 1
			elseif getPlayerStorageValue(cid, storage) < 3 then
                selfSay("Witaj czy wypelniles juz zadanie?", cid)
                talkState[talkUser] = 2
			else
				selfSay("Juz wystarczajaco mi pomogles. Dziekuje!", cid)
			end
        elseif msgcontains(msg, 'yes') then
            if talkState[talkUser] == 1 then
                selfSay("Zabij wiec 5 wilkow i przyjdz do mnie.", cid)
                setPlayerStorageValue(cid, storage, 1)
                doSendMagicEffect(pos, 28)
            elseif talkState[talkUser] == 2 then
				if getPlayerStorageValue(cid, storage) == 2 then
                selfSay("A wiec masz ten amulet! I pilnuj go przyniesie ci szczescie.", cid)
                setPlayerStorageValue(cid, storage, 3)
                doSendMagicEffect(pos, 29)
				doPlayerAddItem(cid, 2129, 1)
			else
				selfSay("Nie zabiles jeszcze 5 wolfow.", cid)
				end
            end
        end
    return TRUE
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Do folderu NPC wrzu? plik o nazwie:
PHP:
Edir.xml
I wklej:
PHP:
<?xml version="1.0" encoding="UTF-8"?>
<npc name="Edir" script="Edir.lua" access="3" lookdir="2" walkinterval="2000">
	<health now="150" max="150"/>
  <look type="131" head="96" body="94" legs="129" feet="114" addons="1"/> 
  <parameters> 
    <parameter key="message_greet" value="Witaj pordozniku co cie do mnie sprowadza?" /> 
  </parameters> 
</npc>
Do creaturescripts/scripts wrzu? plik o nazwie:
PHP:
Edir.lua
I wklej:
PHP:
function onKill(cid, target)
local config = {	
	["wolf"] = {storage = 2501, begin_storage_value = 1, finished_storage_value = 2, count = 5}
	}
local mob = config[getCreatureName(target)]
if(not mob) then
return true
end
local main_storage = 2500
	if(isPlayer(target) ~= TRUE) then
		local killedMonsters = getPlayerStorageValue(cid, mob.storage)
			if(killedMonsters == -1) then
					killedMonsters = 1
			end
		if getPlayerStorageValue(cid, main_storage) == mob.begin_storage_value then
			setPlayerStorageValue(cid, mob.storage, killedMonsters + 1)
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You killed " .. killedMonsters .. " of " .. mob.count .. " " .. getCreatureName(target) .. "s.")
				if killedMonsters == mob.count then 
					setPlayerStorageValue(cid, main_storage, mob.finished_storage_value)
					doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Congratulations! You have killed enough " .. getCreatureName(target) .. "s.")
						end
			end
end
	return true
end
Do login.lua wklej (przed return true):
PHP:
registerCreatureEvent(cid, "Edir")
Do cresturescripts.xml wklej:
PHP:
<event type="kill" name="Edir" event="script" value="Edir.lua"/>
 
Odp: NPC na zam?wienie.

Witam, jak wy?ej zauwa?y?em to napisa?e?, ?e naginasz zasady to postanowi?em jednak napisa?.

Tibia 8.54
Po wykonaniu dw?ch quest?w mo?emy teleportowa? si? do wysp? za op?at?, podmieni? x,y,z napisz 1000:1000:7.

1:-hi
2:-Cze?? mog? ci? przenie?? na pewn? wysp?, ale musisz mi pom?c. Chcesz mi pom?c?

1:-yes
2:-Przynie? mi x.

1:-bye
2:-Do zobaczenia.

3:-Masz ju? x?
1:-yes

5:-Nie k?am, nie masz x.
5:-Dzi?kuj?, teraz zabij jeszcze x.

6:-Zabi?e? ju? x?
1:-yes

7:-Nie ok?amuj mnie, nie zabi?e? ich.
7:-Oto twoja nagroda za te misj? (otrzymujesz x). Mog? ci? teraz tak?e przenosi? na wysp?.

8:-Chcesz za 300gp polecie? na wysp??
1:-yes

9:-Nie masz przy sobie tyle pieni?dzy.
9:-W drog?!

Zad 1:
-Oblicz x ;p - Troch? humoru

Za x wstaw co tam ci pasuje.
 
Odp: NPC na zam?wienie.

Tworzymy plik we folderze NPC/scripts o nazwie:
PHP:
nazwij_go_sobie_jakos.lua
I wklej do niego:
PHP:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
local voc = {}
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)
        local s = getPlayerStorageValue(cid, storage)
        if(not npcHandler:isFocused(cid)) then
                return false
        end
        local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_PRIVATE and 0 or cid
	local storage = 4000
	local wyspa = {x = 1000, y = 1000, z = 7}
        if msgcontains(msg, 'mission') then
			if getPlayerStorageValue(cid, storage) == -1 then
                selfSay("Czesc moge cie przeniesc na pewna wyspe, ale musisz mi pomoc. Chcesz mi pomoc?", cid)
                talkState[talkUser] = 1
			elseif getPlayerStorageValue(cid, storage) == 1 then
                selfSay("Masz juz 10 woods?", cid)
                talkState[talkUser] = 2
			elseif getPlayerStorageValue(cid, storage) == 2 or getPlayerStorageValue(cid, storage) == 3 then
				selfSay("Zabiles juz 25 Medus?", cid)
				talkState[talkUser] = 3
			end
		elseif msgcontains(msg, 'wyspa') and getPlayerStorageValue(cid, storage) == 4 then
			selfSay("Chcesz za 300gp poleciec na wyspe?", cid)
			talkState[talkUser] = 4
        elseif msgcontains(msg, 'yes') then
            if talkState[talkUser] == 1 then
                selfSay("Przynies mi 10 wood.", cid)
                setPlayerStorageValue(cid, storage, 1)
            elseif talkState[talkUser] == 2 then 
				if getPlayerItemCount(cid, 5901) >= 10 then
					selfSay("Dziekuje, teraz zabij jeszcze 25 Medus.", cid)
					setPlayerStorageValue(cid, storage, 2)
					doPlayerRemoveItem(cid, 5901, 10)
				else
					selfSay("Nie klam, nie masz 10 wood.", cid)
				end
			elseif talkState[talkUser] == 3 then
				if getPlayerStorageValue(cid, storage) == 3 then
					selfSay("Oto twoja nagroda za te misje {100 platinum coins}. Moge cie teraz takze przenosic na {wyspe.}", cid)
					setPlayerStorageValue(cid, storage, 4)
					doPlayerAddItem(cid, 2152, 100)
				else
					selfSay("Nie oklamuj mnie, nie zabiles ich.", cid)
				end
			elseif talkState[talkUser] == 4 then
				if getPlayerItemCount(cid, 2148) >= 300 then
					selfSay("W droge!", cid)
					doTeleportThing(cid, wyspa)
					doPlayerRemoveItem(cid, 2148, 300)
				elseif getPlayerItemCount(cid, 2152) >= 3 then
					selfSay("W droge!", cid)
					doTeleportThing(cid, wyspa)
					doPlayerRemoveItem(cid, 2152, 3)
				else
					selfSay("Nie masz przy sobie tyle pieniedzy.", cid)
				end
            end
        end
    return TRUE
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Do NPC wrzu? plik o nazwie:
PHP:
nazwij_jakos.xml
I wklej do niego:
PHP:
<?xml version="1.0" encoding="UTF-8"?>
<npc name="Czlek" script="nazwij_go_sobie_jakos.lua" access="3" lookdir="2" walkinterval="2000">
	<health now="150" max="150"/>
<look type="130" head="19" body="114" legs="113" feet="94" addons="2"/>
<parameters>
<parameter key="message_greet" value="Witaj |PLAYERNAME|! Co Cie do mnie sprowadza?"/>
</parameters>
</npc>
We folderze creaturescripts stw?rz plik o nazwie:
PHP:
nazwa.lua
I wklej:
PHP:
function onKill(cid, target)
local config = {	
	["medusa"] = {storage = 4001, begin_storage_value = 2, finished_storage_value = 3, count = 25}
	}
local mob = config[getCreatureName(target)]
if(not mob) then
return true
end
local main_storage = 4000
	if(isPlayer(target) ~= TRUE) then
		local killedMonsters = getPlayerStorageValue(cid, mob.storage)
			if(killedMonsters == -1) then
					killedMonsters = 1
			end
		if getPlayerStorageValue(cid, main_storage) == mob.begin_storage_value then
			setPlayerStorageValue(cid, mob.storage, killedMonsters + 1)
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You killed " .. killedMonsters .. " of " .. mob.count .. " " .. getCreatureName(target) .. "s.")
				if killedMonsters == mob.count then 
					setPlayerStorageValue(cid, main_storage, mob.finished_storage_value)
					doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Congratulations! You have killed enough " .. getCreatureName(target) .. "s.")
						end
			end
end
	return true
end
W login.lua przed return true dodaj:
PHP:
registerCreatureEvent(cid, "Czlek")
Za? w creaturescripts.xml wklej:
PHP:
<event type="kill" name="Czlek" event="script" value="nazwa.lua"/>
 
Ostatnia edycja:
Odp: NPC na zam?wienie.

Wersja 8.0, domy?lam si?, ?e to db, kt?rym si? nie zajmuj?, w zwi?zku z czym zam?wienie nie zostaje rozpatrzone.

#down
Wida? wyra?nie, ?e to serwer db, a ja takimi si? NIE ZAJMUJ?, pojmij to wreszcie... Nie zrobi? tego zam?wienia, mimo i? zaj??o by mi ono raptem kilka minut.
 
Ostatnia edycja:
Status
Zamknięty.
Back
Do góry