Black Tibia

Comunidad de Open Tibia Servers


No estás conectado. Conéctate o registrate

 » General » Comunidad de Black Tibia » Eventos y Concursos » 

[Votaciones] Concurso de Script

[Votaciones] Concurso de Script

¿Que Script te Gusto Mas?

58% 58% [ 14 ]
42% 42% [ 10 ]
Votos Totales : 24

#1 [Votaciones] Concurso de Script el Vie Jun 10, 2011 8:26 pm

Angelshitho

avatar

Miembro
Aqui las Votaciones del Script (:

1° Script
[Tienes que estar registrado y conectado para ver este vínculo]

2° Script
[Tienes que estar registrado y conectado para ver este vínculo]

Lamentablemente Son los Unicos Script Enviados :/
Esperemos que para el Proximo se Anime Mas Gente (:
Voten Por Su Favorito.

http://OTSupporter.net/

#2 Re: [Votaciones] Concurso de Script el Vie Jun 10, 2011 9:10 pm

xTheGamingSpacex

avatar

Miembro
Hehehe me gustaron los dos estan muy buenos saludos

#3 Re: [Votaciones] Concurso de Script el Vie Jun 10, 2011 9:37 pm

GuanoxD

avatar

Miembro
Que poqitos 2 nadamas :S fuera enviado yo, pero no se como aserlos xD

#4 Re: [Votaciones] Concurso de Script el Vie Jun 10, 2011 9:39 pm

Shai


Novato
Mi voto va para el script de la carrera

#5 Re: [Votaciones] Concurso de Script el Sáb Jun 11, 2011 1:02 am

God Mexicansoul

avatar

Miembro
Me gusto mas el primer scripts :S

#6 Re: [Votaciones] Concurso de Script el Sáb Jun 11, 2011 7:46 am

Xafterin


Miembro
También se podria hacer que votaran por el código, los que entendieran claro, así habrian dos aspectos cubiertos dando la totalidad del concurso en sí (porque es de scripts).

#7 Re: [Votaciones] Concurso de Script el Sáb Jun 11, 2011 8:59 am

El Matatan

avatar

Miembro
Ya Vote Mi Voto Es Secreto Ea Ea Pero Si Dj Death Lo Que Dice Leyendario Deverias De Poner Los Scripts :_: Para Que Los Que Sepan Puedan Jusgar Tambien Por Cuantos Ficheros Lua Usaron Y Eso Nose Solo Digo Es Una Sugerencia . Pero Los 2 Scripts Estan Pro U_U.

http://www.blacktibia.org

#8 Re: [Votaciones] Concurso de Script el Sáb Jun 11, 2011 12:09 pm

leyendario

avatar

Miembro
@up
ps yo envié el código. seria cuestión de que dj death lo ponga

#9 Re: [Votaciones] Concurso de Script el Dom Jun 12, 2011 3:38 pm

DJ Black

avatar

Estudiante
Yo Voto por el primero

#10 Re: [Votaciones] Concurso de Script el Dom Jun 12, 2011 3:43 pm

ĐëŢØХ

avatar

Miembro
por el 1° :O

#11 Re: [Votaciones] Concurso de Script el Dom Jun 12, 2011 3:51 pm

|CSK|KashØrt™|CDK|


Miembro
Um.. yo boto por los
1ero me puede servir para entretenimiento delos player
2ndo me puede servir para una quest

Botaria por los 2 scrip pero vote por el de Xafterin

#12 Re: [Votaciones] Concurso de Script el Lun Jun 13, 2011 5:39 am

Xafterin


Miembro
DJ Death sube ya lo scripts TT'

#13 Re: [Votaciones] Concurso de Script el Lun Jun 13, 2011 10:53 am

Angelshitho

avatar

Miembro
Script de Leyendario:
npc llamado "Ticket Seller" archivo xml
Código:
<?xml version="1.0" encoding="UTF-8"?>
<npc name="Ticket Seller" script="ticket.lua" walkinterval="2000" floorchange="0">
   <health now="100" max="100"/>
   <look type="128" head="17" body="54" legs="114" feet="0" addons="2"/>
   <parameters>
      <parameter key="message_greet" value="Hola |PLAYERNAME|, Soy el Vendedor de tickets!."/>
   </parameters>
</npc>

archivo lua llamado ticket.lua
Código:
local config = {
   book1 = 7000, -- uid del libro de registro
   book2 = 7001, -- uid del libro de corredores
   book3 = 7002, -- uid del libro ganadores
   precio = 100, -- gps
   storage = 2011, -- storage global e individual libre
   ticket = 1954, -- id del ticket
   multi_ticket = false, -- un ticket por player
   admin = 6, -- acceso
   tiempo = 1, -- minutos
   premio1 = 10000, -- gps
   premio2 = 5000, -- gps
   premio3 = 1000, -- gps
   npc = {x=187, y=104, z=8}
}
local pos ={
   [1] = {partida = {x=183, y=104, z=7}},
   [2] = {partida = {x=185, y=104, z=7}},
   [3] = {partida = {x=187, y=104, z=7}},
   [4] = {partida = {x=189, y=104, z=7}},
   [5] = {partida = {x=191, y=104, z=7}},
   [6] = {partida = {x=193, y=104, z=7}},
}



local function reset()
   doSetItemText(config.book1, "")
   doSetItemText(config.book2, "")
   doSetItemText(config.book3, "")
   local players = getPlayersOnline()
   for _, player in ipairs(players) do
      if getPlayerStorageValue(player, config.storage) == 1 then
         setPlayerStorageValue(player, config.storage, 0)
      end
   end
end


local function empezar()
   local leer = string.explode(getItemText(config.book2), ",")
   if not leer[2] then
      doBroadcastMessage("la carrera se cancelo, no se inscribieron suficientes corredores.")
      return reset()
   end
   local counter = 0
   local npc = doCreateNpc("Ticket Seller", config.npc)
   for _, i in ipairs(leer) do
      counter = counter + 1
      local monster = doCreateMonster(i, pos[counter].partida)
      doConvinceCreature(npc, monster)
      setGlobalStorageValue(config.storage, counter)
   end
   doBroadcastMessage("la carrera ha comenzado!.")
end

local function registrar(nombre, corredor)
   str = string.explode(getItemText(config.book2), ",")
   if str then
      if str[#pos] then
         local cont = 0
         for _, a in ipairs(str) do
            if a == corredor then
               cont = 1
            end
         end
         if cont == 0 then
            return str
         end
      end
   end
   if not doPlayerRemoveMoney(getPlayerByName(nombre), config.precio) then
      return 1
   end
   local serial = 0
   if getItemText(config.book3) == "" then
      serial = math.random(10000)
      doSetItemText(config.book3, "" ..serial)
   else
      serial = getItemText(config.book3)
   end
   if getItemText(config.book1) == "" then
      doSetItemText(config.book1, nombre.. "." ..corredor)
      addEvent(empezar,config.tiempo * 60 * 1000)
      doBroadcastMessage("la carrera comenzara en " ..config.tiempo.. " minutos.")
   else
      doSetItemText(config.book1, getItemText(config.book1).. "," ..nombre.. "." ..corredor)
   end
   local item = doPlayerAddItem(getPlayerByName(nombre), config.ticket, 1, false) -- give item
   doItemSetAttribute(item, "name", "ticket para el corredor " ..corredor)
   doSetItemText(item, corredor.. "," ..serial)
   local counter = 0
   for _, i in ipairs(str) do
      if i == corredor then
      counter = 1
      end
   end
   if counter == 1 then
      return false
   end
   if getItemText(config.book2) == "" then
      doSetItemText(config.book2, corredor)
   else
      doSetItemText(config.book2, getItemText(config.book2).. "," ..corredor)
   end
   doBroadcastMessage("El corredor " ..corredor.. " acaba de entrar en la carrera.")
   return false
end

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}

function onCreatureAppear(cid)            npcHandler:onCreatureAppear(cid)         end
function onCreatureDisappear(cid)         npcHandler:onCreatureDisappear(cid)         end
function onCreatureSay(cid, type, msg)         npcHandler:onCreatureSay(cid, type, msg)      end
function onThink()               npcHandler:onThink()               end

function creatureSayCallback(cid, type, msg)
   if(not npcHandler:isFocused(cid)) then
      return false
   end

   local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

   if(msgcontains(msg, 'ticket')) then
      if getGlobalStorageValue(config.storage) ~= 100 then
         selfSay('Uhhh.. escuche ticket? jeje, te costara ' ..config.precio.. ', jeje ahora dime el nombre de tu corredor jeje', cid)
         talkState[talkUser] = 1
      else
         selfSay('no es momento de comprar tickets.', cid)
      end
      return true
   elseif (msgcontains(msg, 'reset') and getPlayerGroupId(cid) >= config.admin) then
      reset()
      setGlobalStorageValue(config.storage, 0)
      selfSay('listo todo reset!.', cid)
      return true
   elseif (msgcontains(msg, 'premio') or msgcontains(msg, 'reclam')) then
      if getGlobalStorageValue(config.storage) ~= 100 then
         selfSay('no es momento de reclamar premios.', cid)
         talkState[talkUser] = 0
         return true
      end
      local cuenta = getPlayerItemCount(cid, config.ticket)
      if cuenta > 0 then
         local tmp = getPlayerItemById(cid, true, config.ticket).uid
         local item = string.explode(getItemText(tmp), ",")
         local rewrite = string.explode(getItemText(config.book3), ",")
         if rewrite[3] then
            local contar = 0
            local saltar = 0
            for _, yo in ipairs(rewrite) do
               if yo ~= rewrite[1] then
                  contar = contar + 1
                  local tmpyo = string.lower(yo)
                  if item[1] == tmpyo then
                     if item[2] == rewrite[1] then
                        if contar == 1 then
                           doPlayerAddMoney(cid, config.premio1)
                           selfSay('listo aqui tienes tu premio!.', cid)
                           doRemoveItem(tmp)
                           return true
                        elseif contar == 2 then
                           doPlayerAddMoney(cid, config.premio2)
                           selfSay('listo aqui tienes tu premio!.', cid)
                           doRemoveItem(tmp)
                           return true
                        elseif contar == 3 then
                           doPlayerAddMoney(cid, config.premio3)
                           selfSay('listo aqui tienes tu premio!.', cid)
                           doRemoveItem(tmp)
                           return true
                        else
                           selfSay('lo siento, tu corredor no gano los primero lugares.', cid)
                           doRemoveItem(tmp)
                           return true
                        end
                     else
                        selfSay('tu ticket de ' ..tmp_name.. ' no coincide con el numero de esta carrera.', cid)
                        doRemoveItem(tmp)
                        return true
                     end
                  end
               end
            end
            
         end
      else
         selfSay('No tienes ningun ticket!.', cid)
      end
      talkState[talkUser] = 0
      return true
   elseif(talkState[talkUser] == 1 and getGlobalStorageValue(config.storage) ~= 100) then
      if getCreatureByName(msg) then
         if multi_ticket then
            if getPlayerStorageValue(cid, config.storage) == 1 then
               selfSay('no puedes comprar mas de 1 ticket por carrera.', cid)
               talkState[talkUser] = 0
               return true
            end
         end
         local registro = registrar(getPlayerName(cid), msg)
         if registro == 1 then
            selfSay('lo siento no tienes suficiente dinero.', cid)
            talkState[talkUser] = 0
            return true
         elseif registro == false then
            selfSay('aqui tienes, suerte en la carrera!.', cid)
            setPlayerStorageValue(cid, config.storage, 1)
            talkState[talkUser] = 0
            return true
         else
            str = ""
            for _, corredor in ipairs(registro) do
               str = str.. " , " ..corredor
            end
            selfSay('los cupos estan llenos, solo estos corredores estan disponibles : ' ..str, cid)
            return true
         end
      else
         selfSay('uh? ese nombre no lo conozco. tratas de engañarme?, dime uno que si exista!', cid)
      end
   end
   return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

agregar a moveevents.xml
Código:
<movevent type="StepIn" actionid="7000;7001" event="script" value="ticket.lua"/>
   <movevent type="StepOut" actionid="7000;7001" event="script" value="ticket.lua"/>

en moveevents/script archivo lua llamado ticket.lua
Código:
local direccion = NORTH -- direccion a donde va a ir el monster
local camino = 7000 -- antion id del camino
local meta = 7001 -- action id de la meta
local book1 = 7000
local book2 = 7001
local book3 = 7002 -- uid del libro ganadores
local storage = 2011 -- storage global e individual libre

local function mover(cid)
   if getThing(cid) then
      doMoveCreature(cid, direccion)
   end
end

local function reset()
   doSetItemText(book1, "")
   doSetItemText(book2, "")
   doSetItemText(book3, "")
   local players = getPlayersOnline()
   for _, player in ipairs(players) do
      if getPlayerStorageValue(player, storage) == 1 then
         setPlayerStorageValue(player, storage, 0)
      end
   end
end

function onStepIn(cid, item, position, fromPosition)
   if isPlayer(cid) then
      return false
   end
   if item.actionid == camino then
      local tiempo = math.random(500, 2500)
      addEvent(mover, tiempo, cid)
   elseif item.actionid == meta then
      doSetItemText(book3, getItemText(book3).. "," ..getCreatureName(cid))
      str = string.explode(getItemText(book3), ",")
      if str[getGlobalStorageValue(storage) + 1] and getGlobalStorageValue(storage) ~= 100 then
         doBroadcastMessage("la carrera termino, tienen 5 minutos para ir a reclamar su premio con Ticket Seller, el corredor ganador fue " ..str[2])
         setGlobalStorageValue(storage, 100)
         addEvent(setGlobalStorageValue, 5 * 60 * 1000 ,storage, 0)
         addEvent(reset, 5 * 60 * 1000)
      end
      addEvent(doRemoveCreature, 30 * 1000, cid)
   end
   return false
end

function onStepOut(cid, item, position, lastPosition, fromPosition, toPosition, actor)
return false
end

en creaturescript/script editar onlogin.lua y agregar arriba de los register event
Código:
   if getPlayerStorageValue(cid, 2011) == 1 then
      setPlayerStorageValue(cid, 2011, 0)
   end

http://OTSupporter.net/

#14 Re: [Votaciones] Concurso de Script el Lun Jun 13, 2011 10:55 am

Angelshitho

avatar

Miembro
Script de Xafterin:
Te lo explicaré bien y con el script arreglado para que no haya fallas.
Tienes que ponerle a las 3 palancas ActionID 4444, los local en el script que tienes que modificar son: 'local s = ..' (poner las posiciones en orden de las palancas segun el orden que le quieras poner), 'local stonePos = ..' (poner la posición de la piedra que sera removida al completar el orden de palancas), 'local stoneID = ..' (ItemID de la piedra que sera removida).
Vas a data/actions/scripts/ creas un archivo llamado palanca.lua y añades esto dentro (és el mismo de antes pero lo arregle, ahora te deberia funcionar pefectamente, a mi por lo menos me funciono):
Código:
--//----------------------*Made by Xafterin*----------------------------//
local s = {--en orden
{x = 98, y = 118, z = 7}, --POS PALANCA 1
{x = 95, y = 120, z = 7}, --POS PALANCA 2
{x = 92, y = 118, z = 7} --POS PALANCA 3
}
local stonePos = {x=95, y=115, z=7, stackpos = 1}-- POS DE LA PIEDRA
local stoneID = 1285 -- ID DE LA PIEDRA
--//---------------------*Original del concurso de BlackTibia.*-----------------------------//
local storage = 577537-- n tocar
local order = {48235858, 683838, 846363}--no tocar
local get = 0 --no tocar
function onUse(cid, item, fromPosition, itemEx, toPosition)
   local function resetStorages(cid)
      for p = 1, #order do
         setPlayerStorageValue(cid, order[p], -1)
      end
      setPlayerStorageValue(cid, storage, -1)
      return true
   end
   if item.actionid == 4444 then
      for i = 1, #s do
         local getP = getThingPos(item.uid)
         local getS = s[i]
         local switchpos = {x = getS.x, y = getS.y, z = getS.z}
         local itempos = {x = getP.x, y = getP.y, z = getP.z}
         if itempos.x == switchpos.x and itempos.y == switchpos.y and itempos.z == switchpos.z then
            setPlayerStorageValue(cid, storage, i)
         end
      end
      local sg = getPlayerStorageValue(cid, storage)
      local st = getPlayerStorageValue(cid, order[sg-1])
      if sg ~= 1 then
         if st == -1 then
            doPlayerSendCancel(cid, "You must follow the order, please back and start again.")
            resetStorages(cid)
            return true
         end
      end
      if sg > 2 then
         resetStorages(cid)
         if getThingFromPos(stonePos).itemid == stoneID then
            doPlayerSendTextMessage(cid, 22, "Congratulations, you finalled have removed the stone, now you can pass!")
            doRemoveItem(getThingFromPos(stonePos).uid, 1)
            doSendMagicEffect(stonePos, CONST_ME_MAGIC_BLUE)
         end
         return true
      end
      if getPlayerStorageValue(cid, order[sg]) == -1 then
         setPlayerStorageValue(cid, order[sg], 1)
      end
      doPlayerSendTextMessage(cid, 22, "Now you have to go to the switch number ".. sg+1 ..".")
   end
   return true
end
La linea que tienes que poner en el actions.xml és esta:
Código:
<action actionid="4444" event="script" value="palanca.lua"/>

http://OTSupporter.net/

#15 Re: [Votaciones] Concurso de Script el Mar Jun 14, 2011 9:21 am

jorgectm

avatar

Miembro
no se ben

http://mipaginadetibia.yolasite.com/

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 .