Jump to content

jaBote

Community Contributors
  • Content Count

    2037
  • Joined

  • Last visited

  • Days Won

    43

Everything posted by jaBote

  1. Hello. First, I should make clear that we follow kRO mechanics. While chances are kRO behavior regarding this is the same than fRO (official european), it may be not the same. Have you tried assigning a value of 2 (can't be saved, I assume that on login/logout) to the SC_EXTREMITYFIST2 effect on db/sc_config.txt? Just add a new row (since that SC isn't in that list) and assign it a value of 2 in the same format. Then reboot your test server and try. Hope this is the answer
  2. And if your system claims you haven't dos2unix, yum install dos2unix
  3. Have you tried this one? http://herc.ws/board/topic/902-instant-third-class-jobs/
  4. jaBote

    Timed Warp

    Then easiest way you have to do that is disabling the warp system from your woe controller and make a separate NPC warper to your castle.
  5. jaBote

    Timed Warp

    Mhmmm... You can do a simple change on that script. I HAVEN'T TESTED IT, but perhaps you can do this simple trick: FIND: if(getgmlevel() >= .gm_access) select( "Warp to Castle Grounds", "View Castle Owners", "View all WoE times", ((!.state)?"Start next WoE":"End current WoE"), ((.state)?"":"Skip next WoE session") ); else select( "Warp to Castle Grounds", "View Castle Owners", "View all WoE times"); Change both texts that read this: "Warp to Castle Grounds", to this: (( agitcheck() || agitcheck2() ) ? "Warp to Castle Grounds" : ""), Try and test.
  6. jaBote

    Timed Warp

    Check if WoE is running with agitcheck prior to warping. Or you can do the same with castles that have different schedules by using gettime too.
  7. Maybe they weren't ever meant to sit down since it's not on the prototype of the German Oktoberfest Übermensch
  8. This time it isn't my fault but documentation's conflicting line of code: else addtimercount 1000, strnpcinfo(3)+"::OnKillable"; // Will check again after a second until player goes out of the square What documentation says: What the code says: BUILDIN(addtimercount){const char *event;int tick;TBL_PC* sd;event=script_getstr(st, 2);tick=script_getnum(st,3);sd = script->rid2sd(st);if( sd == NULL )return true;script->check_event(st, event);pc->addeventtimercount(sd,event,tick);return true;} (If you can't read it, it just wants the event first, then the amount of ticks). I'll report this as a bug just after I make this reply. Common sense is that the order in which the script command wants it will be reversed to match the other script command's. You can change it if you want it working now, but be wary it may change over time to match the other command. Fixed line of code (at least until we do something regarding that): else addtimercount strnpcinfo(3)+"::OnKillable",1000; // Will check again after a second until player goes out of the square
  9. Oh bummer, just spotted yet another (serious) fault on the script. I'm feeling useless now. prontera,155,204,0 script killable -1,5,5,{OnTouch: if (!@killable) { @killable = 1; // Variable for keeping track of the status atcommand "@killable"; // Don't remember if it needed a parameter, I think it doesn't addtimer 100, strnpcinfo(3)+"::OnKillable"; // Will check after a second } end;OnKillable: getmapxy(.@map$, .@x, .@y, 0); if ( (.@map$ != "prontera" || // Outside of the map .@x < (155 - 5) || .@x > (155 + 5) || // Out of the area of effect in X side .@y < (204 - 5) || .@y > (204 + 5) ) && // Out of the area of effect in Y side @killable) { @killable = 0; atcommand "@killable"; // Don't remember if it needed a parameter, I think it doesn't } else addtimercount 1000, strnpcinfo(3)+"::OnKillable"; // Will check again after a second until player goes out of the square end;} Mhmmm... Try? (me crosses fingers) P.S.: Not sure that diff patch will work since it's quite outdated right now, but would give it a try on a separate emulator folder so that you can get rid of it if it doesn't do its job right.
  10. I've double checked the whole classes sprite folder and I'm quite sure I haven't found anything else O.o
  11. LoL, the center of the script is in 155,155 and it works in an 8x8 area from that center. You've got your problem here NP, changing script to fit it: prontera,155,204,0 script killable -1,5,5,{OnTouch: if (!@killable) { @killable = 1; // Variable for keeping track of the status atcommand "@killable"; // Don't remember if it needed a parameter, I think it doesn't addtimer 100, strnpcinfo(3)+"::OnKillable"; // Will check after a second } end;OnKillable: getmapxy(.@map$, .@x, .@y, 0); if ( (.@map$ != "prontera" || // Outside of the map .@x < (155 - 5) || .@x < (155 + 5) || // Out of the area of effect in X side .@y < (204 - 5) || .@y < (204 + 5) ) && // Out of the area of effect in Y side @killable) { @killable = 0; atcommand "@killable"; // Don't remember if it needed a parameter, I think it doesn't } else addtimercount 1000, strnpcinfo(3)+"::OnKillable"; // Will check again after a second until player goes out of the square end;}
  12. Mhmmm... Could you please give me the exact coordinates of the center and the 4 corners of that square? Seems that it isn't being well calculated.
  13. NOTES: You'll possibly NEED to shift+click people in order to hit them, there's no other way that I know for doing this. Maybe a massive duel inside the square? Have you tried that?
  14. So it works now? BTW sorry for the errors I didn't spot. That was a rough draft but never had actual time to test it more than a basic check.
  15. Yet another error of scripting without testing prontera,155,155,0 script killable -1,8,8,{ OnTouch: if (!@killable) { @killable = 1; // Variable for keeping track of the status atcommand "@killable"; // Don't remember if it needed a parameter, I think it doesn't addtimer 1000, strnpcinfo(3)+"::OnKillable"; // Will check after a second } end; OnKillable: getmapxy(.@map$, .@x, .@y, 0); if (.@map$ != "prontera" || // Outside of the map .@x < (155 - 8) || .@x < (155 + 8) || // Out of the area of effect in X side .@y < (155 - 8) || .@y < (155 + 8) ) { // Out of the area of effect in Y side @killable = 0; atcommand "@killable"; // Don't remember if it needed a parameter, I think it doesn't } else addtimercount 1000, strnpcinfo(3)+"::OnKillable"; // Will check again after a second until player goes out of the square end; } Changed all instances from strnpcinfo(3)+"OnKillable" to strnpcinfo(3)+"::OnKillable". Try it out now.
  16. LoL, I was missing NPC orientation all the time. P.S.: You haven't changed the parameters inside the NPC. I'll do this for you since I see you're getting lost prontera,155,155,0 script killable -1,8,8,{ OnTouch: if (!@killable) { @killable = 1; // Variable for keeping track of the status atcommand "@killable"; // Don't remember if it needed a parameter, I think it doesn't addtimer 1000, strnpcinfo(3)+"OnKillable"; // Will check after a second } end; OnKillable: getmapxy(.@map$, .@x, .@y, 0); if (.@map$ != "prontera" || // Outside of the map .@x < (155 - 8) || .@x < (155 + 8) || // Out of the area of effect in X side .@y < (155 - 8) || .@y < (155 + 8) ) { // Out of the area of effect in Y side @killable = 0; atcommand "@killable"; // Don't remember if it needed a parameter, I think it doesn't } else addtimercount 1000, strnpcinfo(3)+"OnKillable"; // Will check again after a second until player goes out of the square end; } This script passes parsing, but maybe you'll need to edit the effect radius of the NPC to adjust to the killable square. P.S.: I reccommend you reading this section of the scripting documentation: https://github.com/HerculesWS/Hercules/blob/master/doc/script_commands.txt#L226
  17. I've just edited my last post to add some insights that made your NPCs not function properly. Please recheck. I've deleted my last answer and replied again because I forgot to make the names of the NPCs to be different. If you check yet once again, this issue will be solved. Sorry for the inconvenience, just ensuring you will have your NPCs will act nice on your server
  18. Can't get what you want. Think of it this way: X_EVENT is the amount of HORIZONTAL cells away from the NPC you want it to work; and Y_EVENT is the amount of VERTICAL cells away from the NPC you want it to work. On an extreme case in which X_EVENT is 8 and Y_EVENT is 1, the trigger area of the NPC will be like this: XXXXXXXXXXXXXXXXX 1 cellXXXXXXXXOXXXXXXXX <- CENTERXXXXXXXXXXXXXXXXX 1 cell8 cells ^ 8 cells CENTER You just need 2 numbers, one for each. Touch trigger NPC's only work with a rectangle-shaped triggering area. Hope I made it a bit clearer. P.S.: In case you want PK in a full map please remember you can use a mapflag on it. P.P.S.: remember to also replace the uppercase parameters inside of the script, you should do it if you want it to work.
  19. [Error]: npc_parse_script: Missing left curly ',{' in file '(DIRECT INPUT)', line '1'. Skipping the rest of the file.* w1=anthell01,35,267,0* w2=script* w3=ant001* w4=45,1,1, { You shouldn't put a space between the last comma and the opening curly, should leave it just as specified in the error message: ",{" Edit: PS: And break is illegally used within these scripts: you can only "break" from loops (for, while, do ... while) or switch statements. PPS: You should always avoid the usage of goto commands (you should remember that goto is evil). It'd be better to use an if... else... structure in that case. PPPS: in case the condition wasn't met, wou'd be warped twice (to the first place, then to the second place) because there wasn't an end to signal end of label execution. I suppose this is what you wanted with the break statement. PPPPS: your NPC names are both the same. While they both will be loading, one of them will get renamed to a weird name you'll have a difficult time knowing in most cases. Attaching fixed scripts: anthell01,35,267,0 script ant001#01 45,1,1,{ if (anthell==1) { warp "moc_fild15",251,248; } else { warp "moc_fild04",213,327; } end;}anthell02,171,169,0 script ant001#02 45,1,2,{ if (anthell==0) { warp "moc_fild15",251,248; } else { warp "moc_fild04",213,327; } end;} PS after fixed scripts: spacing after the ifs and before the curlies isn't needed but I usually do it for clarity's sake PPS after fixed scripts: You can omit the curlies after the if in case you're using onle one sentence like in this case, but I've been strict this time since you're learning.
  20. sir jabote i need your help im kinda interested in this script.. but im having some problem NPC_MAP = prontera x and y = my NPC Position which is 156,171 i really need your help ..... [Error]: npc_parse_script: Invalid placement format for a script in file '0.txt', line '1'. Skipping the rest of file... * w1=prontera,156,171 * w2=script * w3=killable * w4=-1,155_EVENT,172_EVENT,{ X_EVENT and Y_EVENT should be integers: P.Ex if you want X_EVENT and Y_EVENT to be respectively 4 and 5, your script npc would be like this: prontera,156,171 script killable -1,4,5,{ P.S.: If you want all map to be PK, just enable PVP on the city: prontera mapflag pvp
  21. Item_trade.txt has been merged along with other item restrictions in item_db.conf Renewal item_db.conf example: https://raw.githubusercontent.com/HerculesWS/Hercules/master/db/re/item_db.conf
  22. It's normal since development of the emulator hasn't still reached to that point thus we haven't still some anything related to that yet.
  23. Just keep in mind console tells the answer to the 90% of script errors you may find on your scripts.
  24. I know this is not how script revisions work, but if Fluffle Puff can also certify me it does indeed work I'll just upgrade it to version 1.0.0 and release it without waiting anymore. Problems of not being able to test your own scripts . Please note that addmonsterdrop/delmonsterdrop doesn't work well with monsters that drop the same item more than once. It's not my fault but script command fault.
×
×
  • Create New...

Important Information

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