BlackTibia

No estás conectado. Conéctate o registrate

 » Open Tibia » Pedido de Scripts » 

No usar comando hasta comprarselo a NPC.

No usar comando hasta comprarselo a NPC.

#1 No usar comando hasta comprarselo a NPC. el Jue Sep 04, 2014 2:30 pm

enrikito15


Miembro
Hola Pues quisiera que me ayudaran con un script:

1.-Quisiera que no se pueda usar un comando hasta que lo compres con un npc

#2 Re: No usar comando hasta comprarselo a NPC. el Jue Sep 04, 2014 6:11 pm

Belerofonte


Administrador
Servidor/Data/Npc/... creas un archivo.xml, lo llamas como gustes y en su interior pegas lo siguiente:
<?xml version="1.0" encoding="UTF-8"?>
<npc name="Comando Here" walkinterval="0" floorchange="0">
<health now="100" max="100"/>
<look type="247" head="7" body="87" legs="7" feet="87" addons="2"/>

   <!-- idletime="Segundos que han de transcurrir para que el NPC deje de prestarle atención al jugador" -->
   <interaction range="3" idletime="30" idleinterval="300" defaultpublic="0">
       <!-- keywords="Palabra clave con la que el jugador ha de saludar". -->
       <interact keywords="hi" focus="1">
           <!-- Más palabras clave adicionales, para el Saludo del jugador -->
           <keywords>hello</keywords>
           <keywords>greet</keywords>
           <keywords>hey</keywords>
           <keywords>hola</keywords>
           <keywords>ola</keywords>
               <!-- Contestación del Npc al saludo anterior del jugador con la pregunta acerca del comando. -->
               <!-- Contestación del Npc al saludo anterior del jugador si el cual ya compró el comando anteriormente. -->
               <response>
                   <action name="script"><![CDATA[
                     local Precio, Str = 100, 487634 -- Precio del comando, y mismo StorageValue que le pusíste al script del comando.
                       if getPlayerStorageValue(cid, Str) == 1 then
                           selfSay('Bonjorno ' .. getCreatureName(cid) .. '! Te gustaron las {palabras}?', cid)
                        else
                          selfSay('Saludos! Si me das {'..Precio..'} {Gold} {Coins} te enseñare a pronunciar unas {palabras "magicas"} jijiji... hay trato?', cid)
                       end
                   ]]></action>
               </response>
       </interact>

       <!-- keywords="Palabra clave con la que el jugador afirmará la pregunta anterior." -->
       <interact keywords="yes">
           <!-- Más palabras clave adicionales, que representan lo mismo que la afirmación anterior. -->
           <keywords>si</keywords>
           <keywords>sim</keywords>
           <keywords>sip</keywords>
           <keywords>yep</keywords>
           <keywords>yeah</keywords>
           <keywords>vale</keywords>
           <keywords>palabras</keywords>
               <!-- Entrega del comando y contestación del Npc tanto si el jugador posee o no, el dinero necesario. -->
               <!-- Contestación del Npc si el jugador ya había comprado anteriormente el comando. -->
               <response>
                   <action name="script"><![CDATA[
                     local Precio, Str = 100, 487634 -- Precio del comando, y mismo StorageValue que le pusíste al script del comando.
                       if getPlayerStorageValue(cid, Str) == 1 then
                           selfSay('Jojojo me alegro!', cid)
                        else
                           if doPlayerRemoveMoney(cid, Precio) then
                               doPlayerSetStorageValue(cid, Str, 1)
                               selfSay('Bibidi Babidi Buuu!!! MUAJAJAJA!!... ehmmmm.... no. Es broma. Tienes que decir {!olakease}', cid)
                            else
                              selfSay('Vas a estafar a un estafador? Venga campeon'..(getPlayerSex(cid) == 0 and 'a' or '')..', primero vuelve con esas sabrosas {'..Precio..' Gold Coins} y luego hablaremos!', cid)
                           end
                       end
                   ]]></action>
               </response>
       </interact>

       <!-- keywords="Palabra clave con la que el jugador ha de negar la pregunta del saludo anterior." -->
       <interact keywords="no" focus="0">
           <!-- Más palabras clave adicionales, que representan lo mismo que la negación anterior. -->
           <keywords>nao</keywords>
           <keywords>nop</keywords>
           <keywords>nah</keywords>
           <keywords>nu</keywords>
               <!-- Contestación del Npc a la negación anterior del jugador si el cual NO ha comprado el comando todavía. -->
               <!-- Contestación del Npc a la negación anterior del jugador si el cual SÍ ha comprado anteriormente el comando. -->
               <response>
                   <action name="script"><![CDATA[
                     local Str = 487634 -- Mismo StorageValue que le pusíste al script del comando.
                       if getPlayerStorageValue(cid, Str) == 1 then
                           selfSay('Pues habertelo pensado antes de darle dinero a un total desconocido! MUAJAJAJA!!', cid)
                        else
                          selfSay('Pues tu te lo pierdes! MUAJAJAJA!!', cid)
                       end
                   ]]></action>
               </response>
       </interact>

       <!-- keywords="Palabra clave con la que el jugador ha de despedirse." -->
       <interact keywords="bye" focus="0">
           <!-- Más palabras clave adicionales, que representan lo mismo que la despedida anterior. -->
           <keywords>farewell</keywords>
           <keywords>adios</keywords>
           <keywords>xao</keywords>
           <keywords>arrivederchi</keywords>
               <!-- Contestación del Npc a la despedida anterior del jugador. -->
               <response text="Hasta pronto!" public="0"/>
       </interact>

       <interact event="onPlayerLeave" focus="0">
           <!-- Contestación que dirá el Npc cuando el jugador Pase el tiempo límite(idletime). -->
           <response text="Bueno pues si me ignoras yo tambien te ignorare jijiji!" public="0"/>
       </interact>
   </interaction>
</npc>

Luego, Servidor/Data/Talkactions/Talkactions.xml y en una de las líneas pegas la siguiente:
Talkactions.xml escribió:<talkaction words="!olakease" event="script" value="NombreQUEgustes.lua"/>
Ahí le pones el comando que gustes.

Por último, Servidor/Data/Talkactions/Scripts/... NombreQUEgustes.lua
NombreQUEgustes.lua escribió:  local Str = 487634 -- Mismo StorageValue que le pusíste al script del NPC.
function onSay(cid, words, param, channel)
   if getPlayerStorageValue(cid, Str) == 1 then
   --Aquí pones lo que realizará el comando, SI el jugador se lo compró anteriormente al NPC.
    else
      --Aquí pones lo que realizará el comando, si el jugador NO se lo compró anteriormente al NPC.
   end
 return true
end

¡Lo conseguí!



Sugerencia para evitar futuros quebraderos de cabeza:
[Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo]
[Tienes que estar registrado y conectado para ver esa imagen]

#3 Re: No usar comando hasta comprarselo a NPC. el Jue Sep 04, 2014 6:53 pm

enrikito15


Miembro
Gracias Belerofonte..+rep.
pero como le haria para cambiar el dinero por otro item?

#4 Re: No usar comando hasta comprarselo a NPC. el Jue Sep 04, 2014 7:01 pm

Belerofonte


Administrador
[Tienes que estar registrado y conectado para ver este vínculo] escribió:Gracias Belerofonte..+rep.
pero como le haria para cambiar el dinero por otro item?
Código:
<?xml version="1.0" encoding="UTF-8"?>
<npc name="Comando Here" walkinterval="0" floorchange="0">
<health now="100" max="100"/>
<look type="247" head="7" body="87" legs="7" feet="87" addons="2"/>

   <!-- idletime="Segundos que han de transcurrir para que el NPC deje de prestarle atención al jugador" -->
   <interaction range="3" idletime="30" idleinterval="300" defaultpublic="0">
       <!-- keywords="Palabra clave con la que el jugador ha de saludar". -->
       <interact keywords="hi" focus="1">
           <!-- Más palabras clave adicionales, para el Saludo del jugador -->
           <keywords>hello</keywords>
           <keywords>greet</keywords>
           <keywords>hey</keywords>
           <keywords>hola</keywords>
           <keywords>ola</keywords>
               <!-- Contestación del Npc al saludo anterior del jugador con la pregunta acerca del comando. -->
               <!-- Contestación del Npc al saludo anterior del jugador si el cual ya compró el comando anteriormente. -->
               <response>
                   <action name="script"><![CDATA[
                     local Precio, Count, Str = 2160, 1, 487634 -- Precio del comando, Cantidad, y mismo StorageValue que le pusíste al script del comando.
                       if getPlayerStorageValue(cid, Str) == 1 then
                           selfSay('Bonjorno ' .. getCreatureName(cid) .. '! Te gustaron las {palabras}?', cid)
                        else
                          selfSay('Saludos! Si me das {'..Count..' '..getItemPluralNameById(Precio)..'} te enseñare a pronunciar unas {palabras "magicas"} jijiji... hay trato?', cid)
                       end
                   ]]></action>
               </response>
       </interact>

       <!-- keywords="Palabra clave con la que el jugador afirmará la pregunta anterior." -->
       <interact keywords="yes">
           <!-- Más palabras clave adicionales, que representan lo mismo que la afirmación anterior. -->
           <keywords>si</keywords>
           <keywords>sim</keywords>
           <keywords>sip</keywords>
           <keywords>yep</keywords>
           <keywords>yeah</keywords>
           <keywords>vale</keywords>
           <keywords>palabras</keywords>
               <!-- Entrega del comando y contestación del Npc tanto si el jugador posee o no, el dinero necesario. -->
               <!-- Contestación del Npc si el jugador ya había comprado anteriormente el comando. -->
               <response>
                   <action name="script"><![CDATA[
                     local Precio, Count, Str = 2160, 1, 487634 -- Precio del comando, Cantidad, y mismo StorageValue que le pusíste al script del comando.
                       if getPlayerStorageValue(cid, Str) == 1 then
                           selfSay('Jojojo me alegro!', cid)
                        else
                           if getPlayerItemCount(cid, Precio) >= Count then
                               doPlayerRemoveItem(cid, Precio, Count)
                               doPlayerSetStorageValue(cid, Str, 1)
                               selfSay('Bibidi Babidi Buuu!!! MUAJAJAJA!!... ehmmmm.... no. Es broma. Tienes que decir {!olakease}', cid)
                            else
                              selfSay('Vas a estafar a un estafador? Venga campeon'..(getPlayerSex(cid) == 0 and 'a' or '')..', primero vuelve con {'..Count..' '..getItemPluralNameById(Precio)..'} y luego hablaremos!', cid)
                           end
                       end
                   ]]></action>
               </response>
       </interact>

       <!-- keywords="Palabra clave con la que el jugador ha de negar la pregunta del saludo anterior." -->
       <interact keywords="no" focus="0">
           <!-- Más palabras clave adicionales, que representan lo mismo que la negación anterior. -->
           <keywords>nao</keywords>
           <keywords>nop</keywords>
           <keywords>nah</keywords>
           <keywords>nu</keywords>
               <!-- Contestación del Npc a la negación anterior del jugador si el cual NO ha comprado el comando todavía. -->
               <!-- Contestación del Npc a la negación anterior del jugador si el cual SÍ ha comprado anteriormente el comando. -->
               <response>
                   <action name="script"><![CDATA[
                     local Precio, Count, Str = 2160, 1, 487634 -- Precio del comando, Cantidad, y mismo StorageValue que le pusíste al script del comando.
                       if getPlayerStorageValue(cid, Str) == 1 then
                           selfSay('Pues habertelo pensado antes de darle '..Count..' '..getItemPluralNameById(Precio)..' a un total desconocido! MUAJAJAJA!!', cid)
                        else
                          selfSay('Pues tu te lo pierdes! MUAJAJAJA!!', cid)
                       end
                   ]]></action>
               </response>
       </interact>

       <!-- keywords="Palabra clave con la que el jugador ha de despedirse." -->
       <interact keywords="bye" focus="0">
           <!-- Más palabras clave adicionales, que representan lo mismo que la despedida anterior. -->
           <keywords>farewell</keywords>
           <keywords>adios</keywords>
           <keywords>xao</keywords>
           <keywords>arrivederchi</keywords>
               <!-- Contestación del Npc a la despedida anterior del jugador. -->
               <response text="Hasta pronto!" public="0"/>
       </interact>

       <interact event="onPlayerLeave" focus="0">
           <!-- Contestación que dirá el Npc cuando el jugador Pase el tiempo límite(idletime). -->
           <response text="Bueno pues si me ignoras yo tambien te ignorare jijiji!" public="0"/>
       </interact>
   </interaction>
</npc>


local Precio, Count, Str = 2160, 1, 487634 -- Precio del comando, Cantidad, y mismo StorageValue que le pusíste al script del comando.
(ID del objeto que quitará, Cantidad del cual)

Lo mismo en las líneas: 20, 44 y 71.
Lo demás como oraciones o etc..., ya lo adecué a eso.

EDIT:
[Tienes que estar registrado y conectado para ver este vínculo] escribió:Gracias Belerofonte..+rep.
pero como le haria para cambiar el dinero por otro item?
...
[Tienes que estar registrado y conectado para ver esa imagen]
Claaaarooo... [Tienes que estar registrado y conectado para ver esa imagen] 



Sugerencia para evitar futuros quebraderos de cabeza:
[Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo]
[Tienes que estar registrado y conectado para ver esa imagen]

#5 Re: No usar comando hasta comprarselo a NPC. el Jue Sep 04, 2014 10:47 pm

enrikito15


Miembro
Gracias! Tema Resuelto xD :3: :like: :poop:

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 .