Jump to content

jaBote

Community Contributors
  • Content Count

    2037
  • Joined

  • Last visited

  • Days Won

    43

Reputation Activity

  1. Upvote
    jaBote got a reaction from JulioCF in Algumas dúvidas   
    Traduzir com GTranslate ou outros é garantia de uma tradução horrível. Pode ser funcional, mas não terá utilidade práctica.
  2. Upvote
    jaBote got a reaction from JulioCF in Servidor oficial de Ragnarök Online para España   
    Al fin llega un servidor oficial en español, con doce años de retraso. Aún no he podido probarlo por falta de tiempo, aunque tiene pinta de que utilizan la infraestructura y ofrecen los mismos contenidos que el servidor que está ahora mismo instalado en Europa, fRO, por lo que parece que todo hablará en español (NPCs, objetos, etcétera) menos el resto de usuarios.
     
    Parece que tenemos lag asegurado como todos los servidores oficiales pero al fin disponemos de una interfaz en español que poder usar. No obstante, esto puede resultar un peligro para el panorama de los servidores privados de Ragnarök por motivos obvios. No lo digo por la competencia sino porque puede que los busquen para cerrarlos.
     
    Os dejo link a la noticia:
    http://www.vidaextra.com/rpg/ragnarok-online-llega-a-espana-12-anos-despues-gracias-a-idc-games
     
    Y a un vídeo que no tiene desperdicio porque está equivocado en casi todo, a mí me resultó graciosísimo:

     
    Gracias a IDC Games por ofrecernos un servidor oficial en español, ahora esperemos que hagan las cosas bien hechas. Creo que algunos podréis al fin rapiñar cosas del cliente para tenerlo en español como los oficiales.
     
    Un saludo.
  3. Upvote
    jaBote reacted to Tokeiburu in Act Editor   
    File Name: Act Editor
    File Submitter: Tokeiburu
    File Submitted: 03 Dec 2014
    File Category: Client Resources
     
    Heya,
     
    This tool is an action file editor, it edits Act and Spr files. You will find similarities with ActOR in its design, but it should be much more enjoyable to edit animations ;].
     
    Special thanks to Nebraskka for testing this software in its early days. All the suggestions and feedbacks made this software much better.
     
    How to install
    Download the zip archive provided from the download link at the bottom of this description or directly from there : http://www.mediafire.com/download/y3amu1o5zsmgd2o
    Install the application with Act Editor Installer.exe; if you are missing a .NET Framework you will be prompted to download it.
    Once you are done, you can start the program from the link on your desktop.


     
     
    Key features
    The software has many, many features available. It would take too long to describe each one of them, so I've only focussed on the more impotant ones.
    You can undo and redo everything, scripts included.
    You can edit and add sounds easily.
    Powerful and easy to use palette editor.
    Sprite types have been abstracted - you don't have to worry or care about that.
    Animation speed can be changed easily.
    Most components have a drag and drop feature.
    Advanced scripting engine (C# language). The scripts can also be used to customize the software menus.
    Error checking when saving the act/spr to avoid invalid files. The sprite version will be automatically downgraded if RLE compression is not available.
    Frame interpolation (inbetweening/tweening) is possible via the Animation menu.
    Prompts you with an image converter dialog if the added image is invalid.
    Allows advanced edition for actions and frames via their respective menus.
    You can load files from GRFs directly (and save in the GRFs directly as well).

    Technical stuff
    Requires .Net Framework 3.5 (SP1) Client Profile to run (3.5 or more will work as well).
    When prompted with an error, use the "Copy exception" button to copy the debugging info. I will need this to fix the issue you're encountering.

    The editor's primary window
    The interface is really straightforward and similar to ActOR. I'll only focus on new elements!
     
    Rendering mode : This option changes the behavior of how layers are rendered. If you use 'Editor', you'll clearly see all the pixels when zooming in. If you use 'Ingame', it will use a linear scaling instead, which is closer to what the client does.

     
    References : These allow you to know where your item will be positionned (the yellow marker is the anchor, see below).

     
    Color mask : To edit the color of a layer, simply click on the color rectangle. You can also drag and drop the colors between different layers to quickly modify many of them.
     
    Common shortcuts : You can manipulate layers by using common shortcuts. More can be found from the Edit menu. These below are only the primary ones.
    Ctrl-A : Select all layers.
    Ctrl-C : Copy the selected layers.
    Ctrl-V : Paste the copied layers.
    Ctrl-X : Cut the selected layers.
    Alt-C : Copy current action.
    Alt-V : Paste current action.

    Advanced action and frame editions
    These expose all the available methods of the editor. You can remove a range of frames or copy a frame 10 times very quickly and easily. This dialog is found in Action/Frame > Advanced edit...

     
     
    Anchors
    You can edit anchors from the editor directly. Anchors are points that connect frames together, from different act files. Here's an example without and with anchors :
     



     
    This is mostly useful when you're using reference sprites (on the right panel). Clicking on the anchor button will let you choose where to attach the sprite (this is set semi-automatically for you though). You can edit those from the Anchors menu, but it is recommended to start from a pre-existing act to avoid doing this tedious process.
     
     
    Palette editor
    The palette editor allows you to quickly recolor sprites with an intuitive interface. Only indexed images can be edited (it's a palette editor after all) and three modes are available. The gradient mode changes an existing gradient to another color while keeping the original saturation and brightness of the colors - this makes the gradients blend in better. If there are no gradient (usually because it's a custom sprite), there's always the Adjust color mode. This one changes all color from a specified range to another one (Photoshop has a similar feature, which does work better).
     

     
    You can click on the image (on the left) to automatically select the palette indexes. These will be highlighted for a few seconds to show you what you're about to edit.
     
     
    Interpolation (tweening)
    This script can be accessed via Animation > Interpolate frames. This process fills the images between two frames by detecting the changes applied to the layers. Here's a simple example of how it can be used :
     
     
     
     
    Script engine
    The script engine can be accessed via Scripts > Script Runner. This is a big feature of Act Editor, it allows you to automate all your work with the act and much more. Click on the Help button for guides and available methods (don't hesitate to try out a script; if an error occurs the act will be reversed to its previous state). The documentation doesn't cover all of the available options and methods for obvious reasons (the .net framework is huge). Doc example :
     

     
    The language used by the script engine is C#. If you're not familiar with it, simply check out the script samples (Scripts > Open scripts folder)! I won't go into details here, questions can be asked in the support thread regarding addiotional features and methods. If you believe your script should be added in the program, send it to me and I'll probably add it.
     
     
    Customizable
    The settings dialog allows you to modify all colors in the editor easily.

     
    You'll also find the sound resources (GRFs and folders) that can be set up in the Sound tab. The Shell integration tab can associate the .act files with the software to edit them more easily.
     

     
    Don't hesitate to give me a feedbacks or suggestions!
     
    Click here to download this file
  4. Upvote
    jaBote got a reaction from Gionelles in Client can't connect to my server   
    Simply insert a new row at the login table on your database, or use the _M/_F method if enabled on your login server.
  5. Upvote
    jaBote got a reaction from astralprojection in Introducing rAthena to Hercules database converters.   
    It's a converter issue. Currently all `sc_data` gets pruned because of a safety measure, since rAthena SC IDs aren't the same as ours. Since carts are SCs, all merchants will have their carts released, much like Knights Peco Pecos or Hunters Falcons. Even people in Jail (SC_JAILED) get free, but there's currently no way to help with that. Think that, if we kept the current SC IDs, maybe you could permanently give SC_CASH_RECEIVEITEM (double exp rate for the user who has it) to someone that was jailed, for example (didn't check the numbers, this is just an exaggeration).
     
    Will discuss with the rest of the staff for a way to get the most SCs as possible saved.
  6. Upvote
    jaBote got a reaction from fourxhackd in Dastgir's Services   
    Topic approved. Best of luck!
     
    P.S.: I can assure you he's one of the best guaranteed paid services to date: you just have to check his previous career, and the reputation, dedication and past contributions he's had here at Hercules.
  7. Upvote
    jaBote got a reaction from karazu in Dastgir's Services   
    Topic approved. Best of luck!
     
    P.S.: I can assure you he's one of the best guaranteed paid services to date: you just have to check his previous career, and the reputation, dedication and past contributions he's had here at Hercules.
  8. Upvote
    jaBote got a reaction from ShankS in @hatredreset?   
    Go look in src/map/atcommand.c
     
    Basically, add it after another atcommand code has finished (for example, after the ACMD(skdebug) code) and you've got to also add a definition.
     
    For adding an atcommand definition, just search this on the file:
    ACMD_DEF(skdebug), and add an the corresponding definition for the atcommand after it:
    ACMD_DEF(hatereset),  
    That's it.
  9. Upvote
    jaBote got a reaction from Zirius in Reducing guild capacity and removing alliance => how to fix/ready DB   
    I guess not, but don't forget to recompile and try that last SQL query I sentido you.
  10. Upvote
    jaBote got a reaction from Zirius in Reducing guild capacity and removing alliance => how to fix/ready DB   
    You can do it manually, but I think Guild Extension would need an edit to avoid other guilds get over the limit.
     
    UPDATE `guild` SET `max_member` = yourmaxvalue WHERE `max_member` > yourmaxvalue
  11. Upvote
    jaBote got a reaction from Zirius in Reducing guild capacity and removing alliance => how to fix/ready DB   
    Oh, sorry, I understood you just wanted to remove alliances.
     
    I couldn't understand you what you mean with makint the max guild capacity apply, so please elaborate a bit on that. In any case, please remember that if you edit the max guild capacity (I think that's a source edit) you should recompile to make it effective.
     
    To kick every guild member from the guilds except the guild master, you could issue the following SQL query (remember to try on a backup first, I haven't tested it):
     
    DELETE FROM `guild_member` WHERE `char_id` NOT IN (SELECT `char_id` FROM `guild`)
  12. Upvote
    jaBote got a reaction from Zirius in Reducing guild capacity and removing alliance => how to fix/ready DB   
    If you want to remove any existing guild alliances, please check out the guild_alliance table on your SQL side. Maybe you'll want to truncate the table (remove all data on it).
     
    Please do test on a server backup and while the server is shut down if you don't want to find out unexpected behavior, since I haven't tested but that should do.
  13. Upvote
    jaBote got a reaction from sever in How to do SQL updates?   
    I'm unaware that command exists on current Hercules. I do personally prefer to do that via console with the awrver shut down:
     
    mysql -u user -p rodatabase < file.sql
     
    Then you'll be prompted for the user's password
  14. Upvote
    jaBote got a reaction from Edgar in ¿Como crear un item que llame al servicio de warper evolution?   
    Añade una etiqueta al NPC Warper Evolution que ejecute para cuando hablas normalmente (generalmente en la línea 2 del NPC, antes de que empiece el código que se ejecuta cuando le hablas). Añade por ejemplo la etiqueta OnNokiaCall: (los dos puntos incluidos).
     
    Luego utiliza el script command doevent.
    doevent "<NPC object name>::<event label>";
  15. Upvote
    jaBote got a reaction from ShankS in PvP points script..   
    Not spoonfeeding for today because of no time.
     
    Just add a temporary char variable which is set to killedrid (which is account id of the killed user), check if this killedrid is the same as the old one and make it act accordingly.
     
    You could also use the char id based on who's online on that account id, but it can be a waste of time.
  16. Upvote
    jaBote got a reaction from cJei in Dastgir's Services   
    Topic approved. Best of luck!
     
    P.S.: I can assure you he's one of the best guaranteed paid services to date: you just have to check his previous career, and the reputation, dedication and past contributions he's had here at Hercules.
  17. Upvote
    jaBote reacted to LordRegent in Guide: Client creation for the clueless   
    Download:
     
    Full installer (http://www.nickyzai.com/?p=kro) 2014 Themon client, I used 2014-03-05b (https://github.com/ThemonChan/2014-Ragexe-Client) Nemo Patcher (https://github.com/MStr3am/NEMO.git) Basic Complete Renewal Data English Folder (http://herc.ws/board/topic/901-basic-complete-renewal-data-english-folder) Ragnarok Online ClientSide Translation (https://github.com/ROClientSide/Translation) GRF Builder (http://www.grfbuilder.com) Open Setup (http://nn.nachtwolke.com/dev/opensetup)

    PATCH
     
    After you download the full installer run the rsu-* patchers as admin.
    rsu-kro-rag-lite.exe rsu-kro-renewal-lite.exe

    DIFF
     
    Take 2014-03-05bRagexe.exe and open it in Nemo.
    Click "Select Recommended" at the bottom Custom Window Title Read Data Folder First Skip License Screen Use Ragnarok Icon

    Take a look at all the options and enable at your own risk.
     
    MERGE
     
    Take the Ragnarok Online ClientSide Translation's data folder, and merge + overwrite the v4 Basic Complete Renewal Data English's data folder. After you combine the two data folders copy the System and AI folders over.
     
    Why do I have to merge two different data folders?
     


     
    clientinfo.xml
     
    Create a clientinfo.xml file:
     
    <?xml version="1.0"encoding="euc-kr" ?><clientinfo><servicetype>korea</servicetype><servertype>primary</servertype><connection><display>RO</display> <balloon>RO</balloon> <desc>RO</desc> <address>127.0.0.1</address> <port>6900</port> <version>45</version> <langtype>0</langtype> <registrationweb></registrationweb> <aid> <admin></admin> <yellow></yellow></aid> </connection></clientinfo>  
    Place the clientinfo.xml file in your data folder.
     
    GRF
     
    Open GRF Builder. Click New. Enter a .grf filename. Click Merge dir. Select your data folder. After your .grf is created add the filename to your DATA.INI.
     
    DATA.INI
     
    Create a DATA.INI file:
    [Data]1={translations + clientinfo.xml}.grf2=rdata.grf3=data.grf  
    SETUP
     
    Don't forget to add opensetup to your RO folder. Also make sure you copied over the System and AI folders from the v4 Basic Complete Renewal Data download.
     
    DONE
     
    Run your patched exe and enjoy! Try re-opening the file if it gives you an error the first time you execute it.
     
    I'm sorry there are no images.
     
    Having trouble?
     
    Try downloading the ready made 2013-08-07aRagexe Full Client.rar from (https://www.mediafire.com/folder/hg3wqu9a1cc7w/ready%20made)
     
    Completely lost?
     
    Download a completely setup RO folder designed to work with localhost (https://docs.google.com/uc?id=0B9iUnTTFhVamRTNONGd3UHNpSUE&export=download)
     
    TLDR;
     
    Some newcomer figured out how to get a client working and wrote a guide.
  18. Upvote
    jaBote got a reaction from Nebraskka in "goto" alternative?   
    In that case, you can insert the piece of code where the goto is; In other more complicated cases you could callsub that, which is basically a goto with the possibility of adding parameters and (to my understanding the reason of avoiding using goto) the ability of returning the control to where it was called when the subprogram execution has been finished.
  19. Upvote
    jaBote got a reaction from MrSky in How to check all items?   
    I don't know if this is what you mean, but you can find similar commands by reading the fine manual for this (which is doc/script_commands.txt):
     
    *countitem(<item id>)*countitem("<item name>")This function will return the number of items for the specified item IDthat the invoking character has in the inventory.mes "[Item Checker]";mes "Hmmm, it seems you have "+countitem(502)+" apples";close;Like 'getitem', this function will also accept an 'english name' from thedatabase as an argument.If you want to state the number at the end of a sentence, you can do it byadding up strings:mes "[Item Checker]";mes "Hmmm, the total number of apples you are holding is "+countitem("APPLE");close;  
    Edit: Dang, if you're allowed to have apples only you should check this other function:
    *getinventorylist;This command sets a bunch of arrays with a complete list of whatever the invoking character has in its inventory, including all the data needed to recreate these items perfectly if they are destroyed. Here's what you get:@inventorylist_id[] - array of item ids.@inventorylist_amount[] - their corresponding item amounts.@inventorylist_equip[] - whether the item is equipped or not.@inventorylist_refine[] - for how much it is refined.@inventorylist_identify[] - whether it is identified.@inventorylist_attribute[] - whether it is broken.@inventorylist_card1[] - These four arrays contain card data for the@inventorylist_card2[] items. These data slots are also used to store@inventorylist_card3[] names inscribed on the items, so you can@inventorylist_card4[] explicitly check if the character owns an item made by a specific craftsman.@inventorylist_expire[] - expire time (Unix time stamp). 0 means never expires.@inventorylist_count - the number of items in these lists.@inventorylist_bound - whether it is an account bounded item or not.This could be handy to save/restore a character's inventory, since no other command returns such a complete set of data, and could also be theonly way to correctly handle an NPC trader for carded and named items who could resell them - since NPC objects cannot own items, so they have to store item data in variables and recreate the items.Notice that the variables this command generates are all temporary, attached to the character, and integer.Be sure to use @inventorylist_count to go through these arrays, and not 'getarraysize', because the arrays are not automatically cleared between runs of 'getinventorylist'.  
    Just check that @inventorylist_count is 1 and that @inventorylist_id[0] is the Apple item ID.
  20. Upvote
    jaBote got a reaction from Blip in [Ayuda] El cliente no tiene acceso al map server (Aparentemente)   
    Parece que puedes desactivarlo de dos formas:
     
    Una: abriendo tu editor hexadecimal de ficheros de preferencia (el mío por ejemplo es xvi32) y cambiando la cadena de texto NC_CASHSHOP por una cadena vacía:
     
    Busca la cadena hexadecimal: 4E 43 5F 43 61 73 68 53 68 6F 70  (o NC_CASHSHOP)
     
    Cámbialo por: 00 00 00 00 00 00 00 00 00 00 00 (muy IMPORTANTE, no le des a la tecla delete)
     
    Tema de origen: http://herc.ws/board/topic/6758-disabling-cash-shop-button-in-upper-right-corner/?hl=%2Bcash+%2Bshop+%2Bbutton
     
    O bien puedes cambiar el fichero del botón en tu GRF, que se encuentra en Data/texture/유저인터페이스/basic_interface/nc_cashshop.bmp por una imagen transparente (color 0xFF00FF) de 1x1px, así si alguno de tus usuarios hace click en ella será de pura mala suerte.
     
    ¡Un saludo!
  21. Upvote
    jaBote got a reaction from Blip in [Ayuda] El cliente no tiene acceso al map server (Aparentemente)   
    ¡Buenas!
     
    Sí, entiendo lo que comentas y, por desgracia, lo que hay para cliente hace que todo sea así de poco intuitivo. Yo mismo me encuentro muy limitado en esa parte porque nunca me interesó y se me hace todo muy complicado incluso para las cosas más básicas e incluso mi capacidad de soporte al respecto es también igual de limitada. Me encantaría ver algún tutorial en español sobre el cliente o instruirme yo mismo, aunque por desgracia de momento me es imposible hacerlo por mi cuenta por restricciones temporales.
     
    Aún así, vamos a ello:
     
    Lo primero que te recomendaría es que encuentres y diffees otra versión de cliente (que desde que murieron los temas de ossi0110 ya ni sé donde se consigue un cliente completo, siquiera). El motivo es que no hay paquetes para la versión de tu cliente en src/map/packets.h y es posible que sea eso lo que causa los errores.
     
    Por otro lado, en caso de querer seguir con tu versión actual del cliente, ¿recibes algún error en la consola del mapserver cuando te echa del servidor? ¿Ves que el login ha sido correcto en el loginserver y como el control pasa al char server antes de que tu sesión desaparezca entre el char y el map server?
     
    Mis compañeros de la sección hispana (especialmente M45T3R) tiene bastante más conocimiento de clientes que yo, a ver si cuando se pase puede echarte una mano un pelín más útil
     
    P.D.: Respondo rápidamente a lo que sé sobre tus curiosidades para que estés algo más informado:
    ¿Por qué esa estructura de carpeta del RO? No lo sé, creo que así es como la ha dispuesto Gravity y así es como tenemos que organizarnos nosotros para que las cosas nos funcionen, y los nombres de casi todos los archivos de clientes deben permanecer inalterados para que así sea; ¿Qué define usar lua o lub? Los clientes oficiales solo cargan archivos lua encriptados que sepa, pero si al diffear el cliente escoges una opción llamada "Load LUB before LUA" (cargar lubs antes que los lua) simplemente el cliente buscará antes un archivo con ese mismo nobre pero extensión lub, antes que su correspondiente lua. En la mayoría de casos y que tenga conocimiento, puedes usar un lub o un lua indistintamente; ¿Por qué tienes que usar clientinfo.xml? Fundamentalmente, para darle a tu cliente una dirección IP y un puerto que buscar en internet para hacer que el cliente se conecte, junto a información miscelánea como hacerle saber el nombre del servidor, los archivos a cargar para la pantalla de carga, a quién asignarle trajes de GM (que siempre me pareció una mala idea hacerlo desde ahí, aunque no hay otra) y todo lo que ahí se especifica. ¿Qué ocurre con la carpeta Data y los archivos grf? Como has podido averiguar, un archivo grf es básicamente una carpeta data comprimida, con la estructura que se le haya ocurrido a Gravity, aunque por ejemplo algunos clientes requieren que haya archivos dentro de Data fuera de todo grf. Los GRF se leen por orden, de una lista en el archivo DATA.INI (u otro si se modifica en el exe) de tu instalación del RO, en que menor número significa mayor precedencia. En muchas versiones de cliente, si quieres que las cosas se lean desde la carpeta Data, tienes que diffear el exe con la opción "Read data folder first", que hace exactamente eso mismo.

  22. Upvote
    jaBote reacted to Dastgir in [Guide] Adding New Status Icons   
    Hello Hercules Community,
    Here's a Guide to Add a New Custom Status Icons(the one displayed on the right)
     
     
    What you Need?
    Knowledge of Editing and Compiling Server(and ofcourse custom icons)

     
    1) Server Side Edits:
    open
    src/map/status.h
     
    Find
     
    SC_MAX  Add Before
     
    SC_MYCUSTOMBUTTON,  
     
    Find
    SI_MAX, Add Before
     
    SI_MYCUSTOMBUTTON = ID_OF_BUTTON, (ID of Button can be any, but I suggest to have them > 2000, so not to avoid any updates with kRO(which is at 900) now)
    P.S: Remember that ID_OF_BUTTON, we gonna need them later.
     
     
    src/map/status.c
    Find
    status->IconChangeTable[SC_DECORATION_OF_MUSIC] = SI_DECORATION_OF_MUSIC; Add Below
    status->IconChangeTable[SC_MYCUSTOMBUTTON] = SI_MYCUSTOMBUTTON;  
    Recompile 
     
    2) ClientSide Edits
    Get a CleanCopy of statusicon folder (https://github.com/ROClientSide/Translation/tree/master/Data/luafiles514/lua%20files/stateicon)
     
    Open efstids.lub
    Find:
    __newindex = function()error("unknown state") Before it add,
     
    EFST_MYCUSTOMBUTTON = ID_OF_BUTTON,  P.S: ID_OF_BUTTON should match the one on source(status.h)
     
     
    Open  stateiconinfo.lub
    Find
     
    StateIconList[EFST_IDs.EFST_JUMPINGCLAN] = {  Add Before
    StateIconList[EFST_IDs.EFST_MYCUSTOMBUTTON] = { haveTimeLimit = 1, posTimeLimitStr = 2, descript = { { "My Custom Button Heading", COLOR_TITLE_BUFF }, {"%s", COLOR_TIME}, --do not edit this, this shows time remaining { "Description 1" }, { "Description 2" }, { "Description 3" } }} Open
    stateiconimginfo.lua
    Find
     
    [PRIORITY_GOLD] = { OR
    [PRIORITY_RED] = {  OR
    [PRIORITY_BLUE] = {  OR
    [PRIORITY_GREEN] = {  OR
    [PRIORITY_WHITE] = {  (Depending on what background your Custom Button is)
    Add below
     
    [EFST_IDs.EFST_MYCUSTOMBUTTON] = "MYCUSTOMBUTTONFILE.TGA",  P.S: Your Button File must be in .TGA form only.
    .tga file must go to data/texture/effect/ Folder
     
    And Its DONE!!!
     
    NOTE: Replace MYCUSTOMBUTTON with your own Icon/Effect Name
  23. Upvote
    jaBote got a reaction from milk in Web hosting   
    One of the main things you'd have to know is that unlimited web hosting is a scam. 90% of hostings that are saying unlimited are lying because that isn't true (just imagine millions of clients buying cheap, unlimited web hostings and uploading all of their files just to have a backup, which would be rather silly). You should rather go for unmetered when looking for these. And trust me, you'd rather prefer to know your limits than having a hard limit (usually under a Fair Use clause in the Terms of Service) and not knowing where it is.
     
    Just think, buying hard drives for your data is expensive and you may not know, but carriers charge data centers based on the amount of data traffic they consume. It's rather common to have unmetered data transfer on shared hostings (web hostings) since your host wants you to be able to serve your web to any legit who requests it (that's why it's common to find some terms of service in hosts that bans directly or indirectly making download sites on shared web hostings).
     
    Now, if you want a paid web hosting, think what hard disk space you need. You won't usually need more than 10 GB unless you're running a massive site or using your space inefficiently. As I said, you usually won't have to mind about transfer, but if your transfer isn't on the unmetered side try to have it around the 100 GB mark to make it on a very safe mark (unless you're running sites with tons of visits).
     
    Hope this helped you.
  24. Upvote
    jaBote reacted to GmOcean in explode to push arraysize   
    I just wanna suggest that the *explode script command, should push the array size of the one it creates. So that things like this are possible:
    .@a = 10;while( .@b != .@a ) { .@menu$ = .@menu$ +""+ .@b +":"; .@b++;}.@menu$ = .@menu$ +"Last Option";if( select( .@menu$ ) == ( .@size = explode( .@temp$, .@menu$, ":" ) ) ) { close; } // Clicked Last Option in list. vs what we have to do now:
    .@a = 10;while( .@b != .@a ) { .@menu$ = .@menu$ +""+ .@b +":"; .@b++;}.@menu$ = .@menu$ +"last Option";explode( .@temp$, .@menu$, ":" );if( select( .@menu$ ) == getarraysize( .@temp$ ) ){ close; } // Clicked Last Option in list.  
    It's not really " needed " more of just a feature I think it should have since commands like query_sql have it. I figure why not give it the extra feature since it's not a downgrade nor does it break backwards compatibility.
  25. Upvote
    jaBote got a reaction from diieg0 in Entregar item 1 vez por cuenta   
    Hola.
     
    El script que pides es algo muy básico que (en mi humilde opinión) realmente deberías conocer antes siquiera de plantearte abrir un servidor. No obstante, soy consciente de que todos hemos empezado servidores sin ningún tipo de conocimiento específico, por lo que en vez de convertir este mensaje en una regañina, te voy a ofrecer la ayuda.
     
    Existe desde hace tiempo una serie de guías básicas de scripting que pueden ayudarte como estos vídeos de M45T3R o las guías de scripting básico de Rokimoki (muy viejas y en la que se han perdido los caracteres especiales del español pero aún 99% válidas), aunque también deberías considerar el uso de la guía "oficial" (en inglés), incluida en cada descarga completa del emulador y situada en doc/script_commands.txt. De hecho, la petición de NPC que has hecho se cubre totalmente con el capítulo 1 de la guía de Rokimoki.
     
    El siguiente NPC se trata de un NPC genérico que resuelve tu problema de forma básica. Recuerda sustituir los parámetros entre los signos <> por lo que tú quieras o necesites y las indicaciones de tabulaciones (marcadas con <%TAB%>) por un espacio de tabulación (es obligatorio para su funcionamiento).
     
    <mapa>,<x>,<y>,<dir><%TAB%>script<%TAB%><nombreNPC><%TAB%><sprite>,{ if (#objetodado == 0) { // El valor de una variable que no ha sido previamente asignado es 0 mes "Hola, bienvenido."; mes "Te he dado un objeto como regalo de bienvenida."; getitem <ID_ITEM>,<CANTIDAD>; #objetodado = 1; // #objetodado tiene prefijo #, que es variable de cuenta, al ser 1 el NPC ya usará el else en vez de esta rama y no dará un objeto. close; // Cierre del diálogo } // Fin if else { // Si la cuenta ya tiene el objeto del NPC, #objetodado será distinto de 0 mes "Hola."; mes "Ya te dí un objeto, no te puedo dar más objetos."; close; }}  
    Consejos:
    [*]Puedes obtener el mapa y las coordenadas x,y del NPC cuando quieras usando /where desde el cliente. [*]Una dirección de 4 o 5 suele orientar el NPC para que mire hacia abajo, mira la documentación para saber el resto de direcciones si quieres que el NPC mire hacia otro lado. [*]¡Evita que el nombre del NPC supere los 23 caracteres! [*]Generalmente te conviene usar la ID de sprite de un NPC para que haya compatibilidad con versiones anteriores de los emuladores, aunque en las últimas versiones de Hercules también puedes usar las constantes de sus nombres. Puedes usar gran parte de los sprites de NPC que aparecen catalogados en la página de @Ai4rei aquí: http://nn.nachtwolke.com/dev/npclist/ [*]¡Que no se te olvide sustituir la item ID y la cantidad que quieres entregar! Si quieres entregar más de un objeto diferente, añade más comandos getitem con su ID y cantidad. [*]La variable utilizada en este NPC debe ser única. Es decir, ningún otro NPC debe estar utilizándola. Comprúebalo. En ocasiones te interesa que una misma variable sea manejada por más de un NPC, pero no es así en este caso.

     
    Espero haberte ayudado al menos un poco. Para próximas peticiones tuyas de NPC si son muy básicas no te daré el código completo sino que trataré de ayudarte a que seas tu mismo quien lo construya y así aprendas.
     
    Un saludo.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.