-
Posts
2044 -
Joined
-
Last visited
-
Days Won
51
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by AnnieRuru
-
beginner level script prontera,156,172,5 script kdfhskfjhs 100,{ mes "select a castle"; next; menu "Kriemhild", L_prtg_cas01, "Swanhild", L_prtg_cas02, "Fadhgridh", L_prtg_cas03; L_prtg_cas01: if ( getcharid(2) != getcastledata( "prtg_cas01", 1 ) ) { mes "your guild is not the owner of Krimhield castle"; close; } if ( getcharid(0) != getguildmasterid( getcharid(2) ) ) { mes "you are not guild master of your guild"; close; } warp "prtg_cas01", 0,0; // warp to specific places end; L_prtg_cas02: if ( getcharid(2) != getcastledata( "prtg_cas02", 1 ) ) { mes "your guild is not the owner of Swanhild castle"; close; } if ( getcharid(0) != getguildmasterid( getcharid(2) ) ) { mes "you are not guild master of your guild"; close; } warp "prtg_cas02", 0,0; // warp to specific places end; L_prtg_cas03: if ( getcharid(2) != getcastledata( "prtg_cas03", 1 ) ) { mes "your guild is not the owner of Fadhgridh castle"; close; } if ( getcharid(0) != getguildmasterid( getcharid(2) ) ) { mes "you are not guild master of your guild"; close; } warp "prtg_cas03", 0,0; // warp to specific places end; } advance level prontera,156,172,5 script kdfhskfjhs 100,{ mes "select a castle"; next; .@s = select( .menu$ ) -1; if ( getcharid(2) != getcastledata( .castle_map$[.@s], 1 ) ) { mes "your guild is not the owner of "+ .castle_name$[.@s] +" castle"; close; } if ( getcharid(0) != getguildmasterid( getcharid(2) ) ) { mes "you are not guild master of your guild"; close; } warp .castle_map$[.@s], 0,0; // warp to specific places end; OnInit: setarray .castle_map$, "prtg_cas01", "prtg_cas02", "prtg_cas03"; // add more castle map here while ( getstrlen( .castle_map$[.@i] ) ) { .castle_name$[.@i] = getcastlename( .castle_map$[.@i] ); .@i++; } .menu$ = implode( .castle_name$, ":" ); end; } EDIT: forgotten about *getcastlemap script command
-
If idle in lhz_dun04 for 1 minute. do @die.
AnnieRuru replied to Currently's question in Script Requests
wahahaha XD its been awhile someone wants to play with me like this XD you are right about teleport/ressurection I've forgotten this map doesn't have nowarp/nowarpto/noteleport/nosave mapflag -> its a non-event map so here I try again XD - script kjdshksdfjhsd -1,{ OnPCLoadMapEvent: if ( strcharinfo(3) != "lhz_dun04" || @afkinbio4_start ) end; @afkinbio4_start = 1; OnLoop: while (1) { getmapxy .@map$, .@x, .@y, 0; if ( .@map$ != "lhz_dun04" ) break; else if ( .@x != .@afkinbio4_x || .@y != .@afkinbio4_y || !hp ) { dispbottom "AFK reset"; .@afkinbio4 = 0; .@afkinbio4_map$ = .@map$; .@afkinbio4_x = .@x; .@afkinbio4_y = .@y; } else if ( .@x == .@afkinbio4_x && .@y == .@afkinbio4_y ) { .@afkinbio4++; dispbottom "AFK for "+ .@afkinbio4 +" seconds"; if ( .@afkinbio4 == .afk ) { addtimer .sleeploop, strnpcinfo(0)+"::OnLoop"; // when you die on 1st time, the script execution ends unitkill getcharid(3); end; // doesn't read here on 1st death } } sleep2 .sleeploop; } @afkinbio4_start = 0; end; OnInit: .sleeploop = 1000; // every 1 second .afk = 60; // loop 60 times of 1 second == 1 minute end; } lhz_dun04 mapflag loadevent btw your script - script lkjhgfd -1,{ OnPCLoadMapEvent: if( strcharinfo(3) == "lhz_dun04" && !@afkinbio4 ) { addtimer 1000, strnpcinfo(3)+"::On30secs"; @afkinbio4 = 1; getmapxy .@map$,.@x,.@y,0; @afkinbio4_x = .@x; @afkinbio4_y = .@y; } end; On30secs: // dispbottom ""+gettime(1); if( strcharinfo(3) != "lhz_dun04" ) { @afkinbio4 = 0; end; } @afkinbio4++; // dispbottom "AFK for "+ @afkinbio4 +" seconds"; // <-- after you die, this message isn't execute getmapxy .@map$,.@x,.@y,0; if( .@x != @afkinbio4_x || .@y != @afkinbio4_y ) @afkinbio4 = 0; else if( @afkinbio4 == 5 ) percentheal -100,-100; @afkinbio4_x = .@x; @afkinbio4_y = .@y; addtimer 1000, strnpcinfo(3)+"::On30secs"; end; } lhz_dun04 mapflag loadevent there is an intended bug in SVN when you die, the script execute is forced to end it is an intended behavior so when the player die cannot talk to npc anymore in other words if you are ressurected (@alive), they can afk for as long as they want with your script -
if the castle has no owner, it will automatically spawn monsters inside this is official mechanic, and our svn scripts has already work that way if you want the castle has owner and it still spawn monsters inside, the monster will attack the owner and non-owner, everyone-alike otherwise, perhaps you want every time the woe start, the castle will always reset to no owner ? I totally cannot understand what is your request perhaps someone who can understand him can explain it for me
-
If idle in lhz_dun04 for 1 minute. do @die.
AnnieRuru replied to Currently's question in Script Requests
- script kjdshksdfjhsd -1,{ OnPCLoadMapEvent: if ( strcharinfo(3) != "lhz_dun04" ) end; while (1) { getmapxy .@map$, .@x, .@y, 0; if ( .@map$ != "lhz_dun04" ) end; else if ( .@x == .@afkinbio4_x && .@y == .@afkinbio4_y ) { .@afkinbio4++; // dispbottom "AFK for "+ .@afkinbio4 +" seconds"; if ( .@afkinbio4 == .afk ) { unitkill getcharid(3); end; } } else { // dispbottom "AFK reset"; .@afkinbio4 = 0; .@afkinbio4_map$ = .@map$; .@afkinbio4_x = .@x; .@afkinbio4_y = .@y; } sleep2 .sleeploop; } end; OnInit: .sleeploop = 1000; // every 1 second .afk = 60; // loop 60 times of 1 second == 1 minute end; } lhz_dun04 mapflag loadevent huhuhu ... its fun when I have a challenger xD EDIT: addtimer 30000, strnpcinfo(3)+"::On30secs"; ..... else if( @afkinbio4 == 3 ) ..... @afkinbio4++; I believe it should be @afkinbio4 == 2 there because @afkinbio4++ is execute later either put @afkinbio4++ before the execution of that condition to make it 3, or put it later to make it 2 -
can you please rephrase that ? when agitinit, *maprespawnguildid will be executed on every castle to kick all non-castle-owner OnAgitStart: if (strnpcinfo(0) == "Gld_Agit_Manager") end; MapRespawnGuildID strnpcinfo(2),GetCastleData(strnpcinfo(2),1),6; no I don't think sobut in fact, the monster get respawn every time it execute OnAgitInit or OnRecvCastle label OnAgitInit execute when the server started ( when map-server.exe connected to char-server.exe .. read script_commands.txt ) OnRecvCastle execute when the castle owner decided to abandon the castle OnAgitInit: OnRecvCastle: if (strnpcinfo(0) == "Gld_Agit_Manager") end; // Spawn Monsters if the castle is empty.
-
prontera,156,172,5 script kdfhskfjhs 100,{ if ( getcharid(2) != getcastledata( "prtg_cas01", 1 ) ) { mes "your guild is not the owner of Krimhield castle"; close; } if ( getcharid(0) != getguildmasterid( getcharid(2) ) ) { mes "you are not guild master of your guild"; close; } warp "prtg_cas01", 0,0; // warp to specific places end; }
-
you have to tell how that server can rent an egg1. how do you got that time limited egg ... did you got it from a npc ? or from item box 2. when times up, issit your current active pet will automatically disappear ? or wait until player logs out only the pet disappear on next login
-
I don't understand your question ...do you mean cannot bring certain equipments into battleground maps ? ...
-
I cook some delicious ramen and put it below the hill as the smell reach ScriptingPhailure, he ran down the hill and now I have the hill
-
Battleground system like eAmod for rathena?
AnnieRuru replied to Shogun's question in Script Requests
currently there's only a handful of members here know how to make a battleground scripts and yes, of course its possible for rathena to have battleground scripts, which I already made a few ... like this one http://rathena.org/board/topic/75477-r-custom-bg/#entry162836 however, I prefer to write something that doesn't exist before, like this wow battleground script it is entirely possible for rathena having all the features of eamod, however doing something like this is just like a copycat =/ better do something entirely different than them try search around in this board, there's already a few custom made battleground scripts floating around in this scripting section -
move to source modification support src\map\skill.c case AL_WARP: if(sd) { clif_skill_warppoint(sd, skillid, skilllv, sd->status.save_point.map, (skilllv >= 2) ? sd->status.memo_point[0].map : 0, (skilllv >= 3) ? sd->status.memo_point[1].map : 0, (skilllv >= 4) ? sd->status.memo_point[2].map : 0 ); } return 0; // not to consume item. just one glance and you should figure out how to make a script command for it anyway, I currently don't have enough time to do source modifications so I hope somebody there can do it for you
-
select * from memo if you mean this, then you need to kick the character for doing like this because the character data is being processed inside the server, while the sql table will only update in timely manner it might be possible to change the memo point through source modification ... by introducing a new script command though I suggest that you create a new item ... in item_db doevent <npc>::<label> - script <npc> -1,{ <label>: select getstrlen(warp_portal1$)? warp_portal1$ : "empty", getstrlen(warp_portal2$)? warp_portal2$ : "empty", getstrlen(warp_portal3$)? warp_portal3$ : "empty", getstrlen(warp_portal4$)? warp_portal4$ : "empty"; warp getd("warp_portal"+ @menu ), 0,0; try doing that yourself ... maybe doing like this is better in my opinion ... maybe otherwise ... need to do some source modifications already
-
// vip set function ... setd "$AM_Vip" + getarg (2, getcharid (3)) + "[" + getarg (1, 1) + "]", (getarg (0) > 0) ? getarg (0) : 0; // vip read function setd "$AM_Vip" + .@aid + "[" + $@AM_Vip_Groups[.@i] + "]", 0; I DO NOT AGREE having this kind of script on your server ! read here and understand what it is http://www.eathena.ws/board/index.php?s=&showtopic=181741&view=findpost&p=1478950 its better you go find another one
-
Script is giving me errors, it used to work.
AnnieRuru replied to DR4LUC0N's question in Scripting Support
1st off, wanna tell you go take a look at our conf\groups.conf it has been split into 2 script commmands getgmlevel() and getgroupid() - script kjhfksjfhs -1,{ OnPCLoginEvent: if ( getgmlevel() == 99 ) atcommand "@hide"; end; } something like this I guess -
lol ! if this one going to add, then why not also add issit() script command ? xD if ( issit() ) stand; else sit; something like this probably going to be useful in certain event scripts
-
npc script for the monster in dic_fild01
AnnieRuru replied to darking123's topic in Dito mag request ng Script at Database
inside \conf\mapflag\nowarpto.txt splendide mapflag nowarpto comment it out -
http://www.eathena.w...dpost&p=1311903 http://www.eathena.ws/board/index.php?showtopic=237335&hl=
-
npc script for the monster in dic_fild01
AnnieRuru replied to darking123's topic in Dito mag request ng Script at Database
ROFL !! see this fake me, haha anyway I know the true answer for the 2nd one, @warp command is restricted by nowarp and nowarpto mapflag, not by restricted zone restricted zone only control disabling items configured in item_noequip.txt and skills configured in skill_nocast_db.txt, nothing else get this script in - script kasdkajsdhkajd -1,{ OnInit: bindatcmd "warp", strnpcinfo(0)+"::Onaaa"; end; Onaaa: if ( getgroupid() >= 3 || strcharinfo(3) == "prontera" ) atcommand "@warp "+ .@atcmd_parameters$[0] + ( ( getstrlen( .@atcmd_parameters$[1] ) )? " "+ .@atcmd_parameters$[1] : "" ) + ( ( getstrlen( .@atcmd_parameters$[2] ) )? " "+ .@atcmd_parameters$[2] : "" ); end; } to allow normal players to use @warp only in prontera, and nowhere else while still allowing GMs can use @warp everywhere btw, I have already scared my PM box getting bombed, so I think this member just want to increase my PM box getting more PMs =/ so if there's any scripting question, better ask in script support/request section -
http://www.eathena.ws/board/index.php?s=&showtopic=238404&view=findpost&p=1500001 updating this script function script tele_device { if ( getmapflag( strcharinfo(3), mf_nowarp ) ) { dispbottom "Teleport Device : you can't use this device on this map"; end; } if ( input( .@input$, 4, 21 ) ) { dispbottom "Teleport Device : invalid string length"; end; } if ( sscanf( .@input$, "%15s %d %d", .@map$, .@x, .@y ) < 3 ) { if ( sscanf( .@input$, "%15[^,],%d,%d", .@map$, .@x, .@y ) < 1 ) { dispbottom "Teleport Device : invalid format. Usage: <mapname> <x> <y>"; end; } } if ( getmapusers( .@map$ ) == -1 ) { dispbottom "Teleport Device : no such map"; end; } if ( getmapflag( .@map$, mf_nowarpto ) ) { dispbottom "Teleport Device : you can't warp to this map"; end; } if ( ( .@x || .@y ) && checkcell( .@map$, .@x, .@y, cell_chknopass ) ) { dispbottom "Teleport Device : invalid coordinate"; end; } // delitem 10000,1; // uncomment this for limited use warp .@map$, .@x, .@y; end; } but this sscanf post out some !@# error when user input invalid format <.< dunno but somehow I want to file a report for it http://rathena.org/board/tracker/issue-7059-sscanf-script-command-display-error-in-map-server/ EDIT: and I want to edit this script somemore =/ done ... EDITED again <.< this time follows the atcommand.c
-
read the source script.c file mobcount script command script_pushint(st,map_foreachinmap(buildin_mobcount_sub, m, BL_MOB, event)); in this script, every time a monster is kill, in the source will run this function this function search EVERY monsters in the map, so let's say if there are more than 300 monsters with 5 different event labels it will loop through every monsters in this map with 300 loops, and only count++ out only this event label that you have specify of course, using variables will be more resource friendly
-
seems like this member is asking to get spoon feed =/ //=====eAthena Script===================== // Disguise NPC // v1.0 //=====By:============================== //= Soryia //===== Description: ====================== //= An NPC that changes your class sprite while wearing a special item //===== Additional Comments: ============== //= Supports third classes, just uncomment the appropriate lines //===================================== prontera,147,174,5 script Disguise NPC 803,{ mes "Hi! I can change your look!"; mes "Want to try?"; if(countitem(5083) == 0) { switch(select("Sure!","No thanks")) { Case 1: next; mes "Alright! First you need to have these special rings."; next; mes "Now, I need to properly enchant your rings before you put them on..."; next; switch(rand(1,3)) { Case 1: set .@Type$,"base"; break; Case 2: set .@Type$,"EAJL_UPPER"; break; Case 3: set .@Type$,"EAJL_BABY"; break;} if(.@Type$ == "base") { switch(rand(1,10)) { Case 1: set .@Class$,"EAJ_NOVICE"; break; Case 2: set .@Class$,"EAJ_SWORDMAN"; break; Case 3: set .@Class$,"EAJ_ACOLYTE"; break; Case 4: set .@Class$,"EAJ_ARCHER"; break; Case 5: set .@Class$,"EAJ_MAGE"; break; Case 6: set .@Class$,"EAJ_MERCHANT"; break; Case 7: set .@Class$,"EAJ_THIEF"; break; Case 8: set .@Class$,"EAJ_TAEKWON"; break; Case 9: set .@Class$,"EAJ_NINJA"; break; Case 10: set .@Class$,"EAJ_GUNSLINGER"; break;}} else if(.@Type$ == "EAJL_UPPER") { switch(rand(1,6)) { Case 1: set .@Class$,"EAJ_SWORDMAN"; break; Case 2: set .@Class$,"EAJ_ACOLYTE"; break; Case 3: set .@Class$,"EAJ_ARCHER"; break; Case 4: set .@Class$,"EAJ_MAGE"; break; Case 5: set .@Class$,"EAJ_MERCHANT"; break; Case 6: set .@Class$,"EAJ_THIEF"; break;}} else if(.@Type$ == "EAJL_BABY") { switch(rand(1,7)) { Case 1: set .@Class$,"EAJ_NOVICE"; break; Case 2: set .@Class$,"EAJ_SWORDMAN"; break; Case 3: set .@Class$,"EAJ_ACOLYTE"; break; Case 4: set .@Class$,"EAJ_ARCHER"; break; Case 5: set .@Class$,"EAJ_MAGE"; break; Case 6: set .@Class$,"EAJ_MERCHANT"; break; Case 7: set .@Class$,"EAJ_THIEF"; break;}} if((.@Class$ != "EAJ_GUNSLINGER") && (.@Class$ != "EAJ_NINJA") && (.@Class$ != "EAJ_NOVICE") && (.@Type$ != "EAJL_UPPER")) { switch(rand(1,3)) { Case 1: set .@Branch$,""; break; Case 2: set .@Branch$,"EAJL_2_1"; break; Case 3: set .@Branch$,"EAJL_2_2"; break;}} else if(.@Type$ == "EAJL_UPPER") { switch(rand(1,2)) { Case 1: set .@Branch$,"EAJL_2_1"; break; Case 2: set .@Branch$,"EAJL_2_2"; break;}} else if((.@Class$ == "EAJ_NOVICE")) { switch(rand(1,2)) { Case 1: set .@Branch$,""; break; Case 2: set .@Branch$,"EAJL_2_1"; break;}} if(.@Type$ != "base") { set DisguiseJob,roclass(getd(.@Class$)|getd(.@Branch$)|getd(.@Type$)); } else { set DisguiseJob,roclass(getd(.@Class$)|getd(.@Branch$)); } mes "Alright, they should be ready to use!"; mes "Come back if you want me to change the enchantment on your rings!"; close; break; Case 2: mes "Suit yourself, then!"; close; break;}} switch(select("Sure!","No thanks")) { Case 1: next; if(isequipped(5083) != 1) { mes "Sorry, you need to have your disguise rings on first."; close;} mes "Would you like to select a class or let me select one?"; switch(select("Let me select", "You pick")) { Case 1: next; mes "Alright! First select a catagory!"; switch(select("Normal","Advanced","Baby")) { //switch(select("Normal","Advanced","Baby","Third")) { //Switch this and the above line if your server supports third classes Case 1: set .@Type$,"base"; break; Case 2: set .@Type$,"EAJL_UPPER"; break; Case 3: set .@Type$,"EAJL_BABY"; // break; //Uncomment these lines if your server supports third classes // Case 4: // set .@Type$,"EAJL_THIRD"; break;} next; mes "Alright! Now select your base class!"; if(.@Type$ == "base") { switch(select("Novice","Swordsman","Acolyte","Archer","Mage","Merchant","Thief","Taekwon","Ninja","Gunslinger")) { Case 1: set .@Class$,"EAJ_NOVICE"; break; Case 2: set .@Class$,"EAJ_SWORDMAN"; break; Case 3: set .@Class$,"EAJ_ACOLYTE"; break; Case 4: set .@Class$,"EAJ_ARCHER"; break; Case 5: set .@Class$,"EAJ_MAGE"; break; Case 6: set .@Class$,"EAJ_MERCHANT"; break; Case 7: set .@Class$,"EAJ_THIEF"; break; Case 8: set .@Class$,"EAJ_TAEKWON"; break; Case 9: set .@Class$,"EAJ_NINJA"; break; Case 10: set .@Class$,"EAJ_GUNSLINGER"; break;}} else if((.@Type$ == "EAJL_UPPER")) { //else if((.@Type$ == "EAJL_UPPER") || (.@Type$ == "EAJL_THIRD")) { //Switch this and the above line if your server supports third classes switch(select("Swordsman","Acolyte","Archer","Mage","Merchant","Thief")) { Case 1: set .@Class$,"EAJ_SWORDMAN"; break; Case 2: set .@Class$,"EAJ_ACOLYTE"; break; Case 3: set .@Class$,"EAJ_ARCHER"; break; Case 4: set .@Class$,"EAJ_MAGE"; break; Case 5: set .@Class$,"EAJ_MERCHANT"; break; Case 6: set .@Class$,"EAJ_THIEF"; break;}} else if(.@Type$ == "EAJL_BABY") { switch(select("Novice","Swordsman","Acolyte","Archer","Mage","Merchant","Thief")) { Case 1: set .@Class$,"EAJ_NOVICE"; break; Case 2: set .@Class$,"EAJ_SWORDMAN"; break; Case 3: set .@Class$,"EAJ_ACOLYTE"; break; Case 4: set .@Class$,"EAJ_ARCHER"; break; Case 5: set .@Class$,"EAJ_MAGE"; break; Case 6: set .@Class$,"EAJ_MERCHANT"; break; Case 7: set .@Class$,"EAJ_THIEF"; break;}} next; if((.@Class$ != "EAJ_GUNSLINGER") && (.@Class$ != "EAJ_NINJA") && (.@Class$ != "EAJ_NOVICE") && (.@Type$ != "EAJL_UPPER")) { //if((.@Class$ != "EAJ_GUNSLINGER") && (.@Class$ != "EAJ_NINJA") && (.@Class$ != "EAJ_NOVICE") && (.@Type$ != "EAJL_UPPER") && (.@Type$ != "EAJL_THIRD")) { //Switch this and the above line if your server supports third classes mes "1st class, 2-1 class, or 2-2 class?"; switch(select("1st","2-1","2-2")) { Case 1: set .@Branch$,""; break; Case 2: set .@Branch$,"EAJL_2_1"; break; Case 3: set .@Branch$,"EAJL_2_2"; break;}} else if((.@Type$ == "EAJL_UPPER")) { //else if((.@Type$ == "EAJL_UPPER") || (.@Type$ == "EAJL_THIRD")) { //Switch this and the above line if your server supports third classes mes "2-1 class or 2-2 class?"; switch(select("2-1","2-2")) { Case 1: set .@Branch$,"EAJL_2_1"; break; Case 2: set .@Branch$,"EAJL_2_2"; break;}} else if((.@Class$ == "EAJ_NOVICE")) { mes "Normal or Super?"; switch(select("Normal","Super")) { Case 1: set .@Branch$,""; break; Case 2: set .@Branch$,"EAJL_2_1"; break;}} next; break; Case 2: next; switch(rand(1,3)) { //switch(rand(1,4)) { //Switch this and the above line if your server supports third classes Case 1: set .@Type$,"base"; break; Case 2: set .@Type$,"EAJL_UPPER"; break; Case 3: set .@Type$,"EAJL_BABY"; // break; //Uncomment these lines if your server supports third classes // Case 4: // set .@Type$,"EAJL_THIRD"; break;} if(.@Type$ == "base") { switch(rand(1,10)) { Case 1: set .@Class$,"EAJ_NOVICE"; break; Case 2: set .@Class$,"EAJ_SWORDMAN"; break; Case 3: set .@Class$,"EAJ_ACOLYTE"; break; Case 4: set .@Class$,"EAJ_ARCHER"; break; Case 5: set .@Class$,"EAJ_MAGE"; break; Case 6: set .@Class$,"EAJ_MERCHANT"; break; Case 7: set .@Class$,"EAJ_THIEF"; break; Case 8: set .@Class$,"EAJ_TAEKWON"; break; Case 9: set .@Class$,"EAJ_NINJA"; break; Case 10: set .@Class$,"EAJ_GUNSLINGER"; break;}} else if((.@Type$ == "EAJL_UPPER")) { //else if((.@Type$ == "EAJL_UPPER") || (.@Type$ == "EAJL_THIRD")) { //Switch this and the above line if your server supports third classes switch(rand(1,6)) { Case 1: set .@Class$,"EAJ_SWORDMAN"; break; Case 2: set .@Class$,"EAJ_ACOLYTE"; break; Case 3: set .@Class$,"EAJ_ARCHER"; break; Case 4: set .@Class$,"EAJ_MAGE"; break; Case 5: set .@Class$,"EAJ_MERCHANT"; break; Case 6: set .@Class$,"EAJ_THIEF"; break;}} else if(.@Type$ == "EAJL_BABY") { switch(rand(1,7)) { Case 1: set .@Class$,"EAJ_NOVICE"; break; Case 2: set .@Class$,"EAJ_SWORDMAN"; break; Case 3: set .@Class$,"EAJ_ACOLYTE"; break; Case 4: set .@Class$,"EAJ_ARCHER"; break; Case 5: set .@Class$,"EAJ_MAGE"; break; Case 6: set .@Class$,"EAJ_MERCHANT"; break; Case 7: set .@Class$,"EAJ_THIEF"; break;}} if((.@Class$ != "EAJ_GUNSLINGER") && (.@Class$ != "EAJ_NINJA") && (.@Class$ != "EAJ_NOVICE") && (.@Type$ != "EAJL_UPPER")) { //if((.@Class$ != "EAJ_GUNSLINGER") && (.@Class$ != "EAJ_NINJA") && (.@Class$ != "EAJ_NOVICE") && (.@Type$ != "EAJL_UPPER") && (.@Type$ != "EAJL_THIRD")) { //Switch this and the above line if your server supports third classes switch(rand(1,3)) { Case 1: set .@Branch$,""; break; Case 2: set .@Branch$,"EAJL_2_1"; break; Case 3: set .@Branch$,"EAJL_2_2"; break;}} else if((.@Type$ == "EAJL_UPPER")) { //else if((.@Type$ == "EAJL_UPPER") || (.@Type$ == "EAJL_THIRD")) { switch(rand(1,2)) { Case 1: set .@Branch$,"EAJL_2_1"; break; Case 2: set .@Branch$,"EAJL_2_2"; break;}} else if((.@Class$ == "EAJ_NOVICE")) { switch(rand(1,2)) { Case 1: set .@Branch$,""; break; Case 2: set .@Branch$,"EAJL_2_1"; break;}} break;} // This section allows GMs to apply the disguise to anyone else online, you can disable that by commenting out everything below here... if(getgmlevel() >= 60) { mes "Would you like to change yourself or a different person?"; switch(select("Myself","Someone Else")) { Case 1: next; break; Case 2: L_Remote: next; mes "Who do you want to change, then?"; input .@Disguise$; next; if (isloggedin(getcharid(3,.@Disguise$)) == 0){ mes "Hmm... I can't find "+.@Disguise$+". Double check your spelling or try someone else."; goto L_Remote;} mes "Alright then!"; close2; attachrid getcharid(3,.@Disguise$); if(.@Type$ != "base") { set DisguiseJob,roclass(getd(.@Class$)|getd(.@Branch$)|getd(.@Type$)); } else { set DisguiseJob,roclass(getd(.@Class$)|getd(.@Branch$)); } specialeffect2 699; changebase DisguiseJob; end; break;}} // ...and above here mes "Alright! Stand back!"; next; if(.@Type$ != "base") { set DisguiseJob,roclass(getd(.@Class$)|getd(.@Branch$)|getd(.@Type$)); } else { set DisguiseJob,roclass(getd(.@Class$)|getd(.@Branch$)); } specialeffect2 699; changebase DisguiseJob; mes "Alright! Have Fun!"; close; break; Case 2: next; break; mes "Alright, suit yourself!"; close; break;} } this kind of script ... should be able to optimized further with arrays ... but the script works itself so meh ...
-
- script atcmd_doommap -1,{ OnInit: bindatcmd("doommap","atcmd_doommap::Ondoommap"); end; Ondoommap: // dispbottom getgmlevel() +""; // debugging if ( getgmlevel() >= 99 ) atcommand "@doommap"; else if ( getgmlevel() >= 60 && strcharinfo(3) != "prontera" ) atcommand "@doommap"; end; } I believe the > should be >= otherwise GM99 will not be able to @doommap in main town
-
wow your script also very screw up prontera,155,173,5 script Skull Collector 449,{ mes "I'm collecting dead people skull."; mes "Hmm... well well looks like you have something there aye!"; mes " "; mes " "; mes " "; mes "Let me just check it............."; next; mes "You have "+( .@skulls = countitem(7420) )+" skulls"; mes "And"; mes "You currently have "+ #cashpoints +" Cash points"; next; if ( !.@skulls ) { mes "I don't see any Skulls you have >_< so get LOSS! you wasting my time."; close; } if ( input ( .@amount, 1, .@skulls ) ) { mes "invalid amount"; close; } delitem 7420, .@amount; #cashpoints = #cashpoints + .@amount *2; dispbottom "[ Cash ] Gained "+( .@amount *2 )+" Points. Total : "+ #cashpoints +" Points."; mes "Gained "+( .@amount *2 )+" Points."; mes "Total : "+ #cashpoints +" Points."; close; }
-
@Capuche already saw some of your script out there ... wanna become my student ? xD http://www.eathena.ws/board/index.php?showtopic=154325 just guess how long have I been scripting, hahaha XD ... anyway, just continue comply the script request section here, and I'll watch over your progress @Nokia yup however you have to know there are certain commands like @main that needs on|off so you have to watch out which one works, and which one don't well I guess you can learn by starting how to edit this script ...
-
its already done in the past http://rathena.org/board/topic/72691-evil-clone-on-map-enter/#entry148875