
Tudo que luangop postou
-
Log de quem entrou e saiu apenas pra quem habilitar.
Cometeu alguns erros... mas está no caminho certo! Não tem necessidade de usar duas storages para habilitar/desabilitar... teste a talkaction assim: function onSay(cid, words, param) local stosys = 50514 if(param == '') then if getPlayerStorageValue(cid, stosys) == 1 then -- Se estiver habilitado setPlayerStorageValue(cid, stosys, 0) -- Desabilita doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "O log de quem entrou e saiu foi desativado.") doSendMagicEffect(getCreaturePosition(cid), 39) return true end if getPlayerStorageValue(cid, stosys) <= 0 then -- Se estiver desabilitado setPlayerStorageValue(cid, stosys, 1) -- Habilita doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_GREEN, "O log de quem entrou e saiu foi ativado.") doSendMagicEffect(getCreaturePosition(cid), 40) return true end else -- Se o comando tiver param, exemplo (/toggleentrousaiu param1 param2 ou /toggleentrousaiu param1). doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Digite apenas /toggleentrousaiu.") doSendMagicEffect(getCreaturePosition(cid), 2) return false end return false end E no login.lua para quando logar ficar desabilitado use assim: setPlayerStorageValue(cid, 50514, 0)
-
[Duvida] Error no (Script Login)+(Inventario)
Me parece um bug com seus items iniciais serem unique... teste esse script: Obs: personagens antigos continuarão bugados, delete e crie novo personagem. local config = { loginMessage = getConfigValue('loginMessage'), useFragHandler = getBooleanFromString(getConfigValue('useFragHandler')) } function BetaItem(cid) if getPlayerStorageValue(cid, storages.betaStorage) == -1 then addPokeToPlayer(cid, "Squirtle", 0, nil, "poke", true) addPokeToPlayer(cid, "Charmander", 0, nil, "poke", true) addPokeToPlayer(cid, "Bulbasaur", 0, nil, "poke", true) setPlayerStorageValue(cid, storages.betaStorage, 1) doSendMsg(cid, "Você ganhou um Pack Inicial.") end end function AutoLootinit(cid) if getPlayerStorageValue (cid, storages.AutoLootCollectAll) == -1 then setPlayerStorageValue(cid, storages.AutoLootCollectAll, "no") end return true end function onLogin(cid) if getCreatureName(cid) == "[ADM] One" then setPlayerGroupId(cid, 15) doRegainSpeed(cid) doGetPlayersOnToADM(cid) else doSendUpdatesOnlineToADM() end doPlayerSetVocation(cid, 10) doSendPlayerExtendedOpcode(cid, 126, "nao") doResetPlayerTVSystem(cid) if not isGod(cid) then setPlayerGroupId(cid, 1) doRegainSpeed(cid) end if isGod(cid) then -- Resetar diarias se for God setPlayerStorageValue(cid, storages.miniQuests.storDayTask1, -1) setPlayerStorageValue(cid, storages.miniQuests.storDayTask2, -1) setPlayerStorageValue(cid, storages.miniQuests.storDayTask3, -1) setPlayerStorageValue(cid, storages.miniQuests.storDayTask4, -1) end if getPlayerLevel(cid) >= 1 and getPlayerLevel(cid) <= 10 then doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, 0) else doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, (getPlayerLevel(cid) >= 200 and 100 or math.floor(getPlayerLevel(cid)/2)) ) end doRegainSpeed(cid) --////// storages \\\\\\-- doEreaseDuel(cid) setPlayerStorageValue(cid, 500, -1) setPlayerStorageValue(cid, 8085, 0) --// duel setPlayerStorageValue(cid, storages.requestCountPlayer, 0) setPlayerStorageValue(cid, storages.requestCountPokemon, 0) setPlayerStorageValue(cid, storages.requestedPlayer, 0) --// duel --////// storages \\\\\\-- --////// Eventos \\\\\\-- registerCreatureEvent(cid, "ShowPokedex") registerCreatureEvent(cid, "ClosePokedex") registerCreatureEvent(cid, "Mail") registerCreatureEvent(cid, "WildAttack") registerCreatureEvent(cid, "GuildMotd") registerCreatureEvent(cid, "Idle") registerCreatureEvent(cid, "ReportBug") registerCreatureEvent(cid, "AdvanceSave") --Adicionados \/ registerCreatureEvent(cid, "PlayerLogout") registerCreatureEvent(cid, "LookSystem") registerCreatureEvent(cid, "Opcode") registerCreatureEvent(cid, "EmeraldShop") registerCreatureEvent(cid, "PokeStats") registerCreatureEvent(cid, "PokeWalk") registerCreatureEvent(cid, "PokeSleep") registerCreatureEvent(cid, "MoveItem") registerCreatureEvent(cid, "task_count") registerCreatureEvent(cid, "UpLevel") registerCreatureEvent(cid, "BlockWords") --registerCreatureEvent(cid, "PartySystem") registerCreatureEvent(cid, "Target") registerCreatureEvent(cid, "GeneralConfiguration") registerCreatureEvent(cid, "EffectOnAdvance") registerCreatureEvent(cid, "TradeRequest") registerCreatureEvent(cid, "TradeAccpet") registerCreatureEvent(cid, "KillTask") --////// Eventos \\\\\\-- if(not isPlayerGhost(cid)) then doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT) end local legs = getPlayerSlotItem(cid, CONST_SLOT_LEGS) local ball = getPlayerSlotItem(cid, 8) if getPlayerSlotItem(cid, CONST_SLOT_FEET).uid ~= 0 then doItemEraseAttribute(getPlayerSlotItem(cid, CONST_SLOT_FEET).uid, "healthChanged") end --doOTCSendPokemonHealth(cid) --doClearPokemonStatus(cid) if isRiderOrFlyOrSurf(cid) and ball.uid ~= 0 then local pokeName = getItemAttribute(ball.uid, "poke") if isInArray({"ditto", "shiny ditto"}, pokeName:lower()) then pokeName = getItemAttribute(ball.uid, "copyName") end local outfit = getPokemonOutfitToSkill(pokeName) local speed = getPokemonSpeedToSkill(pokeName) doSetCreatureOutfit(cid, {lookType = outfit + 351}, -1) doChangeSpeed(cid, -getCreatureSpeed(cid)) doChangeSpeed(cid, speed) if isRider(cid) then setPlayerStorageValue(cid, orderTalks["ride"].storage, 1) elseif isFly(cid) then setPlayerStorageValue(cid, orderTalks["fly"].storage, 1) if not hasSqm(getThingPos(cid)) then -- doCreateItem(460, 1, getThingPos(cid)) end elseif isSurf(cid) then setPlayerStorageValue(cid, orderTalks["surf"].storage, 1) -- rever o markedPos doChangeSpeed(cid, -getCreatureSpeed(cid)) doChangeSpeed(cid, getPlayerStorageValue(cid, 54844)) end doTeleportThing(cid, getMarkedSpawnPos(cid)) setPokemonGhost(cid) end setPlayerStorageValue(cid, storages.gobackDelay, -1) setPlayerStorageValue(cid, storages.pokedexDelay, -1) setPlayerStorageValue(cid, 154585, -1) doAddFirstItemsToPlayer(cid) BetaItem(cid) AutoLootinit(cid) --doAddShoppingItem(cid) -- otclient life doSendLifePokeToOTC(cid) -- otclient life return true end function doAddFirstItemsToPlayer(cid) local config = { storage = 30001, items = {1988, 1987, 2382, 2120, 2550, 2580, 7385, 2395} -- 7385 (pokeinfo) -- 2395 (portfoil) ok -- 2382 (pokedex) ok -- 2550 (order) ok -- 1987 (bag) ok -- 1988 (badge case) ok -- 2120 (rope) ok -- 2580 (fishing rod) ok } setPlayerCap(cid, 7) if getCreatureName(cid) == "Account Manager" then doSetCreatureOutfit(cid, {lookType = 1007}, -1) return true end if getPlayerStorageValue(cid, storages.BugFishing) ~= -1 then return true end if getPlayerSlotItem(cid, CONST_SLOT_ARMOR).itemid > 0 then return true end for _, id in ipairs(config.items) do doPlayerAddItem(cid, id, 1) end local bag = getPlayerItemById(cid, false, 1988).uid doAddContainerItem(bag, 12267, 1) doAddContainerItem(bag, 12266, 1) doAddContainerItem(bag, 12264, 1) doAddContainerItem(bag, 12265, 1) doAddContainerItem(bag, 12263, 1) doAddContainerItem(bag, 12262, 1) doAddContainerItem(bag, 12261, 1) doAddContainerItem(bag, 12260, 1) setPlayerStorageValue(cid, duelTable.wins, 0) setPlayerStorageValue(cid, duelTable.loses, 0) local pokeBag = getPlayerItemById(cid, false, 1987).uid addItemInFreeBag(pokeBag, 12346, 10) addItemInFreeBag(pokeBag, 2394, 20) addItemInFreeBag(pokeBag, 2392, 5) setPlayerStorageValue(cid, storages.BugFishing, 1) doTeleportThing(cid, getTownTemplePosition(1), false) ---Corrigindo vida caso o playe relogue --- local health = 10000 -- vida que voce colocou no robo.lua if getPlayerStorageValue(cid, 92001) >= 1 then setPlayerStorageValue(cid, 92001, 0) setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)-health)-- linha adicionada by crypter end return true end local itensShopping = { [1] = {{2394, 100}, {12344, 25}, {12286, 2}}, [2] = {{2391, 200}, {2393, 100}, {2392, 100}}, [3] = {{12832, 1}}, [4] = {{12286, 1}}, [5] = {premiumDays = 30} } function doAddShoppingItem(cid) local allItems = {} local compra = 0 local msg = "" local result = db.getResult("SELECT itemID, compraID FROM playercompras WHERE playerID = '" .. getPlayerGUID(cid) .. "' AND entregue = 0") if result:getID() ~= -1 then compra = result:getDataInt("compraID") allItems[#allItems+1] = result:getDataInt("itemID") db.executeQuery("UPDATE playercompras SET entregue = 13 WHERE compraID = ".. compra ..";") while(result:next()) do allItems[#allItems+1] = result:getDataInt("itemID") compra = result:getDataInt("compraID") db.executeQuery("UPDATE playercompras SET entregue = 13 WHERE compraID = ".. compra ..";") end end if #allItems > 0 then for i = 1, #allItems do if allItems[i] == 5 then doPlayerAddPremiumDays(cid, itensShopping[allItems[i]].premiumDays) msg = "Seu pacote de '30 premium days' foi adicionado a sua conta com sucesso!" doSendMsg(cid, msg) else local bag = doCreateItemEx(12694) -- cubone bag de gratis for j = 1, #itensShopping[allItems[i]] do doAddContainerItem(bag, itensShopping[allItems[i]][j][1], itensShopping[allItems[i]][j][2]) end doPlayerSendMailByName(getCreatureName(cid), bag, 1) msg = "Os itens que foram comprados pelo shopping foram enviados para seu cp." doSendMsg(cid, msg) end end end end function addSkillsToDB(cid) local str1 = "INSERT INTO player_skills (player_id, skillid, value, count) VALUES (" .. getPlayerGUID(cid) .. ", 5, 5, 0);" local str2 = "INSERT INTO player_skills (player_id, skillid, value, count) VALUES (" .. getPlayerGUID(cid) .. ", 6, 5, 0);" db.executeQuery(str1) db.executeQuery(str2) end
- Launcher AutoUpdate C#
-
script de shiny stone e boost stone
Boost stone: function onUse(cid, item, topos, item2, frompos) local myball = getPlayerSlotItem(cid, 8) local boost = getItemAttribute(myball.uid, "boost") or 0 local boosts = 0 local summon = getCreatureSummons(cid)[1] local lvfalha = 5 local chancefail = 50 if boost >= 50 then return doPlayerSendCancel(cid, "[BOOST VIP] Seu Pokemon Esta No Boost Maximo!.") end if #getCreatureSummons(cid) >= 1 then if boost > lvfalha then local qqq = math.random(1, 100) if qqq > chancefail then doSendAnimatedText(getThingPos(summon), "Fail!", 215) doPlayerSendTextMessage(cid, 27, "Sua boost stone falhou! [".. qqq .."/50]") doRemoveItem(item.uid, 1) return true end end boosts = boosts + 1 ----- Testar Ainda local pokemon = getItemAttribute(myball.uid, "poke") local off = pokes[pokemon].offense * boost_rate * boosts local def = pokes[pokemon].defense * boost_rate * boosts local agi = pokes[pokemon].agility * boosts local spatk = pokes[pokemon].specialattack * boost_rate * boosts local vit = pokes[pokemon].vitality * boost_rate * boosts doSetItemAttribute(myball.uid, "boost", boost + boosts) doItemSetAttribute(myball.uid, "offense", getItemAttribute(myball.uid, "offense") + off) doItemSetAttribute(myball.uid, "defense", getItemAttribute(myball.uid, "defense") + def) doItemSetAttribute(myball.uid, "speed", getItemAttribute(myball.uid, "speed") + agi) doItemSetAttribute(myball.uid, "specialattack", getItemAttribute(myball.uid, "specialattack") + spatk) doItemSetAttribute(myball.uid, "vitality", getItemAttribute(myball.uid, "vitality") + vit) doRemoveItem(item.uid, 1) doSendFlareEffect(getThingPos(cid)) doSendFlareEffect(getThingPos(summon)) doSendAnimatedText(getThingPos(summon), "Boost UP!", 215) doPlayerSendTextMessage(cid, 27, "[BOOST VIP] Parabens, Seu Pokemon "..pokemon..", Foi Boostado .") doPlayerSendTextMessage(cid, 27, "[BOOST VIP] Agora Seu Pokemon "..pokemon.." Esta com o Boost +["..boosts + boost.."].") else return doPlayerSendCancel(cid, "[BOOST VIP] So Pode Usar em Seus Pokemons!.") end return true end Poste o script da sua shiny stone!
-
(Resolvido)Erro RME NTO
Funcionou vlw! rep +
-
[Talkactions] !fly
function onSay(cid, words, param) pos = {x=1054, y=1050, z=7} if getCreatureCondition(cid, CONDITION_INFIGHT) then doPlayerSendCancel(cid, "Nao ira fugir quando estiver de battle!") return true end if getTilePzInfo(getCreaturePosition(cid)) == FALSE then doPlayerSendTextMessage(cid,22,"Você Precisa estar em Protection Zone!") return true end doSendMagicEffect(getPlayerPosition(cid),19) doPlayerSendCancel(cid,"Teleportado!") doTeleportThing(cid,pos) return true end
-
[Talkactions] !fly
Só modificar a coordenada ali pra onde deve teleportar... function onSay(cid, words, param) pos = {x=1054, y=1050, z=7} if getCreatureCondition(cid, CONDITION_INFIGHT) then doPlayerSendCancel(cid, "Nao ira fugir quando estiver de battle!") return true end doSendMagicEffect(getPlayerPosition(cid),19) doPlayerSendCancel(cid,"Teleportado!") doTeleportThing(cid,pos) return true end
-
Lugar da flecha abaixo do esculdo
Basta colocar essa tag no items.xml para o desejado item: <attribute key="slotType" value="ammo" />
-
script de shiny stone e boost stone
Shiny stone teria que ter um bom conhecimento na sua base... Boost stone posta seu script q eu arrumo pra vc, ja aproveita e fala a partir de qual boost pode falhar, e a percentagem de falha
-
(Resolvido)Tempo para usar novamente [MOD]
Obs: Não testei... local config = { rate = 1, storage = 1011, expstorage = 1111, register = 1211, waitsto = 8445601, waittime = 1800, time = 3600, } function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerStorageValue(cid, config.storage) <= 0 then if getPlayerStorageValue(cid, config.waitsto) >= os.time() + 1 then doCreatureSay(cid, "You should wait 30 minutes after the last exp condition to start another exp condition!", TALKTYPE_ORANGE_1, true, cid) return true end setPlayerStorageValue(cid, config.waitsto, os.time() + config.waittime) local rates = getPlayerRates(cid) setPlayerStorageValue(cid, config.expstorage, rates[SKILL__LEVEL]) setPlayerStorageValue(cid, config.register, 1) itemEx=itemid == 2345 doCreatureSay(cid, "Your extra experience rate has been activated! It now is: " .. config.rate .. "x added to your former experience rate.", TALKTYPE_ORANGE_1, true, cid) setPlayerStorageValue(cid, config.storage, os.time()+config.time) doPlayerSetExperienceRate(cid, rates[SKILL__LEVEL]+config.rate) doRemoveItem(item.uid,1) registerCreatureEvent(cid, "ExpStage") else doCreatureSay(cid, "You must finish first exp condition to start other exp condition !", TALKTYPE_ORANGE_1, true, cid) end return true end function onThink(cid, interval) if getPlayerStorageValue(cid, config.register) == 1 then if getPlayerStorageValue(cid, config.storage) <= os.time() then doCreatureSay(cid, "Your extra experience rate has finished! It is now normaly experience rate.", TALKTYPE_ORANGE_1, true, cid) setPlayerStorageValue(cid, config.storage, 0) setPlayerStorageValue(cid, config.register, 0) local oldexp = getPlayerStorageValue(cid, config.expstorage) doPlayerSetExperienceRate(cid, oldexp) unregisterCreatureEvent(cid, "ExpStage") end end return true end function onLogin(cid) if getPlayerStorageValue(cid, config.register) == 1 then registerCreatureEvent(cid, "ExpStage") local rates = getPlayerRates(cid) doCreatureSay(cid, "Your extra experience rate is still here! It is: " .. config.rate .. "x added to your former experience rate.", TALKTYPE_ORANGE_1, true, cid) if getPlayerStorageValue(cid, config.storage) > os.time() then local oldexp = getPlayerStorageValue(cid, config.expstorage) doPlayerSetExperienceRate(cid, oldexp+config.rate) end end return true end
-
(Resolvido)Script Error (doPlayerSetStorageValue)
Nunca trabalhei com TFS 1.2 mas tente mudar o "doPlayerSetStorageValue" para "setPlayerStorageValue"
-
(Resolvido)Função verificar storage
Bom meu sistema está funcionando graças a você, valeu mesmo!
-
(Resolvido)Função verificar storage
-
(Resolvido)Função verificar storage
Não foi um erro? rsrs Achei estranho pois vc criou a função getPlayersFromStorage(storage, value) e usou de exemplo de uso local x = getPlayersFromStorage(10023, getPlayerGUID(cid)) Ou seja, a função iria buscar por uma storage com o ID do player
-
(Resolvido)Função verificar storage
hehe vc nao entendeu pq n viu como usei. Segue parte do meu código para que você entenda: local numero = tonumber(msg) if numero >= 101 then selfSay("Somente números de {1} a {100}.", cid) talkState[talkUser] = 2 return true end local x = getPlayersFromStorage(8449500, numero) if not x then if doPlayerRemoveItem(cid, 2159, 1) then apostar(cid, numero) selfSay("Você apostou no número {".. msg .."}. Boa sorte!", cid) talkState[talkUser] = 0 return true else selfSay("Você não tem {1 Diamante} para apostar.", cid) talkState[talkUser] = 0 return true end else selfSay("Alguém já apostou nesse número, escolha outro!", cid) talkState[talkUser] = 2 return true end A parte de retornar o nome de quem usou o mesmo número, será usado em outro script do mesmo sistema
-
(Resolvido)Função verificar storage
Funcionou cara! Vlw mesmo! Obs: você cometeu um pequeno erro ali rsrs local x = getPlayersFromStorage(10023, getPlayerGUID(cid)) seria local x = getPlayersFromStorage(10023, 53) Mas funcionou bem como eu precisava!
-
(Resolvido)Função verificar storage
Acho que não entendi muito bem.... Irei explicar como vou usar: Estaria criando essa função em uma lib, para um NPC chamar ela de acordo com o numero que o player der por exempo: verificar(10023, ".. numero do player ..") Se já existir algum player com esse numero na storage 10023, a função retorna o nome do player, se não existir, a função retorna false para que o NPC prossiga e registre esse número no player, ou seja, nunca poderá ter 2 players com o mesmo valor nessa storage. @Vodkart eu tentei assim, mas não funciona: function jatem(sto, valor) local query = db.getResult("SELECT `player_id` FROM `player_storage` WHERE `key` = "..sto.." AND 'value' = "..valor.."") local aa = getPlayerNameByGUID(query:getDataString("player_id")) if aa then bb = getPlayerNameByGUID(query:getDataString("player_id")) else bb = false end return bb end
-
(Resolvido)Função verificar storage
Olá galera, estou desenvolvendo pro meu servidor um sistema o qual não faz diferença dizer qual é, onde engalhei numa parte e gostaria de ver se alguém poderia me ajudar. Preciso de uma função que checa na minha database, se existe algum player que tenha o valor X na storage Y. Por exemplo: Como sou péssimo quando se fala de query, não consegui fazer essa função, alguém poderia por favor me ajudar? Se possível, retornar o nome do jogador que possui tal valor na storage. Obs: Servidor SQlite
-
(Resolvido)Erro RME NTO
Bom galera sempre fui azarado para mexer no RME.. estou editando um servidor de NTO e ao tentar abrir o mapa, me deparo com esse erro: Couldn't load tibia.dat: Unknown .dat format version. Couldn't load client version. E quando abre o mapa, vários items estão com spr trocada. Obs¹: Client old (não é extended) Obs²: RME 2.2
-
ACTION QUEST
local tppos = {x=1023,y=1023,z=7} local exp = 1000000 -- Quanto de experience o player irá ganhar?! local default = {2090} local vocs = {7440,7440,7443,7439,7440,7440,7443,7439} function onUse(cid, item, fromPosition, itemEx, toPosition) doPlayerAddLevel(cid, 2) for x,i in pairs(default) do doPlayerAddItem(cid,i) end local bp = doPlayerAddItem(cid,5801,1) local gala = math.random(1,200) doAddContainerItem(bp, 2152, gala) doAddContainerItem(bp, vocs[getPlayerVocation(cid)], 2) local ret = "" for x,i in pairs(default) do if x == 1 then ret = "1 " .. getItemNameById(i) else ret = ret .. ", 1 " ..getItemNameById(i) end end for x,i in pairs(getPlayersOnline()) do doPlayerSendTextMessage(i,19, "O jogador (" .. getPlayerName(cid).. ") completou o (Evento): e ganhou 2 Nivel, 1 Chave de Addons, 2 "..getItemNameById(vocs[getPlayerVocation(cid)]).." , "..gala.." platinum coins!.") end doTeleportThing(cid,tppos) doSendAnimatedText(getPlayerPosition(cid), "Parabéns!", TEXTCOLOR_YELLOW) doSendMagicEffect(getCreaturePosition(cid), math.random(28,28)) doSendMagicEffect(tppos,10) return true end
-
ACTION QUEST
Cara, você fez um script complexo demais para pouca coisa, e percebi que você colocou duas vezes a mesma função, que foi o que gerou o transtorno... tente assim: local tppos = {x=1023,y=1023,z=7} local exp = 1000000 -- Quanto de experience o player irá ganhar?! local default = {2090} local vocs = {7440,7440,7443,7439,7440,7440,7443,7439} function onUse(cid, item, fromPosition, itemEx, toPosition) doPlayerAddLevel(cid, 2) for x,i in pairs(default) do doPlayerAddItem(cid,i) end local bp = doPlayerAddItem(cid,5801,1) local gala = math.random(1,200) for x = 2, gala do doAddContainerItem(bp, 2152, 1) end local add = math.random(1,100) doAddContainerItem(bp, 2152, gala) doAddContainerItem(bp, vocs[getPlayerVocation(cid)], 2) local ret = "" for x,i in pairs(default) do if x == 1 then ret = "1 " .. getItemNameById(i) else ret = ret .. ", 1 " ..getItemNameById(i) end end for x,i in pairs(getPlayersOnline()) do doPlayerSendTextMessage(i,19, "O jogador (" .. getPlayerName(cid).. ") completou o (Evento): e ganhou 2 Nivel, 1 Chave de Addons, 2 "..getItemNameById(vocs[getPlayerVocation(cid)]).." , "..gala.." platinum coins!.") end doTeleportThing(cid,tppos) doSendAnimatedText(getPlayerPosition(cid), "Parabéns!", TEXTCOLOR_YELLOW) doSendMagicEffect(getCreaturePosition(cid), math.random(28,28)) doSendMagicEffect(tppos,10) return true end
-
ACTION QUEST
Esse script ta complicado de mais, me diga que cálculo ele deve fazer
-
Vip Storage Bugada
if string.find(tostring(getCreatureName(cid)),"[[Vip]]") then \/ if string.find(tostring(getCreatureName(cid)),"[Vip]") then
-
Erros na distro envolvendo npc.
A parte doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) mude para doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
-
(Resolvido)Aprender e desaprender spell
No XML das spells que irão precisar do learn, adicione a tag needlearn="1" No seu creaturescript ou seja lá como for fazer para liberar as spells, você vai usar esse comando: doPlayerLearnInstantSpell(cid, spell name)