Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Chcesz Skrypt ?


Kaltha

Rekomendowane odpowiedzi

Opublikowano

Witam Wszystkich !

 

 

Na pewno wielu z was tworząc swojego OTS'a zastanawiało się jak zrobić nowego potwora , czar bądź item .

 

Teraz to wszystko możecie mieć za darmo i bez trudzenia się !

Przygotowuje skrypty na zamówienie :

-Potworów

-Itemów

-Czarów

i wielu wielu innych .

 

 

 

 

Napisz czego ci potrzeba i poczekaj na moją odpowiedź ! (piszemy w temacie)

Opublikowano

  • ROOK RING(Żeby dodawał po 20 każdego skilla + żeby jak sie go założy to żeby się miało 2x wiencej hp i mp+ żeby można go było używać tylko na rooku z lvlem większym niż 20+ żeby6 dawał 10hp i 5 mp na sec)
  • Healing Spellbook(coś jak exura-żeby uzycie tego spellboka zabierało 15 mp i dodawalo 30 hp+ uzywanie od 10 lvla+żeby się nie kończył)
  • Attacking Spellbook(coś jak exori dla knighta, ma zabierać 50 mp i bić 2x tyle co mamy lvl+ uzywanie od 20 lvla + ma się nie kończyć)
  • wszytkie itemki pod tibie 7.6
  • i jeszcze 1 potworek:
  • RookWarlock(żeby miał 660hp + leczył się raz na ileś za 20%+ żeby wysysał mane+ żeby był w 50% odporny na ataki fizyczne+żeby summonował skieletony+żeby z łapy bił po 25-80+żeby bił też czymś w rodzaju gfb po 40-60+żeby raz za ileś bił w czegoś z rodzaju explozionki za 80-120 + żeby lookalo z niego itemki up , czyli healing/attacking spellbook - po 20% szans że spadnie i rook ring-25% szans że spadnie , i kasa od 200gp do 2k , i jakieś dragon hamy 0-10)

mca.png

Pomogłem??? Daj + ;>>>

Opublikowano

Exp Ring

Mój silnik VisumGold 8.6

 

Najlepiej, zeby dawał 50% expa więcej i był na 6 godzin.

 

edytujemy id 7697 w items.xml na

<item id="7697" article="an" name="exp ring">
	<attribute key="weight" value="80"/>
	<attribute key="slotType" value="ring"/>
<attribute key="transformEquipTo" value="7708"/>
	<attribute key="stopduration" value="1"/>
	<attribute key="showduration" value="1"/>
 </item>

 

 

Dodajemy/zmieniamy także to:

 

<item id="7708" article="a" name="exp ring">
	<attribute key="weight" value="80"/>
	<attribute key="slotType" value="ring"/>
	<attribute key="decayTo" value="0"/>
	<attribute key="duration" value="1800"/>
	<attribute key="showduration" value="1"/>
</item>

 

do movements/scripts dodajemy exp_ring.lua a w nim:

 

local config = {
rate = 1.5
}
function onDeEquip(cid, item, slot)
if(item.itemid == 7708) then
	doPlayerSetExperienceRate(cid, 1.0)
	   doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Your extra experience rate has ended.")
		doTransformItem(item.uid, 7708)
end
end
function onEquip(cid, item, slot)
if(item.itemid == 7708) then
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Your extra experience rate has been activated! It is now: " .. config.rate .. "x doubled your former experience rate.")
	   doPlayerSetExperienceRate(cid, config.rate)
		doTransformItem(item.uid, 7708)
			return true
end
end

 

Do Movements.xml dodajemy:

 

<movevent type="Equip" itemid="7697" slot="ring" event="function" value="onEquipItem"/>
<movevent type="Equip" itemid="7708" slot="ring" event="script" value="exp_ring.lua"/>
<movevent type="DeEquip" itemid="7708" slot="ring" event="script" value="exp_ring.lua"/>

 

Liczę na + .

 

 

 

 

 

  • ROOK RING(Żeby dodawał po 20 każdego skilla + żeby jak sie go założy to żeby się miało 2x wiencej hp i mp+ żeby można go było używać tylko na rooku z lvlem większym niż 20+ żeby6 dawał 10hp i 5 mp na sec)
  • Healing Spellbook(coś jak exura-żeby uzycie tego spellboka zabierało 15 mp i dodawalo 30 hp+ uzywanie od 10 lvla+żeby się nie kończył)
  • Attacking Spellbook(coś jak exori dla knighta, ma zabierać 50 mp i bić 2x tyle co mamy lvl+ uzywanie od 20 lvla + ma się nie kończyć)
  • wszytkie itemki pod tibie 7.6
  • i jeszcze 1 potworek:
  • RookWarlock(żeby miał 660hp + leczył się raz na ileś za 20%+ żeby wysysał mane+ żeby był w 50% odporny na ataki fizyczne+żeby summonował skieletony+żeby z łapy bił po 25-80+żeby bił też czymś w rodzaju gfb po 40-60+żeby raz za ileś bił w czegoś z rodzaju explozionki za 80-120 + żeby lookalo z niego itemki up , czyli healing/attacking spellbook - po 20% szans że spadnie i rook ring-25% szans że spadnie , i kasa od 200gp do 2k , i jakieś dragon hamy 0-10)

 

 

1. albo skille albo mana i hp zdecyduj . (7.6 nie opłaca się skilli za bardzo , nei licząc m lvl'u :P)

 

2 W data/spells/scripts tworzymy plik Healing Spellbook.lua

 

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING )
setCombatParam(combat, COMBAT_PARAM_EFFECT,CONST_ME_POFF)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -7.0, -200, 5.1, 10)
local arr = {
{1, 1, 1, 1, 1, 1, 1, 1, 1},
{0, 1, 1, 1, 1, 1, 1, 1, 0},
{0, 1, 1, 1, 1, 1, 1, 1, 0},
{0, 0, 1, 1, 1, 1, 1, 0, 0},
{0, 0, 1, 1, 1, 1, 1, 0, 0},
{0, 0, 0, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 3, 0, 0, 0, 0},
}
local area = createCombatArea(arr)
setCombatArea(combat, area)
function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end

 

A teraz w data/spells/spells.xml dodejmy

 

instant name="exura books" words="healing books" direction="1" lvl="0" maglv="0l" mana="0" soul="0"" exhaustion="1" prem="0" enabled="1" script="Healing Books><vocation id="0"/><vocation id="3"/><vocation id="2"/><vocation id="1"/><vocation id="8"/><vocation id="7"/><vocation id="6"/><vocation id="5"/></instant>

 

3.

Pierw trzeba utworzyc plik Attacking Spellbook.lua

 

area = {
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
}

attackType = ATTACK_PHYSICAL
needDirection = false
areaEffect = NM_ME_LOOSE_ENERGY
animationEffect = NM_ANI_NONE

hitEffect = NM_ME_LOOSE_ENERGY
damageEffect = NM_ME_LOOSE_ENERGY
animationColor = LIGHT_BLUE
offensive = true
drawblood = true

UltimateExplosionObject = MagicDamageObject(attackType, animationEffect, hitEffect, damageEffect, animationColor, offensive, drawblood, 0, 0)

function onCast(cid, creaturePos, level, maglv, var)
centerpos = {x=creaturePos.x, y=creaturePos.y, z=creaturePos.z}
n = tonumber(var)   -- try to convert it to a number
if n ~= nil then
-- bugged
-- ultimateExplosionObject.minDmg = var+0
-- UltimateExplosionObject.maxDmg = var+0

UltimateExplosionObject.minDmg = 0
UltimateExplosionObject.maxDmg = 0
else
UltimateExplosionObject.minDmg = (level * 3 + maglv * 3) * 7.0
UltimateExplosionObject.maxDmg = (level * 3 + maglv * 3) * 7.0 
end

return doAreaMagic(cid, centerpos, needDirection, areaEffect, area, UltimateExplosionObject:ordered())
end

I ten plik trzeba wrzucic do przykladowo: D:\ots\data\spells\instant.

 

Potem trzeba znalesc plik spells.xml znajduje sie on w D:\ots\data\spells.xml

I dodac taką linijkę:

<spell name="exoriaa" words="Attacking Spellbook" maglv="0" mana="0"enabled="1"><vocation id="0" /></spell>


 

4. Masz w silnikach , jakich ci brakuje powiedz -.-

 

 

5.

zrobie wieczorem .

Opublikowano

Jeszcze jedna prosba :D . Szukam skryptu, ktory

jest jak blessy na RL. Mianowicie,

kiedy kupimy pełne blessy to

mamy dodatkowo "niewidzialnego" aol'a i jak

padniemy to nie spada nam eq i troche mniej lvl, a w miejsce aol'a możemy założyć jakiś inny amulet.

 

Dziękuję i pozdrawiam! :)

Opublikowano

co powiesz na komendę !bless?

 

W config.lua zmień:

blessingReductionBase = 30
blessingReductionDecreament = 5
eachBlessReduction = 8

 

 

na

blessingReductionBase = 100
blessingReductionDecreament = 0
eachBlessReduction = 20

 

 

Do talkactions.xml dodaj:

<talkaction words="!bless event="script" value="bless.lua"/>

 

W folderze scripts stwórz plik bless.lua i daj w nim:

local cost = 500000 -- za wszystkie
function onSay(cid, words, param, channel)
if(not getPlayerBlessing(cid, 1)) then
 if(doPlayerRemoveMoney(cid, cost)) then
  for i = 1, 5 do doPlayerAddBlessing(cid, i) end
  return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Kupiles blessy!')
 else
  return doPlayerSendCancel(cid, 'Musisz miec '..cost..' gp!')
 end
else
 return doPlayerSendCancel(cid, 'Masz juz blessy!')
end
return true
end

Opublikowano

Witam. Mam prośbe, czy mogłabyś napisać mi podobnego skrypta jakie są tutaj:

 

bo mi wywala błąd za każdym razem ;/

 

Najlepiej, żeby respiły się co 6 godzin i po 3 (abym mógł zmienić ich położenie w skrypcie)

Żeby 4 osoby, które zadały najwięcej obrażeń dostawały item do bp, żeby summonował moby i sie troche leczył (co 10 sec po 2k)

 

Jeśli za dużo wymagam to sory ;/

 

Dziękuję i pozdrawiam!

Opublikowano

Mogę prosić o Skrypt Potworka ;)

 

tzn. żeby był Bardzo silny , miał dużo HP bardzo dużo :P i żeby dało go się ubić na 200+ levlach w GRP ;)

 

chciałbym aby bił przez 2 min. normalnymi hitami a potem jakieś mega Combo :)

Opublikowano

Mogę prosić o Skrypt Potworka ;)

 

tzn. żeby był Bardzo silny , miał dużo HP bardzo dużo :P i żeby dało go się ubić na 200+ levlach w GRP ;)

 

chciałbym aby bił przez 2 min. normalnymi hitami a potem jakieś mega Combo :)

 

pod jaką tibię ?

 

 

 

Witam. Mam prośbe, czy mogłabyś napisać mi podobnego skrypta jakie są tutaj:

http://tibia.net.pl/...enie-metin.html

i

http://tibia.net.pl/...omatyzacja.html

bo mi wywala błąd za każdym razem ;/

 

Najlepiej, żeby respiły się co 6 godzin i po 3 (abym mógł zmienić ich położenie w skrypcie)

Żeby 4 osoby, które zadały najwięcej obrażeń dostawały item do bp, żeby summonował moby i sie troche leczył (co 10 sec po 2k)

 

Jeśli za dużo wymagam to sory ;/

 

Dziękuję i pozdrawiam!

 

Wydaje mi się , że Zombie Event byłby lepszy , dam ci teraz skrypt który nie jest mojego autorstwa ,ale mojego bardzo dobrego kolegi ;)

Skrypt wykonany przez Oskara.

 

 

To tak. Wejdź do data/lib i zrób tam nowy plik .lua o nazwie zombieEvent.lua i wklej do niego:

ZE_REWARDS = {
		    random = false,
		    rew = {2160,5,2645,1}
		    }
ZE_MAX_PLAYERS = 1
ZE_ACCESS_TO_IGNORE_ARENA = 7
-- POSITIONS
ZE_kickPosition = {x=1517,y=1501,z=7}
ZE_enterPosition = {x=1595,y=1501,z=7}
ZE_centerRoomPosition = {x=1601,y=1503,z=7}
ZE_rX_rY = {22,18}
ZE_STATUS = 13300
ZOMBIE = {
	    ['horned mutant'] = {20,1},
	    ['vile centurion'] = {15,2},
	    ['daidalost'] = {10,4},
	    ['mongrel man'] = {5,8},
	    ['propell zombie'] = {2,16},
	    ['scrathclaw'] = {1,32}
	    }
ZOMBIES = {}
for k, v in pairs(ZOMBIE) do
   table.insert(ZOMBIES, k)
end
function chooseMonster()
local monster = false
for k, v in pairs(ZOMBIE) do
   monster = monster or (math.random(100) <= v[1] and k or false)
end
return monster or chooseMonster()
end
function isWalkable(pos, creature, proj, pz)
if getTileThingByPos({x=pos.x,y=pos.y,z=pos.z,stackpos=0}).itemid == 0 then return false end
if getTopCreature(pos).uid > 0 and creature then return false end
if getTileInfo(pos).protection and pz then return false, true end
local n = not proj and 3 or 2
for i = 0, 255 do
   pos.stackpos = i
   local tile = getTileThingByPos(pos)
    if tile.itemid ~= 0 and not isCreature(tile.uid) then
	    if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then
		    return false
	    end
    end
end
return true
end
local _f = doTeleportThing
function doTeleportThing(cid, newpos, pushmove, ignoreBlocking)
   return (ignoreBlocking or isWalkable(newpos, true, true, false) or false) and _f(cid, newpos, pushmove)
end
function getPlayerZombiesEventStatus(cid)
   return getCreatureStorage(cid, ZE_STATUS)
end

function setPlayerZombiesEventStatus(cid, value)
   doCreatureSetStorage(cid, ZE_STATUS, value)
end

function getZombiesEventPlayers()
   local players = {}
   for _, cid in pairs(getPlayersOnline()) do
    if getPlayerZombiesEventStatus(cid) == 1 then
	    table.insert(players, cid)
    end
   end
   return players
end
function kickPlayerFromZombiesArea(cid)
   doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT)
   doTeleportThing(cid, ZE_kickPosition, true, true)
   doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT)
   return setPlayerZombiesEventStatus(cid, 0)
end
function loseOnZombieArena(cid)
   local players, msg = getZombiesEventPlayers(), ''
   doCreatureSetStorage(cid, ZE_STATUS+1, 0)
   kickPlayerFromZombiesArea(cid)
   doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'You are dead.')
   if(#getZombiesEventPlayers() <= 1) then
    local winner = getZombiesEventPlayers()[1] or players[1]
    if winner then
	    if ZE_REWARDS.random then
		    local i = math.random(#ZE_REWARDS.rew/2)
		    doPlayerAddItem(winner, ZE_REWARDS.rew[i*2-1], ZE_REWARDS.rew[i*2], true)
	    else
		    for i = 1, #ZE_REWARDS.rew/2 do
			    doPlayerAddItem(winner, ZE_REWARDS.rew[i*2-1], ZE_REWARDS.rew[i*2], true)
		    end
	    end
	    doPlayerSendTextMessage(winner, MESSAGE_STATUS_CONSOLE_BLUE, 'You won zombie event.')
	    msg = getCreatureName(winner) .. ' won Zombie Event'
	    kickPlayerFromZombiesArea(winner)
	    if getSpectators(ZE_centerRoomPosition, ZE_rX_rY[1], ZE_rX_rY[2]) then
		    for _, v in ipairs(getSpectators(ZE_centerRoomPosition, ZE_rX_rY[1], ZE_rX_rY[2])) do
			    if isMonster(v) then
				    doRemoveThing(v)
			    end
		    end
	    end
    else
	    msg = 'Zombie event finished! No one win!'
    end
    doSetStorage(ZE_STATUS, 0)
   end
return (msg ~= '' and doBroadcastMessage(msg) or true)
end

function addPlayerToZombiesArea(cid)
   doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT)
   doTeleportThing(cid, ZE_enterPosition, true, true)
   doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT)
   if getPlayerAccess(cid) < ZE_ACCESS_TO_IGNORE_ARENA then
    setPlayerZombiesEventStatus(cid, 1)
   end
end

function spawnNewZombie(fromPosition, n)
local n, pos = n or 0, {x = ZE_centerRoomPosition.x + math.random(-ZE_rX_rY[1],ZE_rX_rY[1]), y = ZE_centerRoomPosition.y + math.random(-ZE_rX_rY[2],ZE_rX_rY[2]), z = ZE_centerRoomPosition.z}
if isWalkable(pos, true, true, true) then
   local cid = doCreateMonster((chooseMonster() or 'horned mutant'), pos, false, false, false)
   doSendMagicEffect(pos, CONST_ME_MORTAREA)
   return (isMonster(cid) and registerCreatureEvent(cid, 'zombieEventDeath') and registerCreatureEvent(cid, 'zombieEventThink')) and (fromPosition and doSendDistanceShoot(fromPosition, pos, CONST_ANI_SUDDENDEATH) or true)
end
return (n < 200 and spawnNewZombie(fromPosition, n+1) or true)
end
function getExhausted(cid, storage)
   return os.time() >= getCreatureStorage(cid, storage) and true or false
end
function setExhausted(cid, storage, cooldown)
   return doCreatureSetStorage(cid, storage, os.time() + cooldown)
end
]]></config>
<event type='death' name='zombieEventDeath' event='script'><![CDATA[
domodlib('zombieEvent_conf')
function onDeath(cid)
   for i = 1, math.random(2) do
    spawnNewZombie(getThingPos(cid))
   end
   doSendMagicEffect(getThingPos(cid), CONST_ME_MORTAREA)
   return doCreatureSay(cid, 'I\'ll be back!', TALKTYPE_ORANGE_1)
end
]]></event>
<event type='think' name='zombieEventThink' event='script'><![CDATA[
domodlib('zombieEvent_conf')
function onThink(cid)
local name, target = getCreatureName(cid):lower(), getCreatureTarget(cid)
if isMonster(cid) and isInArray(ZOMBIES, name) and ZOMBIE[name] and isPlayer(getCreatureTarget(cid)) then
   if getCreatureStorage(cid, ZE_STATUS+1) < os.time() and getDistanceBetween(getThingPos(target), getThingPos(cid)) <= 1 and math.random(100) <= ZOMBIE[name][2] then
    doSendAnimatedText(getThingPos(target), 'INFECTED!', COLOR_LIGHTGREEN)
    doCreatureSetStorage(cid, ZE_STATUS+1, os.time() + 3)
    doPlayerSendTextMessage(target, MESSAGE_STATUS_CONSOLE_BLUE, 'You are infected. You can cure, just say "disable infection" or use antidote potion.')
    return addEvent(function()
						    if getCreatureStorage(cid, ZE_STATUS+1) ~= os.time() then
							    return false
						    end
						    doCreatureAddHealth(target, getCreatureMaxHealth(target))
						    return loseOnZombieArena(target) end,
						    3000,
						    target)
   end
end
return true
end 

 

Teraz w data/creaturescripts/scripts zrób plik o nazwie zombieEventDeath.lua i wklej:

 

function onDeath(cid)  
for i = 1, math.random(2) do  
	spawnNewZombie(getThingPos(cid))  
end  
doSendMagicEffect(getThingPos(cid), CONST_ME_MORTAREA)  
return doCreatureSay(cid, 'I\'ll be back!', TALKTYPE_ORANGE_1)  
end  

 

 

Następnie stwórz plik o nazwie zombieEventThink.lua i wklej:

function onThink(cid)
local name, target = getCreatureName(cid):lower(), getCreatureTarget(cid)
if isMonster(cid) and isInArray(ZOMBIES, name) and ZOMBIE[name] and isPlayer(getCreatureTarget(cid)) then
   if getCreatureStorage(cid, ZE_STATUS+1) < os.time() and getDistanceBetween(getThingPos(target), getThingPos(cid)) <= 1 and math.random(100) <= ZOMBIE[name][2] then
    doSendAnimatedText(getThingPos(target), 'INFECTED!', COLOR_LIGHTGREEN)
    doCreatureSetStorage(cid, ZE_STATUS+1, os.time() + 3)
    doPlayerSendTextMessage(target, MESSAGE_STATUS_CONSOLE_BLUE, 'You are infected. You can cure, just say "disable infection" or use antidote potion.')
    return addEvent(function()
						    if getCreatureStorage(cid, ZE_STATUS+1) ~= os.time() then
							    return false
						    end
						    doCreatureAddHealth(target, getCreatureMaxHealth(target))
						    return loseOnZombieArena(target) end,
						    3000,
						    target)
   end
end
return true
end 

 

Kolejny plik i kolejna nazwa zombieEventStatsChange.lua:

function onStatsChange(target, cid, changetype, combat, value) 
if isMonster(cid) and isPlayer(target) and isInArray(ZOMBIES, getCreatureName(cid):lower()) and changetype == STATSCHANGE_HEALTHLOSS and math.abs(value) >= getCreatureHealth(target) then 
   doCreatureAddHealth(target, getCreatureMaxHealth(target)) 
   return loseOnZombieArena(target) and false 
end 
return true 
end 

 

Do login.lua dodaj:

registerCreatureEvent(cid, 'zombieEventStatsChange')

 

Do creaturescripts.xml dodaj:

<event type="death" name="zombieEventDeath" event="script" value="zombieEventDeath.lua"/>
<event type="think" name="zombieEventThink" event="script" value="zombieEventThink.lua"/>
<event type="statschange" name="zombieEventStatsChange" event="script" value="zombieEventStatsChange.lua"/> 

 

To teraz data/talkaction/scripts, zrób tam plik disable.lua i wklej:

function onSay(cid, words, param, channel)
if getCreatureStorage(cid, ZE_STATUS+1) < os.time() or param ~= 'infection' then
   return false
end
doSendAnimatedText(getThingPos(cid), 'CURE!', COLOR_LIGHTBLUE)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'You use an antidote on infection.')
return doCreatureSetStorage(cid, ZE_STATUS+1, 0)
end 

 

Następny plik zombieEvent.lua :

function onSay(cid, words, param, channel)
local msg = ''
if param:lower() == 'join' then
   if getCreatureCondition(cid, CONDITION_INFIGHT) and getPlayerAccess(cid) <= ZE_ACCESS_TO_IGNORE_ARENA then
    return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'You are in PZ!')
   end
   if getPlayerAccess(cid) > ZE_ACCESS_TO_IGNORE_ARENA then
    if getStorage(ZE_STATUS) ~= 1 then
	    doSetStorage(ZE_STATUS, 1)
	    doBroadcastMessage('Zombie Arena Event is started. If you want join to event say !zombie join or enter the teleport in depot. We wait on '..ZE_MAX_PLAYERS..' players.')
    end
    return addPlayerToZombiesArea(cid)
   elseif #getZombiesEventPlayers() < ZE_MAX_PLAYERS and getStorage(ZE_STATUS) == 1 then
    doCreatureSetNoMove(cid, true)
    setPlayerZombiesEventStatus(cid, 1)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'You are player of number '..#getZombiesEventPlayers()..', which join to event.')
    if #getZombiesEventPlayers() == ZE_MAX_PLAYERS then
	    doSetStorage(ZE_STATUS, 2)
	    spawnNewZombie()
	    for _, v in ipairs(getZombiesEventPlayers()) do
		    addPlayerToZombiesArea(cid)
		    doCreatureSetNoMove(v, false)
	    end
	    msg = 'Zombie Event is started.'
    else
	    msg = getCreatureName(cid) .. ' has entered a Zombie Arena. We still need ' .. ZE_MAX_PLAYERS - players_on_arena_count .. ' players.'
    end
    return (msg ~= '' and doBroadcastMessage(msg) or true)
   else
    return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Arena is full.')
   end
elseif param:lower() == 'leave' then
   if getStorage(ZE_STATUS) < 2 then
    setPlayerZombiesEventStatus(cid, 0)
    return doCreatureSetNoMove(cid, false)
   end
   return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'You are on arena.')
end
return true
end 

 

Do talkaction.xml:

<talkaction words="!zombie" event="script" value="zombieEvent.lua"/>
<talkaction words="disable" event="script" value="disable.lua"/> 

 

Teraz data/movements/scripts, zrób nowy plik zombieEvent.lua i wklej:

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
local msg = ''
if isPlayer(cid) then
   if getCreatureCondition(cid, CONDITION_INFIGHT) and getPlayerAccess(cid) <= ZE_ACCESS_TO_IGNORE_ARENA then
    return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'You are in PZ!')
   end
   if getPlayerAccess(cid) > ZE_ACCESS_TO_IGNORE_ARENA then
    if getStorage(ZE_STATUS) ~= 1 then
	    doSetStorage(ZE_STATUS, 1)
	    doBroadcastMessage('Zombie Arena Event is started. If you want join to event say !zombie join or enter the teleport in depot. We wait on '..ZE_MAX_PLAYERS..' players.')
    end
    return addPlayerToZombiesArea(cid)
   elseif #getZombiesEventPlayers() < ZE_MAX_PLAYERS and getStorage(ZE_STATUS) == 1 then
    setPlayerZombiesEventStatus(cid, 1)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'You are player of number '..#getZombiesEventPlayers()..', which join to event.')
    if #getZombiesEventPlayers() == ZE_MAX_PLAYERS then
	    doSetStorage(ZE_STATUS, 2)
	    spawnNewZombie()
	    for _, v in ipairs(getZombiesEventPlayers()) do
		    addPlayerToZombiesArea(cid)
	    end
	    msg = 'Zombie Event is started.'
    else
	    msg = getCreatureName(cid) .. ' has entered a Zombie Arena. We still need ' .. ZE_MAX_PLAYERS - players_on_arena_count .. ' players.'
    end
    return (msg ~= '' and doBroadcastMessage(msg) or true)
   else
    return doTeleportThing(cid, fromPosition, true, true) and doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Arena is full.')
   end
end
return true
end 

 

Do movements.xml wklej:

 

<movevent type="StepIn" uniqueid="3000" event="script" value="zombieEvent.lua"/> 

 

Pozostało data/globalevent/scripts. Zrób tam plik o nazwie zombieStart i wklej:

function onStartup()
   return doSetStorage(ZE_STATUS, 0)
end
function onTimer()
   doSetStorage(ZE_STATUS, 1)
   return doBroadcastMessage('Zombie Arena Event is started. If you want join to event say !zombie join or enter the teleport in depot. We wait on '..ZE_MAX_PLAYERS..' players.')
end 

 

Do globalevent.xml dodaj:

<globalevent name="zombieTime" time="23:01" event="script" value="zombieStart.lua"/>
<globalevent name="zombieStart" type="start" event="script" value="zombieStart.lua"/> 

Opublikowano

A chciałbym prosić o jeszcze takie małe coś :)

 

Tibia: 8.10

 

Skrypty: Itemy

 

 

Chciałbym prosić abyś napisała/znalazła takie skrypciki :

- SUper UH,

-Super Manarune

- Super Sd

- Super explosion

- Blees Book (nie kończący się)

- Buty które działają jak softy ale się nie kończą i dodawają 150 Hp i many na pół sekundy ;)

Opublikowano

A chciałbym prosić o jeszcze takie małe coś :)

 

Tibia: 8.10

 

Skrypty: Itemy

 

 

Chciałbym prosić abyś napisała/znalazła takie skrypciki :

- SUper UH,

-Super Manarune

- Super Sd

- Super explosion

- Blees Book (nie kończący się)

- Buty które działają jak softy ale się nie kończą i dodawają 150 Hp i many na pół sekundy ;)

uh :

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, FALSE)
setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, TRUE)
setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)
function onGetFormulaValues(cid, level, maglevel)
min = (level * 1 + maglevel * 4) * 20.8
max = (level * 1 + maglevel * 4) * 27
if min < 2500 then
min = 2500
end
return min, max
end
setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end

manarune :

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, 1)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)
function onCastSpell(cid, var)
doPlayerAddMana(cid, 1000)
return doCombat(cid, combat, var)
end

 

potem spells.xml (chyba nie musze ci tłumaczyć co gdzie wklejasz ;d?)

<rune name="Manarune" id="2270" charges="0" aggressive="0" needtarget="1" maglv="1" exhaustion="1" enabled="1" allowfaruse="1" script="manarune.lua"></rune>

 

data/speels/scripts nazwij ssd

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 21)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1.30, -300, -1.70, 0)
local condition = createConditionObject(CONDITION_CURSED)
setConditionParam(condition, CONDITION_PARAM_DELAYED, 1)
addDamageCondition(condition, 5, 2000, -25)
setCombatCondition(combat, condition)
function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end

 

data/speels/speels.xml

<rune name="Super Sudden Death" id="2300" charges="1" needtarget="1" maglv="20" exhaustion="1" enabled="1" allowfaruse="1" script="ssd.lua"></rune>

 

bless book .

function onUse(cid, item, frompos, item2, topos)
doSendMagicEffect(topos,10)
doRemoveItem(item.uid,1)
doPlayerAddBlessing(cid, 5)
end

 

i

<action itemid="2297" script="bless.lua" />

 

co do butów .

To zmień w ustawieniach bunny np .

Opublikowano

Poszukuje skryptu na Bossy + Licznik do pojawienia się danego Bossa na stronę ;) Np na stronce Licznik pokazuje że o godzinie 13:01 zrespi się Ferumbras i o godzinie 13:01 Respi się ferumbras na OTS :)

 

Wersja :8.6

Opublikowano

Potrzebuje skrypt na hunting arenę - nieduże pokoiki do których da się wejść pojedynczo przez teleport tylko wtedy gdy mamy w bp gold nuggetsa, w których po wejściu na określone miejsce i pociągnięciu dźwigni pojawia się monster. Oczywiście na dźwignie ma być nałożony exhaust i najlepiej jakby wszystko znajdowało się w jednym pliczku :)

 

Z góry dziękuje za pomoc i pozdrawiam,

Demis0z ;)

Opublikowano

przepraszam długo mnie nie było , skrypty będą wieczorem albo jutro rano ;)

 

 

//Nie mam czasu teraz bawić się skryptami .

Za jakiś czas "odświeżę" temat .

  • 2 tygodnie później...
  • 3 tygodnie później...
Opublikowano

W X:\*****\data\movements\movements.xml

Dodajesz następujące 2 linijki:

 

<movevent event="Equip" itemid="2357" slot="ring" function="onEquipItem" script="Exp Ring.lua"/>

<movevent event="DeEquip" itemid="2357" slot="ring" function="onDeEquipItem" script="Exp Ring.lua"/>

 

Nastepnie przechodzimy do

x:\xxxx\data\movements\scripts

i tutaj wklejamy gotowy skrypt |Exp Ring.lua|

 

function onEquip(cid, item, position, fromPosition)

setPlayerExtraExpRate(cid, 10)

return TRUE

end

function onDeEquip(cid, item, position, fromPosition)

setPlayerExtraExpRate(cid, 0)

return TRUE

end

 

setPlayerExtraExpRate = ile * dodatkowego expa w skrypcie 10

TZN:

jeśli mamy exp 20 osoba z ringiem będzie miała 30

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...