Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 11/02/15 in all areas

  1. October Digest 2015 The following digest covers the month of October, 2015. Staff Changes @Aleos is now a Head Administrator @Brian is now a Supporting Admin @Maki is now a Supporting Admin @Akkarin is now a Community Contributor @Luciar is now a Community Contributor Development Highlights CORE: Corrected the Burning and Stun effects for Magma Eruption (7bc7b7e) Added usage of enum values and cast cleanup in various places of source (78b6c15, a597e7b) Backslide will now work if a player has the 'no knockback effect' active (c9c988a) Fixed the questlog display for clients 2014-10-22 and on (45e50a3) Fixed long broadcasts getting truncated (cef2f9e) Fixed an issue with the pc_damage_log_add() not storing correctly (927d1e2) Fixed Elementals getting removed incorrectly from deleted instances (857b82d) Fixed a possible crash from Star Gladiator Warm skills (8c8c486) Corrected Arms Cannon not giving splash damage (34c19ed) Fixed a possible crash from Taekwon Counter (80b88b9) Corrected skill cooldown overflow (573c7dc) Corrected a few skills that use base stats to use stats stored in mmo_charstatus (ea497b2) Warg Dash cannot be used while standing next to a monster (09e91d4) Status effects that damage monsters will now give the EXP to the player (b385fd0) DATABASE: Item Package update. Converted AegisName -> ItemID (640a0c5) Corrected Blank Eyes location (64d2463) Corrected Lighthalzen Bio Labs 3 monster drops (e0b24fc) Updated item group Advanced Weapons Box (fd5e796) Corrected locations for a few costumes (b6187aa, 581c236) SCRIPT:None OTHERS: Moved hard coded timestamps for logs to conf/logs.athena (1210bca) @iteminfo will now properly display dropped items when 'mobinfo_type' is active (cef2f9e) Script commands 'close' and 'end' will no longer stop a script if a shop is active (cef2f9e) Quest IDs > 65535 is now supported (a2d8b81) Corrected a few status checks to not have priority (030c4c5) Fixed an issue where memory leak log was null on Windows (5a49b70) Replaced macros 'min' and 'max' with some inline functions (214ff17) Fixed an incorrect variable type, left over from 82467e1 (da94f41) Item bonus documentation updates (efea117) Added some newer NPC constants (ae98019) Removed a useless parameter from elemental_delete() (dc533fe) Removed some duplicate lines from .gitignore (d996590) Statistics 8 authors have pushed 50 commits during this period. On master, 107 files have changed. There have been 5,571 additions and 4,963 deletions. There are 4 merged Pull Requests and 3 Proposed Pull Requests. There are 29 created Issues and 49 Closed Issues. Show your support to rAthena by submitting your Issue or Pull Requests! [spoiler=You can help us too! (Yes, YOU! )]Currently rAthena uses GitHub Issues to handle bugs, server crash, pull requests, etc.. Most of the reports are fine, but some posts on our GitHub Issues are lacking of information needed to identify the possible cause, therefore it will make the dev to ask the same questions over and over again. So, I'm here to show you a small tutorial on how to improve rAthena's GitHub Issues ^^ First of all, it will helps the devs a lot if the issue reporter put decent information on the top of the report. You can copy paste the text below, and put it on top of your report: [spoiler=GitHub Header Format] Git Hash/Date: Client Date: Server Mode: Pre-RE/Renewal Source/Script Mods: Descriptions: How To Replicate: Now I will explain what does the above lines means. - Git Hash/Date = It means the referrence for each commits in GitHub, it can be used to identify which code has been changed/added. If you can't provide the Git Hash, at least you can use the date where you pulled/clone the repository. If you are still using SVN (which is not recommended anymore), you can provide the Revision Number instead. [spoiler=Here I will show you how to get your current Git Hash] 1. Open up your Command Line Prompt' if you are on Windows, or 'Terminal' if you are on Linux. Navigate to your repository folder. For example if your rAthena folder is on F:\Folder\rAthena and currently you are on C:\, then you can type F:(enter)cd folder\rathena(enter). If your folder name contains space, enclose your folder name inside the "". After you navigate to your repository folder, type: git show (Actually you can use another commands like: git rev-parse HEAD or git rev-parse --short HEAD) 2. You will see your current Git Hash number which can be pasted using the short version (only it's first 7 characters). For example: 5a0f8dc12ae1d0b2c3bf0a9fecc085719a28622b can be safely written as 5a0f8dc. 3. On the screenshot, I used a Git application (SmartGit), and it shows the same Git Hash number like the one on Command Line Prompt. There are lots of Git applications available, you can use whichever you want. 4. "master <3 origin" here is not "master loves origin" D: It means that currently my local repo is '3 commits behind' from the master repo. In other words, someone has pushed some new commits (in this case, 3 commits) and I haven't pulled/fetch them. If I made some modification on my local repo but haven't pushed my commit to the master repo, it means that my local repo is 'ahead' of master repo. 5. Those dots are the commits details which is already pushed to the master repo. 6. HEAD means our 'current local repo'. After reading the above explanations, I hope that no one will use the word 'latest git/hash/version/revision' anymore, because it's incorrect and confusing - Client Date = Put with the client date you are using. - Server Mode: Pre-RE/Renewal = Choose one, by deleting the unneeded one. - Source/Script Mods = If you ever edited or applied some diffs from other sources, or you have edited the corresponding script, please describe it here. Because sometimes the report is invalid because of this reason. - Descriptions = Describe your report here, if it's a server crash or compilation warning (or the others), please include the screenshot or the debug data too. - How To Replicate = If you can, please describe on how to replicate the bugs you found, so it can be identified easier. We are thankful if all issue reporters could follow the above format.
    3 points
  2. I thought about suggesting it, it's a really fancier way, but, focused on teach you what you wanted to learn. Glad you made it.
    1 point
  3. As said in doc/script_commands.txt: *set <variable>,<expression>{,<char_id>}; *set(<variable>,<expression>{,<char id>}) This command will set a variable to the value that the expression results in. Variables may either be set through this command or directly, much like any other programming language (refer to the "Assigning variables" section). This is the most basic script command and is used a lot whenever you try to do anything more advanced than just printing text into a message box. set @x,100; will make @x equal 100. set @x,1+5/8+9; will compute 1+5/8+9 (which is, surprisingly, 10 - remember, all numbers are integer in this language) and make @x equal it. Returns the variable reference (since trunk r12870). You can add a target character at the end of set, but you need it's CharID: You're using the function set incorrectly, It's: set #warningpoints, #warningpoints + 1; // It means, set a new value to variable #warningpoints. // The new value is the current value of #warningpoints plus one. Now, let's target it to a player. Since you need to get the Char ID and you only have the Char Name, we need to convert it, using getcharid(): *getcharid(<type>{,"<character name>"}) This function will return a unique ID number of the invoking character, or, if a character name is specified, of that player. Type is the kind of associated ID number required: 0 - Character ID 1 - Party ID 2 - Guild ID 3 - Account ID 4 - Battle Ground ID For most purposes other than printing it, a number is better to have than a name (people do horrifying things to their character names). If the character is not in a party or not in a guild, the function will return 0 if guild or party number is requested. If a name is specified and the character is not found, 0 is returned. If getcharid(0) returns a zero, the script got called not by a character and doesn't have an attached RID. Note that this will cause the map server to print "player not attached!" error messages, so it is preferred to use "playerattached" to check for the character attached to the script. if (getcharid(2) == 0) mes "Only members of a guild are allowed here!"; Since you got the name via input: getcharid(0, $@warnplayer$) Let's attach it to set: set #warningpoints, #warningpoints + 1, getcharid(0, $@warnplayer$); // It means, set a new value for #warningpoints. // The new value is the current value of #warningpoints plus one. // Set it to the Char ID of the given Char Name via the variable $@warnplayer$ set by input. A simple look in doc/script_commands.txt could lead you to the solution...
    1 point
  4. You can contact him in Skype just search Functor
    1 point
  5. Sepix NPC Scripting Guide 2.0 Hallo rAthena Community! Einige kennen vielleicht meinen alten NPC Scripting Guide im eAthena Forum. Da dieser Guide meine Email Adresse enthält bekomme ich in letzter Zeit vermehrt Emails die nach diversen Dateien oder anderen broken Links fragen. Daher dachte ich mir es ist an der Zeit den alten Schinken zu erneuern. Wenn wir schon dabei sind kann ich auch gleich die neuersten Features unterbringen die mittlerweile dazu gekommen sind. Ich werde hier einen anderen Weg nehmen als vor 8 Jahren um die Dinge besser unterzubringen. ​Was ihr benötigt: Viel Geduld Einen Editor Ein "Eingabegerät" (PC, Macbook, Tablet, Handy, usw.) Einen Testserver (optional) Wenn ihr soweit alles Griffbereit habt dann gehts auch gleich los. Ich werde versuchen täglich ein Kapitel hinzuzufügen. Kapitel 1 - Aufstellen eines NPC's In diesem Kapitel lernen wir wie wir einen NPC im Spiel platzieren, was im Prinzip nicht all zu schwer ist! Zu Beginn sollten wir uns mal ansehen was für Information wir benötigen und wo wir sie her bekommen. Wir brauchen: Den Namen der Map Die X Coordinate Die Y Coordinate Die Blickrichtung Den NPC Typ Einen Namen Die Sprite ID Sieht dann ungefähr so aus: prontera.gat,156,212,7<tab>script<tab>Einsamer Engel<tab>811,{ Soweit so gut! Nur woher bekommen wir die ganzen Daten? Genau das sehen wir uns nun Schritt für Schritt an! Mapname, X Coordinate & Y Coordinate Alles was ihr für diese Information tun müsst ist euch in einen Server einloggen und an genau die Stelle laufen an dem euer NPC stehen soll. Wenn ihr dort angekommen seit müsst ihr nur /where in die Chatbox schreiben. Ihr werdet folgendes als Antwort bekommen: mapname.gat,X,Y Das war es auch schon! Wir haben die ersten 3 Dinge erledigt und können weiter machen. Blickrichtung Die Blickrichtung ist ein einfaches Raster. Je nachdem welche Nummer ihr verwendet entscheidet die Ausrichtung eures NPC's. Die Nummern beginnen bei 1 und enden bei 8. 0 ist ein Platzhalter und sollte nicht verwendet werden. Die Nummern starten Links oben mit 1 und laufen dann gegen den Uhrzeigersinn. Das Diagram unten sollte es verständlicher machen! [1][8][7] [2][0][6] [3][4][5] Sucht euch eine Nummer aus und wir können auch schon weiter machen. Bis jetzt sind wir ziemlich gut unterwegs würde ich sagen. NPC Typ Der NPC Typ bestimmt die Aufgabe eines NPCs. Es gibt verschiedene Arten von NPCs. Ich erkläre eben einmal die Wichtigsten aber vorerst interessiert uns nur der Erste davon. script Der Standard NPC. Wird verwendet so gut wie immer verwendet. Das sind die NPC's die rumstehen, Quests geben, sinnloses Zeug quatschen oder Belohnungen verteilen. shop Definiert einen Shop NPC. Prontera Tool Dealer zum Beispiel. monster Ein Monster auf der Map. Wir normalerweise nicht separat erstellt sondern findet sich in der monster.txt warp Ein Warp Portal auf der Map. Wir verwendet um sich zwischen 2 Maps hin und her zu bewegen. Wie Oben bereits erwähnt interessiert uns an diesem Punkt nur der erste Typ nämlich, script und den verwenden wir auch! Weiter gehts! Einen Namen Der bleibt vollkommen euch überlassen. Sprite ID Es gibt mittlerweile Unmengen an NPC Sprites. Diese Sprites bestimmen wie der NPC im Spiel aussieht. Im Prinzip ist das Ganze nicht schwer. Alles was ihr tun müsst ist den folgenden Link aufsuchen und euch einen NPC Sprite aussuchen. Schreibt euch die ID auf und das wars auch schon! Alles zusammen So da wir nun alle Information haben können wir diese eintragen und mit den interessanten Sachen beginnen! Ich hab meinen NPC oben bereits als Beispiel gepostet aber ich füge in hier nochmal ein zur Wiederholung! prontera.gat,156,212,7<tab>script<tab>Einsamer Engel<tab>811,{ Passt auf das ihr die <tab> Teile nicht schreibt sondern stattdessen die Tab Taste auf eurer Tastatur drückt. Vergesst die geschwungene Klammer am Ende nicht und dann kann auch schon nichts mehr schief gehen! Kapitel 2 - Sprechen lernen < coming soon >
    1 point
×
×
  • Create New...