Jump to content

Alayne

Members
  • Content Count

    345
  • Joined

  • Last visited

  • Days Won

    22

Everything posted by Alayne

  1. Alayne

    hel

    Hercules support the affectation with "=" char. I agree with RodRich, the current error is on the "for" loop.
  2. @@mrlongshen Replace OnAtcommand://Use custom spawn setmonster "this",-1,-1,"--ja--",.mobids[rand(getarraysize(.mobids))],1,"";dispbottom "A random MvP was summoned!";end; by OnAtcommand://Use custom spawn setset .@mobId, .mobids[rand(getarraysize(.mobids))];monster "this",-1,-1,"--ja--",.@mobId,1,"";Dispbottom " " + getmonsterinfo(.@mobId,MOB_NAME) + " has been spawned"end; @@minx123 I dunno if you can prevent mvp from warping in any other way than disabling their teleport skills in mob_skill_db.txt...Never had to do that, and dunno if it's possible to prevent only mvp from warping.
  3. Already answered by Dastgir here: http://herc.ws/board/topic/5772-mission-board-updated-by-annie/ Replace strcmp by a simple check if ( .npc_name$ == strnpcinfo(0) ) { strcmp doesn't exists in Hercules.
  4. It makes the summon use the default mob's name.
  5. - script MapAnnounce -1,{OnPCLoadMapEvent: if( strcharinfo(PC_MAP) != "pvp_y_2-2" ) end; set .@countUsers, getmapusers(strcharinfo(PC_MAP)); if( .@countUsers % .rangePLayersAnnounce == 0 ) { announce "There are " + getmapusers(strcharinfo(PC_MAP)) + " players on map " + strcharinfo(PC_MAP) + ".",bc_blue|bc_all; } else if (.@countUsers == .fullPlayersAnnounce) { announce "The map " + strcharinfo(PC_MAP) + " is full!",bc_blue|bc_all; } end;OnInit: set .rangePlayersAnnounce, 3; set .fullPlayersAnnounce, 10; end;}pvp_y_2-2 mapflag loadevent The announce missed the parameters and the tab weren't parsed correctly. Nevermind, there shouldn't be errors now
  6. - script MapAnnounce -1,{OnPCLoadMapEvent: if( strcharinfo(PC_MAP) != "pvp_y_2-2" ) end; set .@countUsers, getmapusers(strcharinfo(PC_MAP)); if( .@countUsers % .rangePLayersAnnounce == 0 ) { announce "There are " + getmapusers(strcharinfo(PC_MAP)) + " players on map " + strcharinfo(PC_MAP) + "."; } else if (.@countUsers == .fullPlayersAnnounce) { announce "The map " + strcharinfo(PC_MAP) + " is full!"; } end;OnInit: set .rangePlayersAnnounce, 3; set .fullPlayersAnnounce, 10; end;}pvp_y_2-2 mapflag loadevent Should do the job. The '%' doesn't mean it will announce for anything over '3', but for any value which is a multiple of 3.
  7. Alayne

    partyrecall

    Look in the script_command doc, that's not complicated. And if you fail doing that, sorry but you gonna have a bad time doing hardest scripts....
  8. Alayne

    partyrecall

    As far as I know, there's no "party recall" option. But you can do 2 things: 1) use warpparty instead of warp, by providing the team id 2) run a loop throught the team members using getpartymember, and warp one by one the members to the same coordinates. It depends on what you're expecting to do.
  9. Alayne

    Moving monsters

    Hi guys! Here's a little question I got. I'm currently working on a script which should turn into a tower defense mini game. When entering the game, a random count of monsters (1 id, several monsters) are spawned and should walk toward a given point (npc GID or corrdinates). If they reach the point, you loose. Actually the script works pretty well on each point...except the walking part. I'm able to force monsters to walk using unitwalk, but not for more than 20 cells in a direction. From then, several points: 1) I can increase the cell count. Would probably takes lot of mem to calculate the path, and that's not really a good point 2) I can set n npcs along the path, but then, I'll need the GID of each touching monster to send it to npc n+1. But there's no way I can get this GID except at spawn, and I can't bind them to "touching npc" ones. 3) I can simply suicide myself... Does anybody have an idea on how I can manage that problem? Thanks!
  10. Nevermind, I've found the solution. I'm just dumb...I was trying to connect on another pc so the ip adress, even if it was on my intern lan network, wasn't good... Sorry for the disturbing!
  11. Hi guys! I'm currently trying to install a local test server. Everything is configured correctly, and both running on a terminal (one per server). Communication between servers looks ok. On the other hand, I can't succeed in establishing a connection between my client and my server. Nothing comes to the login, and I end up with a "Failed to connect to server" error. Looking on login serv term, nothing changed. I really don't know what to do. Everything is configured on localhost, the ports are well configured on client and server, sql is running correctly... Any idea? Thanks!
  12. Thanks @Milk, your solution's the good one. I've been able to compile, the server is now ready to run. Thanks again.
  13. Thanks for your answers, I'll try that this evening and tell you guys.
  14. Hi everyone! I'm currently trying to install a local server to debug all my scripts. But I fail on this error while trying to compile the hercules release: Can anybody help me? I don't now what to do...I guess the Herc doesn't run on x64 ><...
  15. Hi, these should do what you asked for, if I understood well what you're expecting for. I didn't try the code (I'm at work right now), but it's nothing really complicated, so... //===== Hercules Script ======================================//= Hunting Mission//===== By: ==================================================//= Euphy//===== Current Version: =====================================//= 1.4a//===== Description: =========================================//= Random Hunting Mission.//= Rewards are based on quest difficulty.//===== Additional Comments: =================================//= 1.0 Initial script.//= 1.1 Small improvements and fixes.//= 1.2 Added party support and replaced blacklists with an//= SQL query, both thanks to AnnieRuru.//= 1.3 Re-added a blacklist adapted for the SQL query.//= 1.3a Added mission reset options.//= 1.4 Fix ranking table using new SQL database [ossi0110]//= 1.4a Fix a bug when a character has deleted, that account//= can't do mission. [AnnieRuru]//============================================================prontera,150,187,5 script Bounty Hunter 404,{function Chk; function Cm; mes "[Bounty Hunter]"; mes "Hello, "+strcharinfo(0)+"!"; if (!#Mission_Delay) { next; mes "[Bounty Hunter]"; mes "I can't find any records..."; mes "You must be new here!"; emotion e_omg; next; callsub Mission_Info; emotion e_go; set #Mission_Delay,1; close; } mes rand(2)?"Working hard, as always...":"Not slacking, I hope..."; mes "Is there anything I can help"; mes "you with?"; mes " "; mes "^777777~ You've completed ^0055FF"+Mission_Total+"^777777 mission"+((Mission_Total == 1)?"":"s")+". ~^000000"; next; switch(select(((!Mission0)?" ~ New Mission::":": ~ Mission Status: ~ Abandon Mission")+": ~ Information: ~ View Top Hunters:"+((#Mission_Count >= 5)?" ~ Warp":"")+" ~ ^777777Cancel^000000")) { case 1: mes "[Bounty Hunter]"; if ( query_sql( "SELECT 1 FROM `char_reg_num_db` WHERE `key` = 'Mission0' AND `char_id` IN ( SELECT `char_id` FROM `char` WHERE `account_id` = "+ getcharid(3) +" )", .@dummy ) && #Mission_Count ) { mes "You've started a mission"; mes "on another character."; close; } if (#Mission_Delay > gettimetick(2) && .Delay) { set .@i, #Mission_Delay-gettimetick(2); if (.@i > 3600) set .@j$, (.@i/3600)+" hour"+(((.@i/3600) == 1)?"":"s"); else if (.@i > 60) set .@j$, (.@i/60)+" minute"+(((.@i/60) == 1)?"":"s"); else set .@j$, (.@i)+" second"+((.@i == 1)?"":"s"); mes "I'm afraid you'll have to wait "+.@j$+" before taking another mission."; close; } mes "You must hunt:"; query_sql("SELECT ID FROM `mob_db` WHERE left(Sprite, 4) != 'meta' AND left(Sprite, 2) != 'E_' AND ~Mode & 32 AND EXP > 0 AND MVP1id = 0 AND DropCardid > 4000 AND DropCardid < 5000 AND ID < 2000 AND instr('"+.Blacklist$+"',ID) = 0 ORDER BY rand() LIMIT "+.Quests, .@mob); for (set .@i,0; .@i<.Quests; set .@i,.@i+1) { setd "Mission"+.@i, .@mob[.@i]; setd "Mission"+.@i +"_",0; } set #Mission_Count, rand(.Count[0],.Count[1]); callsub Mission_Status; next; mes "[Bounty Hunter]"; mes "Report back when"; mes "you've finished."; mes "Good luck!"; close; case 2: mes "[Bounty Hunter]"; mes "Mission status:"; callsub Mission_Status; close; case 3: mes "[Bounty Hunter]"; mes "Do you really want to"; mes "abandon your mission?"; if (.Reset < 0 && .Delay) mes "Your delay time will not be reset."; else if (.Reset > 0) mes "It will cost "+Cm(.Reset)+" Zeny."; next; switch(select(" ~ Abandon...: ~ ^777777Cancel^000000")) { case 1: if (.Reset > 0) { if (Zeny < .Reset) { mes "[Bounty Hunter]"; mes "You don't have enough"; mes "Zeny to drop this mission."; emotion e_sry; close; } Zeny -= .Reset; emotion e_cash; } mes "[Bounty Hunter]"; mes "Alright, I've dropped"; mes "your current mission."; specialeffect2 EF_STORMKICK4; for(set .@i,0; .@i<.Quests; set .@i,.@i+1) { setd "Mission"+.@i,0; setd "Mission"+.@i+"_",0; } set #Mission_Count,0; if (.Reset < 0 && .Delay) set #Mission_Delay, gettimetick(2)+(.Delay*3600); close; case 2: mes "[Bounty Hunter]"; mes "I knew you were kidding!"; mes "Keep up the good work."; emotion e_heh; close; } case 4: callsub Mission_Info; close; case 5: mes "[Bounty Hunter]"; mes "The top hunters are:"; query_sql("SELECT char_id AS id, (SELECT `name` FROM `char` WHERE char_id = id),`value` FROM `char_reg_num_db` WHERE `key` = 'Mission_Total' ORDER BY `value` DESC LIMIT 5",.@id,.@name$,.@val); for(set .@i,0; .@i<5; set .@i,.@i+1) mes " [Rank "+(.@i+1)+"] "+((.@name$[.@i] == "")?"^777777none":"^0055FF"+.@name$[.@i]+"^000000 : ^FF0000"+.@val[.@i]+" pt.")+"^000000"; close; case 6: //Warp routine close; case 7: mes "[Bounty Hunter]"; mes "Nothing? Okay..."; emotion e_hmm; close; }//OnClock1218:OnMinute30: npctalk "Hi, want to have 5m & +10 Rental items? you can have it just do a Bounty Mission and reach 10pts and be the Top 1 Bounty Hunter come talk to me."; close;Mission_Status: set @f,0; deletearray .@j[0], getarraysize(.@j); for(set .@i,0; .@i<.Quests; set .@i,.@i+1) { set .@j[.@i], getd("Mission"+.@i); set .@j[.Quests], .@j[.Quests]+strmobinfo(3,.@j[.@i]); set .@j[.Quests+1], .@j[.Quests+1]+(strmobinfo(6,.@j[.@i])/(getbattleflag("base_exp_rate")/100)*.Modifier[0]); set .@j[.Quests+2], .@j[.Quests+2]+(strmobinfo(7,.@j[.@i])/(getbattleflag("job_exp_rate")/100)*.Modifier[1]); mes " > "+Chk(getd("Mission"+.@i+"_"),#Mission_Count)+strmobinfo(1,.@j[.@i])+" ("+getd("Mission"+.@i+"_")+"/"+#Mission_Count+")^000000"; } // Reward formulas: set .@Mission_Points, 3+(.@j[.Quests]/.Quests/6); set .@Base_Exp, #Mission_Count*.@j[.Quests+1]/5; set .@Job_Exp, #Mission_Count*.@j[.Quests+2]/5; set .@zeny, #Mission_Count*.Quests*.@j[.@i]*.Modifier[2]; next; mes "[Bounty Hunter]"; mes "Mission rewards:"; //mes " > Mission Points: ^0055FF"+.@Mission_Points+"^000000"; //mes " > Base Experience: ^0055FF"+Cm(.@Base_Exp)+"^000000"; //mes " > Job Experience: ^0055FF"+Cm(.@Job_Exp)+"^000000"; mes " > Zeny: ^0055FF"+Cm(.@zeny)+"^000000"; if (@f) { set @f,0; return; } next; mes "[Bounty Hunter]"; mes "Oh, you're done!"; mes "Good work."; mes "Here's your reward."; emotion e_no1; specialeffect2 EF_ANGEL; specialeffect2 EF_TRUESIGHT; set #Mission_Points, #Mission_Points+.@Mission_Points; set BaseExp, BaseExp+.@Base_Exp; set JobExp, JobExp+.@Job_Exp; Zeny += .@zeny; for(set .@i,0; .@i<.Quests; set .@i,.@i+1) { setd "Mission"+.@i,0; setd "Mission"+.@i+"_",0; } set #Mission_Count,0; if (.Delay) set #Mission_Delay, gettimetick(2)+(.Delay*3600); set Mission_Total, Mission_Total+1; if (Mission_Total == 1) query_sql("INSERT INTO `char_reg_num_db` (`char_id`,`key`,`index`,`value`) VALUES ("+getcharid(0)+",'Mission_Total','0',1)"); else query_sql("UPDATE `char_reg_num_db` SET `value` = "+Mission_Total+" WHERE `char_id` = "+getcharid(0)+" AND `key` = 'Mission_Total'"); close;Mission_Info: mes "[Bounty Hunter]"; mes "If you so choose, I can assign"; mes "you a random hunting quest."; mes "Some are easier than others, but"; mes "the rewards increase with difficulty."; next; mes "[Bounty Hunter]"; mes "Missions points are shared"; mes "amongst all your characters."; if (.Delay) mes "Delay time is, too."; mes "You can't take missions on"; mes "multiple characters at once."; next; mes "[Bounty Hunter]"; mes "You can start a quest"; if (.Delay) mes "every "+((.Delay == 1)?"hour.":.Delay+" hours."); else mes "whenever you want."; mes "That's everything~"; return;function Chk { if (getarg(0) < getarg(1)) { set @f,1; return "^FF0000"; } else return "^00FF00"; }function Cm { set .@str$, getarg(0); for(set .@i,getstrlen(.@str$)-3; .@i>0; set .@i,.@i-3) set .@str$, insertchar(.@str$,",",.@i); return .@str$; }OnBuyItem: set @cost,0; for(set .@i,0; .@i<getarraysize(@bought_nameid); set .@i,.@i+1) for(set .@j,0; .@j<getarraysize(.Shop); set .@j,.@j+2) if (@bought_nameid[.@i] == .Shop[.@j]) { set @cost, @cost+(.Shop[.@j+1]*@bought_quantity[.@i]); break; } mes "[Bounty Hunter]"; if (@cost > #Mission_Points) mes "You don't have enough Mission Points."; else { for(set .@i,0; .@i<getarraysize(@bought_nameid); set .@i,.@i+1) { getitem @bought_nameid[.@i], @bought_quantity[.@i]; dispbottom "Purchased "+@bought_quantity[.@i]+"x "+getitemname(@bought_nameid[.@i])+"."; } set #Mission_Points, #Mission_Points-@cost; mes "Deal completed."; emotion e_cash; } set @cost,0; deletearray @bought_nameid[0], getarraysize(@bought_nameid); deletearray @bought_quantity[0], getarraysize(@bought_quantity); close;OnNPCKillEvent: if (!getcharid(1) || !.Party) { if (!#Mission_Count || !Mission0) end; for (set .@i, 0; .@i<.Quests; set .@i,.@i+1) { if (strmobinfo(1,killedrid) == strmobinfo(1,getd("Mission"+.@i))) { if (getd("Mission"+.@i+"_") < #Mission_Count) { dispbottom "[Hunting Mission] Killed "+(set(getd("Mission"+.@i+"_"),getd("Mission"+.@i+"_")+1))+" of "+#Mission_Count+" "+strmobinfo(1,killedrid)+"."; end; } } } } else if (.Party) { set .@mob, killedrid; getmapxy(.@map1$,.@x1,.@y1,0); getpartymember getcharid(1),1; getpartymember getcharid(1),2; for(set .@i,0; .@i<$@partymembercount; set .@i,.@i+1) { if (isloggedin($@partymemberaid[.@i], $@partymembercid[.@i])) { attachrid $@partymemberaid[.@i]; if (#Mission_Count && Mission0 && Hp > 0) { getmapxy(.@map2$,.@x2,.@y2,0); if ((.@map1$ == .@map2$ || .Party == 1) && (distance(.@x1,.@y1,.@x2,.@y2) <= 30 || .Party < 3)) { for(set .@j,0; .@j<.Quests; set .@j,.@j+1) { if (strmobinfo(1,.@mob) == strmobinfo(1,getd("Mission"+.@j))) { if (getd("Mission"+.@j+"_") < #Mission_Count) { dispbottom "[Hunting Mission] Killed "+(set(getd("Mission"+.@j+"_"),getd("Mission"+.@j+"_")+1))+" of "+#Mission_Count+" "+strmobinfo(1,.@mob)+"."; break; } } } } } } } } end;OnInit: set .Delay,0; // Quest delay, in hours (0 to disable). set .Quests,4; // Number of subquests per mission (increases rewards). set .Party,3; // Party options: 0 (exclude party kills), 1 (include party kills), 2 (same map only), 3 (screen area only) set .Reset,-1; // Reset options: -1 (abandoning mission sets delay time), 0 (no delay time), [Zeny] (cost to abandon mission, no delay time) setarray .Count[0], // Min and max monsters per subquest (increases rewards). 60,100; setarray .Modifier[0], // Multipliers for Base Exp, Job Exp, and Zeny rewards. getbattleflag("base_exp_rate")/5,getbattleflag("job_exp_rate")/5,3; setarray .Shop[0], // Reward items: <ID>,<point cost> (about 10~20 points per hunt). 12210,20,13889,5,13890,5,16396,80,16394,80,6241,20,6240,20,12350,3,12032,3,12114,5,12115,5,12116,5,12117,5,14587,5,14527,10,14581,20,1084,10; set .Blacklist$, // Blacklisted mob IDs. "1062,1088,1183,1186,1200,1212,1220,1221,1234,1235,"+ "1244,1245,1250,1268,1290,1293,1294,1296,1298,1299,"+ "1300,1301,1303,1304,1305,1306,1308,1309,1311,1313,"+ "1515,1588,1618,1676,1677,1678,1679,1796,1797,1974,"+ "1975,1976,1977,1978,1979"; npcshopdelitem "mission_shop",512; for(set .@i,0; .@i<getarraysize(.Shop); set .@i,.@i+2) npcshopadditem "mission_shop", .Shop[.@i], .Shop[.@i+1]; end;}- shop mission_shop -1,512:-1
  16. Alayne

    Alayne's Resume

    Thanks, Mysterious.
  17. Alayne

    Alayne's Resume

    Current status: UNAVAILABLE Who am I? Hi all. My name's Alayne (also known as Eirel, Nyliar, Oyrin, depending on the origin...). I'll put here some resume of me, cause I'm looking for a part-time "job" on a RO staff. I'm a french developper (irl) and scripter (ig). I've worked for several french servers, which you may not know. I hope you'll excuse the mistake I will surely made during this presentation, as english is not my native language (but I'll do as much effort as I can to prevent them to sneak into my text). What can I do for you? -Content I've created around 450-500 scripts, going from basic quest to complete systems or instances. I've covered almost every part of the script creation, going from variable to bitwise using. I think I can work pretty quickly and, I hope (and have corresponding returns) not so badly. I can also manage server db (mob, items, achievement...) with corresponding client side modification (on txt or lua versions), global sql database, existing scripts maintenance and so on -Dedication Honestly, working 12h a day, I will have some period without connexions. You're warned. But passed this "problem", I can be connected 12h a day on forum to keep in touch with players. Working on developpement irl, I can also made modifications or developpement directly at my job place, which enable quick reactions no matter what. Simply see me as some kind of ermit. you know I'm there, but you don't always see me. -Pretty much easy going I think that criticism must be correct and usefull. If that's the case, it won't be a problem. On the other hand, if I judge that one does not correspond to what I'm expecting, two case can arrived: If it's not correct, speaking about me, my job, or another staff member, I'll give a sanction. If it's not usefull even after I asked for it, I'll simply won't take it into account. -Feedback I also like to give my own opinion to every point. It can be positive or negative, but if you ask me something, I'll answer you. What are your limits? -Job As I said in a previous part, my work and my family life will always be more important than my "part-time job". If you can't agree this, please, do not send me a message. -Friendliness Be friendly to me, and I'll be friendly to you. Don't mess with me. Even if I'm pretty patient, when it comes to a no return point, I can be really harsh. Some preferences? -Dedication After 3 servers which I join with funny or sympathic staffs members, but really lazy or simply missing, I WANT a team who can do what it is supposed to do. I won't handle everything alone, even for the players sake...Not one more time. -Rates I've worked for LR, MR, HR and even RHR (really high rates). But my preferences will go to HR, starting from middle MR. Also, the server has to accept custom content. I won't make anything alone, I'll always work according to the staff discussion, but it's useless to hire me simply to debug official existing scripts. I'm more of a creative guy. -Population As I know it's pretty hard to get a running server, I'd prefer to join a team with an already existing population. Not necessarily 700 players, but a minimum size is more likely to be accepted Examples of my work? -What can I bring to your server? As I said, I've created lots of work. The more recent I can talk about are a Long Run Dungeon based on Sword Art Online, corresponding roughly to Aincrad in a North Mythology adaptation. I've also recreated a Trading Card Game, based on Greed Island arc from Hunter x Hunter. Finally, I have dozens of quests (headgear to Lengendary Quest), and 7 customs instances -Anything more? Feel free to ask some example from me. How can I be contacted? Skype: alaynero Email: [email protected]<script type="text/javascript"> /* */ </script> Feel free to send me a message ^^
×
×
  • Create New...

Important Information

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