Skocz do zawartości

Dragon Ball - Smocze Kule


rafaeru

Rekomendowane odpowiedzi

Z nudów napisałem skrypcik który działa następująco:

 

d9cpenh.png

 

Musimy zdobyć 7 smoczych kul, następnie po naciśnięciu na nie przywołamy potężnego smoka Shen Longa który nagrodzi nas jednym z życzeń. Do wyboru: losowa ilość złota, losowy item albo spell. Nagrodę otrzyma tylko osoba która przywała smoka ! Wszystko zaopatrzone w łatwy config, testowane na TFS 0.3.6.

 

KWo0eJY.gif

 

----Kod Skryptu----

 

Smocze Kule:

data/actions/actions.xml

 

 

<action itemid="9239-9245" event="script" value="dragonball.lua"/> 

 

 

data/actions/scripts/dragonball.lua

 

 

local dragon_ball_id = {9239, 9240, 9241, 9242, 9243, 9244, 9245}
local storage = 10010

local function getPlayerDragonBalls(cid)
	if getPlayerItemCount(cid, dragon_ball_id[1]) >= 1 and getPlayerItemCount(cid, dragon_ball_id[2]) >= 1 and getPlayerItemCount(cid, dragon_ball_id[3]) >= 1 and getPlayerItemCount(cid, dragon_ball_id[4]) >= 1 and getPlayerItemCount(cid, dragon_ball_id[5]) >= 1 and getPlayerItemCount(cid, dragon_ball_id[6]) >= 1 then
		for i=1,#dragon_ball_id do
			doPlayerRemoveItem(cid, dragon_ball_id[i],1)
		end
		return true
	end
return false
end

function onUse(cid)
	if getCreatureByName("Shen Long") == nil then
		if getPlayerDragonBalls(cid) == true then
			doSendMagicEffect(getCreaturePosition(cid),43)
			dragon = doCreateNpc("Shen Long", getCreaturePosition(cid))
			doSendMagicEffect(getCreaturePosition(dragon),28)
			setGlobalStorageValue(storage, getCreatureName(cid))
		else
			doPlayerSendCancel(cid,"You dont have all dragon balls.")
		end
	else
		doPlayerSendCancel(cid,"Shen Long is already summoned.")
	end
	return true
end

 

 

Npc:

XML:

 

 

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Shen Long" script="shenlong.lua" walkinterval="0" floorchange="0">
	<health now="150" max="150"/>
	<look type="103" head="114" body="119" legs="114" feet="114" corpse="2212"/>
    <parameters>
		<parameter key="message_greet" value="Hello |PLAYERNAME|. I fulfill your {wish}."/>
    </parameters>
</npc>

 

 

shenlong.lua

 

 

local keywordHandler = KeywordHandler:new()
local shopModule = ShopModule: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
---------------------------------------------------------
-------------------   CONFIG   -----------------------
---------------------------------------------------------

local storage = 10010 -- storage taki sam jak w actions

local money_id = 2160 -- id pieniedzy
local money_count_min = 50 -- ile najmniej mozna dostac pieniedzy
local money_count_max = 100 -- ile najwiecej mozna dostac pieniedzy

local rare_id = {2382, 2650} -- tabela z rare itemami ktore mozna otrzymac

local technique_name = "dragon fist" -- nazwa spella ktory uczy smok

---------------------------------------------------------

	if(msgcontains(msg, 'wish'))then
		if getGlobalStorageValue(storage) == getCreatureName(cid) then
			selfSay('For example I can give you a lot of {money}, rare {item} or teach you special {technique}.', cid)
		else
			selfSay('You don\'t summon me. Begone!', cid)
		end
	end
	if(msgcontains(msg, 'money') and getGlobalStorageValue(storage) == getCreatureName(cid))then
		doPlayerAddItem(cid, money_id, math.random(money_count_min,money_count_max))
		selfSay('Now you\'re filthy rich. Bye !', cid)
		setGlobalStorageValue(storage, -1)
		addEvent(doSendMagicEffect,2000,getCreaturePosition(getCreatureByName("Shen Long")),13)
		addEvent(doRemoveCreature,2000,getCreatureByName("Shen Long"))
	elseif(msgcontains(msg, 'item') and getGlobalStorageValue(storage) == getCreatureName(cid))then
		doPlayerAddItem(cid, rare_id[math.random(1,#rare_id)], 1)
		selfSay('Nobody has such rare item as you. Bye !', cid)
		setGlobalStorageValue(storage, -1)
		addEvent(doSendMagicEffect,2000,getCreaturePosition(getCreatureByName("Shen Long")),13)
		addEvent(doRemoveCreature,2000,getCreatureByName("Shen Long"))
	elseif(msgcontains(msg, 'technique') and getGlobalStorageValue(storage) == getCreatureName(cid))then
		doPlayerLearnInstantSpell(cid, technique_name)
		selfSay('With this technique you can beat anyone. Bye !', cid)
		setGlobalStorageValue(storage, -1)
		addEvent(doSendMagicEffect,2000,getCreaturePosition(getCreatureByName("Shen Long")),13)
		addEvent(doRemoveCreature,2000,getCreatureByName("Shen Long"))
	end
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())  

 

 

Odnośnik do komentarza

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający forum Dragon Ball   0 użytkowników
    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...