-
Total de itens
60 -
Registro em
-
Última visita
-
Dias Ganhos
2
Posts postados por ZoR
-
-
" tipo um player usou seu pokemon pela primeira vez então ele ganha um xp extra, etc."
acho que na ideia dele seria quando o player colocar o seu primeiro pokemon pra fora daria a xp extra, por isso do onlogin.
mas minha logica não foi 100% já que era apenas para quando soltar o poke pela 1 vez, daria pra colocar umas linhas de codigo no goback -
Boa!
Mas acho que eu faria por creaturescript!local xp = 500 local storage = 1231 local mensagem = "EXP extra ativo!\nObrigado por iniciar sua jornada aqui em nosso Poketibia!" function onLogin(cid) if ( getPlayerStorageValue(cid, storage) == -1 ) then doPlayerAddExperience(cid, xp) setPlayerStorageValue(cid, storage, 1) doPlayerSendCancel(cid, mensagem) end return true end
-
- StrikersBR12 reagiu a isso
- 1
-
Agora, GniusP disse:
Funcionou, obrigado
que isso
-
local exp = getPlayerExperience(cid) local storage = 123123 function onLogin(cid) if isPlayer(cid) == getPlayerStorageValue(cid, storage) then setPlayerExtraExpRate(cid, exp * 2) doPlayerBroadcastMessage(cid, "Recebeu Experiencia a mais!") end return true end <event type="login" name="expextra" script="expextra.lua" />
-
- Discord Para Free-Lancers -
olá, existem muitos grupos que ensinam pixel art, porem não possui um focado em apenas Compra e Venda de sprites, pensando nisso criei um grupo apenas para compra e venda de sprites.
Cargo : FreeLancer = apenas para spriters experientes(perspectiva)
https://discord.gg/e5eMTS
- Discord For Free-Lancers -
There are many groups that teach pixel art, but there is no focus on just buying and selling sprites, thinking about it I created a group just for buying and selling sprites. -
-
você tem sourcer do seu servidor?
-
eae galera se alguém puder ajudar com esse erro?
iodata link :
https://www.sendspace.com/file/x11oay
luafunctions link :
https://www.sendspace.com/file/bbqxxw -
<item fromid = "15445" toid = "15448" article="a" name="depot chest"> <attribute key="containerSize" value="30" /> </item> <item id = "15445" article="a" name="depot chest"> <attribute key="containerSize" value="30" /> </item>
testa um dos dois
-
<item id="ID DO DEPOT" article="a" name="depot chest"> <attribute key="containerSize" value="30" /> </item>
testa
-
1 hora atrás, kttallan disse:
Essa parte no OTmod do servidor.
Name: nome da pasta
@onLoad: function de inicialização do module.
@onUnload: function de terminação do module.
se não tem nada é = nil
isso é uma function da source do otcliente g_game é que faz a chamada!
As outras questões você tem que estudar o module por completo para poder entender seu funcionamento..
para complementar essa resposta
https://github.com/edubart/otclient/wiki/Module-Tutorial -
Olá, comecei meus estudos em Otclient, porem tenho muitas duvidas!.
Oque ser isso? variaveis? porque todas nil?
@onLoad: init() ?
@onUnload: terminate() ?
Variaveis com local sem o nil? oque isso muda?
porque g_game? g_game.IsOnine ? isso é uma função do otclient? como posso tirar essa função da sourcer?
Como se inicia um modulo? com local Nome ou Local Nome = nil? ou só a variavel = nil?
todas ela tem que tem function init()? function onGameConnectionError(message, code) ? de onde saiu onGameConnection?
sourcer? function CharacterList.terminate() ?
if charactersWindow then -- se for charactersWindow entao characterList = nil -- lista de char = nil? charactersWindow:destroy() -- :destroy a lista de char ok! charactersWindow = nil -- nil novamente? end
function CharacterList.doLogin() ? de onde tira isso? das funçoes da sourcer?
-
Spoiler
local function sendPokeToDepot(cid, pokemon) local item = doCreateItemEx(14329) doItemSetAttribute(item, "poke", pokemon) doItemSetAttribute(item, "hp", 1) doItemSetAttribute(item, "morta", "no") doItemSetAttribute(item, "Icone", "yes") doItemSetAttribute(item, "ball", "Icone") doPlayerSendMailByName(getCreatureNameWithProtect(cid), item, 1) return true end local EFFECTS = { --[OutfitID] = {Effect} ["Magmar"] = 35, ["Shiny Magmar"] = 35, ["Jynx"] = 17, --alterado v1.5 ["Shiny Jynx"] = 17, ["Piloswine"] = 205, --alterado v1.8 ["Swinub"] = 205, } local isBall = {193, 198, 202, 200, 204, 23, 192, 197, 201, 199, 203, 24} function onUse(cid, item, frompos, item2, topos) if item.itemid == 14329 and not getItemAttribute(item.uid, "poke") then doRemoveItem(item.uid) sendPokeToDepot(cid, "Shiny Ditto") doPlayerSendTextMessage(cid, 20, "Your shiny ditto has been sent to depot.") doRemoveItem(item.uid) return true end sendAllPokemonsBarPoke(cid) if exhaustion.get(cid, 6666) and exhaustion.get(cid, 6666) > 0 then return true end if getPlayerStorageValue(cid, 17000) or getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 17001) and getPlayerStorageValue(cid, 17001) >= 1 or getPlayerStorageValue(cid, 63215) and getPlayerStorageValue(cid, 63215) >= 1 or getPlayerStorageValue(cid, 75846) >= 1 or getPlayerStorageValue(cid, 5700) >= 1 then --alterado v1.9 << return true end if not isPokeball(item.itemid) then return true end local ballName = getItemAttribute(item.uid, "poke") local btype = getPokeballType(item.itemid)--getItemAttribute(item.uid, "poke") local usando = pokeballs[btype].use -- Smeargle Clean if ballName == "Smeargle" and not getItemAttribute(item.uid, "sktsfdbg") then for x=1, 8 do if getItemAttribute(item.uid, "skt"..x) then doItemEraseAttribute(item.uid, "skt"..x) end end doItemSetAttribute(item.uid, "sktsfdbg", "true") end ----------------- local effect = pokeballs[btype].effect if not effect then effect = 21 end unLock(item.uid) --alterado v1.8 if item.itemid == usando then if getPlayerStorageValue(cid, 990) and getPlayerStorageValue(cid, 990) == 1 then -- GYM doPlayerSendCancel(cid, "You can't return your pokemon during gym battles.") return true end if getPlayerStorageValue(getCreatureSummons(cid)[1],17451) and getPlayerStorageValue(getCreatureSummons(cid)[1],17451) >= 1 then return true end if getPlayerStorageValue(cid, 45765) > 0 then -- GYM doPlayerSendCancel(cid, "You can't do it while mewtwo is helping you.") return true end if #getCreatureSummons(cid) > 1 and getPlayerStorageValue(cid, 212124) <= 0 then --alterado v1.6 if getPlayerStorageValue(cid, 637501) == -2 or getPlayerStorageValue(cid, 637501) >= 1 then BackTeam(cid) end end if #getCreatureSummons(cid) > 1 and getPlayerStorageValue(cid, 45376) > 0 then UnownBack(cid) end if #getCreatureSummons(cid) > 0 and getPlayerStorageValue(cid, 45765) > 0 then cardReturn(cid) setPlayerStorageValue(cid, 45765, -1) end if #getCreatureSummons(cid) == 2 and getPlayerStorageValue(cid, 212124) >= 1 then doPlayerSendCancel(cid, "You can't do that while is controling a mind") return true --alterado v1.5 end if #getCreatureSummons(cid) <= 0 then if isInArray(pokeballs[btype].all, item.itemid) then doTransformItem(item.uid, pokeballs[btype].off) doItemSetAttribute(item.uid, "hp", 0) doPlayerSendCancel(cid, "This pokemon is fainted.") return true end end local cd = getCD(item.uid, "blink", 30) if cd > 0 then setCD(item.uid, "blink", 0) end local z = getCreatureSummons(cid)[1] if getCreatureCondition(z, CONDITION_INVISIBLE) and not isGhostPokemon(z) then return true end if ballName:find("Mega ") then local normalPoke = megaEvolutions[getItemAttribute(item.uid, "megaStone")][1] if normalPoke then doItemSetAttribute(item.uid, "poke", normalPoke) ballName = normalPoke end end doReturnPokemon(cid, z, item, effect) elseif item.itemid == pokeballs[btype].on then if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_FEET).uid then doPlayerSendCancel(cid, "You must put your pokeball in the correct place!") return TRUE end local thishp = getItemAttribute(item.uid, "hp") if thishp <= 0 then if isInArray(pokeballs[btype].all, item.itemid) then doTransformItem(item.uid, pokeballs[btype].off) doItemSetAttribute(item.uid, "hp", 0) doPlayerSendCancel(cid, "This pokemon is fainted.") return true end end local pokemon = getItemAttribute(item.uid, "poke") if not pokes[pokemon] then return true end if pokemon:find("Mega ") then local normalPoke = megaEvolutions[getItemAttribute(item.uid, "megaStone")][1] if normalPoke then doItemSetAttribute(item.uid, "poke", normalPoke) pokemon = normalPoke end end if pokemon:find("Mega ") then local normalPoke = megaEvolutions[getItemAttribute(item.uid, "megaStone")][1] if normalPoke then doItemSetAttribute(item.uid, "poke", normalPoke) pokemon = normalPoke end end ----------------------- Sistema de nao poder carregar mais que 3 pokes lvl baixo e + q 1 poke de lvl medio/alto --------------------------------- if not isInArray({5, 6}, getPlayerGroupId(cid)) and getPlayerStorageValue(cid, 45765) ~= 1 then local isInLimit = false local lowCount = 0 local dittoCount = 0 local shinyDittoCount = 0 local balls = getPokeballsInContainer(getPlayerSlotItem(cid, 3).uid) local lowPokes = {"Rattata", "Caterpie", "Weedle", "Oddish", "Pidgey", "Paras", "Poliwag", "Bellsprout", "Magikarp", "Hoppip", "Sunkern"} if #balls >= 1 then for _, uid in ipairs(balls) do local nome = getItemAttribute(uid, "poke") if getItemAttribute(uid, "ehditto") and getItemAttribute(uid, "ehditto") == 1 then dittoCount = dittoCount + 1 elseif getItemAttribute(uid, "ehditto") and getItemAttribute(uid, "ehditto") == 2 then shinyDittoCount = shinyDittoCount + 1 end if not isInArray(lowPokes, pokemon) and nome == pokemon then return doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry two pokemons equals!") else if nome == pokemon then lowCount = lowCount + 1 end end end end if getItemAttribute(item.uid, "ehditto") and getItemAttribute(item.uid, "ehditto") == 1 then if dittoCount > 1 then return doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry more than one ditto!") end elseif getItemAttribute(item.uid, "ehditto") and getItemAttribute(item.uid, "ehditto") == 2 then if shinyDittoCount > 1 then return doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry more than one shiny ditto!") end end if lowCount >= 3 then return doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry more than three pokemons equals of low level!") end end --------------------------------------------------------------------------------------------------------------------------------------------------- local x = pokes[pokemon] local boost = getItemAttribute(item.uid, "boost") or 0 if getPlayerLevel(cid) < (x.level+boost) then doPlayerSendCancel(cid, "You need level "..(x.level+boost).." to use this pokemon.") return true end ---------------------------- Sistema pokes de clan -------------------------------------- local shinysClan = { ["Shiny Fearow"] = {4, "Wingeon"}, ["Shiny Flareon"] = {1, "Volcanic"}, ["Shiny Vaporeon"] = {2, "Seavel"}, ["Shiny Jolteon"] = {9, "Raibolt"}, ["Shiny Hypno"] = {7, "Psycraft"}, ["Shiny Golem"] = {3, "Orebound"}, ["Shiny Vileplume"] = {8, "Naturia"}, ["Shiny Nidoking"] = {5, "Malefic"}, ["Shiny Hitmontop"] = {6, "Gardestrike"}, --alterado v1.4 } if shinysClan[pokemon] and (getPlayerGroupId(cid) < 4 or getPlayerGroupId(cid) > 6) and not getItemAttribute(item.uid, "ehditto") then --alterado v1.9 \/ if getPlayerClanNum(cid) ~= shinysClan[pokemon][1] then doPlayerSendCancel(cid, "You need be a member of the clan "..shinysClan[pokemon][2].." to use this pokemon!") return true elseif getPlayerClanRank(cid) ~= 5 then doPlayerSendCancel(cid, "You need be atleast rank 5 to use this pokemon!") return true end end -------------------------------------------------------------------------------------- doSummonMonster(cid, pokemon) local pk = getCreatureSummons(cid)[1] if not isCreature(pk) then return true end ------------------------passiva hitmonchan------------------------------ if isSummon(pk) then --alterado v1.8 \/ if pokemon == "Shiny Hitmonchan" or pokemon == "Hitmonchan" then if not getItemAttribute(item.uid, "hands") then doSetItemAttribute(item.uid, "hands", 0) end local hands = getItemAttribute(item.uid, "hands") doSetCreatureOutfit(pk, {lookType = hitmonchans[pokemon][hands].out}, -1) end end ------------------------------------------------------------------------- ---------movement magmar, jynx------------- if isCreature(pk) and EFFECTS[getCreatureNameWithProtect(pk)] then markPosEff(pk, getThingPos(pk)) sendMovementEffect(pk, EFFECTS[getCreatureNameWithProtect(pk)], getThingPos(pk)) end -------------------------------------------------------------------------- if isGhostPokemon(pk) then doTeleportThing(pk, getPosByDir(getThingPos(cid), math.random(0, 7)), false) end doCreatureSetLookDir(pk, 2) adjustStatus(pk, item.uid, true, true, true) doRegenerateWithY(getCreatureMaster(pk), pk) doAddPokemonInOwnList(cid, pokemon) setPlayerStorageValue(pk, 17451, 0) doTransformItem(item.uid, pokeballs[btype].use) local pokename = getPokeName(pk) --alterado v1.7 local mgo = gobackmsgs[math.random(1, #gobackmsgs)].go:gsub("doka", pokename) doCreatureSay(cid, mgo, TALKTYPE_MONSTER) doSendMagicEffect(getCreaturePosition(pk), effect) if useOTClient then doPlayerSendCancel(cid, '12//,show') --alterado v1.7 end else doPlayerSendCancel(cid, "This pokemon is fainted.") end if useKpdoDlls then doUpdateMoves(cid) end if useOTClient then onPokeHealthChange(cid) end return true end
-
poste seu goback
-
coloca em spoiler isso, tem algo mais?
posta o modules game_pokebar
o script não é configuravel
-
poste o script que provavel esteja em lib com o nome de pokebar
-
local tempo = 60 -- tempo em segundos. local effect = 638 -- effect no player, caso queira apenas 1, basta remover os outros numeros. local ml = 70 -- quantos ira aumentar o skill de ML local skillsword = 25 -- quantos ira aumentar o skill de Sword local skillaxe = 25 -- quantos ira aumentar o skill de Axe local skillclub = 25 -- quantos ira aumentar o skill de Club local skilldistance = 25 -- quantos ira aumentar o skill de Distance local skillshield = 25 -- quantos ira aumentar o skill de Shield local health = 1300 -- A cada 1 segundo quantos aumentar de vida local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000) setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, ml) setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, skillsword) setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, skillaxe) setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, skillclub) setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, skilldistance) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, skillshield) setConditionParam(condition, CONDITION_PARAM_OUTFIT, outfit) setCombatCondition(combat, condition) local condition = createConditionObject(CONDITION_HASTE) setConditionParam(condition, CONDITION_PARAM_SPEED, 250) setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE) setCombatCondition(combat, condition) local condition = createConditionObject(CONDITION_REGENERATION) setConditionParam(condition, CONDITION_PARAM_SUBID, 1) setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE) setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000) setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, health) setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, 1000) setCombatCondition(combat, condition) local function magicEffect638(tempo2,tempo3,cid) if (isCreature(cid)) then if getPlayerStorageValue(cid, 102053) > 0 and getCreatureCondition(cid, CONDITION_REGENERATION, 1) then for i=1, #effect do local position = {x=getPlayerPosition(cid).x+1, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z} doSendMagicEffect(position, effect[i]) end end end end function onCastSpell(cid, var) if getPlayerStorageValue(cid, 102053) ~= 1 or getCreatureCondition(cid, CONDITION_REGENERATION, 1) == false then doCombat(cid, combat, var) doPlayerSendTextMessage(cid,27,'jutsu esta ativado.') doPlayerSay(cid, '...', TALKTYPE_ORANGE_1) tempo2 = 0 while (tempo2 ~= (tempo*1000)) do addEvent(magicEffect638, tempo2, tempo2, tempo*1000, cid) tempo2 = tempo2 + 300 end setPlayerStorageValue(cid, 102053,1) -- storage verifica transformado, quando = 1 player esta transformado. doCreatureSay(cid, "Susanoo", TALKTYPE_MONSTER) else doPlayerSendCancel(cid, "Sorry, you are transformed.") end end
-
local ring = { outfit = 123, -- outfit que ele ganha efeito = 1, -- efeito que fica nele iditem = 123, -- id do ring tempo = 1, -- tempo que ele fica transformado waittime = 1.5, -- tempo que pode usar dnv storage = 12345, -- não mexa } function onUse(cid, item, fromPosition, itemEx, toPosition) addEvent(function() if exhaustion.check(cid, storage) then doPlayerSendCancel(cid, "Espere um pouco") elseif ring.iditem == ring.iditem then doPlayerAddOutfit(cid, ring.outfit) doPlayerRemoveOutfit(cid, ring.tempo, ring.outfit) return false end end, ring.tempo)
não sei bem se irá funcionar
- Kevin vem 69 reagiu a isso
- 1
-
21 minutos atrás, Marcelo Junior disse:
apareceram erros piores na linha 63
manda
-
https://pastebin.com/kRfqAS7V
copie tudo, menos oque esta em RAW Paste Data
só apertar em download
-
1 hora atrás, JulianoZN disse:
ata desculpa nao tinha visto
edit 1 : Testando aqui
edit 2: Funcionou vlw ai mando REP+
corrigido @JulianoZN
quais os erros da script @BlazerX comecei com script essa semana
-
local pos = {x = 0, y = 0, z = 0} -- pos do item boost local pos2 = {x = 0, y = 0, z = 0} -- pos da escada local itemid = {id = id da alavanca, item = numero do id do item, escada = numero da id da escada} -- Número do item function onUse(cid, item, fromPosition, itemEx, pos) if itemid.id == getCreaturePosition(uid, pos[x.y.z], itemid.item) then setItemName(uid, getCreaturePosition(uid, pos2[x.y.z]), itemid.escada) doPlayerSendTextMessage(cid, "Foi criado uma escada, ela dura 20 segundos") else doPlayerSendTextMessage(cid, "Não pode ser criado a escada pois o item nao é esse") for tempo = 1, 20, 1 do doPlayerSendTextMessage(cid, "resta " .. tempo + 1) if tempo == 20 then doRemoveItem(uid, pos2[x.y.z]) end end end end
testa ae
corrigido
-
local tapete = { [13495] = 13496, -- TAPETE DESMONTADO [13496] = 13495 -- TAPETE MONTADO } function onUse(cid, item, fromPosition, itemEx, toPosition) if(not tapete[item.itemid]) then return false end if getHouseOwner(getHouseInfo(getPlayerPosition(cid))) == getPlayerGUID(cid) then doTransformItem(item.uid, tapete[item.itemid]) doDecayItem(item.uid) end end
na sua sourcer não possui a getTileHouseInfo então coloquei uma função para tentar quebrar o galho.
tente colocar a função getTileHouseInfo na sourcer para funcionar!
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.
DBO WARFARE 8.60
em OTServlist
Postado