Ir para conteúdo

Kuro o Shiniga

Colaborador
  • Total de itens

    271
  • Registro em

  • Última visita

  • Dias Ganhos

    12

Tudo que Kuro o Shiniga postou

  1. exato, vai criar um novo exe na pasta da sources, é o que você vai usar depois de compilar com suas modificações
  2. compilando em windows : https://www.xtibia.com/forum/topic/233074-dev-c-compilando-tfs-no-windows/ compilando em linux : https://www.xtibia.com/forum/topic/239213-compilando-tfs-04-no-linux/ abraço, boa sorte no projeto.
  3. Você usa TFS ou OTX? e qual o sistema windows ou linux ?
  4. pode usar o dev c++, porem tem que ter todos os arquivos cpp da sources.
  5. post os script, qundo você utiliza a talkactions o seu servidor cai certo ?
  6. posta o script e o erro, sem isso nao tem como ajuda-lo
  7. /effetc on - ativa o efeito /effect off - desativa o efeito <talkaction access="4" words="/effect" event="script" value="nomedoarquivo.lua"/> local efeitos = {{22,10,2,33,32,12,40,5,3,4,18,19,20}} --- efeitos local TEMPO = 1 local str = 9394834 for l, k in ipairs(efeitos) do local function doEffect(cid, pos) if isPlayer(cid) then ppos = getThingPos(cid) doSendMagicEffect(pos, math.random(#efeitos[l])) L_K = addEvent(doEffect, TEMPO*1000, cid, ppos) setPlayerStorageValue(cid, str, 1) end end function onSay(cid, words, param) if param == "on" and getPlayerStorageValue(cid, str) < 1 then pos = getThingPos(cid) doSendMagicEffect(pos, math.random(#efeitos[l])) addEvent(doEffect, TEMPO*1000, cid, pos) doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING,"Effect Start.") elseif param == "off" and getPlayerStorageValue(cid, str) == 1 then stopEvent(L_K) doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING,"Effect Pause.") setPlayerStorageValue(cid, str, -1) return true end end end
  8. Acredito que resolva seu problema. https://www.xtibia.com/forum/topic/134875-matar-monstro-abrir-tp-remover-parede-ganhar-storage/
  9. Eu fiz esse pra você no seu outro post que você pediu, é so adicionar na tabela o monstro e level. function onUse(cid) local monster = { ["Dragon"] = {1, 1800}, ["Dragon Lord"] = {1801, 2000}, ["Demon"] = {2001, 99999} } local summon = getCreatureSummons(cid) local pLevel = getPlayerLevel(cid) for l, m in pairs(monster) do if pLevel <= m[2] then doConvinceCreature(cid, doSummonCreature(l, getCreaturePosition(cid))) doCreatureSay(cid, "Lets go to Battle!", TALKTYPE_ORANGE_1) doSendMagicEffect(getThingPos(cid), 10) break end end if summon then for n, p in ipairs(summon) do doRemoveCreature(p) end end return true end
  10. function onUse(cid) local monster = { ["Dragon"] = {1, 1800}, ["Dragon Lord"] = {1801, 2000}, ["Demon"] = {2001, 99999} } local summon = getCreatureSummons(cid) local pLevel = getPlayerLevel(cid) for l, m in pairs(monster) do if pLevel <= m[2] then doConvinceCreature(cid, doSummonCreature(l, getCreaturePosition(cid))) doCreatureSay(cid, "Lets go to Battle!", TALKTYPE_ORANGE_1) doSendMagicEffect(getThingPos(cid), 10) break end end if summon then for n, p in ipairs(summon) do doRemoveCreature(p) end end return true end
  11. function onUse(cid, item, fromPosition, itemEx, toPosition, words, param, channel, item2, topos) local quest = { level = 50, -- level mínimo max_times = 3, -- quantas vezes poderá usar timetowait = {1, "day"}, -- tempo para usar novamente após atingir o max_times max_players = 3, -- máximo de players dentro da área room = {from = {x = 32312, y = 32507, z = 8}, to = {x = 32312, y = 32507, z = 8}},-- posição do canto superior esquerdo, posição do canto inferior direito da sala newpos = {x = 32327, y = 32528, z = 18}, -- posição para onde o player será teleportado ao entrar stone = {id = 1304, pos = {x = 32320, y = 32516, z = 8}}, -- id da pedra, posição timetokick = {2, "min"}, -- tempo para ser kikado da sala } local pos = { {x=32331, y=32526, z=7, stackpos=1}, kickpos = {x = 32331 , y = 32526, z = 7} } -- quando kikados da área, o player vai para essa posição local p, inside = getPlayerPosition(cid), getPlayersInArea(quest.room.from, quest.room.to) if getPlayerStorageValue(cid, 84309) > os.time() then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You can use again at " .. os.date("%d %B %Y %X", getPlayerStorageValue(cid, 84309))..".") return true else if getPlayerStorageValue(cid, 84310) == quest.max_times then setPlayerStorageValue(cid, 84310, -1) end end if #inside >= quest.max_players then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Wait for the team to leave the room.") doSendMagicEffect(p, CONST_ME_POFF) return true end if getPlayerLevel(cid) < quest.level then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You need at least level " .. quest.level .. " to go.") doSendMagicEffect(p, CONST_ME_POFF) return true end local max_times = getPlayerStorageValue(cid, 84310) > 0 and getPlayerStorageValue(cid, 84310) or 0 if (max_times + 1) == quest.max_times then setPlayerStorageValue(cid, 84309, mathtime(quest.timetowait) + os.time()) end local stone = getTileItemById(quest.stone.pos, quest.stone.id).uid if stone > 0 then doSendMagicEffect(quest.stone.pos, CONST_ME_POFF) doRemoveItem(stone) end doTeleportThing(cid, quest.room.newpos) doSendMagicEffect(quest.room.newpos, CONST_ME_TELEPORT) setPlayerStorageValue(cid, 84310, max_times+1) addEvent(kickFromArea, mathtime(quest.timetokick) * 1000, cid) return true end function getPlayersInArea(fromPos, toPos) local players = {} for _, pid in ipairs(getPlayersOnline()) do if isInRange(getPlayerPosition(pid), fromPos, toPos) then table.insert(players, pid) end end return players end function mathtime(table) -- by dwarfer local unit = {"sec", "min", "hour", "day"} for i, v in pairs(unit) do if v == table[2] then return table[1]*(60^(v == unit[4] and 2 or i-1))*(v == unit[4] and 24 or 1) end end return error("Bad declaration in mathtime function.") end function kickFromArea(cid) local stone = getTileItemById(quest.stone.pos, quest.stone.id) if stone.uid == 0 then doCreateItem(quest.stone.id, 1, quest.stone.pos) end if isPlayer(cid) and isInRange(getPlayerPosition(cid), quest.room.from, quest.room.to) then doTeleportThing(cid, quest.kickpos) end doSendMagicEffect(quest.kickpos, CONST_ME_TELEPORT) end
  12. Já existe esse script no forum. https://www.xtibia.com/forum/topic/218996-ctf-capture-the-flag-20automático/
  13. local tempo = 5 local FOODS = { [2362] = {8, "Crunch."}, [2666] = {15, "Munch."}, [2667] = {12, "Munch."}, [2668] = {10, "Mmmm."}, [2669] = {17, "Munch."}, [2670] = {4, "Gulp."}, [2671] = {30, "Chomp."}, [2672] = {60, "Chomp."}, [2673] = {5, "Yum."}, [2674] = {6, "Yum."}, [2675] = {13, "Yum."}, [2676] = {8, "Yum."}, [2677] = {1, "Yum."}, [2678] = {18, "Slurp."}, [2679] = {1, "Yum."}, [2680] = {2, "Yum."}, [2681] = {9, "Yum."}, [2682] = {20, "Yum."}, [2683] = {17, "Munch."}, [2684] = {8, "Crunch."}, [2685] = {6, "Munch."}, [2686] = {9, "Crunch."}, [2687] = {2, "Crunch."}, [2688] = {9, "Munch."}, [2689] = {10, "Crunch."}, [2690] = {3, "Crunch."}, [2691] = {8, "Crunch."}, [2792] = {6, "Munch."}, [2793] = {9, "Munch."}, [2695] = {6, "Gulp."}, [2696] = {9, "Smack."}, [2787] = {9, "Munch."}, [2788] = {4, "Munch."}, [2789] = {22, "Munch."}, [2790] = {30, "Munch."}, [2791] = {30, "Munch."}, [2792] = {6, "Munch."}, [2794] = {3, "Munch."}, [2795] = {36, "Munch."}, [2796] = {5, "Munch."}, [2793] = {9, "Munch."}, [5097] = {4, "Yum."}, [6125] = {8, "Gulp."}, [6278] = {10, "Mmmm."}, [6279] = {15, "Mmmm."}, [6393] = {12, "Mmmm."}, [6394] = {15, "Mmmm."}, [6501] = {20, "Mmmm."}, [6541] = {6, "Gulp."}, [6542] = {6, "Gulp."}, [6543] = {6, "Gulp."}, [6544] = {6, "Gulp."}, [6545] = {6, "Gulp."}, [6569] = {1, "Mmmm."}, [6574] = {4, "Mmmm."}, [7158] = {15, "Munch."}, [7159] = {13, "Munch."}, [7372] = {7, "Yum."}, [7373] = {7, "Yum."}, [7374] = {7, "Yum."}, [7375] = {7, "Yum."}, [7376] = {7, "Yum."}, [7377] = {7, "Yum."}, [7909] = {4, "Crunch."}, [8838] = {7, "Gulp."}, [8839] = {5, "Yum."}, [8840] = {2, "Yum."}, [8841] = {3, "Urgh."}, [8842] = {3, "Munch."}, [8843] = {3, "Crunch."}, [8844] = {3, "Gulp."}, [8845] = {2, "Munch."}, [8847] = {11, "Yum."} } function onUse(cid, item, fromPosition, itemEx, toPosition) if (getPlayerStorageValue(cid, 787878) >= os.time()) then return doPlayerSendCancel(cid, "Espere por"..tempo.."segundos para comer.") end local food = FOODS[item.itemid] if(not food) then return false end if((getPlayerFood(cid) + food[1]) >= 4000) then doPlayerSendCancel(cid, "You are full.") return true end doPlayerFeed(cid, food[1] * 4) doCreatureSay(cid, food[2], TALKTYPE_ORANGE_1) doRemoveItem(item.uid, 1) setPlayerStorageValue(cid, 787878, os.time()+tempo) return true end
  14. Que lixo miiller toma vergonha ! aehEUIAHEIUEHAIUEHAE Tá manjando (y)
  15. KKKKKKKKKKK xotservx seu noob demoro pra você aehuiEAUIEHAUIEHAE O que o outro ta falando bosta ai KKKKK sai fora
  16. Eae galerinha do XTibia, voltei para dar continuidade aos tutoriais então vamos continuar ! Operadores : Um operador é um símbolo que diz ao compilador para realizar manipulações matemáticas e lógicas específicas. A linguagem C++ possui três classes gerais de operadores: aritméticos, relacionais e lógicos e bit-a-bit. Operador de atribuição: O operador “=” atribui um valor ou resultado de uma expressão contida a sua direita para a variável especificada a sua esquerda. Exemplos: a = 10; b = c * valor + getval(x); a = b = c = 1; O último exemplo é interessante por mostrar que é possível associar vários operadores de atribuição em sequência, fazendo com que todas as variáveis envolvidas tenham o mesmo valor especificado. Operadores Aritméticos : São aqueles que operam sobre números e expressões, resultando valores numéricos. São eles: Operador Ação + Soma - subtração * multiplicação / divisão % mСdulo da divisão (resto da divisão inteira) - sinal negativo (operador unАrio) Operadores Relacionais : Operador: Ação: > Maior >= maior ou igual < Menor <= menor ou igual == Igual != não igual (diferente) Operadores Lógicos : Operador AND && operação AND || operação OR ! operador de negação NOT (operador unário) Exemplos de “short circuit”: (a == b) && (b == c) /* Se a != b não avalia o resto da expressão */ (a == b) || (b == c) /* Se a == b não avalia o resto da expressão */ Manipulação de bits : Operador Ação & bit and | bit or ^ bit xor - exclusive or << Rotação a esquerda >> Rotação a direita ~ bit not (complemento) Operadores de assinalamento : var = var op expr -> var op = expr Onde tempos op como um dos seguintes operadores: Operador Ação + Soma - Subtração * Multiplicação / Divisão % módulo (resto da divisão) >> Rotação a direita << Rotação a esquerda & And ^ xor - exclusive or | Or Exemplo de aplicação: i+= 2; /* É equivalente a: i = i + 2 */ j-= 3; /* É equivalente a: j = j – 3 */ k >>= 3; /* É equivalente a: k = k >> 3;*/ z &= flag; /* É equivalente a: z = z & flag;*/ Operadores de Pré e Pós-Incremento : E isso galera por hoje é só espero que gostem abraço !
  17. Eae galerinha voltei para dar continuidade ao tutorial, esse tutorial é continuação da parte 2, eu não expliquei totalmente ela vou terminar ela nesse tutorial espero que gostem e vamos ao que interessa! Então vamos lá ! Float é o tipo de variável real natural, aquela com a qual o sistema trabalha com maior naturalidade. Double e long double são úteis quando queremos trabalhar com intervalos de números reais realmente grandes. Utilizamos números reais geralmente para expressar precisão através do número de casas decimais, então podemos dizer que uma variável float é menos precisa que uma variável double, assim como uma variável double é menos precisa que long double. A tabela abaixo mostra os tipos de variáveis reais, seu tamanho em bits e o intervalo de armazenagem. Tipo Tamanho (em bits) Intervalo Float 32 3,4E-38 a 3,4E+38 Double 64 1,7E-308 a 1,7E+308 long double 80 3,4E-4932 a 1,1E+4932 Definição de Variáveis: <tipo> <nome>; Por exemplo: int exemplo Além disso, caso seja necessário, podemos declarar um valor a esta variável no momento de sua declaração, e também adicionar um prefixo a ela, da seguinte forma: <prefixo> <tipo> <nome> = <valor>; Por exemplo: unsigned int exemplo = 12; Definição de Constantes: O conceito de constantes em linguagens de programação é atribuir um certo valor constante a um nome, e quando este nome for referenciado dentro do código do programa, será utilizado nas operações o valor atribuído a este nome. Ou seja, se for definida a constante PI com o valor “3,1415926536”, quando for encontrado no código o nome PI, será utilizado em seu lugar o valor “3,1415926536”. Em C++ , utilizamos o prefixo const associado a um tipo, um nome e um valor para definir uma constante. Assim: const <tipo> <nome> = <valor>; Por exemplo: const int eterna = 256; No exemplo acima, definimos uma constante inteira de nome “eterna” que possui o valor numérico 256. É importante notar que devemos declarar a constante e lhe atribuir um valor na mesma linha de comando. Não podemos criar uma constante e lhe atribuir um valor posteriormente, ou seja, as seguintes linhas de comando são inválidas: const int eterna; eterna = 256; A partir da primeira linha, “eterna” passa a ser uma constante e seu valor não pode ser mais mudado durante a execução do programa. Como seu valor não foi declarado, esta constante pode ter qualquer valor que esteja na memória do computador naquele momento da declaração da variável. Números Hexadecimais e Octais : hex = 0xFF; /* 255 em decimal */ oct = 011; /* 9 em decimal */ Outra base numérica muito utilizada na programação é a base binária. Apesar de C++ não possuir uma forma específica de se expressar valores de base binária, podemos utilizar a notação hexadecimal para esta função. Valores Strings: Então e isso galera, não deu pra terminar tudo a parte 2 porque ela vai ser bem grandinha! espero que gostem e estudem ^^
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...