BlackTibia

No estás conectado. Conéctate o registrate

 » Open Tibia » Pedido de Scripts » 

Como agregar una condicion a un talk

Como agregar una condicion a un talk

#1 Como agregar una condicion a un talk el Lun Abr 21, 2014 8:08 pm

Flaius


Novato
Hola tengo el script de blessing

Código:
 function onSay(cid, words, param, channel)
   if(param == '') then
      doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.")
      return true
   end

   local t = string.explode(param, ",")
   if(not t[2]) then
      doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Not enough params.")
      return true
   end

   local pid = getPlayerByNameWildcard(t[1])
   if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then
      doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player " .. t[1] .. " not found.")
      return true
   end

   t[2] = t[2]:lower()
   local blessing = BLESS_IDS[t[2]]
   if(not blessing) then
      blessing = tonumber(t[2])
      if(not blessing or blessing < BLESS_FIRST or blessing > BLESS_LAST) then
         doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "This bless not found.")
         return true
      end
   end

   doPlayerAddBlessing(pid, blessing)
   doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_BLUE)
   return true
end
 

Y quisiera saber como agregarle esta condicion, para que se refleje al hacer blessing
Código:
 local condition = createConditionObject(CONDITION_POISON)

Espero su ayuda, gracias

#2 Re: Como agregar una condicion a un talk el Lun Abr 21, 2014 8:23 pm

Sirakx


Moderador
Código:

-- !blessing by leo
local cost = 50000 -- Cost in gp.

function onSay(cid, words, param)

local condition = createConditionObject(CONDITION_POISON)
setConditionParam(condition, CONDITION_PARAM_DELAYED, 1)


if getPlayerBlessing(cid, 5) == TRUE then
doPlayerSendCancel(cid, "You have already have been blessed.")
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
return TRUE
end

if doPlayerRemoveMoney(cid, cost) == TRUE then
doPlayerAddBlessing(cid, 1)
doPlayerAddBlessing(cid, 2)
doPlayerAddBlessing(cid, 3)
doPlayerAddBlessing(cid, 4)
doPlayerAddBlessing(cid, 5)
doAddCondition(cid, condition)
doSendAnimatedText(getCreaturePosition(cid), 'Blessed!!!', TEXTCOLOR_WHITE)
return TRUE
else
doPlayerPopupFYI(cid, "You need to have "..cost.."gp to buy blessings.")
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
return TRUE
end
end

http://celesta-global.net/

#3 Re: Como agregar una condicion a un talk el Lun Abr 21, 2014 8:33 pm

Flaius


Novato
Hola, gracias por responder, pero no la agrega

[Tienes que estar registrado y conectado para ver esa imagen]

#4 Re: Como agregar una condicion a un talk el Lun Abr 21, 2014 8:42 pm

Black Prada


Miembro
tu pides algo como el bless de necroxia creo vdd

#5 Re: Como agregar una condicion a un talk el Lun Abr 21, 2014 8:48 pm

Flaius


Novato
@Up si, algo asi pero en el poison

#6 Re: Como agregar una condicion a un talk el Mar Abr 22, 2014 2:53 am

Muzstang


Scripter
Código:
-- !blessing by leo
local cost = 50000 -- Cost in gp.

function onSay(cid, words, param)

if getPlayerBlessing(cid, 5) == TRUE then
doPlayerSendCancel(cid, "You have already have been blessed.")
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
return TRUE
end

local poison = createConditionObject(CONDITION_POISON)
addDamageCondition(poison, 1, 1 * 60 * 1000, 0)

if doPlayerRemoveMoney(cid, cost) == TRUE then
doPlayerAddBlessing(cid, 1)
doPlayerAddBlessing(cid, 2)
doPlayerAddBlessing(cid, 3)
doPlayerAddBlessing(cid, 4)
doPlayerAddBlessing(cid, 5)
doAddCondition(cid, poison)
doSendAnimatedText(getCreaturePosition(cid), 'Blessed!!!', TEXTCOLOR_WHITE)
return TRUE
else
doPlayerPopupFYI(cid, "You need to have "..cost.."gp to buy blessings.")
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
return TRUE
end
end

Editas el tiempo a tu gusto.

Ejemplo: si quieres 2 minutos seria 2 * 60 * 1000

#7 Re: Como agregar una condicion a un talk el Mar Abr 22, 2014 4:55 am

Sirakx


Moderador
[Tienes que estar registrado y conectado para ver este vínculo] escribió:@up Gracias por responder, pero aun no sirve :l

Solamente funcionara si no tienes el bless ya puesto.

El mio creo que si esta mal prueba el de sheenita.

http://celesta-global.net/

#8 Re: Como agregar una condicion a un talk el Mar Abr 22, 2014 5:02 am

Flaius


Novato
@Up esta bien el de Sheenita , gracias, pero se quita el logiar, quisiera que durara permanente, hasta que muera el player

#9 Re: Como agregar una condicion a un talk el Mar Abr 22, 2014 5:06 am

Muzstang


Scripter
Eso necesita un storage y scripts en creaturescripts (onDeath) y (onLogin), si puedes Rakzzo hacelo tu ando ocupado ahorita si no ahi me avisas Flaius y mas tarde o mañana te lo hago.

#10 Re: Como agregar una condicion a un talk el Mar Abr 22, 2014 7:14 am

Sirakx


Moderador
Bueno pues aquí esta,  pues la verdad en mi server no se por que no funciona bien al asignarles una condition a un player y en esta parte addDamageCondition(poison, 1, 1 * 60 * 1000, 0) del script de sheenita me marca error así que la cambie, no se si te funcione pero ami si me daba la condition, pero te digo que en mi server no se por que me agrega diferentes conditions, no me da la que realmente le asigno al script pero aquí te lo dejo, tal vez en tu server si funcione, y no soy muy bueno con esto de las condiction por lo mismo que en mi server lo jala mal.

este es el nuevo bless.lua

Código:

local cost = 50000 -- Cost in gp.
local condition = createConditionObject(CONDITION_POISON)
setConditionParam(condition, CONDITION_PARAM_PERIODICDAMAGE, -20)
setConditionParam(condition, CONDITION_PARAM_TICKS, 1*60*1000)
function onSay(cid, words, param)
    if getPlayerBlessing(cid, 5) == TRUE then
        doPlayerSendCancel(cid, "You have already have been blessed.")
        doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
        return true
    end
    if doPlayerRemoveMoney(cid, cost) == true then
        doPlayerAddBlessing(cid, 1)
        doPlayerAddBlessing(cid, 2)
        doPlayerAddBlessing(cid, 3)
        doPlayerAddBlessing(cid, 4)
        doPlayerAddBlessing(cid, 5)
        doAddCondition(cid, condition)
        doPlayerSetStorageValue(cid,70151,1)
        doSendAnimatedText(getCreaturePosition(cid), 'Blessed!!!', TEXTCOLOR_WHITE)
        return true
    else
        doPlayerPopupFYI(cid, "You need to have "..cost.."gp to buy blessings.")
        doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
        return true
    end
end

ahora vas a data/creaturescripts/scripts y abres login.lua y abajo function onLogin(cid) pones esto
Código:

   local condition = createConditionObject(CONDITION_POISON)
      setConditionParam(condition, CONDITION_PARAM_PERIODICDAMAGE, -20)
      setConditionParam(condition, CONDITION_PARAM_TICKS, 1*60*1000)
   if getPlayerStorageValue(cid,70151) > 0 then
      doAddCondition(cid, condition)
   end

ahora ahí mismo en login.lua agregas esto:
Código:

registerCreatureEvent(cid, "poison")

en creaturescripts/script creas un archivo lua llamado poisondeath.lua y dentro pones esto:

Código:

function onDeath(cid)
if getPlayerStorageValue(cid,70151) >= 1 then
    doPlayerSetStorageValue(cid,70151, -1)
end
return true
end

y en creaturescript.xml pones esto:

Código:

<event type="death" name="poison" event="script" value="poisondeath.lua"/>  

para que funcione el script necesitas reiniciar el server y comprar de nuevo el bless.



Última edición por God Rakzzo el Mar Abr 22, 2014 11:08 pm, editado 1 vez

http://celesta-global.net/

#11 Re: Como agregar una condicion a un talk el Mar Abr 22, 2014 6:28 pm

Flaius


Novato
Esta bien, pero la condicion es como que random, no es la de poison, siempre que logea y conecta sale otra diferente :/ no es solo la de poison como la necesito, gracias por responder.

[Tienes que estar registrado y conectado para ver esa imagen]

[Tienes que estar registrado y conectado para ver esa imagen]

[Tienes que estar registrado y conectado para ver esa imagen]

[Tienes que estar registrado y conectado para ver esa imagen]

[Tienes que estar registrado y conectado para ver esa imagen]

#12 Re: Como agregar una condicion a un talk el Mar Abr 22, 2014 11:01 pm

Muzstang


Scripter
[Tienes que estar registrado y conectado para ver este vínculo] escribió:Esta bien, pero la condicion es como que random, no es la de poison, siempre que logea y conecta sale otra diferente :/ no es solo la de poison como la necesito, gracias por responder.


Que usas TFS u OTx?

#13 Re: Como agregar una condicion a un talk el Mar Abr 22, 2014 11:16 pm

Sirakx


Moderador
[Tienes que estar registrado y conectado para ver este vínculo] escribió:Esta bien, pero la condicion es como que random, no es la de poison, siempre que logea y conecta sale otra diferente :/ no es solo la de poison como la necesito, gracias por responder.

ya compuse un poco el script.

Pero aun así sigue con el random de condictions no se ah que se deba.

Sheenita escribió:

Que usas TFS u OTx?

sheenita yo uso otx 2.90 y la verdad creo que hay algo mal por ahi por que con el comando !bless si agarra bien el condiction pero cuando logea y entra empieza con el random de condiction y eso es lo raro por que el condiction es el mismo

sheenita orita que me acuerdo dame [pro] en tu server jajaja soy 830 mi name is sirakx

http://celesta-global.net/

#14 Re: Como agregar una condicion a un talk el Mar Abr 22, 2014 11:45 pm

Flaius


Novato
Sheenita escribió:
[Tienes que estar registrado y conectado para ver este vínculo] escribió:Esta bien, pero la condicion es como que random, no es la de poison, siempre que logea y conecta sale otra diferente :/ no es solo la de poison como la necesito, gracias por responder.


Que usas TFS u OTx?


Uso OTX, como dice Rakzzo el otx 2.90 y tampoco se a que se deba el random

#15 Re: Como agregar una condicion a un talk el Miér Abr 23, 2014 12:12 am

Muzstang


Scripter
God Rakzzo escribió:

sheenita orita que me acuerdo dame [pro] en tu server jajaja soy 830 mi name is sirakx

xD

@tema Ya los probe y me funcionaron bien todos los scripts sin el efecto random pero en TFS asi que yo tampoco tengo idea a que se deba eso por eso no uso otx c:

Edit:
Prueba con addDamageCondition(condition, 1, 1 * 60 * 1000, 0) envez de setConditionParam

#16 Re: Como agregar una condicion a un talk el Miér Abr 23, 2014 12:30 am

Flaius


Novato
@up, sigue random la condicion Sheenita  :/

Código:
 [22/4/2014 18:2:57] (LuaInterface::luaAddDamageCondition) Condition not found

#17 Re: Como agregar una condicion a un talk el Jue Abr 24, 2014 6:09 am

Flaius


Novato
@bumb @bumb @bumb @bumb @bumb

#18 Re: Como agregar una condicion a un talk el Mar Abr 29, 2014 6:46 am

Flaius


Novato
@bumb @bumb @bumb @bumb @bumb

#19 Re: Como agregar una condicion a un talk el Mar Abr 29, 2014 6:49 am

Sirakx


Moderador
Básicamente el script ahí esta lo que tiene error es theotxserver men :|

Ya no sigas sacando a flote este tema ya que el resultado sera el mismo



[Tienes que estar registrado y conectado para ver esa imagen]
http://celesta-global.net/

Contenido patrocinado


Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.

 

¿Quién está en línea?

En total hay 0 usuarios en línea: 0 Registrados, 0 Ocultos y 0 Invitado

Usuarios navegando en este foro: Ninguno

Forum Statistics

Nuestros miembros han públicado un total de posts en temas.
Actualmente hay miembros registrados.
Démosle la bienvenida al miembro más reciente,
La mayor cantidad de usuarios en línea ha sido de .