Jump to content

deltadestiny

Members
  • Posts

    23
  • Joined

  • Last visited

Everything posted by deltadestiny

  1. Hi Syouji, thank you for your support =D I'll definitely learn a lot of things from this place and the people here!
  2. Hello Deacon.! Haha I hope this right place and time would stay that way for long. Heyya Lucian, thank you! But of course, learning comes first, so I hope I won't be a bother when asking you guys questions =D
  3. Seeing so many professionals here on rAthena makes me envy them, A LOT =O

  4. Thanks alot Yuki, looking forward to learn from you as well
  5. I think I'll be using that script as well haha. Thanks for sharing, wisekreker!
  6. The other error you most likely didn't notice is a missing comma below. menu "Yes.",M_eddga,"Return to Menu",H_top; prontera,147,169,6 script MVP Trader 803,{ mes "[Dream]"; mes "Are you looking for MVP cards? ."; next; mes "[Dream]"; mes "Well i have Special MVP Cards"; mes "and Normal MVP Cards"; goto H_top; H_top: menu "Normal MVP Cards",H_01,"Special MVP Cards",H_02,"Cancel",H_quit; H_01: menu "Amon Ra",I_amon, "Dark Lord",I_darkld, "Eddga",I_eddga, "Evil Snake Lord",I_esl, "Maya",I_maya, "Orc Hero",I_orc, "Return to Menu",H_top; H_02: menu "Golden Thief Bug",I_thief, "Phreeoni",I_phree, "Tao Gunka",I_gunka, "Turtle General",I_general, "Valkyrie Randgris",I_randgris, "Return to Menu",H_top; I_amon: next; mes "[Dream]"; mes "You need 300 TCG card for (Amon ra)"; mes "Do you really want this??"; next; menu "Yes",M_amon,"Return to Menu",H_top; I_darkld: next; mes "[Dream]"; mes "You need 300 TCG Card for (Dard Lord)"; mes "Do you really want this?"; next; menu "Yes.",M_darkld,"Return to Menu",H_top; I_eddga: next; mes "[Dream]"; mes "You need 300 TCG Card for (Eddga)"; mes "Do you really want this?"; next; menu "Yes.",M_eddga,"Return to Menu",H_top; I_esl: next; mes "[Dream]"; mes "You need 300 TCG Card for (Evil Snake Lord)"; mes "Do you really want this?"; next; menu "Yes.",M_esl,"Return to Menu",H_top; I_thief: next; mes "[Dream]"; mes "You need 700 TCG Card for (Golden Thief Bug)"; mes "Do you really want this?"; next; menu "Yes.",M_thief,"Return to Menu",H_top; I_maya: next; mes "[Dream]"; mes "You need 300 TCG Card for (Maya)"; mes "Do you really want this?"; next; menu "Yes.",M_maya,"Return to Menu",H_top; I_orc: next; mes "[Dream]"; mes "You need 300 TCG Card for (Orc Hero)"; mes "Do you really want this?"; next; menu "Yes.",M_orc,"Return to Menu",H_top; I_phree: next; mes "[Dream]"; mes "You need 1000 TCG Card for (Phreeoni)"; mes "Do you wish to continue?"; next; menu "Yes.",M_phree,"Return to Menu",H_top; I_gunka: next; mes "[Dream]"; mes "You need 1000 TCG Card for (Tao Gunka)"; mes "Do you wish to continue?"; next; menu "Yes.",M_gunka,"Return to Menu",H_top; I_general: next; mes "[Dream]"; mes "You need 700 TCG Card for (Turtle General)"; mes "Do you wish to continue?"; next; menu "Yes.",M_general,"Return to Menu",H_top; I_randgris: next; mes "[Dream]"; mes "You need 2000 TCG Card for (Valkyrie Randgris)"; mes "Do you wish to continue?"; next; menu "Yes.",M_randgris,"Return to Menu",H_top; M_amon: if(countitem(7227) < 300) goto M_insufficient; delitem 7227,300; getitem 4236,1; close; M_darkld: if(countitem(7227) < 300) goto M_insufficient; delitem 7227,300; getitem 4168,1; close; M_eddga: if(countitem(7227) < 300) goto M_insufficient; delitem 7227,300; getitem 4123,1; close; M_esl: if(countitem(7227) < 300) goto M_insufficient; delitem 7227,300; getitem 4330,1; close; M_maya: if(countitem(7227) < 300) goto M_insufficient; delitem 7227,300; getitem 4146,1; close; M_orc: if(countitem(7227) < 300) goto M_insufficient; delitem 7227,300; getitem 4143,1; close; M_thief: if(countitem(7227) < 700) goto M_insufficient; delitem 7227,700; getitem 4128,1; close; M_phree: if(countitem(7227) < 1000) goto M_insufficient; delitem 7227,1000; getitem 4121,1; close; M_gunka: if(countitem(7227) < 1000) goto M_insufficient; delitem 7227,1000; getitem 4302,1; close; M_general: if(countitem(7227) < 700) goto M_insufficient; delitem 7227,700; getitem 4305,1; close; M_randgris: if(countitem(7227) < 2000) goto M_insufficient; delitem 7227,2000; getitem 4407,1; close; M_insufficient: next; mes "[Dream]"; mes "you dont have enough of tcg"; mes "please come back when you do..."; menu "Return to Main Menu",H_top,"Leave",H_quit; end; H_quit: close; }
  7. Snurayroth, I have a vague idea that might work. Instead of using a floating NPC, make it something like this: mapname,xcoor,ycoor script NPC_Name -1,{ OnEventName: //attach rid of player //place your text in here end; } Then alter your custom command so that it saves the character RID into a variable and runs NPC_Name::OnEventName. I'm not exactly sure it'll work though, but that's an alternative I thought of. I'm not familiar with custom commands, so I can't test it myself. Sorry =(
  8. It looks like using next in a floating NPC causes an error. I was able to reproduce the same error using the following code: prontera,153,170,4 script Temptest 46,{ set @testrid, getcharid(0); doevent "XXX::OnDo"; end; } - script XXX -1,{ OnDo: attachrid @testrid; getmapxy(@roflmap$,@roflx,@rofly,0,strcharinfo(0)); warp @roflmap$,@roflx,@rofly; L_lol: mes "L_lol"; mes "XXXXXXXXXXX"; next; // NOTE menu "- A",L_A, "- Close",L_Close; L_back: mes "L_back"; mes "XXXXXXXXXXX"; next; menu "- A",L_A, "- Close",L_Close; L_A: mes "XX"; mes "XX"; mes "XX"; mes "XX"; next; menu "- Back",L_back, "- Close",L_Close; L_Close: mes "XX"; mes "XX"; mes "XX"; mes "XX"; L_open: close; } NOTE: If you comment out the 'next;' under the L_lol label, it is possible to access the menu that comes after it. However, choosing any of the menu resulted in either being disconnected from the server or my client crashing. There's also a warning message that looks like this: [Warning]: Invalid menu selection on npc 110076110:'XXX' - got 1, valid range is [1..0] However, if you replace the upper part of the code with the following, the script works just fine. So I'm assuming that your error is most likely related to the one mentioned in the description for next;, and by creating a 'valid' window before proceeding into your own code, it should bypass the error. But since you're executing it from a custom command, I'm not sure how you are going to do it... prontera,153,170,4 script Temptest 46,{ set @testrid, getcharid(0); mes "abcde"; getmapxy(@roflmap$,@roflx,@rofly,0,strcharinfo(0)); warp @roflmap$,@roflx,@rofly; doevent "XXX::OnDo"; end; } - script XXX -1,{ OnDo: attachrid @testrid; L_lol: // content from this line and below remains the same
  9. I believe you're missing a comma behind each label, and your " " is a little off for dark lord and eddga. Structure goes like this: Menu "option1",label1,"option2",label2; Or Menu "option1",label1, "option2",label2; Sent using my mobile, so I didnt go through the whole script. Hope it helps =)
  10. Change set @lang,#lang; to set @lang,1; This script seems to have bugs in certain parts when clicking the 'Cancel' button. Sorry, I'm still not too familiar with this method of array handling, this is as much as I can help. Good luck with the rest =)
  11. Here, try this one. prontera,180,150,5 script Teleport guy 61,{ set .@map$,"prt_are_in"; set .@id,13760; mes "[Teleportador]"; mes "want enter in the room? ~~ ~"; mes "blablablabla...."; next; mes "[Teleport guy]"; mes "Wanna get in now??"; next; if( select("Yep:Nope") == 2 ) { mes "[Teleport guy]"; mes "..."; close; } if(countitem(.@id) < 1) { mes "[Teleport guy]"; mes "you need the passport to enter"; close; } if (getmapusers(.@map$) >= 1 ){ mes "[Teleport guy]"; mes "Sorry, someone is using the room."; close; } delitem .@id,1; warp .@map$,21,128; dispbottom "You have 5 minutes to stay here."; //attachnpctimer strcharinfo(0); // attach timer to current character initnpctimer; end; OnTimer300000: //OnTimer5000: // used for shorter time testing stopnpctimer; killmonster "prt_are_in","All"; mapwarp "prt_are_in","prontera",156,178; announce getnpctimer(0,"Teleport guy"),0; sleep2 2000; announce getnpctimer(0,"Teleport guy"),0; end; OnPCDieEvent: if (strcharinfo(3) == "prt_are_in") { stopnpctimer; sleep2 500; killmonster "prt_are_in","All"; warp "prontera", 179,150; percentheal 100,100; announce getnpctimer(0,"Teleport guy"),0; sleep2 2000; announce getnpctimer(0,"Teleport guy"),0; } end; } //Mapflags prt_are_in mapflag nowarp prt_are_in mapflag nowarpto prt_are_in mapflag noteleport prt_are_in mapflag nomemo prt_are_in mapflag nosave prt_are_in mapflag noreturn prt_are_in mapflag noicewall prt_are_in mapflag nopenalty prt_are_in mapflag noexp Let me know if there's anything not working =)
  12. Sir you are confusing me =( I thought your 'some' and 'they' means ANY party can go in after 10 minutes? So now if the party fails the event (by any means), you don't want the 50% chance to be implemented? Instead you want them[1] to be ABLE to join in again after 10 minutes (100% event runs)? And when you say 'them[1]', are you referring to the previous party who failed the event, or do all other parties now stand a chance to participate? WHEN is the next event? WHO are 'they'? As asked above, the party that failed the event, or ALL other parties? What if one of the current party members died, and the rest killed the mob? The event is considered a failure, right? What will you do after the 10 minutes cooldown? Spawn the mob again? This may lead to abuse by the current party. Consider these scenarios, words in bold require your clarification. Party1 join event > all party members died > event fail > wait 10 minutes > can other parties join now, or only Party1 can enter? Party1 join event > 1 party member died > others kill the mob > event fail > wait 10 minutes > what happens next? Party1 join event > event successful > how long until the next event? I apologize for not understanding you fully, but the lack of information made me assume things which doesn't seem to fit your criteria. Anyway, just clear those things up for me and I'll write the script for you =)
  13. Oops, sorry! Change if (mobcount("pvp_n_1-3.gat","MonsterHunt::OnMobKilled" == 0 )) to if (mobcount("pvp_n_1-3.gat","MonsterHunt::OnMobKilled") == 0) EDIT: Going to bed for now, will drop by again tomorrow. Good luck with the script!
  14. Heyya myrmiddon! I'm sure your bugged script frustrates you, but you could've used [/i] instead of [i][code][/i], makes it easier for us to read and copy paste the script posted.[/s]I attempted to fix your script, but gave up soon after for my shallow scripting knowledge. Instead, I found this for you. It might be your original source, but I can't say for sure. Unfortunately, I only got the link for the attachment, not the thread itself. Link: Super Warper NPC
  15. Sorry, a newbie like me need some time to figure things out =P I assume that the party will not be warped out even if one of the members die during the event. - Added 50% chance of event running - Added offline member check (please test this) prontera,155,255,4 script MonsterHunt 929,{ mes "[Monster Hunt]"; if ( !.monsterhunt ) mes "No event for the moment."; else if(!getcharid(1) || getpartyleader(getcharid(1),2) != getcharid(0)) mes "You're not a Leader in a Party."; else if ( getmapusers("pvp_n_1-3") > 0 ) mes "There is someone/party inside."; else{ getpartymember( getcharid(1) ); set $@CurrentParty, getcharid(1); set $@PartyCount, $@partymembercount; copyarray $@CurrPtMemberName$, $@partymembername$, $@PartyCount; if ($@PartyCount == 5) warpparty "pvp_n_1-3",100,139,$@CurrentParty; else mes "Dont have enough player/s on your party. You need 5 Members."; for (set .@i, 0; .@i < $@PartyCount; set .@i, .@i+1) { if(!isloggedin(getcharid(3, $@CurrPtMemberName$[.@i]))) { mes "Some party members are not online."; mes "Come back with everyone."; close; } } } close; OnInit: if (.monsterhunt == 0) { // i think this is not necessary, but i didnt test without it set .@MHchance, rand(10); if (.@MHchance > 4) goto OnEventStart; else { //announce "Chance was..."+.@MHchance,0; // debugging purpose announce "The Monster Hunt event is offline at the moment. Wait for the next announcement.",0; sleep 600000; goto OnInit; } } end; OnEventStart: announce "Monster Hunt Event is open.",0; if (mobcount("pvp_n_1-3.gat","MonsterHunt::OnMobKilled") == 0) // EDIT#1 monster "pvp_n_1-3.gat",0,0,"RAIDEVENT",1751,1,"MonsterHunt::OnMobKilled"; monster "pvp_n_1-3.gat",0,0,"RAIDEVENT",1751,1,"MonsterHunt::OnMobKilled"; set .monsterhunt,1; end; OnMobKilled: if( getmapusers("pvp_n_1-3") != 5 ) announce strcharinfo(1)+"'s party failed the Monster Hunt Event.",bc_all; else{ for( set .@i, 0; .@i < $@PartyCount; set .@i, .@i+1 ) getitem 7227,1,getcharid(3,$@CurrPtMemberName$[.@i]); announce strcharinfo(0)+"'s party killed the monster with everyone present.",bc_all; } warpparty "prontera",0,0,$@CurrentParty; goto OnClear; end; OnPCDieEvent: if (getcharid(1) == $@CurrentParty && $@CurrentParty != 0 && strcharinfo(3) == "pvp_n_1-3") { sleep2 500; warp "prontera",154,255; // you may cancel this out percentheal 100,100; sleep2 1000; if (getmapusers("pvp_n_1-3") == 0) { announce strcharinfo(0)+"'s party failed the Monster Hunt Event.",bc_all; goto OnClear; } } end; OnClear: set .monsterhunt, 0; set $@CurrentParty, 0; sleep2 600000; // 10 minutes waiting time until the next event goto OnInit; end; } Again, I did not test this 100% as I am working on two scripts simultaneously. Do let me know if there's anything not to your liking or if there's a bug in there. EDIT#1: - Located under OnStartEvent - Precaution check for existing mob so that only 1 mob exists at a time
  16. Can I request for the script? Because I can't really tell what's going on. I tested with this code and it works for me. I get teleported out the minute I died, and my timer stops. prontera,150,255,4 script Party Master::test_pm 46,{ warp "quiz_02",0,0; initnpctimer; end; OnPCDieEvent: if (strcharinfo(3) == "quiz_02") { sleep2 500; warp "prontera",0,0; percentheal 100,100; stopnpctimer; } end; OnTimer10000: announce "Timer not stopped.",0; end; }
  17. Uh sorry, I didn't get you. When you say the party failed, do you mean one or all of the members died? And yeah, the event runs after a gap of random time (1-59 minutes). Before I make the next modification, can I get a few more clarifications? 1. Do you have the PvP/GvG mapflag on for this map? If you do, dying will transport you out of that map instantly, which causes the team to fail even if they kill the mob. 2. If ONE party member dies, and the others manage to KILL the mob, is the team considered successful or a failure? 3. After the killing of the mob, should there be a cooldown period before the next mob is spawned? If so, how long?
  18. Is there a need for your GvG mapflag? Or any other mapflags that causes you to be teleported out upon death. Because if there's no need for them, removing the mapflags might just solve your problem. It is also possible to put a delay, but if the mapflags serve no purposes, removing them is the better option. Delays may reduce the availability of the event, even if it's only for a short duration.
  19. Okay firstly, I made two mistakes. One is that I thought charcommand would allow me to use slash commands as well, which I'm sure isn't the case at all. Secondly, (this is a rather embarrassing mistake), I interpreted read the description wrongly for both atcommand and charcommand. So, my apologies to Wynn. Variant, I must thank you for reminding me that the invoking character need not be a GM at all for the atcommand or charcommand line to run. That cleared up things for me, I really don't know how I was led to my previous assumption regarding the requirement. I'm pretty new to scripting and how RO works, so I'm not familiar with the source files. I'm assuming that I can write a custom script command by referring to these two C files. I'll look deeper into that when I explore around these files. Thank you for your research, I'm sure it took some of your time and I appreciate it. So I guess this topic is answered, there are no official script commands that allows party editing as of current date. Variant's method is possibly the closest way to do so.
  20. Hi Wynn, thank you for your effort of getting me that, but I believe I stated that atcommand and charcommand requires the account to be of level 99. I'm looking for commands that does not have that sort of requirement. =)
  21. I'm unsure of this, but your mapflag may be obstructing, due to the nature that it warps the player immediately after his/her character's death. OnPCDieEvent may then be running, but the player is warped out before the if statement is accessed, hence your timer not stopping. I'm outside now, I'll help you test it when I get home, if you haven't solved it already =]
  22. [1] As the title says, I'm wondering if it is possible to edit a character's party (create/leave) or a party's members (invite/kick) by using scripts? [2] Are there any script commands that functions to perform exactly what a player (with a regular account) types into his/her keyboard? atcommand and charcommand both allows me to do so, but requires that the character belonged to an account with GM level of 99. If [2] is possible, then [1] is definitely possible, at least for editing a single character's party. Another thing, if anyone knows of commands or methods which outputs a similar result, I'm interested in knowing. Thanks in advance
×
×
  • Create New...