Witam na oficianym Forum Eufor OTS
Tutaj postanowiłem zamieszczać wszystkie moje propozycje. Będę je zamieszczał w różnych formach Tzn. w postaci skryptów (od razu mówię, że nie wszystkie są mojego autorstwa, zwyczajnie przeszukałem sieć) lub po prostu luźnych propozycji. Proszę również o nie spamowanie postami typu "żal mi cie" jak to już bywało. Dzięki z góry; *
No to zacznijmy.
Addon Doll
Item: Addon Doll (ID: 9693)
Funkcja: Po użyciu komendy "!addon <nazwa addona>" (np. !addon Mage) dodaje nam wszystkie addony z tego outfitu, po czym usuwa lalkę.
W data/talkactions/talkations.xml dodaj:
<talkaction words="!addon" event="script" value="addondoll.lua"/>W data/talkactions/scripts/addondoll.lua dodaj: function onSay(cid, words, param) local femaleOutfits = { ["citzen"]={136}, ["hunter"]={137}, ["mage"]={138}, ["knight"]={139}, ["noblewoman"]={140}, ["summoner"]={141}, ["warrior"]={142}, ["barbarian"]={147}, ["druid"]={148}, ["wizard"]={149}, ["oriental"]={150}, ["pirate"]={155}, ["assassin"]={156}, ["beggar"]={157}, ["shaman"]={158}, ["norsewoman"]={252}, ["nightmare"]={269}, ["jester"]={270}, ["brotherhood"]={270}, ["demonhunter"]={288}, ["yalaharian"]={324} } local maleOutfits = { ["citzen"]={128}, ["hunter"]={129}, ["mage"]={130}, ["knight"]={131}, ["nobleman"]={132},["summoner"]={133}, ["warrior"]={134}, ["barbarian"]={143}, ["druid"]={144}, ["wizard"]={145}, ["oriental"]={146}, ["pirate"]={151}, ["assassin"]={152}, ["beggar"]={153}, ["shaman"]={154}, ["norsewoman"]={251}, ["nightmare"]={268}, ["jester"]={273}, ["brotherhood"]={278}, ["demonhunter"]={289}, ["yalaharian"]={325} } local msg = {"Command requires GOOD param!", "You dont have Addon Doll!", "Bad param!", "Full Addon Set sucesfully added!"} local param = string.lower(param) if(getPlayerItemCount(cid, 9693) > 0) then if(param ~= "" and maleOutfits[param] and femaleOutfits[param]) then doPlayerRemoveItem(cid, 9693, 1) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg[4]) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_GIFT_WRAPS) if(getPlayerSex(cid) == 0)then doPlayerAddOutfit(cid, femaleOutfits[param][1], 3) else doPlayerAddOutfit(cid, maleOutfits[param][1], 3) end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg[1]) end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg[2]) end end
Frags Remover
Item: Black Skull (ID: 9969) - równie dobrze może być to inny item
Funkcja: Usuwa wszystkie fragi, po czym zmienia się w zwykłego skulla.
W data/actions/actions.xml dodaj:
<action itemid="9969" event="script" value="tools/blackskull.lua"/>W data/actions/scripts/tools/blackskull.lua dodaj: function onUse(cid, item, fromPosition, itemEx, toPosition) if(getPlayerRedSkullTicks(cid) == 0) then doCreatureSay(cid, "You dont have any frags!", TALKTYPE_ORANGE_1) else doCreatureSay(cid, "Frags sucesfully removed.", TALKTYPE_ORANGE_1) doPlayerSetRedSkullTicks(cid, -getPlayerRedSkullTicks(cid)) doTransformItem(item.uid, 2320) end end
Infinity Mana Potion
Infinity Potion (ID: 7488)
Funkcja: Jako jeden, niekończący się potion dodaje graczowi many w zależności od profesji i poziomu.
W data/actions/actions.xml dodaj:
<action itemid="7488" event="script" value="scripts/infinity.lua" allowfaruse="1"/>
W data/actions/scripts/infinity.lua dodaj:
-- Infinity Mana Potion - by Chybus. -- function onUse(cid, item, frompos, item2, topos) local level = getPlayerLevel(cid) local mlevel = getPlayerMagLevel(cid) -- Exhausted Settings -- local exhausted_seconds = 1,5 -- How many seconds manarune will be unavailible to use. -- local exhausted_storagevalue = 7000 -- Storage Value to store exhaust. It MUST be unused! -- -- Exhausted Settings END -- -- Mana Formula Settings -- -- You can use "level" and "mlevel" -- local mana_minimum = (level * 1) + (mlevel * 3) local mana_maximum = (level * 1) + (mlevel * 3) + 200 -- Mana Formula Settings END -- local mana_add = math.random(200, 600) -- We check the charges. -- if(item.type > 1) then -- Exhausted check. -- if(os.time() > getPlayerStorageValue(cid, exhausted_storagevalue)) then -- Entity is player? -- if(isPlayer(item2.uid) == 1) then doSendMagicEffect(frompos, CONST_ME_MAGIC_RED) doSendMagicEffect(topos, CONST_ME_MAGIC_GREEN) doSendAnimatedText(topos, mana_add, TEXTCOLOR_DARKYELLOW) doPlayerAddMana(item2.uid, mana_add) setPlayerStorageValue(cid, exhausted_storagevalue, os.time() + exhausted_seconds) doChangeTypeItem(item.uid, item.type - 1) else doSendMagicEffect(frompos, CONST_ME_POFF) doPlayerSendCancel(cid, "You can use this potion only on players.") end else doSendMagicEffect(frompos, CONST_ME_POFF) doPlayerSendCancel(cid, "You are exhausted.") end else if(os.time() < getPlayerStorageValue(cid, exhausted_storagevalue)) then doSendMagicEffect(frompos, CONST_ME_POFF) doPlayerSendCancel(cid, "You are exhausted.") else if(isPlayer(item2.uid) == 1) then doSendMagicEffect(frompos, CONST_ME_MAGIC_RED) doSendMagicEffect(topos, CONST_ME_MAGIC_GREEN) doSendAnimatedText(topos, mana_add, TEXTCOLOR_DARKYELLOW) doPlayerAddMana(item2.uid, mana_add) setPlayerStorageValue(cid, exhausted_storagevalue, os.time() + exhausted_seconds) doRemoveItem(item.uid, 0) else doSendMagicEffect(frompos, CONST_ME_POFF) doPlayerSendCancel(cid, "You can use this potion only on players.") end end end return 1 end
Ten skrypt jest mojego autorstwa! Potion nie kończy się, dodaje many w zależności od levela i magic levela! Ma dopasowane exhausted.
Drunk Rune
Funkcja : Runa bardzo przydatna na OTS RPG, takim jak Eufor ! Niewiarygodna zmiana w PvP Paraliż + Drunk = Pewna śmierć, no chyba żee...
w spells.xml dodaj linijkę :
<rune name="Drunkness" id="2267" charges="1" maglv="20" exhaustion="2000" blocktype="solid" allowfaruse="1" script="custom/drunk.lua" />
Następnie tworzymy plik drunk.lua w folderze spells/scripts i uzupełniamy tekstem :
local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED) local condition = createConditionObject(CONDITION_DRUNK) setConditionParam(condition, CONDITION_PARAM_TICKS, 20000) setCombatCondition(combat, condition) local area = createCombatArea( { {1, 1, 1}, {1, 3, 1}, {1, 1, 1} } ) setCombatArea(combat, area) function onCastSpell(cid, var) return doCombat(cid, combat, var) end
Ostatnio edytowany przez krist_ (2009-10-21 16:02:17)
Offline
Użytkownik
Świetny pomysł
Offline
Użytkownik
Co wy gadacie bardzo dobra rzecz. Na blodcore Cię oblali ale co tam
Offline
Meepo, zauważ, że pisałem, że skrypty nie są moje, tak ? ^^ Szukałem ich w sieci. Czytanie ze zrozumieniem
@Aradna : A od czego jest Dwarven Ring?
Idźmy dalej...
POTWORY
Demigorgon
Silniejszy przodek Demodrasa. Jest szybki, zwinny, potrafi zadać na prawdę krytyczne obrażenia (do 1000). Widzi niewidzialnych, jest odporny na ogień, nie można go sparaliżować. Zrobiłem go z myślą o dobrym expowisku dla każdej profesji. Loot jest zróżnicowany, ale dość opłacalny Przejdźmy do skryptu.
<?xml version="1.0" encoding="UTF-8"?> <monster name="Demigorgon" nameDescription="a demigorgon" race="blood" experience="7200" speed="400" manacost="0"> <health now="15000" max="15000"/> <look type="39" head="20" body="30" legs="40" feet="50" corpse="2881"/> <targetchange interval="60000" chance="0"/> <strategy attack="100" defense="0"/> <flags> <flag summonable="0"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="0"/> <flag convinceable="0"/> <flag pushable="0"/> <flag canpushitems="1"/> <flag staticattack="50"/> <flag lightlevel="0"/> <flag lightcolor="0"/> <flag targetdistance="1"/> <flag runonhealth="300"/> </flags> <attacks> <attack name="melee" interval="2000" min="-300" max="-700"/> <attack name="dragon firewave" interval="6000" chance="80"/> <attack name="dragon firebomb" interval="7000" chance="40"/> <attack name="orshabaal berserk" interval="8000" chance="35" /> </attacks> <defenses armor="44" defense="40"> <defense name="intense healing" interval="5000" chance="70" min="200" max="600"/> </defenses> <immunities> <immunity physical="0"/> <immunity energy="0"/> <immunity fire="1"/> <immunity poison="1"/> <immunity lifedrain="0"/> <immunity paralyze="1"/> <immunity outfit="0"/> <immunity drunk="1"/> <immunity invisible="1"/> </immunities> <voices interval="2000" chance="5"> <voice sentence="MWAHAHAH!SOUL FIRE!"/> <voice sentence="ZCHHHHHHH!"/> </voices> <loot> <item id="2148" countmax="98" chance1="100000" chancemax="0"/> <item id="2672" countmax="5" chance1="20000" chancemax="0"/> <item id="2413" chance="5000"/> <item id="2498" chance="999"/> <item id="2546" countmax="23" chance1="2222" chancemax="0"/> <item id="2796" countmax="7" chance1="6666" chancemax="0"/> <item id="1987" chance="6666"> <item id="2201" chance="2222"/> <item id="2432" chance="3333"/> <inside> <item id="2148" countmax="50" chance1="100000" chancemax="0"/> <item id="2149" countmax="4" chance1="1666" chancemax="0"/> <item id="2392" chance="2333"/> <item id="2146" countmax="4" chance1="2222" chancemax="0"/> <item id="2414" chance="1666"/> <item id="2492" chance="909"/> </inside> </item> </loot> </monster>
Taotie
Odmienna rasa gargulca. Taotie jest dużo bardziej wytrzymały. Miota kamieniami w każdego intruza, czyniąc z Niego kupkę pyłu. Obrażenia, jakie potrafi zadać sięgają 1000.
<?xml version="1.0" encoding="UTF-8"?> <monster name="Taotie" nameDescription="a taotie" species="undead" race="undead" experience="5000" speed="300" manacost="0"> <health now="7000" max="7000"/> <look type="95" head="20" body="30" legs="40" feet="50" corpse="3022"/> <targetchange interval="60000" chance="0"/> <strategy attack="100" defense="0"/> <flags> <flag summonable="0"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="0"/> <flag convinceable="0"/> <flag pushable="0"/> <flag canpushitems="1"/> <flag staticattack="50"/> <flag lightlevel="0"/> <flag lightcolor="0"/> <flag targetdistance="1"/> <flag runonhealth="30"/> </flags> <attacks> <attack name="melee" interval="2000" min="-200" max="-700"/> <attack name="small stone" interval="2000" chance="90" min="-310" max="-520"/> <attack name="berserk" interval="3049" chance="70" /> <attack name="large rock" interval="7500" chance="100" min="-300" max="-1000"/> </attacks> <defenses armor="45" defense="45"/> <immunities> <immunity physical="0"/> <immunity energy="1"/> <immunity fire="1"/> <immunity poison="1"/> <immunity lifedrain="0"/> <immunity paralyze="1"/> <immunity outfit="0"/> <immunity drunk="0"/> <immunity invisible="1"/> </immunities> <loot> <item id="2148" countmax="20" chance1="100000" chancemax="0"/> <item id="2671" countmax="3" chance1="33333" chancemax="0"/> <item id="2475" countmax="2" chance1="33333" chancemax="0"/> <item id="2666" countmax="3" chance1="33333" chancemax="0"/> <item id="1987" chance="100000"> <item id="2514" chance="1222"> <item id="2197" chance="3333"> <item id="2654" chance="909"> <inside> <item id="2489" chance="2500"/> <item id="2148" countmax="5" chance1="100000" chancemax="0"/> </inside> </item> </loot> </monster>
Golden Scarab
Golden Scarab to najsilniejszy ze skarabeuszy. Jest bardzo szybki, a do tego paraliżuje przeciwnika. W ułamku sekundy potrafi pozbawić życia nawet doświadczonego podróżnika! Obrażenia Złocistego Skarabeusza nie są tak duże, ale w parze z paraliżem są bardzo groźne. Jego punkty życia i doświadczenia, są porównywalne z Demonem, lecz ten Skarabeusz to na pewno groźniejszy przeciwnik!
<?xml version="1.0" encoding="UTF-8"?> <monster name="Golden Scarab" species="poison" nameDescription="an golden scarab" race="venom" experience="6500" speed="450" manacost="0"> <health now="8200" max="8200"/> <look type="79" head="20" body="30" legs="40" feet="50" corpse="3004"/> <targetchange interval="60000" chance="0"/> <strategy attack="100" defense="0"/> <flags> <flag summonable="0"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="0"/> <flag convinceable="0"/> <flag pushable="0"/> <flag canpushitems="1"/> <flag staticattack="50"/> <flag lightlevel="0"/> <flag lightcolor="0"/> <flag targetdistance="1"/> <flag runonhealth="0"/> </flags> <attacks> <attack name="melee" interval="2000" min="-190" max="-430"/> <attack name="poison field" interval="3000" chance="85"/> <attack name="poison storm" interval="3000" chance="75" min="-220" max="-560"/> <attack name="hydra paralyze" interval="10000" chance="70" /> <attack name="hydra poisonwave" interval="3000" min="-400" max="-450" chance="60" /> </attacks> <defenses armor="32" defense="33"> <defense name="haste" interval="10000" chance="40"/> </defenses> <immunities> <immunity physical="0"/> <immunity energy="0"/> <immunity fire="0"/> <immunity poison="1"/> <immunity lifedrain="0"/> <immunity paralyze="1"/> <immunity outfit="0"/> <immunity drunk="1"/> <immunity invisible="1"/> </immunities> <summons max="5"> <summon name="scarab" interval="2000" chance="20"/> </summons> <loot> <item id="2148" countmax="90" chance1="100000" chancemax="0"/> <item id="2162" chance="2500"/> <item id="2148" countmax="8" chance1="100000" chancemax="0"/> <item id="2463" chance="3333"/> <item id="1987" chance="100000"> <item id="2463" chance="3333"/> <inside> <item id="2135" chance="909"/> <item id="2159" countmax="3" chance1="1200" chancemax="0"/> <item id="2149" countmax="2" chance1="555" chancemax="0"/> <item id="2440" chance="1000"/> <item id="2466" chance="800"/> <item id="2195" chance="1200"/> </inside> </item> </loot> </monster>
W razie potrzeby mogę zrobić (w postaci mapki) expowiska dla tych potworów
@EDIT !
Zamiana CC na GOLDEN NUGGET's
Takie urozmaicenie. Jeśli to nie problem, to można by to wprowadzić w życie
function onUse(cid, item, frompos, item2, topos) if item.itemid == 2160 and item.type == 100 then doRemoveItem(item.uid,item.type) doPlayerAddItem(cid,2157,1) doPlayerSendTextMessage(cid,22,"You have changed 100 crystal coins to 1 golden nugget") elseif item.itemid == 2160 and item.type < 100 then doRemoveItem(item.uid,1) doPlayerAddItem(cid,2152,100) doPlayerSendTextMessage(cid,22,"You have changed 1 crystal to 100 platinum coins") end end
Następnie tworzymy plik nugget.lua... Wklejamy tam ...
function onUse(cid, item, frompos, item2, topos) if doRemoveItem(item.uid,1) then doPlayerSendTextMessage(cid,22,"You have changed 1 golden nugget to 100 cristal coins") doPlayerAddItem(cid,2160,100) end end
W data\actions edytujemy plik actions.xml i dodajemy tam linijkę ....
<action itemid="2157" script="nugget.lua" />
Gotowe !
Orshabaal Annihilator
Taki oto Annihilator ^^ 8 graczy kontra 6 Orshabaali Proponuje jego zamieszczenie gdzieś na respie Orshabaala
Może teraz przejdźmy do screenów ...
Oto miejsce, gdzie spotykają się śmiałkowie, którzy pragną stawić czoła Okrutnym Władcom Piekieł - Orshabaalom! Wyzwanie jest wielkie, ponieważ Demoniczne Bossy nie oddadzą łatwo skóry, ale w zamian za ten czyn, będziemy mogli wybrać sobie nagrodę
Tutaj przedstawiona jest główna arena walki. To na niej stoczymy ciężki bój na śmierć i życie z piekielną szóstką. Trzeba wykazać się nie lada odwagą i umiejętnościami, aby pokonać co najmniej dwóch Orshabaali, a wytrzymać obrażenia od 6, żeby przedostać się do pokoju z nagrodą.
Teraz widzisz miejsce, w którym nigdy możesz nie postawić swojej stopy! Naciesz się widokiem, bo tylko nieliczni dostąpią zaszczytu ujrzenia pokoju z nagrodami na własne oczy!
Ostatnio edytowany przez krist_ (2009-10-20 16:12:29)
Offline
Nowy użytkownik
po prostu świetny pomysł
Offline
Chybus no no no chylę głowe
Offline
Lecimy dalej
System dawania nagród graczom przez GM/GOD
Któryś z graczy przyczynił się do rozwoju OTS ? Chcesz go wynagrodzić ? Od teraz to żaden problem! Przedstawiam skrypt (edytowałem i dopracowałem go) poprzez który każdy z GMów lub GODów komendą !moh "nick - za co Medal ? może nagrodzić gracza za cokolwiek
Jest jeden maleńki minusik
Po tym jak GOD użyje komendy, Medal pojawia się w bp GODa, więc potem GOD musi wręczyć sam ten Medal graczowi
W data/talkactions/talkactions.xml dodajemy linijkę :
<talkaction words="!moh" script="create moh.lua" />
Następnie w data/talkactions/scripts tworzymy plik moh.lua i wklejamy tam :
function onSay(cid, words, param) if getPlayerAccess(cid) > 2 then if words == "!moh" then doSetItemSpecialDescription(doPlayerAddItem(cid, 10136, 1), ""..param.."") doPlayerSendTextMessage(cid, 19,"You created Medal of honor with description \""..param.."\" successfully.") end end end
Ostatnio edytowany przez krist_ (2009-10-23 19:31:42)
Offline