-
Total de itens
46 -
Registro em
-
Última visita
Tudo que allan1001 postou
-
tem que mudar no items.xml tambem. <attribute key="shootType" value="holy"/>
-
Veja se a port 80 está na lista de exceções no firewall do seu windows ou tente mudar a port do seu xamp de 80 para 8090.
-
Adicione isso depois do code do Kimoszin em movements.xml: <movevent type="DeEquip" itemid="2656" slot="armor" event="function" value="onDeEquipItem"/>
-
Então cara exori san é Holy, você deve tar confundindo com outro. Não Seria do Exori con que você quer ?
-
Tem que colocar o item que você quer no movements.xml tambem, fala qual item você quer e o tanto de ml que vai aumentar , que eu te ajudo a fazer.
-
Sobre a Poison Arrow Remova a Seguinte linha em weapons.xml: <distance id="2545" event="script" value="poison_arrow.lua"/> Sobre a Wand Deixe Assim: <wand id="12648" level="10" mana="100" min="600" max="900" type="holy" event="function" value="default"> <!-- Snake God's Sceptre --> <vocation id="2"/> <vocation id="1"/> </wand> Ate Mais
-
Tente desse jeito. Obs: Usei o Script do small201 como exemplo. <item id="7464" article="a" name="Dust shorts"> <attribute key="weight" value="150" /> <attribute key="slotType" value="legs" /> <attribute key="absorbPercentall" value="10" /> <attribute key="description" value="Absorve 10% de todos os danos." /> <attribute key="decayTo" value="0"/> <attribute key="duration" value="600"/> <attribute key="showduration" value="1"/> </item>
-
Empilhar Itens Automaticamente Na Bp.
tópico respondeu ao othereality de allan1001 em Lixeira Pública
Bom as sources do TFS 0.3.6pl1 você esta baixando elas nesse link Clique aqui, e podera editar oque quiser...agora sobre como editar e compilar o server procure em Tutoriais de Programação aqui mesmo no Xtibia. Flw -
Empilhar Itens Automaticamente Na Bp.
tópico respondeu ao othereality de allan1001 em Lixeira Pública
Testado no TFS 0.4 e 0.3.6pl1 Para arruma o AutoStatacking é preciso mexer nas sources do server. Ache as fuções e modifique. Em container.cpp Cylinder* Container::__queryDestination(int32_t& index, const Thing* thing, Item** destItem, uint32_t&) { if(index == 254 /*move up*/) { index = INDEX_WHEREEVER; *destItem = NULL; Container* parentContainer = dynamic_cast<Container*>(getParent()); if(parentContainer) return parentContainer; return this; } else if(index == 255 /*add wherever*/){ index = INDEX_WHEREEVER; *destItem = NULL; } else if(index >= (int32_t)capacity()){ /* if you have a container, maximize it to show all 20 slots then you open a bag that is inside the container you will have a bag with 8 slots and a "grey" area where the other 12 slots where from the container if you drop the item on that grey area the client calculates the slot position as if the bag has 20 slots */ index = INDEX_WHEREEVER; *destItem = NULL; } const Item* item = thing->getItem(); if(item == NULL){ return this; } if(item->isStackable()){ if(item->getParent() != this){ //try find a suitable item to stack with uint32_t n = 0; for(ItemList::iterator cit = itemlist.begin(); cit != itemlist.end(); ++cit){ if((*cit) != item && (*cit)->getID() == item->getID() && (*cit)->getItemCount() < 100){ *destItem = (*cit); index = n; return this; } ++n; } } } if(index != INDEX_WHEREEVER){ Thing* destThing = __getThing(index); if(destThing) *destItem = destThing->getItem(); Cylinder* subCylinder = dynamic_cast<Cylinder*>(*destItem); if(subCylinder){ index = INDEX_WHEREEVER; *destItem = NULL; return subCylinder; } } return this; } Em item.cpp void Item::setDefaultSubtype() { setItemCount(1); const ItemType& it = items[id]; if(it.charges) setCharges(it.charges); } Em player.cpp Cylinder* Player::__queryDestination(int32_t& index, const Thing* thing, Item** destItem, uint32_t& flags) { if(index == 0 /*drop to capacity window*/ || index == INDEX_WHEREEVER){ *destItem = NULL; const Item* item = thing->getItem(); if(item == NULL){ return this; } //find an appropiate slot std::list<Container*> containerList; for(int i = SLOT_FIRST; i < SLOT_LAST; ++i){ Item* inventoryItem = inventory[i]; if(inventoryItem == tradeItem){ continue; } if(inventoryItem == tradeItem){ continue; } if(inventoryItem){ //try find an already existing item to stack with if(inventoryItem != item && item->isStackable() && inventoryItem->getID() == item->getID() && inventoryItem->getItemCount() < 100){ *destItem = inventoryItem; index = i; return this; } //check sub-containers else if(Container* subContainer = inventoryItem->getContainer()){ Cylinder* tmpCylinder = NULL; int32_t tmpIndex = INDEX_WHEREEVER; Item* tmpDestItem = NULL; tmpCylinder = subContainer->__queryDestination(tmpIndex, item, &tmpDestItem, flags); if(tmpCylinder && tmpCylinder->__queryAdd(tmpIndex, item, item->getItemCount(), flags) == RET_NOERROR){ index = tmpIndex; *destItem = tmpDestItem; return tmpCylinder; } containerList.push_back(subContainer); } } //empty slot else if(__queryAdd(i, item, item->getItemCount(), flags) == RET_NOERROR){ index = i; *destItem = NULL; return this; } } //check deeper in the containers for(std::list<Container*>::iterator it = containerList.begin(); it != containerList.end(); ++it){ for(ContainerIterator iit = (*it)->begin(); iit != (*it)->end(); ++iit){ if(Container* subContainer = (*iit)->getContainer()){ if(subContainer == tradeItem){ continue; } Cylinder* tmpCylinder = NULL; int32_t tmpIndex = INDEX_WHEREEVER; Item* tmpDestItem = NULL; tmpCylinder = subContainer->__queryDestination(tmpIndex, item, &tmpDestItem, flags); if(tmpCylinder && tmpCylinder->__queryAdd(tmpIndex, item, item->getItemCount(), flags) == RET_NOERROR){ index = tmpIndex; *destItem = tmpDestItem; return tmpCylinder; } } } } return this; } Thing* destThing = __getThing(index); if(destThing) *destItem = destThing->getItem(); Cylinder* subCylinder = dynamic_cast<Cylinder*>(destThing); if(subCylinder){ index = INDEX_WHEREEVER; *destItem = NULL; return subCylinder; } else return this; } Créditos: Exedion e kwovan -
[Creatureevents] Promotion Ao Atingir Level 20
tópico respondeu ao allan1001 de allan1001 em Globalevents e Spells
Ta ae do jeito que você pediu...só ganha promotion se o jogador for premiun. --- Created by Allan. --[inicio das Configurações]-- local config = { level = 20, -- Level que o player vai ser promovido. storage = 2020, -- Storage Value que vai ser usado. msg = "Parabéns, você foi promovido com sucesso!", -- Mensagem enviada quando atingir o level necessário. msgtype = MESSAGE_EVENT_ADVANCE -- Tipo da mensagem enviada. } --[Fim das Configurações]-- function onAdvance(cid, oldLevel, newLevel) if getPlayerStorageValue(cid, config.storage) == -1 and getPlayerLevel(cid) >= config.level and isPremium(cid) == TRUE then setPlayerPromotionLevel(cid, 1) doPlayerSendTextMessage(cid, config.msgtype, config.msg) setPlayerStorageValue(cid, config.storage, 1) end return TRUE end -
Dúvida resolvida, tarei reportando para o tópico ser fechado.
-
vai no mapa editor e aperta Crtl + F e procure pelo id 8047, esse é os brilho no qual voce citou a cima, basta você colocar ele por cima dos itens que desejar e pronto Flw
-
Vou reportar o tópico para ser fechado então ja que sua duvida foi resolvida.
-
ja tentou usar o Advanced Reset System do MarcelloMkez ? Link Aqui
-
Deveria ter procurado mais. Clique aqui
-
[Creatureevents] Promotion Ao Atingir Level 20
tópico respondeu ao allan1001 de allan1001 em Globalevents e Spells
Prontinhu ja arrumei, tinha me esquecido da função onAdvance, rs valeu por me lembrar. -
Tenta agora. local combat1 = createCombatObject() local combat2 = createCombatObject() local combat3 = createCombatObject() local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ME_YALAHARIGHOST) setCombatFormula(combat1, COMBAT_FORMULA_SKILL, 7.5, 7, 5.5, 6) local condition1 = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition1, CONDITION_PARAM_TICKS, 20000) --setConditionParam(condition1, CONDITION_PARAM_SPEED, -500) setConditionFormula(condition1, -0.8, 0, -0.8, 0) setCombatCondition(combat1, condition1) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_YALAHARIGHOST) setCombatFormula(combat2, COMBAT_FORMULA_SKILL, -0.5, -1, -0.4, -1) local condition2 = createConditionObject(CONDITION_CURSED) setConditionParam(condition2, CONDITION_PARAM_DELAYED, 1) addDamageCondition(condition2, 5, 500, -100) setCombatCondition(combat2, condition2) local combat3 = createCombatObject() setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE) setCombatParam(combat3, COMBAT_PARAM_EFFECT, CONST_ME_YALAHARIGHOST) setCombatFormula(combat3, COMBAT_FORMULA_SKILL, -0.5, -1, -0.4, -1) local condition3 = createConditionObject(CONDITION_DAZZLED) setConditionParam(condition3, CONDITION_PARAM_DELAYED, 1) addDamageCondition(condition3, 5, 500, -100) setCombatCondition(combat3, condition3) arr1 = { {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, } arr2 = { {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, } arr3 = { {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, } local area1 = createCombatArea(arr1) local area2 = createCombatArea(arr2) local area3 = createCombatArea(arr3) setCombatArea(combat1, area1) setCombatArea(combat2, area2) setCombatArea(combat3, area3) local function onCastSpell1(parameters) doCombat(parameters.cid, parameters.combat1, parameters.var) end local function onCastSpell2(parameters) doCombat(parameters.cid, parameters.combat2, parameters.var) end local function onCastSpell3(parameters) doCombat(parameters.cid, parameters.combat3, parameters.var) end function onCastSpell(cid, var) local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3 } addEvent(onCastSpell1, 1, parameters) addEvent(onCastSpell2, 2, parameters) addEvent(onCastSpell3, 3, parameters) return TRUE end
-
[Creatureevents] Promotion Ao Atingir Level 20
um tópico no fórum postou allan1001 Globalevents e Spells
Bom, tava sem nada para fazer resolvir criar esse script sódizuera, não tenho ctz mais eu nunca vi aqui no Xtibia ou em qualquer outro forum. Oq ele Faz? R: Quando o Player upar level 20 (configurável) ele ganha promotion. Bom vamos la então. 1- Crie um arquivo com o nome de "promotion.lua" (sem aspas) em : data/creaturescripts/scripts. Adicione este code: --- Created by Allan. --[inicio das Configurações]-- local config = { level = 20, -- Level que o player vai ser promovido. storage = 2020, -- Storage Value que vai ser usado. msg = "Parabéns, você foi promovido com sucesso!", -- Mensagem enviada quando atingir o level necessário. msgtype = MESSAGE_EVENT_ADVANCE -- Tipo da mensagem enviada. } --[Fim das Configurações]-- function onAdvance(cid, oldLevel, newLevel) if getPlayerStorageValue(cid, config.storage) == -1 and getPlayerLevel(cid) >= config.level then setPlayerPromotionLevel(cid, 1) doPlayerSendTextMessage(cid, config.msgtype, config.msg) setPlayerStorageValue(cid, config.storage, 1) end return TRUE end 2- Em, data/creaturescripts abra o arquivo creaturescripts.xml. Adicione a tag: <event type="advance" name="promotion" event="script" value="promotion.lua"/> 3- Em, data/creaturescripts/scripts abra o arquivo longin.lua. Adicione esta linha antes do ultimo return true : registerCreatureEvent(cid, "promotion") Qualquer duvida postar aqui. Se forem postar em outro forum, coloque os meus creditos. Sem Mais, allan :* -
Em, data\talkactions\talkaction.xml Adicione: <talkaction words="!comandos" event="script" value="comandos.lua"/> Em, data\talkactions\scripts Crie um arquivo com o nome de comandos.lua Adicione: local config = { ingameGuilds = getBooleanFromString(getConfigValue('ingameGuildManagement')) } function onSay(cid, words, param, channel) local playerAccess, t = getPlayerAccess(cid), {} for i, talk in ipairs(getTalkActionList()) do if(not talk.hidden and playerAccess >= talk.access) then local tmp = talk.words:sub(1, 1):trim() if((config.ingameGuilds or (talk.functionName ~= "guildjoin" and talk.functionName ~= "guildcreate")) and (tmp == "!" or tmp == "/")) then table.insert(t, talk) end end end table.sort(t, function(a, b) return a.access > b.access end) local lastAccess, str = -1, "" for i, talk in ipairs(t) do local line = "" if(lastAccess ~= talk.access) then if(i ~= 1) then line = "\n" end lastAccess = talk.access end str = str .. line .. talk.words .. "\n" end doShowTextDialog(cid, 2160, str) return true end Pronto agora para usar o comando utilize !comandos. Flw :*
-
Tipo do script:Creaturescripts ? Protocolo (versão do Tibia): 8.60 Servidor utilizado: The Forgotten Server 0.3.6 Nível de experiência: Médio Adicionais/Informações: Gostaria de um script de quando o player morrer se ele tiver magic level acima de 150, ele perde pelo menos 1 magic level, pq nao sei oq acontece, depois q ele passa do magic level 150 quando ele morre perde apenas 3% de seu magic level... Agradeço desde de já Flw
-
Tipo do script: Talkaction Protocolo: 8.5 Servidor utilizado: The Forgotten Server 0.3.6 (Crying Damson) Nível de experiência: Médio Adicionais/Informações: O Comando a ser usado seria : !removerfrag Bom gnt eu gostaria de um Talkaction que removesse frags (Apenas um Frag) dos players por 1kk cada Frag, eu até tenho um script aqui, mais ele remove todos os frags de uma vez...gostaria que removesse somente 1 frag. Obrigado pela atenção. Abraços, Allan
-
[Encerrado] Como Por Exaust Nas Potions E No Help Channel?
tópico respondeu ao maniaots de allan1001 em Tópicos Sem Resposta
Bom, sobre o exausted no Help eu posso te ajudar. Vá em: data\XML\channels.xml Dentro do Channels.xml Substitua: <channel id="9" name="Help" logged="yes"/> Por: <channel id="9" name="Help" logged="yes" muted="30" conditionId="2" conditionMessage="You may only place one offer in 30 seconds."> Flws -
Use este site para criar seu própio cliente com ip desejado. Clique aqui
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.