Jump to content

Litro Endemic

  • Content Count

  • Avg. Content Per Day

  • Joined

  • Last visited

  • Days Won


Litro Endemic last won the day on February 15

Litro Endemic had the most liked content!

Community Reputation

51 Excellent


About Litro Endemic

  • Rank
  • Birthday 10/27/1991

Profile Information

  • Gender
  • Location

Contact Methods

Recent Profile Visitors

2,298 profile views
  1. when calling function either from npc script or item script, how to get the npc id or item id from the caller example function script TestFunc { // Called from npc? [email protected] = getnpcid(0); // not called from npc? maybe from item? if ([email protected]) getitemid(); message strcharinfo(0), "TestFunc called from "[email protected]+", with arg 0 "+getarg(0); return; } // item 501,Red_Potion,Red Potion,0,10,,70,,,,,0xFFFFFFFF,63,2,,,,,,{ TestFunc(1); },{},{} // script TestFunc(2);
  2. kindly ask what is the purpose of this? afaik char server is only responsible for saving data, as for multi map server is for like other game online where the same map channel, it some scenario is like boss poring is killed in map channel a and not yet on the channel b or so
  3. this patcher isn't included repacking into grf's, there is some ready made lib for grf reader ref : - https://github.com/LiamKarlMitchell/node-grf - https://github.com/herenow/grf-extractor
  4. why don't you make permanent spawn mob type? if you need a label, you can attach it on it too
  5. did you tried to remove the Element type said in skill db yml files? # Element: Skill element. (Default: Neutral) ref for old type db txt: imo it should hold the same method, just make it neutral - Id: 2343 Name: SR_GATEOFHELL Description: Gate of Hell MaxLevel: 10 Type: Weapon TargetType: Attack Range: 7 Hit: Multi_Hit HitCount: -7 Element: Neutral CopyFlags: Skill: Reproduce: true CastCancel: true CastTime: - Level: 1 Time: 1000 - Level: 2 Time: 1200 - Level: 3 Time: 1400 - Level: 4 Time: 1600 - Level: 5 Time: 1800 - Level: 6 Time: 2000 - Level: 7 Time: 2200 - Level: 8 Time: 2400 - Level: 9 Time: 2600 - Level: 10 Time: 2800 AfterCastActDelay: - Level: 1 Time: 100 - Level: 2 Time: 200 - Level: 3 Time: 300 - Level: 4 Time: 400 - Level: 5 Time: 500 - Level: 6 Time: 600 - Level: 7 Time: 700 - Level: 8 Time: 800 - Level: 9 Time: 900 - Level: 10 Time: 1000 Requires: SpCost: 100 SpiritSphereCost: 2
  6. for now this type of variable storing is good enough if just only 5, but in my case is not god enough, don't store any in char, accout, map registry if you use it for quest, use custom sql db entry and go query it, well for now this is enough just to get the grasp how it worked... OnNPCKillEvent: [email protected] = killedrid; // get the size of array list [email protected] = getarraysize(kList$); // get the index of killed mob, exist or not? [email protected] = inarray(kList$, getmonsterinfo([email protected], MOB_NAME)); // [email protected] retrun -1 if the mon is not exist in the list // [email protected] return index of mob in array list, array index started from 0 if ([email protected] > -1) { // let's try to increase the mob kill count killmobcount[[email protected]]++; } else { // insert new mobid into the list // use [email protected] variable to set it as last entry in array kList$[[email protected]] = getmonsterinfo([email protected], MOB_NAME); // set the kill count to 1 killmobcount[[email protected]] = 1; } end;
  7. put your sprite file that was causing crash here, maybe somebody intereseted in looking into it
  8. When view other players equipment and select costumes, it makes my client crash. But if im wearing those costumes, and view, no problem at all. It only happen on some costumes and headgears. imo that headgears was some BAH (big ass headgears) type like wing or aura that has so huge place or some bad act file for the sprite, so my advice is scrap those headgear or fix it, how to fix it?? sigh.. just scrap it for easy life...
  9. first you need to read script doc to see how the variable type is composed... there is no #@ as valid prefix for a variable... then, to use integer in string type variable you need to "stringify" it idk if that was the correct term.. examples [email protected] = 1; [email protected]_int$ = [email protected]+""; mes [email protected]; // warning ? error?? forgot what will pop up by this mes [email protected]_int$; // ok! mes [email protected]+""; // ok! OnNPCKilledEvent: [email protected] = killedrid; // using combination? // the original variable should be like ".mob1002_killcount" for Poring. [email protected]_int = getd(".mob"[email protected]+"_killcount"); // setting the value into it set getd(".mob"[email protected]+"_killcount"), [email protected]_int +1; end;
  10. the project is so huge, why not move it in single file (autopilot.cpp??) instead of put it on unit.cpp ?
  11. you can read it on this thread https://herc.ws/board/topic/1101-4slotted-weapon2slotted-shield/
  12. short answer: no, because client limitation!, or you can make mod by using vending system, google this word "Selling Refined Item by NPC as Vending List"
  13. i don't really see your direction of script but 2 dimensional array is not supported by script engine, use setd, getd or explode, implode https://lmgtfy.com/?q=rathena+2d+array
  14. According script doc BaseExp - Amount of base experience points. JobExp - Amount of job experience points. NextBaseExp - Amount of base experience points needed to reach the next level. NextJobExp - Amount of job experience points needed to reach the next level. since i didn't test it on game, i am not sure if NextBaseExp is full amount or has been reduced by BaseExp, if not reduced use the first one, if reduced use the 2nd one [email protected] = 5; [email protected] = (NextBaseExp * [email protected]) / 100; getexp2 [email protected],0; [email protected] = 5; [email protected] = ((NextBaseExp - BaseExp) * [email protected]) / 100; getexp2 [email protected],0;
  15. yep, you are right the script crashed my test server, because the duplicate tomb is floating type npc, tested and worked... not entirely like tomb per see, because when the scenario 2 player killing same mob id from the list mob, the npc will move to the last killed mob ex: player a killed poring (1002) on prontera 150 150, then npc will spawned there, then after 10 seconds, player B kill poring (1002) too on prontera 180 180, the npc that spwaned after player A killed poring will move to player B killed poring you need many duplicate npc, to match exact number of your amount spawned mobs, or with src mod will be more easier btw here the tested script - script Main NPC -1,{ end; OnNPCKillEvent: if (.state != 1) end; [email protected] = inarray(.moblist[0], killedrid); if ([email protected] == -1) end; [email protected] = getelementofarray(getvariableofnpc(.tombid, "TheTomb"), [email protected]); debugmes "npcid: "[email protected]; getunitdata(killedgid, [email protected]); setunitdata([email protected], UNPC_MAPID, [email protected][UMOB_MAPID]); setunitdata([email protected], UNPC_X, [email protected][UMOB_X]); setunitdata([email protected], UNPC_Y, [email protected][UMOB_Y]); setunitdata([email protected], UNPC_LOOKDIR, 0); end; OnInit: setarray .moblist[0], 1002, 1003, 1004, 1005; [email protected] = getarraysize(.moblist); [email protected] = getvariableofnpc(.tombcount, "TheTomb"); if ([email protected] < [email protected]) { debugmes "The Tomb count isn't match with the mob count in list"; debugmes "Size of Mob List: "[email protected]+", NPC Tomb Count: "[email protected]; end; } .state = 1; end; } - script TheTomb -1,{ end; OnInit: if (strnpcinfo(2) == "") end; .tombcount++; .tombid[.tombcount-1] = getnpcid(0); end; } prontera,0,0,0 duplicate(TheTomb) Tomb#1 112 prontera,0,0,0 duplicate(TheTomb) Tomb#2 112 prontera,0,0,0 duplicate(TheTomb) Tomb#3 112 prontera,0,0,0 duplicate(TheTomb) Tomb#4 112
  • Create New...

Important Information

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