• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!
  • 2026 staff recruitment is open! Check it out and consider applying!

item xx tworzący danego potwora

ancak

New Member
Joined
Oct 21, 2009
Messages
35
Reaction score
0
Location
Poland/ Jarosław
Witam,
1. mam problem ze skryptem, który tworzy potwora koło postaci summonujacej tak jakby. Problem polega w tym, że nie wiem jak przerobić skrypt aby po użyciu wyskakiwała lub potrzeba by było napisać jakiego potwora z możliwych przywoła, oraz tak ażeby nie można było przywołać go np w mieście tylko w wyznaczonym miejscu, coś na zasadzie prywatnych aren.

Dodam skrypt jaki posiadam może uda się coś z niego Wam przerobić
PHP:
function onUse(cid, item, fromPosition, itemEx, toPosition) 
local cfg = { 
    aid = 9999, 
    mname = "Demon", 
    pos = { x = getPlayerPosition(cid)+1, y = getPlayerPosition(cid)-1, x = getPlayerPosition(cid) } 
} 
    if item.actionid == cfg.aid then 
        doCreateMonster(cfg.mname, cfg.pos) 
        doSendMagicEffect(cfg.pos, 10) 
    end 
return true 
end


2. Oraz żeby nie zakładać kolejnego tematu: prosiłbym o podanie lub wklejenie linka tudzież czegoś podobnego do skryptu npc, który wymienia dajmy na to 3 ryby i 1 robaka na jakis amulet, tylko żeby działało to w nieskończenie wiele razy.

Pozdrawiam.
 
Jeśli chodzi o te prywatny areny wystarczy że dodasz gdzieś taki warunek:
LUA:
isInRange(getThingPosition(cid), {x, y, z}, {x, y, z})
Tylko pamiętaj, że działa to na zasadzie kwadratu. Najpierw podajemy lewy górny róg, a potem prawy dolny róg. I tam gdzie jest pole tego kwadratu gracz może używać twojej runki.​
 
nie wiem czy specjalnie to zrobiles (chcesz zeby zawsze po prawej na dole od niego sie pojawial?) ale chyba blad bo powinno byc doSummonMonster zamiast doCreateMonster.
roznica jest taka ze z tego 2 leca itemy po zabiciu.
 
Last edited:
To teraz czy zrozumie czy nie zrozumie xd.


Co do 2 pytania Twojego to wystarczy, że zrobisz coś ala:

Code:
if msgcontains(msg, "wymienie ryby") then
     selfSay(cid, "Czy napewno chcesz wymienic 2 ryby na amulet?")
     talkstate[talkUser] = 1
end

if msgcontains(msg, "yes") then
  if talkstate[talkUser] == 1 then
    if getPlayerItemCount(cid, rybyid) >= 2 then
    doPlayerRemoveItem(cid, rybyid, 2)
    doPlayerAddItem(cid, amuletid, 1)
    odp = "Dziekuje, o to Twoj amulet"
    else
    odp = "Nie masz 2 ryb"
    end
   selfSay(cid, odp)
end
end



Sprawdź czy dobrze funkcje z pamięci podałem bo mogłem zrobić literówki.


// edit
dodałem talkstaty
 
no troche nie teges seminari. podejzewam ze raczej gotowca trzeba. do tego wrzuciles mu 'odp = "blabla" ' a to nie przejdzie ;)
..
no niech strace ;) tu masz caly skrypt. sobie teksty pozmieniaj i nr itemow w configu, melduj jak cos nie tak
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
	local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

local c = {
	item1 = {1111, 3}, -- {itemid, ilosc} to co zabiera
	item2 = {2222, 1}, -- {itemid, ilosc} to co zabiera
	revard = {9999, 1} -- {itemid, ilosc} to co sie dostanie
}

	if doMessageCheck(msg, "wymiana") then
		if getPlayerItemCount(cid, c.item1[1]) >= c.item1[2] and getPlayerItemCount(cid, c.item2[1]) >= c.item2[2] then
			selfSay("you will trade rybki i robaka na amulet", cid)
			talkState[talkUser] = 1
		else
			selfSay("nic nie masz to nie wymieniam", cid)
			talkState[talkUser] = 0
		end

	elseif talkState[talkUser] == 1 and doMessageCheck(msg, "yes") then
		if doPlayerRemoveItem(cid, c.item1[1], c.item1[2]) and doPlayerRemoveItem(cid, c.item2[1], c.item2[2]) then
			doPlayerAddItem(cid, c.revard[1], c.revard[2])
			selfSay("here", cid)
		else
			selfSay("items?", cid)
		end
		talkState[talkUser] = 0

-- msg "no"
	elseif doMessageCheck(msg, 'no') and isInArray({1}, talkState[talkUser])  then
		selfSay("Okay. Okey.", cid)
	end

	return true
end

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