-
Total de itens
956 -
Registro em
-
Última visita
-
Dias Ganhos
22
Tudo que Luga03 postou
-
script Vamos Programar? - Introdução
tópico respondeu ao Oneshot de Luga03 em Tutoriais de Programação
Gostei bastante! Com toda a certeza irei usar vlw ae -
[OTClient] Reposição no nome das Criaturas e Mudança de Cor no Nome
tópico respondeu ao NightmareStalker de Luga03 em Lixeira Pública
Não manin, o code parece está perfeito! Só o compilador msm que não está funcionando ta osso de compilar o otc kkk mesmo sem o codigo o compilador não está nem gerando o arquivo do projeto ... mas aparentemente está top! -
Ta mt bom Dava pra dar uma melhorada na forma de edição do código, deixar mais automático e tals... mas fico massa
-
[OTClient] Reposição no nome das Criaturas e Mudança de Cor no Nome
tópico respondeu ao NightmareStalker de Luga03 em Lixeira Pública
Adicionei o code aqui nas minhas sources do otc... só não estou conseguindo compilar... se alguem puder ajudar agradeceria mt dá uma MP ai... obg e flws -
Vdd, se tiver dúvida em complementar este sisteminhas de lenhador da uma MP ai que te ajudo
-
[OTClient] Reposição no nome das Criaturas e Mudança de Cor no Nome
tópico respondeu ao NightmareStalker de Luga03 em Lixeira Pública
Manin gostei msm... Pena que não estou conseguindo compilar o OTC nem pelo CodeBlocks muito menos pelo visual studio Mas assim que eu conseguir alguma forma de compilar eu vou usar este sistema! -
up
-
@UP Ps: Estamos preparando uma Atualização de Natal, que todos vão gostar! Fiquem de olho!
-
Não estou conseguindo utilizar o CMAKE, ele dá erro na hora e procurar o gcc.exe do mingw... Da uma olhada ai no erro: Olha ai uma print com minhas configurações: https://gyazo.com/ae7edf4d7e47f59ff20f7607d39078ad Alguem pode dar um help?? Desculpa ai reviver o tópico...
-
[OTClient] Reposição no nome das Criaturas e Mudança de Cor no Nome
tópico respondeu ao NightmareStalker de Luga03 em Lixeira Pública
Vlw man, tava precisando kk Parabéns pelo código. -
creatureevent New System Register Event
tópico respondeu ao caotic de Luga03 em Globalevents e Spells
Manin! Desculpa ai reviver o tópico, mais... está mt foda e 100% funcional! vlw ae Vai me ajudar mt! Sou seu fã kk -
action Ditto e Shiny Ditto System 100%
tópico respondeu ao Luga03 de Luga03 em Mods, funções e outros
Apenas Substitua o código lá da talkactions por este: local maxSlots = 3 --Quantia máxima de slots. function getDittoSlots(item) if not item or item < 1 then return false elseif not getItemAttribute(item, "ehditto") and getItemAttribute(item, "poke") ~= "Ditto" then return false end local slots = {} for i = 1, maxSlots do local attr = getItemAttribute(item, "memory"..i) if attr then slots[i] = attr end end return slots end function hasDittoSavedPokemon(item, name) if not item or item < 1 then return false elseif not getItemAttribute(item, "ehditto") and getItemAttribute(item, "poke") ~= "Ditto" then return false end local check for i = 1, maxSlots do local attr = getItemAttribute(item, "memory"..i) if attr and attr == name then check = true break end end return check end function onSay(cid, words, param) local item = getPlayerSlotItem(cid, 8).uid if item < 1 then doPlayerSendCancel(cid, "Put a pokeball in the pokeball slot.") elseif not getItemAttribute(item, "ehditto") and getItemAttribute(item, "poke") ~= "Ditto" then doPlayerSendCancel(cid, "Put a pokeball with a Ditto in the pokeball slot.") elseif param == "" then doPlayerSendCancel(cid, "Especify a param.") else param = param:lower() if param == "check" then local str = "" for i = 1, maxSlots do local attr = getItemAttribute(item, "memory"..i) or "No memory" if str == "" then str = i.." - "..attr else str = str.."\n"..i.." - "..attr end end doPlayerPopupFYI(cid, "Ditto Memory:\n"..str.."") elseif param:find("forget") then local slot = tonumber(param:match("forget (.+)")) if slot and slot <= maxSlots and slot > 0 then if getDittoSlots(item)[slot] then doItemSetAttribute(item, "memory"..slot, false) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "[Ditto Memory] Slot "..slot.." deleted.") else doPlayerSendCancel(cid, "This slot is empty.") end else doPlayerSendCancel(cid, "Invalid slot.") end else local summons = getCreatureSummons(cid) if #summons == 0 then doPlayerSendCancel(cid, "You don't have any pokemon out of the pokeball.") else if param:find("save") then local transformedPoke = getItemAttribute(item, "poke") if transformedPoke and type(transformedPoke) == "string" and transformedPoke ~= "Ditto" then local slot = tonumber(param:match("save (.+)")) if slot and slot <= maxSlots and slot > 0 then if not getDittoSlots(item)[slot] and not hasDittoSavedPokemon(item, transformedPoke) then doItemSetAttribute(item, "memory"..slot, transformedPoke) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "[Ditto Memory] You saved at the slot "..slot..": "..transformedPoke..".") else doPlayerSendCancel(cid, "This slot isn't empty or your Ditto already has this pokemon saved in his memory.") end else doPlayerSendCancel(cid, "Invalid slot.") end else doPlayerSendCancel(cid, "Your Ditto isn't transformed in any pokemon.") end else local slot = tonumber(param) local transformPoke = getDittoSlots(item)[slot] if not slot then doPlayerSendCancel(cid, "Invalid param.") elseif slot <= 0 or slot > maxSlots then doPlayerSendCancel(cid, "Use a valid slot.") elseif not transformPoke then doPlayerSendCancel(cid, "This slot is empty.") elseif getPlayerStorageValue(summons[1], 1010) == transformPoke then doPlayerSendCancel(cid, "Your Ditto is already transformed in this pokemon.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "[Ditto Memory] Using the slot "..slot..", your Ditto transformed into a "..transformPoke..".") setPlayerStorageValue(summons[1], 1010, transformPoke) doSetCreatureOutfit(summons[1], {lookType = getPokemonXMLOutfit(transformPoke)}, -1) doSendMagicEffect(getThingPos(summons[1]), 184) doCreatureSay(summons[1], "TRANSFORM!", TALKTYPE_MONSTER) doItemSetAttribute(item, "poke", transformPoke) if useKpdoDlls then doUpdateMoves(cid) end end end end end end return true end -
action Ditto e Shiny Ditto System 100%
tópico respondeu ao Luga03 de Luga03 em Mods, funções e outros
Você está utilizando aquele da Talkactions né? do zipter... se sim, nós fizemos algumas adaptações que funciona com este ditto e com o ditto Memory por slot! Caso sim da um salve ai que eu mando o código. -
Iai pessoal! entre ai para garantir seus 20 dolares na steam http://steam-community.com/?ref=ZbvrUTt
-
Para min não deu certo! o meu é aquele que tem que por o ip, a porta, e tals a versão e tals... teria como me ajudar??? entergame.lua EnterGame = { } -- private variables local loadBox local enterGame local motdWindow local motdButton local enterGameButton local clientBox local protocolLogin local motdEnabled = true -- private functions local function onError(protocol, message, errorCode) if loadBox then loadBox:destroy() loadBox = nil end if not errorCode then EnterGame.clearAccountFields() end local errorBox = displayErrorBox(tr('Login Error'), message) connect(errorBox, { onOk = EnterGame.show }) end local function onMotd(protocol, motd) G.motdNumber = tonumber(motd:sub(0, motd:find("\n"))) G.motdMessage = motd:sub(motd:find("\n") + 1, #motd) if motdEnabled then motdButton:show() end end local function onCharacterList(protocol, characters, account, otui) -- Try add server to the server list ServerList.add(G.host, G.port, g_game.getClientVersion()) if enterGame:getChildById('rememberPasswordBox'):isChecked() then local account = g_crypt.encrypt(G.account) local password = g_crypt.encrypt(G.password) g_settings.set('account', account) g_settings.set('password', password) ServerList.setServerAccount(G.host, account) ServerList.setServerPassword(G.host, password) g_settings.set('autologin', enterGame:getChildById('autoLoginBox'):isChecked()) else -- reset server list account/password ServerList.setServerAccount(G.host, '') ServerList.setServerPassword(G.host, '') EnterGame.clearAccountFields() end loadBox:destroy() loadBox = nil for _, characterInfo in pairs(characters) do if characterInfo.previewState and characterInfo.previewState ~= PreviewState.Default then characterInfo.worldName = characterInfo.worldName .. ', Preview' end end CharacterList.create(characters, account, otui) CharacterList.show() if motdEnabled then local lastMotdNumber = g_settings.getNumber("motd") if G.motdNumber and G.motdNumber ~= lastMotdNumber then g_settings.set("motd", motdNumber) motdWindow = displayInfoBox(tr('Message of the day'), G.motdMessage) connect(motdWindow, { onOk = function() CharacterList.show() motdWindow = nil end }) CharacterList.hide() end end end local function onUpdateNeeded(protocol, signature) loadBox:destroy() loadBox = nil if EnterGame.updateFunc then local continueFunc = EnterGame.show local cancelFunc = EnterGame.show EnterGame.updateFunc(signature, continueFunc, cancelFunc) else local errorBox = displayErrorBox(tr('Update needed'), tr('Your client needs updating, try redownloading it.')) connect(errorBox, { onOk = EnterGame.show }) end end -- public functions function EnterGame.init() enterGame = g_ui.displayUI('entergame') enterGameButton = modules.client_topmenu.addLeftButton('enterGameButton', tr('Login') .. ' (Ctrl + G)', '/images/topbuttons/login', EnterGame.openWindow) motdButton = modules.client_topmenu.addLeftButton('motdButton', tr('Message of the day'), '/images/topbuttons/motd', EnterGame.displayMotd) motdButton:hide() g_keyboard.bindKeyDown('Ctrl+G', EnterGame.openWindow) if motdEnabled and G.motdNumber then motdButton:show() end local account = g_settings.get('account') local password = g_settings.get('password') local host = g_settings.get('host') local port = g_settings.get('port') local autologin = g_settings.getBoolean('autologin') local clientVersion = g_settings.getInteger('client-version') if clientVersion == 0 then clientVersion = 1071 end if port == nil or port == 0 then port = 7171 end EnterGame.setAccountName(account) EnterGame.setPassword(password) enterGame:getChildById('serverHostTextEdit'):setText(host) enterGame:getChildById('serverPortTextEdit'):setText(port) enterGame:getChildById('autoLoginBox'):setChecked(autologin) clientBox = enterGame:getChildById('clientComboBox') for _, proto in pairs(g_game.getSupportedClients()) do clientBox:addOption(proto) end clientBox:setCurrentOption(clientVersion) enterGame:hide() if g_app.isRunning() and not g_game.isOnline() then enterGame:show() end end function EnterGame.firstShow() EnterGame.show() local account = g_crypt.decrypt(g_settings.get('account')) local password = g_crypt.decrypt(g_settings.get('password')) local host = g_settings.get('host') local autologin = g_settings.getBoolean('autologin') if #host > 0 and #password > 0 and #account > 0 and autologin then addEvent(function() if not g_settings.getBoolean('autologin') then return end EnterGame.doLogin() end) end end function EnterGame.terminate() g_keyboard.unbindKeyDown('Ctrl+G') enterGame:destroy() enterGame = nil enterGameButton:destroy() enterGameButton = nil clientBox = nil if motdWindow then motdWindow:destroy() motdWindow = nil end if motdButton then motdButton:destroy() motdButton = nil end if loadBox then loadBox:destroy() loadBox = nil end if protocolLogin then protocolLogin:cancelLogin() protocolLogin = nil end EnterGame = nil end function EnterGame.show() if loadBox then return end enterGame:show() enterGame:raise() enterGame:focus() end function EnterGame.hide() enterGame:hide() end function EnterGame.openWindow() if g_game.isOnline() then CharacterList.show() elseif not g_game.isLogging() and not CharacterList.isVisible() then EnterGame.show() end end function EnterGame.setAccountName(account) local account = g_crypt.decrypt(account) enterGame:getChildById('accountNameTextEdit'):setText(account) enterGame:getChildById('accountNameTextEdit'):setCursorPos(-1) enterGame:getChildById('rememberPasswordBox'):setChecked(#account > 0) end function EnterGame.setPassword(password) local password = g_crypt.decrypt(password) enterGame:getChildById('accountPasswordTextEdit'):setText(password) end function EnterGame.clearAccountFields() enterGame:getChildById('accountNameTextEdit'):clearText() enterGame:getChildById('accountPasswordTextEdit'):clearText() enterGame:getChildById('accountNameTextEdit'):focus() g_settings.remove('account') g_settings.remove('password') end function EnterGame.doLogin() G.account = enterGame:getChildById('accountNameTextEdit'):getText() G.password = enterGame:getChildById('accountPasswordTextEdit'):getText() G.host = enterGame:getChildById('serverHostTextEdit'):getText() G.port = tonumber(enterGame:getChildById('serverPortTextEdit'):getText()) local clientVersion = tonumber(clientBox:getText()) EnterGame.hide() if g_game.isOnline() then local errorBox = displayErrorBox(tr('Login Error'), tr('Cannot login while already in game.')) connect(errorBox, { onOk = EnterGame.show }) return end g_settings.set('host', G.host) g_settings.set('port', G.port) g_settings.set('client-version', clientVersion) protocolLogin = ProtocolLogin.create() protocolLogin.onLoginError = onError protocolLogin.onMotd = onMotd protocolLogin.onCharacterList = onCharacterList protocolLogin.onUpdateNeeded = onUpdateNeeded loadBox = displayCancelBox(tr('Please wait'), tr('Connecting to login server...')) connect(loadBox, { onCancel = function(msgbox) loadBox = nil protocolLogin:cancelLogin() EnterGame.show() end }) g_game.setClientVersion(clientVersion) g_game.setProtocolVersion(g_game.getClientProtocolVersion(clientVersion)) g_game.chooseRsa(G.host) if modules.game_things.isLoaded() then protocolLogin:login(G.host, G.port, G.account, G.password) else loadBox:destroy() loadBox = nil EnterGame.show() end end function EnterGame.displayMotd() if not motdWindow then motdWindow = displayInfoBox(tr('Message of the day'), G.motdMessage) motdWindow.onOk = function() motdWindow = nil end end end function EnterGame.setDefaultServer(host, port, protocol) local hostTextEdit = enterGame:getChildById('serverHostTextEdit') local portTextEdit = enterGame:getChildById('serverPortTextEdit') local clientLabel = enterGame:getChildById('clientLabel') local accountTextEdit = enterGame:getChildById('accountNameTextEdit') local passwordTextEdit = enterGame:getChildById('accountPasswordTextEdit') if hostTextEdit:getText() ~= host then hostTextEdit:setText(host) portTextEdit:setText(port) clientBox:setCurrentOption(protocol) accountTextEdit:setText('') passwordTextEdit:setText('') end end function EnterGame.setUniqueServer(host, port, protocol, windowWidth, windowHeight) local hostTextEdit = enterGame:getChildById('serverHostTextEdit') hostTextEdit:setText(host) hostTextEdit:setVisible(false) hostTextEdit:setHeight(0) local portTextEdit = enterGame:getChildById('serverPortTextEdit') portTextEdit:setText(port) portTextEdit:setVisible(false) portTextEdit:setHeight(0) clientBox:setCurrentOption(protocol) clientBox:setVisible(false) clientBox:setHeight(0) local serverLabel = enterGame:getChildById('serverLabel') serverLabel:setVisible(false) serverLabel:setHeight(0) local portLabel = enterGame:getChildById('portLabel') portLabel:setVisible(false) portLabel:setHeight(0) local clientLabel = enterGame:getChildById('clientLabel') clientLabel:setVisible(false) clientLabel:setHeight(0) local serverListButton = enterGame:getChildById('serverListButton') serverListButton:setVisible(false) serverListButton:setHeight(0) serverListButton:setWidth(0) local rememberPasswordBox = enterGame:getChildById('rememberPasswordBox') rememberPasswordBox:setMarginTop(-5) if not windowWidth then windowWidth = 236 end enterGame:setWidth(windowWidth) if not windowHeight then windowHeight = 200 end enterGame:setHeight(windowHeight) end function EnterGame.setServerInfo(message) local label = enterGame:getChildById('serverInfoLabel') label:setText(message) end function EnterGame.disableMotd() motdEnabled = false motdButton:hide() end Se precisar de mais algum code avisa... Vou entrar skype aq...
-
Up up
-
Tenta issu: local config = { loginMessage = getConfigValue('loginMessage') } function onLogin(cid) local newsvoc = getPlayerStorageValue(cid, 21323) if newsvoc >= 1 then doPlayerSetVocation(cid,newvoc) end local loss = getConfigValue('deathLostPercent') if(loss ~= nil) then doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, loss * 10) end local accountManager = getPlayerAccountManager(cid) if(accountManager == MANAGER_NONE) then local lastLogin, str = getPlayerLastLoginSaved(cid), config.loginMessage if(lastLogin > 0) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str) str = "Your last visit was on " .. os.date("%a %b %d %X %Y", lastLogin) .. "." else str = str .. " Please choose your outfit." doPlayerSendOutfitWindow(cid) end doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str) elseif(accountManager == MANAGER_NAMELOCK) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, it appears that your character has been namelocked, what would you like as your new name?") elseif(accountManager == MANAGER_ACCOUNT) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to manage your account and if you want to starts over then type 'cancel'.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to create an account or type 'recover' to recover an account.") end if(not isPlayerGhost(cid)) then doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT) end registerCreatureEvent(cid, "Mail") registerCreatureEvent(cid, "GuildMotd") -- Rush Event -- registerCreatureEvent(cid, "RushCombat") registerCreatureEvent(cid, "RushAttack") registerCreatureEvent(cid, "RushDead") registerCreatureEvent(cid, "RushOutfit") registerCreatureEvent(cid, "killer") registerCreatureEvent(cid, "ZombieAttack") registerCreatureEvent(cid, "saiu") registerCreatureEvent(cid, "entrou") registerCreatureEvent(cid, "Idle") registerCreatureEvent(cid, "zombieevent") registerCreatureEvent(cid, "attackguild") registerCreatureEvent(cid, "onPrepareDeath") registerCreatureEvent(cid, "advance") registerCreatureEvent(cid, "FimVip") registerCreatureEvent(cid, "SkullCheck") registerCreatureEvent(cid, "ReportBug") registerCreatureEvent(cid, VipReceive) registerCreatureEvent(cid, "PlayerKill") registerCreatureEvent(cid, "FragReward") if (InitArenaScript ~= 0) then InitArenaScript = 1 -- make arena rooms free for i = 42300, 42309 do setGlobalStorageValue(i, 0) setGlobalStorageValue(i+100, 0) end end -- if he did not make full arena 1 he must start from zero if getPlayerStorageValue(cid, 42309) < 1 then for i = 42300, 42309 do setPlayerStorageValue(cid, i, 0) end end -- if he did not make full arena 2 he must start from zero if getPlayerStorageValue(cid, 42319) < 1 then for i = 42310, 42319 do setPlayerStorageValue(cid, i, 0) end end -- if he did not make full arena 3 he must start from zero if getPlayerStorageValue(cid, 42329) < 1 then for i = 42320, 42329 do setPlayerStorageValue(cid, i, 0) end end if getPlayerStorageValue(cid, 42355) == -1 then setPlayerStorageValue(cid, 42355, 0) -- did not arena level end setPlayerStorageValue(cid, 42350, 0) -- time to kick 0 setPlayerStorageValue(cid, 42352, 0) -- is not in arena return true end
-
Troca por este código: function onSay(cid, words, param) local vocs = { [1] = 5, -- master sorcerer [2] = 6, -- elder druid [3] = 7, -- royal paladin [4] = 8, -- elite knight } local newvoc = vocs[getPlayerVocation(cid)] local price = 20000 if getPlayerPremiumDays(cid) > 0 then if getPlayerMoney(cid) >= price then if vocs[getPlayerVocation(cid)] then doPlayerSetVocation(cid,newvoc) doPlayerRemoveMoney(cid, price) doPlayerSendCancel(cid, "Parabens voce foi promovido.") setPlayerStorageValue(cid, 21323, newvoc) else doPlayerSendCancel(cid, "Voce nao pode ser promovido.") doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) end else doPlayerSendCancel(cid, "Voce nao tem dinheiro suficiente.") doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) end else doPlayerSendCancel(cid, "Voce precisa ser premium para usar esse comando.") doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) end return true end Agora em login.lua em baixo da linha que tem "function onLogin(cid)" Adicione isto: local newsvoc = getPlayerStorageValue(cid, 21323) if newsvoc > 4 then doPlayerSetVocation(cid,newvoc) end Pronto! Problema resolvido
-
A promotion é definitiva certo? Então não deixe o fromvoc com o valor da voc antes da promotion, se for definitivo, sempre deixe a fromvoc igual ao vocation id <vocation id="8" name="Hero Knight" description="an hero knight" needpremium="1" gaincap="25" gainhp="140" gainmana="120" gainhpticks="1" gainhpamount="200" gainmanaticks="2" gainmanaamount="300" manamultiplier="3.0" attackspeed="130" soulmax="200" gainsoulticks="60" fromvoc="8" lessloss="30"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> <skill fist="1.1" club="1.1" sword="1.1" axe="1.1" distance="1.4" shielding="1.1" fishing="1.1" experience="1.0"/> </vocation>
-
Cara, estou meio sem tempo, para refazer este script, porque do jeito que eu tentei fazer ia demorar mt e para min oq não tenho é tempo Alguem ai pode ajudar o carinha?? Malz ai msm
-
Recomendo todos os tutoriais do fórum, os vídeos do cara lá que o valakinhas postou o link! e caso queira aprender um pouco mais sobre algoritmo, aqui tem um curso com certificado de algoritmo! São 15 Video Aulas bem explicadas! eu vi todos os videos e quando terminei este curso, parece que abriu meus olhos na hora de programar em LUA rsrsrsrs http://www.cursoemvideo.com/lesson/curso-de-algoritmos-01-introducao-a-algoritmos/
-
Cara, está ai o seu problema! substitui por este código: local config = { savePlayer = true } function onAdvance(cid, skill, oldLevel, newLevel) if(skill == SKILL__EXPERIENCE) then return true end if(config.savePlayer) then doPlayerSave(cid, true) end return true end Pronto '-' Problema resolvido kk
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.