Jump to content

jaBote

Community Contributors
  • Content Count

    2037
  • Joined

  • Last visited

  • Days Won

    43

Everything posted by jaBote

  1. Or manually change every MvP card script to some weird code that involves variable usage and the use of checkequipcardid. I'd honestly prefer Angelmelody answer even if it involves recompilation.
  2. Maybe, by converting, he means changing from rAthena to Hercules in the databases, which is the last step. There's a conversion I made some months ago, but I think it's kinda outdated. Right now I can't update it but it's quite easy to make it again, provided you have some basic SQL knowledge (seriously, a simple comparation does half the job).
  3. This, or you could even use the db/pre-re or re/item_combo_db.txt file (example, renewal file), which is now the official mean of making item combos. The way you tried and Via corrected is still supported but I personally don't reccommend that.
  4. I don't get this. You mean 2 cards on the entire server, on a singue equipment piece, ...?
  5. I think you're missing GD php extension. How to get it and install it and so? I don't know but that page explains you how to. Maybe run a phpinfo() in your server before and see if you have GD installed? P.S.: I will try to also make an es_ES translation, but preferably not Spanish/Spain but as much neutral Spanish as I can.
  6. Could you copy the navigation script here so that we can check it?
  7. Isn't the idle_no_share config in conf/battle/party.conf enough? But that works on all maps...
  8. From cellphone so expect errors, or maybe not. Put this (or something like this) inside of a script: OnPCDieEvent: getmapxy(.@map$,.@x,.@y,0); if (.@map$ == "bossnia") warp "prontera",0,0; end; PS: quite funny that auto correct tried to change prontera to printer.
  9. Most developers in Hercules just commit to trunk directly without testing the code on a developmental branch, but they try and test the code themselves to avoid major bugs. As for the branches, when a big feature is planned to be added or for some other reasons, one or more developers may decide to branch trunk and work on it on that branch. That way, it's like they have a own repository that can be worked on as if it was the main one. Branches can be of multiple nature (changing script engine to LUA, password encryption improvements, etc) and that's why there isn't only one branch. Think of the development of Hercules like a tree in reverse: some code is directly in the trunk and the branches start somewhere out of it and end up contributing to that trunk.
  10. Trunk is the main branch where all fixes and new code goes. The other branches are mainly developmental and it's where our developers test their code so in case there's some unstable code it will be fixed right there on the branch before getting committed to trunk. In practice, the branches are rarely used but the code that's committed to trunk is mostly right most if the time.
  11. I'm from my cellphone but... it seems that code doesn't do anything except just returning 1 or 0 depending on the parameters value.
  12. This means you're trying to access a nonexistent map, be it by @command, or some npc. Or maybe you tried to add a map and forgot to add it in the map lists. What were you trying to do when that debug appeared?
  13. From cellphone and for being fast: Make a new line in db/mob_db.txt with all the poring information. Change the mob ID for avoiding collisions and preferably also change sprite name, kROname and iROname (the first 4 values in total). Then, for making it have the Satan Morocc sprite, just open db/mob_avail.txt and add a line in this fashion: SatanMorrocID,NewMobID this way you'll have a custom poring with Satan Morocc sprite. For adding skills use db/mob_skill_db.txt
  14. From cellphone: If I remember well, it's inside the map zones configuration, which is located in db/re or pre-re/map_zones.conf I'm unsure on the filename (I can't check) but I know for sure it's on that folder and the conf extension. That file also contains some other restrictions and common mapflags for each and every zone.
  15. Whoa! Absolutely no idea on client side issues, so I can only wish you good luck on this and maybe open a topic on the appropriate forum!
  16. You can try to warp monsters outside by making use of the OnTouchNPC event label and unitwarp script command: doc/script_commands.txt (unit* commands, especially unitwarp): *unitkill <GID>;*unitwarp <GID>,<Mapname>,<x>,<y>;*unitattack <GID>,<Target ID>;*unitstop <GID>;*unittalk <GID>,<Text>;*unitemote <GID>,<Emote>;Okay, these commands should be fairly self explaining.For the emotions, you can look in db/const.txt for prefixes with e_PS: unitwarp supports a <GID> of zero, which causes the executor of the script to be affected. This can be used with OnTouchNPC to warp monsters:OnTouchNPC: unitwarp 0,"this",-1,-1;
  17. I've just made another mistake fix: OnDay label was trying to kill OnMobsInvasionDead event while the mob event was actually OnMobsInvasionDead. Try again, first post amended again and sorry. Rushes are not your friend it seems. This is the I hope fixed code, without any (expected) errors: - script night_invader -1,{OnInit: if (isday()) donpcevent strnpcinfo(3)+"::OnDay"; else donpcevent strnpcinfo(3)+"::OnNight"; sleep 10*1000; // Checking every 10 seconds donpcevent strnpcinfo(3)+"::OnInit"; end;OnDay: if (.mobout) { announce "The day rises and monsters start to stop invading Prontera.",bc_all; killmonster "prontera",strnpcinfo(3)+"::OnInvasionMobDead"; set .mobout, 0; } end;OnNight: if (!.mobout){ // Summon your monsters here, by using the monster script command. Make sure that the event label is strnpcinfo(3)+"::OnInvasionMobsDead". // Summon example with 30 orc zombies (ID 1153): monster "prontera",0,0,"--ja--",1153,30,strnpcinfo(3)+"::OnInvasionMobDead"; announce "The night rises and monsters start to attack Prontera!",bc_all; set .mobout, 1; } end;OnInvasionMobDead: if (isnight()) monster "prontera",0,0,"--ja--",1153,1,strnpcinfo(3)+"::OnInvasionMobDead"; // We simply artificially respawn them. end;}
  18. It's badly done. Attempting to correct an error and adding item amount configuration OnInit (untested): //Created by youtubeizlude,159,128,3 script Find the Baphomet 736,{mes "[ Find The Baphomet ]";if(getgmlevel() < 50) { if(.Event==0) mes "There is no Find the Baphomet event."; else { mes "There is a Find the Baphomet event on now!"; mes "Location: "+ .Map$; mes "Prize: " + .ItemQty + " " + getitemname(.ItemID); mes "Number of Baphomets: " + .Baphomets; } close;} mes "Hello "+strcharinfo(0)+"! Please customize this event:";Main:next;mes "[ Find The Baphomet ]"; switch(select("Item [" + .ItemQty + " " + getitemname(.ItemID) + "]:Start Event:End Event")) { case 1: mes "Which item would you like the Baphomet to drop?"; mes "Please input the item ID:"; input .ItemID; next; mes "Also please input the amount of items you want the Baphomet to drop to the winner:"; input .ItemQty; goto Main; case 2: mes "Starting the event now..."; set .Event,1; close2; goto OnStart; case 3: mes "Ending the event now..."; if(.Event) announce ""+strcharinfo(0)+" ended Find the Baphomet Event!",bc_all; killmonster .Map$,"All"; set .Event,0; close;}OnMinute51: //CHANGE THIS TO THE MINUTE YOU WOULD LIKE THIS EVENT TO LOAD!OnMinute20:OnStart: announce "Find the Baphomet : It's time to play Find the Baphomet!",0; sleep2 1000; set $@ran, rand(1,11); if ($@ran == 11) set .Map$,"splendide"; if ($@ran == 10) set .Map$,"hugel"; if ($@ran == 9) set .Map$,"yuno"; if ($@ran == 8) set .Map$,"comodo"; if ($@ran == 7) set .Map$,"xmas"; if ($@ran == 6) set .Map$,"aldebaran"; if ($@ran == 5) set .Map$,"izlude"; if ($@ran == 4) set .Map$,"payon"; if ($@ran == 3) set .Map$,"geffen"; if ($@ran == 2) set .Map$,"morocc"; if ($@ran == 1) set .Map$,"prontera"; sleep2 1000; set $@ran2, rand(1,5); if ($@ran2 == 5) set .Baphomets,"5"; if ($@ran2 == 4) set .Baphomets,"4"; if ($@ran2 == 3) set .Baphomets,"3"; if ($@ran2 == 2) set .Baphomets,"2"; if ($@ran2 == 1) set .Baphomets,"1"; announce "Find the Baphomet : The Baphomet has spawned in "+ .Map$ +"!",0; sleep2 10000; announce "Find the Baphomet : " + .Baphomets + " Baphomets have spawned in "+ .Map$ +"!",0; sleep2 10000; monster .Map$,0,0,"PLEASE DONT HIT ME!",1039,.Baphomets,"Find the Baphomet::OnMobKilled"; end;OnMobKilled: mapannounce .Map$,"We've got a winner: " + strcharinfo(0) + " Congrats!",0; set zeny,zeny+10000000; getitem .ItemID,.ItemQty; set .Event,0; end;OnInit: set .ItemID, 512; set .ItemQty, 1; end;} This is a quick fix since I'm in a rush, so maybe it won't work properly but I think yes. Remember to edit the OnInit label for adjusting the prize to your needs.
  19. LoL change all instances of strcharinfo(3) to strnpcinfo(3). Edited on the first reply. Sorry for the mistake. It should work now I think.
  20. If you want it to trigger exactly every 4 hours, you could make it start. For example, given you've configured your script (an OnInit label is missing so you'll have to configure it by hand), you could set OnHourXX labels just along with the starting label on the script, which is L_cluckannounce. Keep in mind this part of doc/script_commands.txt for following script adaptations: OnClock<hour><minute>:OnMinute<minute>:OnHour<hour>:On<weekday><hour><minute>:OnDay<month><day>:This will execute when the server clock hits the specified date or time. Hours and minutes are given in military time. ('0105' will mean 01:05 AM). Weekdays are Sun,Mon,Tue,Wed,Thu,Fri,Sat. Months are 01 to 12, days are 01 to 31. Remember the zero. Example with hours 00, 04, 08, 12, 16 and 20 (hour 24 doesn't exist), and also adding the OnInit quick configuration. I've changed the permanent server variables for NPC variables. Its only drawback is that prize changes are temporary until server reboot, so you'll have to change them on the if you want them to be permanently changed: //===== Athena Script =====================================//= Cluck! Cluck! Boom!//===== By Keale of VoidRO ================================//= http://voidro.com//===== Description =======================================//= Click the chicken and try retrieve the item at a low //= chance. If you fail he will nuke, freeze, stone, //= stun, or make you fall asleep.//= The prize is configurable and triggered by the NPC.//===== Credits ===========================================//= LuTze for his 'Chicken of Punishment' script.//= BrianL for suggesting the 'switch' command.//= jaBote for v1.2 changes.//===== Version ===========================================//= v1.2//=========================================================//= v1.0 - First release.//= v1.1 - Using 'switch rand' instead.//= v1.2 - Changed some spacing for better comprehension //= and added some features per madtoyz request.//=========================================================izlude,127,132,7 script Cluckers 800,{ if (.startcluck == 1) goto L_playcluck;cluckcluck: if (getgmlevel() >= 60) goto cluckadmin; mes "[Cluckers]"; mes "Cluck cluck! Cluuuuuck?"; mes "Cluck...."; close; cluckadmin: mes "[Cluckers]"; mes "Cluck cluck! Cluuuuuck? ^FF0000~Hi GM " + strcharinfo(0) + ", Wanna play today?~^000000"; mes "Cluck cluck... CLUCK! ^FF0000~Just tell me what to do!~^000000"; switch(select("Start Event:Check Prize:Set Prize:Not today Cluckers")) { case 1: next; mes "[Cluckers]"; mes "CLUCK! ^FF0000~Sure thing!~^000000"; emotion 33; close2; goto L_cluckannounce; case 2: next; mes "[Cluckers]"; mes "Cluck, cluck cluck... Cluck! ^FF0000~The current prize is^000000 ^008000"+ .cluck_item_amount +" "+ getitemname(.cluck_item_id) +".^000000"; next; goto cluckadmin; case 3: next; mes "[Cluckers]"; mes "Cluck cluck? Cluck??? ^FF0000~What should the prize for winning be? Please input the ID.~^000000"; input .cluck_item_id; next; mes "[Cluckers]"; mes "Cluck? cluuuck? ^FF0000~How many if this item should I give away?~^000000"; input .cluck_item_amount; next; mes "[Cluckers]"; mes "Cluck cluck..? Cluck. ^FF0000~So, the prize is^000000 ^008000"+ .cluck_item_amount +" "+ getitemname(.cluck_item_id) +"^000000? ^FF0000Great.~^000000"; emotion 33; next; goto cluckadmin; case 4: next; mes "[Cluckers]"; mes "Cluck cluck cluck..."; close; }L_cluckannounce:OnHour00:OnHour04:OnHour08:OnHour12:OnHour16:OnHour20: announce "[Cluck! Cluck! Boom!] is about to start in izlude 127 132!",bc_blue; initnpctimer; end;OnTimer10000: announce "Please proceed to the izlude 127 132 if you want to play with the crazy chicken!",bc_blue; end;OnTimer20000: announce "Cluckers has eaten one of my items! I'm too scared to retrieve it!",bc_blue; end;OnTimer30000: announce "Click the insane chicken and try squeeze out the item, if you're lucky you'll win! Are you ready?",bc_blue; end;OnTimer40000: announce "GO! Click the chicken to get the prize!",bc_blue; set .startcluck,1; end; L_playcluck: specialeffect2 2; switch( rand(15) ) { case 0: npctalk "CLUUUUUUCK!!!"; emotion 23; atcommand "@nuke "+strcharinfo(0); break; case 1: npctalk "Cluuuuuck!~"; break; case 2: atcommand "@nuke "+strcharinfo(0); break; case 3: sc_start SC_Freeze,10000,0; break; case 4: npctalk "CLUUUUUUUUUCK!!!"; emotion 23; atcommand "@nuke "+strcharinfo(0); break; case 5: sc_start SC_Sleep,10000,0; break; case 6: emotion 29; sc_start SC_Stone,10000,0; break; case 7: npctalk "CLUUUUUUCK!!!"; emotion 23; atcommand "@nuke "+strcharinfo(0); break; case 8: npctalk "Cluck! CLUUUCK!!"; emotion 23; atcommand "@nuke "+strcharinfo(0); break; case 9: sc_start SC_Stun,10000,0; break; case 10: emotion 29; sc_start SC_Sleep,10000,0; break; case 11: npctalk "Cluck! Cluck!"; break; case 12: sc_start SC_Stun,10000,0; break; case 13: atcommand "@nuke "+strcharinfo(0); break; default: if( rand(50) < 3 ) { npctalk "WOOF!..........."; specialeffect2 72; announce "[Cluck! Cluck! Boom!] " + strcharinfo(0) + " Squeezed out the prize! Well done!",0; getitem .cluck_item_id,.cluck_item_amount; set .startcluck,0; } else { npctalk "Cluck! CLUUUCK!!"; atcommand "@nuke "+strcharinfo(0); } }end; // Script ending was missing.OnInit: //Change this for configuration set .cluck_item_id, 512; set .cluck_item_amount, 30; end;} Change the contents of OnInit label for permanent configuration. Untested but should work.
  21. jaBote

    Custom points

    Try this one: prontera,75,75 script Point seller 45,{ mes "[Point Seller]"; mes "Hey!"; mes "I can sell you a random amount of points for just 100z if you want."; mes "Right now you have "+ #soldpoints +" points."; mes "Deal?"; if (select("Deal!:No Deal!")==2) { // Second option: No deal mes "[Point Seller]"; mes "WHAAAT?!"; mes "GET OUTTA HERE!!"; close; } else if (Zeny < 100) { mes "[Point Seller]"; mes "WHAAAT?! You haven't enough Zeny!"; mes "GET OUTTA HERE!!"; close; } set Zeny, Zeny - 100; set .@newpoints, rand(1,10); set #soldpoints, #soldpoints + .@newpoints; mes "[Point Seller]"; mes "You rule, man!"; mes "You've got "+ .@newpoints +" new points!"; mes "Your total points are now "+ #soldpoints +"!"; if (#soldpoints < 100) close; set #soldpoints, #soldpoints - 100; getitem 512,1; mes "[Point Seller]"; mes "Hey! You have more than 100 points!"; mes "I'll exchange 100 of your points for this apple!"; mes "It's nice to do business with you!"; close;} Remember it's untested so it may have errors, but they're unlikely since I've double checked, but just in case.
  22. Try this one (untested) - script night_invader -1,{OnInit: if (isday()) donpcevent strnpcinfo(3)+"::OnDay"; else donpcevent strnpcinfo(3)+"::OnNight"; sleep 10*1000; // Checking every 10 seconds donpcevent strnpcinfo(3)+"::OnInit"; end;OnDay: if (.mobout) { announce "The day rises and monsters start to stop invading Prontera.",bc_all; killmonster "prontera",strnpcinfo(3)+"::OnInvasionMobDead"; set .mobout, 0; } end;OnNight: if (!.mobout){ // Summon your monsters here, by using the monster script command. Make sure that the event label is strnpcinfo(3)+"::OnInvasionMobsDead". // Summon example with 30 orc zombies (ID 1153): monster "prontera",0,0,"--ja--",1153,30,strnpcinfo(3)+"::OnInvasionMobDead"; announce "The night rises and monsters start to attack Prontera!",bc_all; set .mobout, 1; } end;OnInvasionMobDead: if (isnight()) monster "prontera",0,0,"--ja--",1153,1,strnpcinfo(3)+"::OnInvasionMobDead"; // We simply artificially respawn them. end;} If you want to spawn more than one kind of monster and they all be respawning, your script will be a bit more complicated. For best perfomance of the NPC you should add OnDay and/or OnNight labels to trigger via the src, but this one is still OK.
  23. Try to checkout this url: https://github.com/HerculesWS/Hercules.git/
  24. I have no idea on that ones, but maybe you're using the configuration that makes GMs ignore items and other requirements for skills?
  25. Yeah, the problem was the same, the ending closing curly. Try to check your curlies next time. A good habit is when you'll open any kind of brackets (regular, square or curly), immediately close them and then work on what they should contain. This way you won't ever have any of these errors.
×
×
  • Create New...

Important Information

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