-
Posts
1282 -
Joined
-
Last visited
-
Days Won
41
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by Skorm
-
617,Old_Violet_Box,Old Purple Box,2,10000,,200,,,,,0xFFFFFFFF,7,2,,,,,,{ set .@id, groupranditem(IG_VioletBox); getitem .@id,1; setarray .@a[0], 678; for(set .@b,0;.@b<getarraysize(.@a);set .@b,.@b+1) if(.@id == .@a[.@b]) announce "["+strcharinfo(0)+"] got "+getitemname(.@id)+" from Old Purple Box !",bc_all|bc_yellow;},{},{}Fill the array .@a with ids you'd like announced. Example: setarray .@a[0], 678, 501;Would announce Posion Bottle and Red Potion.
-
- script resetstat -1,{ OnPCLoginEvent: if(!statreset) { resetstatus; set statreset,1; } end; }
-
I'd like to nominate, Euphy, for Tyranitaurus badge, and also for the Cascade badge. Congratulations!!! Status: Rejected (until we add them :3). [Euphy]
-
I agree that is very interesting. I found something about disabling the pin code. http://rathena.org/board/topic/80591-20120410-security-code-problem/
-
I'm not sure how to turn the pin code off but I think it's based on the client so if you use a lower client it won't show up... anyways as for the npc alternative I recommend you try my script. http://code.google.com/p/ea-addicts/downloads/detail?name=gmprotectsql.txt&can=2&q=
-
I don't seem to have this problem the method used by all flags is relatively similar to what I've done here. You could try reloading the image with Ontouch but that might get a little bad with people walking through it and stuff. If you've just reloaded scripts and are refreshing the map I recommend doing a full server restart and seeing how it works for you then because sometimes @reloadscript is a little buggy.
-
Firstly I strongly recommend switching to an SQL server. gonryun,160,118,4 script Guild of The Month 722,{ mes "[Guild of the Month]"; mes "The Guild of the Month is the ^ff0000"+getguildname(.guild_id)+"^000000 Guild"; mes "Their Guild Master is ^FF0000"+getguildmaster(.guild_id)+"^000000"; close; OnInit: set .guild_id, 1; flagemblem .guild_id; } I can't really think of a way to return the guild_id using guild name on a txt server. :/ Perhaps someone else has more insight on this, but you can use the guilds ID here and it will work on a txt server.
-
It worked fine for me? Hey, are you using an sql server? If not then this script won't work for you and I'll have to do something different using the guild ID instead of the guild name. If you are using an sql server make sure that the guild name is spelled exactly as it appears in your database.
-
gonryun,160,118,4 script Guild of The Month 722,{ mes "[Guild of the Month]"; mes "The Guild of the Month is the ^ff0000"+getguildname(.a)+"^000000 Guild"; mes "Their Guild Master is ^FF0000"+.b$+"^000000"; close; OnInit: set .guild$, "Amateurs"; query_sql("SELECT `guild_id`,`master` FROM `guild` WHERE `name` = '"+.guild$+"';",.a,.b$); flagemblem .a; }UntestedEdit: Thank you for the example it made my job 100% easier.
-
WEW Happy BIRFDAY!!!
- 1 reply
-
- 1
-
-
CREATE TABLE IF NOT EXISTS `gmprotect` ( `account_id` int(11) unsigned NOT NULL default '0', `password` varchar(24) NOT NULL default '', `gm_level` int(11) unsigned NOT NULL default '0', `switch` BOOLEAN NOT NULL default '0', PRIMARY KEY (`account_id`) ) ENGINE=MyISAM; Run that like you would run an SQL script it will create the table you need, but make sure your main database (ragnarok not logs) is selected.
-
Can somebody edit this Script for me? Berry Trader
Skorm replied to eboni001's question in Script Requests
Did you make sure to search for:getitem <ID>,1;and replace <ID> with the number you use for Ygg box, because it works fine for me. Example: getitem 617,1; -
Actually if you go to the source request section people have already answered how to do this.
-
Can somebody edit this Script for me? Berry Trader
Skorm replied to eboni001's question in Script Requests
Make sure before posting a script to turn off the Rich-Text Editor (Light Switch in top left) to keep tabs. You just need to retab the header.prontera.gat,144,173,3 script Berry Trader#1:BT 91,{ -
// Gold PvP Room by Rokimoki post: http://www.eathena.ws/board/index.php?showtopic=230350 prontera,165,149,4 script Gold Room 896,{ set .@name$, "[^0000FFGold Room^000000]"; mes .@name$; mes "Hello, do you want to join here? there are " +getmapusers("1@nyd") +" users inside."; next; if (select("Yes I want.:Not now.") == 2) close; mes .@name$; mes "Okay let's go."; close2; warp "1@nyd",301,249; end; //OnPCDieEvent: // This will delete your gold and drop the amount you had //getmapxy (.@mapa$,.@x,.@y,0); //if (.@mapa$ != "1@nyd") end; //set @q,countitem(969); //delitem 969,countitem(969); //makeitem 969,@q,.@mapa$,.@x,.@y; //end; //OnNPCKillEvent: // This will give you a gold //getmapxy (.@mapa$,.@x,.@y,0); //if (.@mapa$ != "1@nyd") end; //getitem 969,1; //end; OnInit: waitingroom "Gold Arena",0; end; } // End Script // Monster with gold, 50,60,70,80,90 are the mob ammount, modify to balance ammount // They will drop natural drop too 1@nyd,0,0,0,0 monster Golden Peco 1369,70,0,0,0 1@nyd,0,0,0,0 monster Golden Peco 1369,70,0,0,0 1@nyd,0,0,0,0 monster Golden Peco 1369,70,0,0,0 1@nyd,0,0,0,0 monster Golden Peco 1369,70,0,0,0 1@nyd,0,0,0,0 monster Golden Peco 1369,70,0,0,0 // Mapflags //1@nyd mapflag pvp_noguild // PvP Mode guild with same members can attack themself //1@nyd mapflag pvp_noparty // PvP Mode pary can attack themself //1@nyd mapflag nowarpto // No warp with @warp //1@nyd mapflag nowarp // No warp with warp portal //1@nyd mapflag nopenalty // No loose exp when die //1@nyd mapflag nomemo // Can't use /memo //1@nyd mapflag noexp // Don't gain exp //1@nyd mapflag indoors // It's a dungeon indoor //1@nyd mapflag nobranch // Can't break dbranche Before the last curly works wonders
-
Change:set .bypass, 100;To:set .bypass, 0;
-
No problem I do recommend you change the sleep value to something higher like 100 because it performs the same and decreases server load. If you have anymore questions you know where to find me. tytyty!
-
Alright I did some testing and I got it working really well... but your cords are still a little bit messedup when he trys to move past the wall. Just add some more when he goes through the gate... I've included my test cords if you'd like to see. prontera,37,207,3 script MovingNPC 1004,{ if( .b ){ npctalk "Go away I'm busy!"; end; } set .b, 1; for(set .a,0;.a<getarraysize(.x);set .a,.a+1) { npcwalkto .x[.a],.y[.a]; //Other commands go here... while( 1 ){ getmapxy(.map$,.x3,.y3,1); sleep 100; getmapxy(.map$,.x2,.y2,1); if(.x3==.x2&&.y3==.y2) if( .x2==.x[.a]&&.y2==.y[.a] ) break; } if(!.a) { monster strnpcinfo(4),.x[.a],.y[.a],"Poring",1002,1; //enablenpc strnpcinfo(0); } } npcstop; disablenpc strnpcinfo(0); set .b, 0; end; OnInit: npcspeed 200; setarray .x[0],50,59,70,82,99,99,100,102,115,127,142,161,175,191,211,216,212,212; setarray .y[0],203,201,200,193,185,172,155,139,138,149,163,166,156,151,158,171,186,196; //setarray .x[0], 47, 56, 65, 76, 86, 97, 103, 113, 126, 134, 138/*, 161, 175, 191, 211, 216, 212, 212*/; //setarray .y[0], 208, 207, 205, 204, 204, 204, 204, 204, 204, 204, 204/*, 166, 156, 151, 158, 171, 186, 196*/; }Keep in mind if the npc can't get to the cords you've put then it will loop forever and the ending bits won't be run.
-
Ok so you want the npc to work when you click it???? prontera,100,100,3 script MovingNPC 100,{ if( .b ){ npctalk "Go away I'm busy!"; end; } set .b, 1; for(set .a,0;.a<getarraysize(.x);set .a,.a+1) { npcwalkto .x[.a],.y[.a]; //Other commands go here... while( .x2!=.x[.a]&&.y2!=.y[.a] ){ sleep 100; getmapxy(.map$,.x2,.y2,1); } if(!.a) { monster strnpcinfo(4),.x[.a],.y[.a],"Poring",1002,1; enablenpc strnpcinfo(0); } } npcstop; disablenpc strnpcinfo(0); set .b, 0; end; OnInit: npcspeed 100; setarray .x[0],50,59,70,82,99,99,100,102,115,127,142,161,175,191,211,216,212,212; setarray .y[0],203,201,200,193,185,172,155,139,138,149,163,166,156,151,158,171,186,196; } NPCs walking can be very tricky the cordinates need to be close together and in straight lines for it to work right.
-
prontera,100,100,3 script MovingNPC 100,{ //Commands run when npc is clicked. end; OnInit: npcspeed 100; setarray .x[0],50,59,70,82,99,99,100,102,115,127,142,161,175,191,211,216,212,212; setarray .y[0],203,201,200,193,185,172,155,139,138,149,163,166,156,151,158,171,186,196; for(set .a,0;.a<getarraysize(.x);set .a,.a+1) { npcwalkto .x[.a],.y[.a]; //Other commands go here... if(!.a) { monster strnpcinfo(4),.x[.a],.y[.a],"Poring",1002,1; enablenpc strnpcinfo(0); } } npcstop; disablenpc strnpcinfo(0); }Untested...
-
//Skorm //Gm Protection v2 //SQL /* Run this Query before installing this script! CREATE TABLE IF NOT EXISTS `gmprotect` ( `account_id` int(11) unsigned NOT NULL default '0', `password` varchar(24) NOT NULL default '', `gm_level` int(11) unsigned NOT NULL default '0', `switch` BOOLEAN NOT NULL default '0', PRIMARY KEY (`account_id`) ) ENGINE=MyISAM; */ - script GMPROTECT -1,{ OnPCLoginEvent: set .@p, query_sql("SELECT `password`,`switch` FROM `gmprotect` WHERE `account_id` = "+getcharid(3)+";",.@pass$,.@a); if( getgmlevel() <= .bypass && .@a ) { if( !.norm && !getgmlevel() ) end; if(!.@p) { mes "I see it's your first time logging in!"; mes "Would you like to set a login password?"; next; if(select("Yes:No")&2) { query_sql "INSERT INTO `gmprotect` (`account_id`,`gm_level`) VALUES ('"+getcharid(3)+"',"+getgmlevel()+");"; mes "Alright, maybe next time."; close; } pass: mes "Please input your password."; input(.@pass$); while(.@pass$!=.@pass2$) { mes "Again."; input(.@pass2$); set .@z,.@z+1; if(.@z>1){ mes "I'm sorry, but your passwords didn't match, try again?"; next; if(select("Yes:No")&2) { mes "Alright, maybe next time."; query_sql "INSERT INTO `gmprotect` (`account_id`,`gm_level`) VALUES ('"+getcharid(3)+"',"+getgmlevel()+");"; close; } set .@z,0; goto pass; } } query_sql "INSERT INTO `gmprotect` (`account_id`,`password`,`gm_level`,`switch`) VALUES ('"+getcharid(3)+"','"+escape_sql(((.md5)?md5(.@pass$):.@pass$))+"',"+getgmlevel()+",1);"; mes "Don't forget your password has been set to ["+.@pass$+"]."; close; } setnpctimer 0; attachnpctimer(strcharinfo(0)); startnpctimer; atcommand "@mute 100 "+strcharinfo(0); mes "Please input your password, before 60 seconds are up."; next; input(.@input$); if(((.md5)?md5(.@input$):.@input$) == .@pass$) { mes "Welcome back!"; close2; stopnpctimer; if(playerattached()){ set .@g,1; callfunc "unlocker",strcharinfo(0),getcharid(3),.@g; } } else { mes "Incorrect!"; close2; if(playerattached()){ callfunc "unlocker",strcharinfo(0),getcharid(3),.@g; } } } end; OnTimer10000: if(playerattached()){ callfunc "unlocker",strcharinfo(0),getcharid(3),.@g; } end; OnInit: set .bypass, 100; //GMs this level or greater don't need passwords. set .md5, 0; //MD5 Passwords this is for added security (1=on:0=off) rAthena Only! set .norm, 1; //Enable Passwords for normal players (1=on:0=off) end; } //Example Changing Password NPC prontera,162,191,3 script Pass Setting 100,{ begin: query_sql("SELECT `password`,`switch` FROM `gmprotect` WHERE `account_id` = "+getcharid(3)+";",.@pass$,.@a); mes "Would you like to change or set a login password?"; next; select("Change Password:Online Pass["+((.@a)?"On":"Off")+"]:Cancel"); if(@menu==3) { mes "Alright, maybe next time."; close; } if(@menu==1){ mes "Please input your old password."; next; input(.@pass1$); if(((.md5)?md5(.@pass1$):.@pass1$)==.@pass$){ pass: mes "Please input your new password."; next; input(.@pass$); while(.@pass$!=.@pass2$) { mes "Again."; input(.@pass2$); set .@z,.@z+1; if(.@z>1){ mes "I'm sorry, but your passwords didn't match, try again?"; next; if(select("Yes:No")&2) { mes "Alright, maybe next time."; close; } set .@z,0; goto pass; } } query_sql "UPDATE `gmprotect` SET `password`='"+((.md5)?md5(.@pass$):.@pass$)+"', `switch`=1 WHERE `account_id`="+getcharid(3)+";"; mes "Don't forget your password has been set to ["+.@pass$+"]."; close; } else { mes "Sorry that's not your old password!"; close; } } else { query_sql "UPDATE `gmprotect` SET `switch`="+((.@a)?0:1)+" WHERE `account_id`="+getcharid(3)+";"; goto begin; } end; OnInit: set .md5, 0; //MD5 Passwords this is for added security (1=on:0=off) rAthena Only! end; } function script unlocker { detachrid; if(getarg(2)){ atcommand "@unmute "+getarg(0); end; } atcommand "@unmute "+getarg(0); attachrid(getarg(1)); atcommand "@kick "+getarg(0); end; }It works but for some reason if I get the password wrong my map server crash. Can you test it and tell me if you get the same problem. tytytyMy map server is unstable it's hard to compare with others.
-
http://code.google.com/p/ea-addicts/downloads/detail?name=gmprotect.txt&can=2&q= I made a system for GM account like that awhile back. I've been asked to make it more friendly with an sql database which won't be hard then you could use it as a secondary ingame password.
-
I'd like to know the answer to. public function actionAllowed($moduleName, $actionName = 'index') { $accessConfig = $this->config->get('modules'); $accessKeys = array("$moduleName.$actionName", "$moduleName.*"); $accountLevel = $this->session->account->group_level; $existentKeys = array(); if ($accessConfig instanceOf Flux_Config) { foreach ($accessKeys as $accessKey) { $accessLevel = $accessConfig->get($accessKey); if (!is_null($accessLevel)) { $existentKeys[] = $accessKey; if ($accessLevel == AccountLevel::ANYONE || $accessLevel == $accountLevel || ($accessLevel != AccountLevel::UNAUTH && $accessLevel <= $accountLevel)) { return true; } } } } if (empty($existentKeys)) { return -1; } else { return false; } } Nudge
-
[Showcase] Prontera 2 from RO2 - Fully Reworked
Skorm replied to K e o u g h's topic in Maps & 3D Modeling Showcase
Gorgeous, but I do agree it's a bit on the big side! -
Hammer Time for Middle Headgear 2: The Enchantment
Skorm replied to johnbond's question in Script Requests
if(rand(3))It has a 25% chance of working and a 75% chance to fail.