se tu tiver as sources do teu serv e souber mexer um pouco nelas da pra fazer isso ae...
vai em monsters.cpp e acha essa parte:
if(readXMLInteger(node, "count", intValue) || readXMLInteger(node, "countmax", intValue))
lootBlock.count = std::max(1, std::min(100, intValue));
else
lootBlock.count = 1;
dai eh soh saber oq ta fazendo ^^ -ps: o loot maximo eh de 100 [std::min(100, intValue)]... em tese, n adianta tu botar 143 -
quando eu abro o cliente e o ip changer fala que não tem tíbia aberto, vc sabe o que tenho que fazer? pq o server abre normalmente mas n consigo entrar por causa do cliente
esse erro ocorre quando um evento ocorre sem parar ate um ponto q quase esgota a memoria destinada a ele... -algu +/- assim-
por exemplo:
tu usa um onOutfit e dentro dele tu troca a outfit da criatura tb... ou seja, vai ficar chamando o evento onOutfit sem parar...
esse teu erro de movement ae deve ser pq ta executando um onStepIn q ta teleportando o player pra cima do ms tile denovo...
tens q analisar teus scripts de movement ae e ve oq ta causando isso ;p
eu tinha feito aki no serv q eu tinha começado do zero, mas parece q quando formatei o pc eu acabei salvando uma versao antiga das sources e dai n tenhu mais essa ediçao aki... mas se n me engano eu fiz assim...
realmente n eh preciso checar se tem player por perto pra mandar os eventos quando o serv ta iniciando... entao o melhor jeito de fazer essa ediçao eh esse ae, pelo menos pra mim, executando soh o evento no proprio monstro... com isso, vai disparar o onSpawn... -em tese, n lembro se foi assim q fiz antes...-
/\ lockers funcionam de jeito diferente doq containers... da pra criar uma funçao pra pegar os itens dentro do locker e dai tu ms transformar as balls ^^
/\ provavelmente tu fez 'caca' ali na hora de apagar a parte do spawn.cpp... na real, apagar aquela parte n eh a melhor opçao... eu colocaria um else ali.. ;p
if string.find(name, "Shiny") then
doCreateMonsterNick(name, name:match("Shiny (.*)"), getThingPos(cid))
else
doCreateMonster(name, getThingPos(cid))
end
algu +/- assim eu achu... -no caso o 'name' ali seria o nome do poke q vai ser invocado...-
@zipter
no pda pelo menos eh usado essa funçao:
function doCorrectString(str)
local name = str:explode(" ")
local final = {}
for _, s in ipairs(name) do
table.insert(final, s:sub(1, 1):upper()..s:sub(2, #s):lower())
end
return table.concat(final, (name[2] and " " or ""))
end
soh devem ter esquecido dela '--'
a passiva do crobat eh a unica exceção...
creaturescript/scripts/exp2.0.lua
--------------Passiva Lifesteal Clobat------------
if combat == COMBAT_PHYSICALDAMAGE then
if getCreatureName(attacker) == "Crobat" then
doCreatureAddHealth(attacker, math.floor(valor))
doSendAnimatedText(getThingPos(attacker), "+ "..math.floor(valor), 30)
end
end
eu n botei ele ae na tabela de chances pq a passiva dele eh 100%... -mas realmente deveria de botado ali para facilitar... fail pra mim...-
tua linha 98 tem isso...
local levelChance = getItemAttribute(corpse, "level") * 0.02
o problema n parece ser por causa do catch 201 e sim no corpse do zard ;x
se ta usando o meu sistema entao tem q ir em lib/catch system.lua e achar isso...
if pokes[getPlayerStorageValue(cid, 854788)] and name == getPlayerStorageValue(cid, 854788) then
rate = 15
end
pelo q lembro, qnt maior o numero ae mais facil fica... gl...
n faltou dizer exatamente aonde por a ultima parte ali? ;x achu q pulasse uma coisa kk'
e seria bom da um exemplo de como usar.. e mostrar como fica a tag tb xD
de resto, ta brincando bastante nas sources heim? kk'
riri agora intendem um pouco oq eu passei neh? kk'
@topic
como ja flaram, ou acha o q ta rolando pela net ou estuda o options... n eh la muito dificil.. mas bem q o esquema do options eh meio chatinhu ;p gl
@Audisio
1* vc fez um script onKill mas mando uma tag de onDeath
2* tem um 'end' a + no script
3* vc n mencionou q tem q adicionar o registerCreatureEvent no login.lua
@Shoguns
vc simplismente quis aumentar teus posts neh? u,U
@topic
tenta assim...
local chance = 5 --chance de dropar... pode por numeros como 0.5 tb...
function onKill(cid, target)
if math.random(1000) <= chance*10 then
doPlayerAddItem(cid, ID do ITEM, 1)
end
return TRUE
end
tag:
<event type="kill" name="Drop" script="drop.lua"/>
poe isso no login.lua -poe perto de outras linhas parecidas-:
registerCreatureEvent(cid, "Drop")
otima explicaçao LF '--' eu realmente achu q todo mundo q quer aprender lua deveria ler o manual lua todo kk' mas sua explicaçao realmente ficou muito boa, e esses interadores podem ser realmente uteis em alguns casos... ;p