-Inne Skrypty na zam?wienie

Status
Zamknięty.

Piotre00

Advanced User
Zarejestrowany
Dołączył
Sierpień 28, 2008
Posty
178
Liczba reakcji
17
Do moderator?w: na forum nie ma jednoznacznie okre?lonego dzia?u na tego typu temat dlatego umieszczam tutaj. Je?eli jest bardziej odpowiedni dzia? to prosz? o przeniesienie.

Witam.
Postanowi?em stworzy? temat, w kt?rym b?d? wykonywa? skrypty dla u?ytkownik?w forum.
Skrypty wykonuj? za darmo. Je?eli chcesz, abym wykona? wi?kszy system mog? go wykona? odp?atnie (przelew/sms). W takim przypadku prosz? o kontakt na gg / PW
Zanim napiszesz zapoznaj si? z regulaminem i wzorem sk?adania zam?wienia.

Regulamin:
  1. W temacie gotowe skrypty umieszczam tylko ja
  2. W jednym po?cie mo?esz umie?ci? pro?b? o 1 skrypt
  3. Przyjmuj? maksymalnie 3 zlecenia. (je?eli w temacie s? 3 zlecenia POCZEKAJ a? je wykonam, je?eli nie zastosujesz si? do tego punktu Twoja pro?ba zostanie zignorowana)
  4. Wykonuj? tylko skrypty: actions, talkactions, movements, globalevents, creaturescripts, npc.
  5. Nie wykonuj? skrypt?w na ?adne naruta / pokemony / dragon balle
  6. Je?eli m?j skrypt nie dzia?a, napisz na PW, nie za?miecaj tematu
  7. Je?eli chcesz abym wykona? wi?kszy skrypt mog? to zrobi? za op?at?
  8. Wykonuje zlecenia dla TFS pod protok?? 8.4+

Wz?r sk?adania podania
Silnik, wersja klienta: TFS 0.3.6pl1, 8.54
Typ skryptu: Actions
Opis: Potrzebuj? skryptu, aby da?o si? niszczy? pickiem kamienie o id 1285.
*Screen lub filmik:
* opcjonalnie
 
Odp: Skrypty na zam?wienie

Silnik, wersja klienta: TFS 0.3.6pl1, 8.54
Typ skryptu: spells
Opis: Gdy u?yjemy tego czaru pojawia si? effect(effect te? trwa 10 sec- opcjonalnie mo?e zmienic nam outfit) i przez 10 sec jeste?my nie tykalni przez potwory lecz nie mo?emy si? ruszy? po 10 sec zn?w potwory mog? nas bi? i mo?emy chodzi? , oraz zabiera nam 50% hp gdy ju? u?yjemy czaru.
*Screen lub filmik:
* opcjonalnie
 
Odp: Skrypty na zam?wienie

Nie pisz? spelli, dlatego zrobi?em w talkactions.
Jest to do?? zaawansowany skrypt, sk?ada si? z jednego skryptu talkactions i jednego creaturescripts.

data/talkactions/talkactions.xml
dodaj:
Kod:
	<talkaction words="twoj_tekst" event="script" value="shield.lua"/>

data/talkactions/scripts/
stw?rz shield.lua i wklej:
Kod:
-- by Piotre00 aka Kastor
local conf = {
	vocations = {1,2,5,6},
	level = 120,
	mana = 800,
	textColor = 26,
	storage = 22330,
	efekt = 13
}

local function eff(cid)
if isCreature(cid) then
doSendMagicEffect(getCreaturePosition(cid), conf.efekt)
end
return true
end

local function stopshield(cid)
if isCreature(cid) then
setPlayerStorageValue(cid,conf.storage,-1)
doCreatureSetNoMove(cid,0)
end
return true
end


function onSay(cid, words, param)
	if not isInArray(conf.vocations, getPlayerVocation(cid)) then
		doPlayerSendTextMessage(cid, conf.textColor, "Your vocation can't use this spell.")
		doSendMagicEffect(getPlayerPosition(cid), 2)
		return true	
	end
	
	if getPlayerLevel(cid) < conf.level then
		doPlayerSendTextMessage(cid, conf.textColor, "You do not have enough level.")
		doSendMagicEffect(getPlayerPosition(cid), 2)
		return true
	end
	
	if getCreatureMana(cid) < conf.mana then
		doPlayerSendTextMessage(cid, conf.textColor, "You do not have enough mana.")
		doSendMagicEffect(getPlayerPosition(cid), 2)
		return true
	end
	
	if(getPlayerStorageValue(cid,conf.storage) ~= -1) then
		doPlayerSendTextMessage(cid, conf.textColor, "Already active.")
		doSendMagicEffect(getPlayerPosition(cid), 2)
		return true
	end
	
        doCreatureAddHealth(cid, -(getCreatureMaxHealth(cid) / 2))
	for i = 1,10 do
		t = i*1000
		addEvent(eff, t, cid)
	end

	doCreatureSetNoMove(cid,1)
	doCreatureSay(cid, "SHIELD!", TALKTYPE_ORANGE_1)
	setPlayerStorageValue(cid, conf.storage, 1)
	addEvent(stopshield,10000,cid)
	return true
end

data/creaturescripts/creaturescripts.xml
dodaj:
Kod:
	<event type="statschange" name="shield" event="script" value="shield.lua"/>

data/creaturescripts/scripts/
stw?rz shield.lua i wklej
Kod:
local storage = 22330
function onStatsChange(cid, attacker, type, combat, value)
if type == STATSCHANGE_HEALTHLOSS then
	if(getPlayerStorageValue(cid,storage)) ~= -1 then
		return false
	end
end
return true
end

data/creaturescripts/scripts
w login.lua pod
Kod:
function onLogin(cid)
dodaj
Kod:
local storage = 22330
setPlayerStorageValue(cid, storage, -1)

przed
Kod:
return true
dodaj
Kod:
registerCreatureEvent(cid, "shield")

Testowane na TFS 0.3.6pl1. Je?eli dzia?a mo?esz da? reputa ;)
 
Ostatnia edycja:
Odp: Skrypty na zam?wienie

Silnik, wersja klienta: TFS 0.4, 8.6
Typ skryptu: NPC
Opis: Potrzebuj? npc, kt?ry b?dzie rozdziela? misje. Chce aby dawa? misje r??nego typu, np dawanie item?w, zabicie potwor?w. Misji ma by? kilka. Najlepiej aby by?o 5 r??nych npc. Pierwszy rozdziela zadania. Czyli ka?e i?? do drugiego, kt?ry ka?e zbiera? items po zebraniu items wysy?a do pierwszego, kt?ry m?wi, ?e poprawnie wykona? pierwsz? cze?? zadania i wysy?a go do trzeciego. Trzeci jest od zabijania potwor?w. Gdy player zabije wyznaczon? ilo?? r??nych potwor?w, po czym ka?e wr?ci? do pierwszego. Pierwszy zn?w wysy?a do kolejnego czyli czwartego, a ten czwarty ma by? odpowiedzialny za klikniecie na kilka figurek rozlokowanych w r??nych miejscach na mapie. Gdy player zako?czy "klikanie" wraca do pierwszego. A pierwszy za wykonanie zadani daje mu list i odsy?a do pi?tego, kt?ry odbiera list i daje klucz do drzwi.
 
Odp: Skrypty na zam?wienie

@wujush
Zrobi? tylko cz??? tych npc, a nast?pne chyba dasz rad? dopisa? analogicznie.(ewentualnie zawsze mo?esz napisa? kolejn? pro?b? o pojedynczy skrypt)

NPC rozdaj?cy misje:
data/npc/Rozdzielacz.xml
Kod:
<?xml version="1.0" encoding="UTF-8"?>
<npc name="Rozdzielacz" script="rozdzielacz.lua" walkinterval="2000" floorchange="0">
	<health now="100" max="100"/>
	<look type="144" head="39" body="122" legs="125" feet="57" addons="3"/>
	<parameters>
		<parameter key="message_greet" value="Hello |PLAYERNAME|."/>
	</parameters>
</npc>

data/npc/scripts/rozdzielacz.lua
Kod:
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 stor = 27271
local gStor = getPlayerStorageValue(cid,stor)


if(msgcontains(msg, 'mission')) then
	if gStor == -1 then
		selfSay('Idz do XXX. Ma on dla Ciebie zadanie.', cid)
		talkState[talkUser] = 1
	elseif getStor == 1 then
		selfSay('Dobrze, sprawdziales sie. Idz teraz do YYY, potrzebuje kogos do pomocy.', cid)
		talkState[talkUser] = 2
	elseif getStor == 2 then
		selfSay('Aktualnie nie mam dla Ciebie zadania.', cid)		
end


end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

NPC ka??cy przynie?? mu dan? ilo?? przedmiot?w:
data/npc/Misjapierwsza.xml
Kod:
<?xml version="1.0" encoding="UTF-8"?>
<npc name="Misjapierwsza" script="misjapierwsza.lua" walkinterval="2000" floorchange="0">
	<health now="100" max="100"/>
	<look type="144" head="39" body="122" legs="125" feet="57" addons="3"/>
	<parameters>
		<parameter key="message_greet" value="Hello |PLAYERNAME|."/>
	</parameters>
</npc>

data/npc/scripts/misjapierwsza.lua
Kod:
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 stor = 27271
local gStor = getPlayerStorageValue(cid,stor)
local iID = 3976 -- id itemu
local iQUAN = 10 -- ilosc item?w
local rewardExp = 32000 -- ilosc doswiadczenia za wykonanie


if(msgcontains(msg, 'mission')) then
	if gStor == -1 then
		selfSay('Potrzebuje 10 {robak}ow. Przynies mi, a otrzymasz nagrode.', cid)
		talkState[talkUser] = 1
	else
		selfSay('Nie mam dla Ciebie zadnego zadania.', cid)
end
		
elseif(msgcontains(msg, 'robak') and talkState[talkUser] == 1) then
	if(doPlayerRemoveItem(cid, iID, iQUAN)) then
		setPlayerStorageValue(cid,stor,1)
		doPlayerAddExperience(cid,rewardExp)
		selfSay('Dzieki!).', cid)
	else
		selfSay('Musisz miec 10 robakow.', cid)
	end
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
 
Odp: Skrypty na zam?wienie

Silnik, wersja klienta: TFS 0.3.6pl1, 8.54
Typ skryptu: NPC
Opis: Potrzebuje npc kt?ry daje nam 3 misje, w 1 ka?e nam i?? nazbiera? 10 cia? martwych w?zy,w drugiej ka?e nam i?? , i stan?? na dan? kratk?, w trzeciej uzbiera? 40 demon dust?w, gdy wykonamy wszystkie misje daje nam nagrod?(sam ustale)
 
Odp: Skrypty na zam?wienie

@DinPl
data/movements/movements.xml
Kod:
	<movevent type="StepIn" actionid="2727" event="script" value="kratka.lua"/>

data/movements/scripts/kratka.lua
Kod:
function onStepIn(cid, item, frompos, item2, topos)
local stor = 27271
if getPlayerStorageValue(cid, stor) == 1 then
setPlayerStorageValue(cid,stor,2)
end
return true
end

data/npc/Misja.xml
Kod:
<?xml version="1.0" encoding="UTF-8"?>
<npc name="Misja" script="misja.lua" walkinterval="2000" floorchange="0">
	<health now="100" max="100"/>
	<look type="144" head="39" body="122" legs="125" feet="57" addons="3"/>
	<parameters>
		<parameter key="message_greet" value="Hello |PLAYERNAME|."/>
	</parameters>
</npc>

data/npc/scripts/misja.lua
Kod:
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 stor = 27271
local gStor = getPlayerStorageValue(cid,stor)
local snakeId = 1000 -- id itemu
local dustId = 1000 -- ilosc item?w

if(msgcontains(msg, 'mission')) then
	if gStor == -1 then
		selfSay('Potrzebuje 10 {cial} wezy.', cid)
		talkState[talkUser] = 1
	elseif gStor == 1
		selfSay('Idz i stan na dana kratke.', cid)
	elseif gStor == 2
		selfSay('Przynies 40 {demon dust}.', cid)
		talkState[talkUser] = 3	
	else
		selfSay('Nie mam dla Ciebie zadnego zadania.', cid)
	end
elseif(msgcontains(msg, 'cial') and talkState[talkUser] == 1) then
	if(doPlayerRemoveItem(cid, snakeId, 10)) then
		setPlayerStorageValue(cid,stor,1)
		selfSay('Dzieki!.', cid)
	else
		selfSay('Musisz miec 10 cial wezy.', cid)
	end
elseif(msgcontains(msg, 'demon dust') and talkState[talkUser] == 3) then
	if(doPlayerRemoveItem(cid, dustId, 40)) then
		setPlayerStorageValue(cid,stor,3)
		selfSay('Dzieki!.', cid)
	else
		selfSay('Musisz miec 40 demon dust.', cid)
	end
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Zmienna stor musi by? taka sama w obu skryptach. Pami?taj aby uzupe?ni? snakeId i dustId (odpowiednio item id cia? w??y oraz item id dust?w). W map edytorze ustaw na kratk?, na kt?rej gracz ma stan?? action id 2727
 
Odp: Skrypty na zam?wienie

Silnik, wersja klienta: TFS 0.3.5pl1, 8.50
Typ skryptu: NPC
Opis: NPC u kt?rego trzeba zrobi? misje po czym mo?na dopiero pisa? Wiadomo?? do wszystkich graczy na czerwono, dan? wiadomo??.
 
Odp: Skrypty na zam?wienie

@Elasir
Wreszcie co? z inwencj? :)

data/npc/Broadcaster.xml
Kod:
<?xml version="1.0" encoding="UTF-8"?>
<npc name="Broadcaster" script="broadcast.lua" walkinterval="2000" floorchange="0">
	<health now="100" max="100"/>
	<look type="134" head="57" body="59" legs="40" feet="76" addons="0"/>
	<parameters>
	<parameter key="message_greet" value="Hello |PLAYERNAME|." />
	</parameters>
</npc>

data/npc/scripts/broadcast.lua
Kod:
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 storage = 22222 -- storage questu, ktory gracz musi miec wykonany

if(msgcontains(msg, 'broadcast')) then
	if getPlayerStorageValue(cid,storage) == -1 then
		selfSay('Najpierw musisz wykonac zadanie', cid)
	else
		selfSay('Podaj zdanie, ktore chcesz wyslac.', cid)
		talkState[talkUser] = 1	
	end
elseif talkState[talkUser] == 1 then
		msg2 = msg
	    selfSay('Czy chcesz wyslac zdanie: '..msg2..'?', cid)
		talkState[talkUser] = 2	
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then
		selfSay('Wiadomosc zostala wyslana!', cid)
		doPlayerBroadcastMessage(cid, msg2)
		talkState[talkUser] = 0
elseif(msgcontains(msg, 'no') and talkState[talkUser] == 2) then
		selfSay('Wiec nie.', cid)
		talkState[talkUser] = 0
end

return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Testowane na TFS 0.3.6pl1
 
Odp: Skrypty na zam?wienie

Silnik, wersja klienta: TFS 8.60
Typ skryptu: Actions :D
Opis: Manaruna kt?ra dodaje mane procentowo np. mam 100 many to da 20% czyli 20 many.
 
Ostatnia edycja:
Odp: Skrypty na zam?wienie

@Alanik40
Niejasno to napisa?e?. Ma dawa? 20% aktualnej many, czy 20% maksymalnej many? Wywnioskowa?em, ?e aktualnej.

data/actions/actions.xml
Kod:
<action itemid="ID_PRZEDMIOTU" event="script" value="manarune.lua"/>

data/actions/scripts/manarune.lua
Kod:
local remove = true
function onUse(cid, item, fromPosition, itemEx, toPosition)
	doCreatureAddMana(cid,getCreatureMana(cid)*0.2)
	if remove then
		doRemoveItem(item.uid, 1)
	end
	return true
end
 
Odp: Skrypty na zam?wienie

Silnik, wersja klienta: TFS 0.3.5pl1, 8.50
Typ skryptu: nie wiem :D ale ty wiesz;p
Opis: Power Down :D spala Full many przy czym tak?e trenuje MLVl
 
Odp: Skrypty na zam?wienie

@Elasir
Mo?na w spells, ale ja preferuj? talkactions (no i nie trzeba definiowa? ile many wymaga ;))

data/talkactions/talkactions.xml
Kod:
<talkaction words="power down" event="script" value="power_down.lua"/>

data/talkactions/power_down.lua
Kod:
function onSay(cid, words, param)
	local mana = getCreatureMana(cid)
	doCreatureAddMana(cid,-mana)
	doPlayerAddSpentMana(cid,mana)
	return true
end
 
Odp: Skrypty na zam?wienie

Silnik, wersja klienta: TFS 0.3.5pl1, 8.50
Typ skryptu: talkactions
Opis: Charge. Chodzi o to ?e nie mo?na mie? PZ, w grze piszesz Charge po czym pokazuj? si? na tobie Efekt X i tak ci?gle ale przy okazji ?aduje mane/Only mane i co sekunde/2
po ile ? tak zale?y od lvl hmm tak na 100 lvl po 2k na 2 s np na 200 tak po 3k
co 100 lvl 1k wi?cej.
je?eli da rady to da si? u?y? od 100 lv. ko?czy ?adowa? z na?adowaniem full many.
 
Ostatnia edycja:
Odp: Skrypty na zam?wienie

W configu poustawiaj sobie ile ma dawa? many za lvl, efekt, kolor tekstu oraz co ile ma dodawa? man?.

data/talkactions/talkactions.xml
Kod:
<talkaction words="charge" event="script" value="charge.lua"/>

data/talkactions/scripts/charge.lua
Kod:
local conf = {
	stor = 21371,
	id = 20, -- id efektu
	level = 100, -- od ktorego poziomu
	manaPerLevel = 20, -- ile many ma dawac za kazdy lvl
	coIle = 2, -- co ile sekund laduje mane
	textColor = 20, -- kolor tekstu
}

local function charge(cid)
	if isPlayer(cid) and getPlayerStorageValue(cid,conf.stor) then
		if getCreatureMana(cid) == getCreatureMaxMana(cid) then
			setPlayerStorageValue(cid,conf.stor,-1)
			return true
		end
		doCreatureAddMana(cid, getPlayerLevel(cid)*conf.manaPerLevel)
		doSendMagicEffect(getThingPos(cid), conf.id)
		addEvent(charge, conf.coIle * 1000, cid, id)
	end
	return true
end

function onSay(cid, words, param)
	if getPlayerLevel(cid) < conf.level then
		doPlayerSendTextMessage(cid, conf.textColor, "You do not have enough level.")
		doSendMagicEffect(getPlayerPosition(cid), 2)
		return true
	end
	
        if(getPlayerStorageValue(cid,conf.stor) == 1) then
		doPlayerSendTextMessage(cid, conf.textColor, "Already active.")
		doSendMagicEffect(getPlayerPosition(cid), 2)
		return true
	end
	
	if(getCreatureCondition(cid, CONDITION_INFIGHT)) then
		doPlayerSendTextMessage(cid, conf.textColor, "You are in fight.")
		doSendMagicEffect(getPlayerPosition(cid), 2)
		return true
	end
	
	doCreatureSay(cid, "CHARGE", TALKTYPE_ORANGE_1)
	setPlayerStorageValue(cid,conf.stor,1)
	charge(cid)
	return true
end

Do login.lua pod function onLogin dodaj
Kod:
	setPlayerStorageValue(cid,21371,-1)

Bez tego, je?eli gracz wyloguje si? podczas trwania charge, po zalogowaniu nie b?dzie ju? m?g? go u?y?.
 
Ostatnia edycja:
Odp: Skrypty na zam?wienie

Silnik, wersja klienta: TFS 0.3.5pl1, 8.50
Typ skryptu: actions
Opis: skrzynia, po prostu skrzynie z itemkiem, tak?e je?eli si? da to wielokrotne u?ycie.
 
Odp: Skrypty na zam?wienie

data/actions/actions.xml
Kod:
<action actionid="5372" event="script" value="jchest.lua"/>

data/actions/scripts/jchest.lua
Kod:
function onUse (cid,item,frompos,item2,topos)
	doPlayerAddItem(cid,id,ilosc)
	return true
end

Uzupe?nij id oraz ilo??. Na mapie daj action id 5372 do tej skrzynki.
 
Odp: Skrypty na zam?wienie

Silnik, wersja klienta: TFS 0.4 DEV 8.60
Typ skryptu: talkactions
Opis: System task?w za pomoc? komend. np !task rat !task hellhound
 
Status
Zamknięty.
Back
Do góry