-
Posts
211 -
Joined
-
Last visited
Reputation Activity
-
Lolksky got a reaction from DuuhCarvalho in Bin Laden System
"vai loko" kkkkkkkkkkkkkkkkkkkkk rachei. Muito bom, cara. Criativo, simplees, mas funcional. Parabéns!
-
Lolksky reacted to DuuhCarvalho in Bin Laden System
O script é funciona assim ..
Ao jogar X item no chão , e falar a magia.
Ex: eu usei o item '' ao jogar esse item no chão e falar " Vai Loko " .
obs : " 'Vai Loko ' foi a palavra que usei você pode escolher a sua"
Ao fazer isso o item se transformará em um monster (aleatoriamente) .
E logo depois o mesmo ira explodir. Isso mesmo , o monster vai explodir e causar um dano (min..max) em que estiver perto, exceto no próprio player.
chega de papo!
vá em data / spells / summon.
cria um arquivo.lua com o nome ( monster_bomb.lua ), e cola isso dentro :
obs: todas as explicações estão no próprio script.
--[[script by DuuhCarvalho]]-- function onTargetTile(cid, pos) local monsters = { -- os monstro que podem ser sumonados. [0] = {monster = 'Skeleton', chance = 10}, -- cada monster tem uma chance de ser sumonado. [1] = {monster = 'Rat', chance = 30}, [2] = {monster = 'Orc', chance = 50}, [3] = {monster = 'Dragon', chance = 70}, [4] = {monster = 'Wolf', chance = 100}, } local getPos = pos getPos.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE local time1 = 1 -- templo em minutos para usar a magia denovo. local itemId = 2193 -- id do item que precisa está no chão. local storage = 123654 -- storage . local dmgMin = 100 -- dano minimo da explosão. local dmgMax = 400 -- dano maximo da explosão. local time = 2 -- tempo em segundos para o monster explodir. function bomb() local areaa = pos.x * 4 and pos.y * 3 for _, pid in ipairs(getCreatureSummons(cid)) do doAreaCombatHealth(cid, COMBAT_FIREDAMAGE, getCreaturePosition(pid), areaa, -dmgMin, -dmgMax, CONST_ME_FIREAREA) doRemoveCreature(pid) end return true end local item = getThingFromPos(getPos) if item.itemid == itemId and item.uid > 0 and isMoveable(item.uid) then if getPlayerStorageValue(cid, storage) - os.time() <= 0 then for i = 0, #monsters do if (monsters[i].chance > math.random(1, 100)) then doConvinceCreature(cid, doCreateMonster(monsters[i].monster, pos)) doRemoveItem(item.uid) doSendMagicEffect(pos, CONST_ME_MAGIC_BLUE) setPlayerStorageValue(cid, storage, os.time()+time1*1*60) addEvent(bomb, time*1000) return true end end else doPlayerSendCancel(cid, "Você já tem um Monster Bomb, ou usou um a pouco tempo!") end end return false end local area, combat = createCombatArea(AREA_CIRCLE3X3), createCombatObject() setCombatArea(combat, area) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile") function onCastSpell(cid, var) return doCombat(cid, combat, var) end agora vá em data / spells / spells.Xml..
e coloca a seguinte tag :
<instant name="Bin Laden" words="PalavraMagica" lvl="30" mana="500" prem="0" exhaustion="1000" needlearn="0" event="script" value="summon/monster_bomb.lua"> <vocation id="1"/> <vocation id="5"/> </instant> words="PalavraMagica" ... coloca o que o player tem que falar para executa a magia
É isso pessoal !
-
Lolksky reacted to Oneshot in Loan Shark
Loan Shark
Boa tarde,
Estava eu trabalhando quando tive a ideia de programar um script qualquer, aí desenvolvi esse script.
Bom, é um NPC simples, ele empresta uma quantia de dinheiro ao jogador, e cobra 50% de juros por dia, com um limite de 2 dias, ou seja um agiota.
Se o jogador não pagar o dinheiro devido, ao entrar no servidor, com auxílio de um creaturescript, seu HP é reduzido para 1 e ele ganha uma red skull, simulando que o Agiota mandou caçar-lo.
Bom, é isso aí.
npc/scripts/loan shark.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 local storage = { [1] = 12345, [2] = 12346, [3] = 12347, } function onCreatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end msg = msg:lower() or "" local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local loan = getPlayerLevel(cid) * 2000 if getCreatureStorage(cid, storage[1]) == -1 then if not talkState[talkUser] or talkState[talkUser] == 0 then if msgcontains(msg, "money") then selfSay("Well, well. I can loan some money to you, but I'm not stupid, don't try to be a smartass with me, agreed?", cid) talkState[talkUser] = 1 end elseif talkState[talkUser] == 1 then if msgcontains(msg, "yes") then selfSay("Okay, are you really desperate, heh? Well, I can loan to you, a maximum amount of ".. loan .." gold.", cid) selfSay("So, how much money, do you need?", cid) talkState[talkUser] = 2 elseif msgcontains(msg, "no") then selfSay("Okay.") talkState[talkUser] = 0 npcHandler:releaseFocus(cid) end elseif talkState[talkUser] == 2 then if not tonumber(msg) then selfSay("Say a number amount, stupid.") else if tonumber(msg) > loan then selfSay("Hey, smartass, I can loan to you a maximum amount of ".. loan .." gold.", cid) else doCreatureSetStorage(cid, storage[2], tonumber(msg)) selfSay("You will need ".. tonumber(msg) .." gold? Okay, my interest is 50% by day, agreed?", cid) talkState[talkUser] = 3 end end elseif talkState[talkUser] == 3 then if msgcontains(msg, "yes") then selfSay("Good choice, kid. Here is your money, but don't forget to pay me in 2 days, or my boys will beat up you pretty bad, after that I will forgive the debt.", cid) doPlayerAddMoney(cid, getCreatureStorage(cid, storage[2])) doCreatureSetStorage(cid, storage[1], 1) doCreatureSetStorage(cid, storage[3], os.time()) npcHandler:releaseFocus(cid) elseif msgcontains(msg, "no") then selfSay("Do you give up? Ooh, I forgot you are a milksop.", cid) talkState[talkUser] = 0 npcHandler:releaseFocus(cid) end end else local days = math.floor((os.time() - getCreatureStorage(cid, storage[3])) / 86400) local value = (days > 0 and (getCreatureStorage(cid, storage[2]) * (1.5 ^ days)) or getCreatureStorage(cid, storage[2])) if not talkState[talkUser] or talkState[talkUser] == 0 then selfSay("Well, well... ".. getCreatureName(cid) ..", do you remember you borrowed ".. getCreatureStorage(cid, storage[2]) .." gold from me, right?", cid) talkState[talkUser] = 1 elseif talkState[talkUser] == 1 then if msgcontains(msg, "yes") then selfSay("Good, because you need to pay me for ".. (days == 0 and "no" or days) .." days using my money.", cid) selfSay("The value you owe me is ".. value .." gold. Do you have it?", cid) talkState[talkUser] = 2 elseif msgcontains(msg, "no") then selfSay("Okay, then...", cid) selfSay("Just kidding, bitch! You need to pay me ".. value .." gold for ".. (days == 0 and "no" or days) .." days using my money. Do you have it, right?", cid) talkState[talkUser] = 2 end elseif talkState[talkUser] == 2 then if msgcontains(msg, "yes") then if getPlayerMoney(cid) >= value then doPlayerRemoveMoney(cid, value) selfSay("Very good, daug! If you need my money again, you can ask me, heheh...", cid) doCreatureSetStorage(cid, storage[1], -1) doCreatureSetStorage(cid, storage[2], -1) doCreatureSetStorage(cid, storage[3], -1) else selfSay("You don't have my money, no problem, you have ".. (days > 1 and "no more days" or "one day") .." before my boys hunt you, heh.", cid) talkState[talkUser] = 0 npcHandler:releaseFocus(cid) end elseif msgcontains(msg, "no") then selfSay("So, it is good to get my money, because you have ".. (days > 1 and "no more days" or "one day") .." before my boys hunt you.", cid) talkState[talkUser] = 0 npcHandler:releaseFocus(cid) end end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, onCreatureSayCallback) npcHandler:addModule(FocusModule:new()) creaturescripts/scripts/loan shark.lua
local storage = { [1] = 12345, [2] = 12346, [3] = 12347, } function onLogin(cid) local days = math.floor((os.time() - getCreatureStorage(cid, storage[3])) / 86400) if getCreatureStorage(cid, storage[1]) == 1 and days > 2 then doCreatureSetStorage(cid, storage[1], -1) doCreatureSetStorage(cid, storage[2], -1) doCreatureSetStorage(cid, storage[3], -1) doCreatureAddHealth(cid, (1 - getCreatureMaxHealth(cid))) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "The Loan Shark's boys beat up you pretty hard because you didn't paid the your debt in 2 days.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_BLOCKHIT) doCreatureSetSkullType(cid, SKULL_RED) end return true end creaturescripts/creaturescripts.xml
<event type="login" name="LoanShark" event="script" value="loan shark.lua"/> O arquivo XML do NPC deixo por conta de vocês.
Att,
Garou
-
Lolksky reacted to meubk in Exp Por Hit V4.0
Instalação
Primeiramente abra a pasta de seu ot, e procure pelo arquivo config.lua e procure por essas 2 linhas :
experienceStages = false rateExperience = 50 se o experienceStages tiver ativado mude para false, pois o Stages é configurado no próprio script,
e é muito importante o rateExperience tiver como 0, exemplo:
experienceStages = false rateExperience = 0 agora entre na pasta creaturescripts/scripts e crie um arquivo lua, chamado exphit.lua e cole o seguinte código:
para versões mais antigas como 8.54, 8.6 use :
para versões mais novas como 9.8 :
na mesma pasta procure pelo arquivo login.lua, e em cima de return true, adc a seguinte linha:
registerCreatureEvent(cid, "ExpHit") volte na pasta anterior creaturescripts, e procure pelo arquivo creaturescritps.xml e cole as 2 tags:
<event type="statschange" name="ExpGain" event="script" value="exphit.lua"/> <event type="combat" name="ExpHit" event="script" value="exphit.lua"/> para configurar a exp, que era configurada no config.lua está no começo do arquivo exphit.lua , e as configurações da party tbem, dos anéis, e até pode ser usado stages agora, segue abaixo o exemplo:
-- CONFIGURAÇÕES DE EXPERIENCIA -- useStages = false -- Usar sistema de Stages , true/false premiumMultipliqueExp = 2 -- Players Premiums terão exp multiplicada, caso não querer deixe 1. rateExp = 50 -- Exp caso não for usar stages. local stages = { -- ["DELEVEL-ATELEVEL"] = EXP, (OBS: NUNCA REPETIR O MSM NUMERO, SEMPRE COLOCAR UM A MAIS.) ["1-50"] = 50, ["51-100"] = 45, ["101-150"] = 40, ["151-200"] = 35, ["201-250"] = 30, ["251-300"] = 25, ["351-400"] = 20, } ultimateExp = 15 -- exp que vai usar caso o level do player não tiver mais na tabela . -- CONFIGURAÇÕES DA PARTY partyPorcent = 40 -- Quantos Porcento da exp vai para os membros da party levelBlockParty = 1000 -- Diferença Maxima de Level permitida para membro da party ganhar exp. expShareRadiusX = 30 -- Distancia maxima permitida no eixo X para membro da party ganhar exp. expShareRadiusY = 30 -- Distancia maxima permitida no eixo Y para membro da party ganhar exp. expShareRadiusZ = 1 -- Distancia maxima permitida no eixo Z para membro da party ganhar exp. -- CONFIGURAÇÕES DE RINGS -- local rings = { -- [ID DO ANEL] = EXP MULTIPLICADA POR X EXP. [3048] = 2, [3049] = 4, [3050] = 6, } -- FIM DAS CONFIGURAÇÕES ---- Log V2.0 :
Log V3.0 ( 03/02/2013 ) :
Log V4.0 ( 12/11/2013 ) :
-
Lolksky got a reaction from Gabriel Couto in Characters Market System (In Game)
teria como complementar e colocar as skills na informação dos chares à venda?
-
Lolksky got a reaction from Gabriel Couto in Characters Market System (In Game)
O próprio player coloca seu char à venda?
Quando compro um char, aparece a acc e passa da conta ou o char passa pra minha conta?
-
Lolksky got a reaction from Gabriel Couto in Characters Market System (In Game)
haha de boa man, muito bom o scirpt, parabéns.REP +
-
Lolksky reacted to LuckOake in Characters Market System (In Game)
Rapaz, até dá, mas ocuparia muito espaço e poderia zuar a lista toda, então melhor não fazer isso.
-
Lolksky reacted to 1579091 in [Tfs 0.4][9.6 And Some Older] Offline Training - Bar (Barrinha 12:00H) Funcionando
Se quiser dar Rep então )!
-
-
Lolksky got a reaction from exorcist in [Action] Snake System
Aew script funcionou perfeitamente. Mas gostaria de saber se não teria como você adapta-lo para quando o player fize-se X pontos ele ganha-se um item Y (aparecendo a msg "você conseguiu X pontos e ganhou Y item"), assim poderei usar em quest \o/
OBS: só pode ganhar o item 1 vez cada player.
E gostaria de saber também, onde eu edito a velocidade de cada nível de dificuldade.
-
Lolksky reacted to Vodkart in Bless Com Aol
ai é só fazer o script...
DropBless.lua
function onDeath(cid, corpse, deathList) function HaveBless(cid) for i = 1,5 do if getPlayerBlessing(cid, i) then return true end end return false end if isPlayer(cid) and HaveBless(cid) and getPlayerSkullType(cid) < SKULL_RED then doCreatureSetDropLoot(cid, false) end return true end
creaturescript.xml
<event type="death" name="BlessDrop" event="script" value="DropBless.lua"/>
creaturescript/script/login.lua
registerCreatureEvent(cid, "BlessDrop")
-
Lolksky got a reaction from exorcist in Level Points
É.. teria como alguém modificar epor para cada vocação poder usar os points em X skill, tipo: mages só podem usar em ML, HP e MP. Kina só pode usar em SWORD, AXE, CLUB e SHIELD. paladin em DIST., e SHIELD '-'
-
Lolksky got a reaction from exorcist in [Creatureevent] Ataque E Sai Alguma Coisa
Seria dahora edita umas sprite... da um ataque, ranca um braço, uma perta \o
-
-
-
Lolksky got a reaction from exorcist in Começo Da City
São apenas conselhos cara:
- use mais o RAW, para melhorar o quesito de BORDAS, e tome cuidado com bordas.. há u m erro na borda da montnaha ali (ao lado da escada)
- evite deixar tudo muito quadrado, simétrico...
- na 2° imagem: tem grama la dentro (auto board), a sala dom 2 baús, onde entra?, GIRE algumas mobílair para deixa rjunto a parede..
enfim, algumas observações smepre vão bem... mas continue treinando que você conesegue cara
-
Lolksky got a reaction from exorcist in Começo Da City
use autoboard pra afzer o básico, a base do mapa, depois uso o raw para detalahar...
Algumas pessoas leem tutoriais, outras aprender fuçando e vendo fotos, eu particularmente, aprendi fuçando... mas vai de cada um
-
Lolksky reacted to jhon992 in Action Que Muda O Destino Do Teleport
-----------------------------------------------------------------
Com seu Mapa Editor, coloque os actions id nas alavanca e no teleport!
Não testei, qualquer erro me fala;
-
Lolksky got a reaction from exorcist in Death Cast
Eu não usaria a parte que informa pra qual MONSTRO morreu, derrepente o cara ta hunted,e aparece la "fulano morreu pra dragon", o povo que ta atraz dele vai ter uma noção de onde ele caça... assim tira um povo do RPG de "procura" o nego pra debuia na SD
é apenas minha opnião, ma so script está otimo
-
Lolksky got a reaction from exorcist in Annihilator (Global)
Meu caro, tem um pequeno erro no mapa (pelo menos na imagem que vc colocu no tópico), aqueles coal basin que ficam ao lado dos demons estão em posições eradas o de baixo ou de cima devem ir 1 SQM para o lado para que todos players tenham um demon atacando eles, entendeu?
-
Lolksky reacted to jhon992 in Teleport Que Muda O "pvp" Do Player
Não testei, mais deve funcionar. La vai:
Vai em data/actions/scripts duplica um arquivo e nomeie para "tptype" sem as aspas e nele cole:
function onStepIn(cid, item, pos) storageBattle = 102081 storageExausted = 102082 exaustedSeconds = 600 -- exausted em segundos if(exhaustion.check(cid, storageExausted) == TRUE) then if (exhaustion.get(cid, 102082) >= 60) then doPlayerSendCancel(cid, "Você só pode entrar no teleport após [" .. math.floor(exhaustion.get(cid, 102082) / 60 + 1) .."] minutos.") end if (exhaustion.get(cid, 102082) <= 60) then doPlayerSendCancel(cid, "Você só pode entrar no teleport após [" .. exhaustion.get(cid, 102082).."] segundos.") end return TRUE end if (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você não pode usar com battle.") return TRUE end if (getCreatureSkullType(cid) > 0) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você não pode usar com caveira.") return TRUE end if (getPlayerStorageValue(cid, 102081) <= 0) then setPlayerStorageValue(cid, 102081, 1) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Agora você está em modo pacífico.") exhaustion.set(cid, storageExausted, exaustedSeconds) else setPlayerStorageValue(cid, 102081, 0) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Agora você está em modo ofensivo.") exhaustion.set(cid, storageExausted, exaustedSeconds) end return TRUE end
Depois vai em data/actions/actions.xml e cole a tag:
<action actionid="2015" event="script" value="tptype.lua"/>
Agora vai em data/creaturescripts/creaturescripts.xml e cole a tag:
<event type="combat" name="CombatAttack" event="script" value="combat.lua"/>
Vai em data/creaturescripts/scripts, duplica um arquivo, nomeia para "combat" sem as aspas e nele cole:
function onCombat(cid, target) if getPlayerStorageValue(cid, 102081) > 0 then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você não pode atacar.") return FALSE end return TRUE end
E por último, abra o arquivo "login" na pasta data/creaturescripts/scripts e cole esta tag antes do último return true:
registerCreatureEvent(cid, "CombatAttack")
Só não esquece de com o mapa editor ir no teleport de sua preferencia e colocar o actionid = 2015.
-
Lolksky got a reaction from pessoa93 in Alguns Sripts
BOOTS:
Escolha a boots que você quer e add isso embaixo dela nos atributos (usei o fur boots - 7457) como exemplo, pode alterar a sua escolha
<item id="7457" article="a" name="fur boots">
<attribute key="weight" value="800" /> peso da boots (800 = 80 oz)
<attribute key="slotType" value="feet" /> não altere
<attribute key="decayTo" value="7457" /> aqui você coloca o ID do item que vai se tranforma quando acaba as changes, caso queira infinito, deix eo mesmo ID do item.
<attribute key="transformDeEquipTo" value="7457" /> deixa o mesmo ID do item
<attribute key="duration" value="14400" /> duração em segundos
<attribute key="healthGain" value="3" /> quanto em quanto de HP vai ganhar
<attribute key="healthTicks" value="2000" /> quantos em quantos segundos vai recupera HP (2000 = 2 seg)
<attribute key="manaGain" value="5" /> quanto em quanto de MP vai ganhar
<attribute key="manaTicks" value="2000" /> quantos em quantos segundos vai recupera MP (2000 = 2 seg)
<attribute key="showduration" value="1" /> aparecer no look quanto tempo ainda resta, se for infinito tire essa tag
</item>
OBS: remova tudo que está em negrito
Agora vá em movements.XML, procure por "<!-- Boots -->" e add isso:
<movevent type="Equip" itemid="7457" slot="feet" event="function" value="onEquipItem"/>
<movevent type="DeEquip" itemid="7457" slot="feet" event="function" value="onDeEquipItem"/>
QUANTO AOS ADDSKILL:
Não basta apenas por a TAG <attribute key="skillDist" value="2" />, <attribute key="skillSword" value="2" /> ETC.
Para funcionar, o item tem que estar registrado no "movement.XML" da mesma forma que coloquei ai encima na BOOTS.
-
Lolksky got a reaction from Mimizinha in Global Drop E Premium Loot
Olha, quanto ao 2°, eu ja vi num outro site de OT (famoso e talz - nao posso citar o nome -), portanto nunca testei lá e nem sei s efunfa, se vocÊ procura lá, acho que você encontra.
Vo ve se acho aqui, caso eu ache, te mando por PM
______
te mandei PM, quanto ao lootrate, nao sei s eé exatamente o que você procura.
mais ele aument ao skill rate (ai você usa se quiser)
-
Lolksky got a reaction from 1579091 in Itens Agrupaveis Que Se Juntam Automaticamente Ao Pegar.
Isso se chama auto-stacking, e é uma alteração no DISTRO, procure por "auto-stacking" que você acha aqui no forum mesmo.
-
Recently Browsing 0 members
- No registered users viewing this page.