Jump to content

Capuche

Developer
  • Posts

    2407
  • Joined

  • Last visited

  • Days Won

    52

Everything posted by Capuche

  1. No you didn't specify this I will make an edit... wait
  2. A rental item which give unlimit box ? I hope you will understand my example : prontera,155,168,5 script yuio 456,{ rentitem 13531, 86400 * 30; // 30 days end; } A NPC give a rental item. // ID,AegisName,Name,Type,Buy,Sell,Weight,ATK,DEF,Range,Slots,Job,Upper,Gender,Loc,wLV,eLV,Refineable,View,{ Script },{ OnEquip_Script },{ OnUnequip_Script } 13531,Light_Red_Pot_Box,Light Red Potion Box,11,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 603,1; },{},{} An item (not consumed - type 11) give unlimit item.
  3. Something like this ? prontera,158,170,5 script rtyui 78,{ if( .date$ == "" ) { mes "There is no record."; close; } explode( .@d$, .date$, " " ); mes "Max player online today at "+ .@d$[ 1 ] +" <3"; close; OnPCLoginEvent: explode( .@d$, .date$, " " ); if( atoi( .@d$[ 0 ] ) != gettime(4) ) .peak = 0; if( getusers( 1 ) > .peak ) { .peak = getusers( 1 ); .date$ = gettimestr("%d %H:%M:%S",21); } end; }
  4. Works for me. Maybe tab error ? Basic_Scripting#NPC
  5. Try openstorage; instead of atcommand "@storage";
  6. @xmaniacx It was a request far await from the topic... the topic is a little confused now. Post a new in script request next time. prontera,155,155,5 script GOTW Infos 56,{ //- NPC name .@npc$ = "[ ^FF0000GOTW Informations^000000 ]"; //-------------------------------------- if( getcastledata( "payg_cas03",1 ) ) .@size = query_sql( "SELECT `name` FROM `guild_member` WHERE `guild_id`= '"+ getcastledata( "payg_cas03",1 ) +"' ORDER BY `position` ASC", .@name_m$ ); mes .@npc$; mes "Castle : payg_cas03/"+ getcastlename( "payg_cas03" ), "Owned by Guild : "+ ( getcastledata( "payg_cas03",1 ) ? getguildname( getcastledata( "payg_cas03",1 ) ) : "none" ), "GM Leader : "+ ( getcastledata( "payg_cas03",1 ) ? ( getcharid( 0,.@name_m$[ .@i ] ) ? "^00C957" : "^FF0000" ) + getguildmaster( getcastledata( "payg_cas03",1 ) ) +"^000000" : "none" ), "Members ^00C957online^000000 / ^FF0000offline^000000 : "+ ( .@size ? "" : "none" ); for( .@i = 0; .@i < .@size; .@i++ ) mes "-> "+ ( getcharid( 0,.@name_m$[ .@i ] ) ? "^00C957" : "^FF0000" ) + .@name_m$[ .@i ] +"^000000"; next; // Menu members // ------------ if( select( "~ ^777777Enter castle^000000", "~ ^777777Cancel^000000" ) -1 ) { mes .@npc$; mes " "; mes "See you soon ^-^"; close; } .@d = getcastledata( "payg_cas03",1 ); mes .@npc$; if( !.@d ) { mes "No guild has conquered this castle yet !"; close; } else if( .@d == getcharid(2) ) { mes "You are a member of the guild's castle !"; close; } mes "I can't do nothing for you."; close; } @caspa It's done ? ^-^'
  7. Like that ? prontera,155,155,5 script Guild manager 56,{ //- Limit 128 guild names //- NPC name .@npc$ = "[ Guild manager ]"; //-------------------------------------- L_list: // Delete variables // ---------------- if( .@m ) { .@m = 0; .@cast_owned$ = ""; setarray .@var$, ".@guild_id", ".@name$", ".@master$", ".@guild_lv", ".@connect_member", ".@max_member", ".@name_m$", ".@castle_id"; for( .@i = 0; .@i < getarraysize( .@var$ ); .@i++ ) deletearray getd( .@var$[ .@i ] ), getarraysize( getd( .@var$[ .@i ] ) ); } // Count guild // ----------- query_sql( "SELECT COUNT(`guild_id`) FROM `guild`", .@count ); mes .@npc$; mes "Total: ^FF0000"+ .@count +"^000000 guild"+ ( .@count -1 ? "s." : "." ); mes "^FF0000GOTW Information^000000", "Castle : "+ getcastlename( "payg_cas03" ), "Owned by Guild : "+getguildname( getcastledata( "payg_cas03",1 ) ), "^FF0000WANTED !^000000 Guild Leader : "+ getguildmaster( getcastledata( "payg_cas03",1 ) ); next; // Menu display name guild // ----------------------- query_sql( "SELECT `guild_id`, `name`, `master`, `guild_lv` FROM `guild` ORDER BY `guild_id` ASC limit 128", .@guild_id, .@name$, .@master$, .@guild_lv ); .@s = select( implode( .@name$, ":" ) ) -1; .@size = query_sql( "SELECT `name` FROM `guild_member` WHERE `guild_id`= '"+ .@guild_id[ .@s ] +"' ORDER BY `position` ASC", .@name_m$ ); for( .@i = 0; .@i < .@size; .@i++ ) if( getcharid( 0,.@name_m$[ .@i ] ) ) .@m++; mes .@npc$; mes "Guild name: ^FF0000"+ .@name$[ .@s ] +"^000000", "Master name: ^FFCC00"+ .@master$[ .@s ] +"^000000", "Guild lvl: ^FF00CC"+ .@guild_lv[ .@s ] +"^000000", "Members Online: ^0000FF"+ .@m +"^000000", "Castle owned: ^CC00CC"+ ( getcastledata( "payg_cas03",1 ) == .@guild_id[ .@s ] ? getcastlename( "payg_cas03" ) : "None" ) +"^000000"; // Menu members // ------------ switch( select( "~ ^777777Informations members^000000", "~ ^777777Cancel^000000", "~ ^777777Choose another guild^000000" ) ) { case 1: next; break; case 2: next; mes .@npc$; mes " "; mes "See you soon ^-^"; close; case 3: next; goto L_list; } deletearray .@name_m$, getarraysize( .@name_m$ ); .@size = query_sql( "SELECT `name` FROM `guild_member` WHERE `guild_id`= '"+ .@guild_id[ .@s ] +"' ORDER BY `position` ASC", .@name_m$ ); mes .@npc$; mes "Members of ^0000FF"+ .@name$[ .@s ] +"^000000 guild.", "- Red: currently ^FF0000offline^000000.", "- Green: currently ^00C957online^000000.", " "; for( .@i = 0; .@i < .@size; .@i++ ) mes "-> "+ ( getcharid( 0,.@name_m$[ .@i ] ) ? "^00C957" : "^FF0000" ) + .@name_m$[ .@i ] +"^000000"; next; goto L_list; }
  8. Like you asked. Every time a guild break the emp, gains 1 point. Every 30 min atfer woe start, the guild who owns the castle get 1 point. You must load the table in your sql. If your woe have just 1 castle, delete other castle map in OnInit. In guild/agit_main.txt add // Add one points in rank guild // ---------------------------- callfunc( "gpoints_woe", .@GID, 1 ); //----------------------------- after OnAgitBreak: set .@GID,getcharid(2); /* CREATE TABLE IF NOT EXISTS `guild_points` ( `guild_id` int(11) unsigned NOT NULL default '0', `guild_name` varchar(255) NOT NULL DEFAULT 'NULL', `total_points` int(11) unsigned NOT NULL default '0', `woe_points` int(11) unsigned NOT NULL default '0', PRIMARY KEY (`guild_id`) ) ENGINE=MyISAM; */ prontera,160,164,5 script Guild Points 90,{ // Configurations // -------------- function displaypoints; .@guild_cID = getcharid(2); .@npc$ = "[^7600CC Guild Points ^000000]"; .@GM = getgmlevel(); L_main: // Unavailable during WOE // ---------------------- if( ( agitcheck() || agitcheck2() ) && !.@GM ) { mes .@npc$; mes "Hello,", "I'm busy there is a WOE now, can you come back later ?."; close; } // Main menu // --------- mes .@npc$; mes "Hello "+ ( .@GM ? "^FF0000[ GM ] "+ strcharinfo(0) +"^000000," : strcharinfo(0) +"," ); mes " "; mes "What can I do for you ?"; next; switch( select( "^777777~ Top 3 Guild^000000", "^777777~ Last WOE statistics^000000", ( !.@guild_cID ? "" : "^777777~ My Guild Points^000000" ), "^777777~ Leave^000000" ) ) { case 1: case 2: if( !displaypoints( ( @menu -1 ? 0 : 1 ), 1 ) ) { mes .@npc$; mes " "; mes "There is no result sorry."; emotion e_swt; next; } break; case 3: query_sql( "SELECT `total_points` FROM `guild_points` WHERE `guild_id` = '"+ .@guild_cID +"'", .@total_points ); mes .@npc$; mes " "; mes "Your guild have "+ .@total_points +" total points."; next; break; case 4: mes .@npc$, " ", "Then Goodbye !"; close; } goto L_main; OnAgitStart: initnpctimer; .timetick = gettimetick(2) + 1500; // display an announce every 1500 secs ~ 25 min query_sql( "UPDATE `guild_points` SET `woe_points` = '0'" ); end; // give points every 30 min // ------------------------ OnTimer1799000: if( gettimetick(2) > .timetick ) { .timetick = gettimetick(2) + 1500; displaypoints( 0,0 ); } for( .@i = 0; .@i < .size_c; .@i++ ) { .@owned_by = getcastledata( .castle$[ .@i ],1 ); if( .@owned_by ) callfunc( "gpoints_woe", .@owned_by, 1 ); } initnpctimer; end; OnAgitEnd: displaypoints( 0,0 ); stopnpctimer; sleep 5000; displaypoints( 1,0 ); end; // Display guild point to all / self // --------------------------------- function displaypoints { if( getarg(0) ) .@nb = query_sql( "SELECT `guild_name`, `total_points` FROM `guild_points` WHERE `total_points` > 0 ORDER BY `total_points` DESC LIMIT 10", .@guild_name$, .@points ); else .@nb = query_sql( "SELECT `guild_name`, `woe_points` FROM `guild_points` WHERE `woe_points` > 0 ORDER BY `woe_points` DESC LIMIT 10", .@guild_name$, .@points ); if( !.@nb ) return 0; announce ( getarg(0) ? "~~~~~ Guild POINTS ~~~~~" : "~~~~~ Woe POINTS ~~~~~" ), ( getarg(1) ? bc_self : bc_all ); for( .@i = 0; .@i < .@nb; .@i++ ) announce .@points[ .@i ] +" points : "+ .@guild_name$[ .@i ], ( getarg(1,0) ? bc_self : bc_all ); return 1; } OnInit: // Castle list - 1 point for each castle owned // ------------------------------------------- setarray .castle$, "aldeg_cas01", "aldeg_cas02", "aldeg_cas03", "aldeg_cas04", "aldeg_cas05", "gefg_cas01", "gefg_cas02", "gefg_cas03", "gefg_cas04", "gefg_cas05", "payg_cas01", "payg_cas02", "payg_cas03", "payg_cas04", "payg_cas05", "prtg_cas01", "prtg_cas02", "prtg_cas03", "prtg_cas04", "prtg_cas05", "nguild_alde", "nguild_gef", "nguild_pay", "nguild_prt", "schg_cas01", "schg_cas02", "schg_cas03", "schg_cas04", "schg_cas05", "arug_cas01", "arug_cas02", "arug_cas03", "arug_cas04", "arug_cas05"; .size_c = getarraysize( .castle$ ); end; } // Update guild_points table // ------------------------- function script gpoints_woe { .@guild_id = getarg(0); if( !query_sql( "SELECT `guild_id` FROM `guild_points` WHERE `guild_id` = '"+ .@guild_id +"' ", .@guild_id ) ) query_sql( "INSERT INTO `guild_points` (`guild_id`, `guild_name`, `total_points`, `woe_points`) VALUE ('"+ .@guild_id +"', '"+ getguildname( .@guild_id ) +"', '0', '0')" ); .@value = getarg(1); query_sql( "UPDATE `guild_points` SET `total_points` = ( total_points + ("+ .@value +") ), `woe_points` = ( woe_points + ("+ .@value +") ) WHERE `guild_id` = '" + .@guild_id + "'" ); return; }
  9. You mean load an NPC ? Adding_a_Script
  10. For this idea, @playbgmall musicname (mapname) mapname is optionnal. - script bin_playbgm -1,{ OnInit: bindatcmd( "playbgmall", strnpcinfo(3) +"::OnPlayBgm"); end; OnPlayBgm: if( .@atcmd_parameters$[0] == "" ) { dispbottom "Usage : "+ .@atcmd_command$ +" musicname { mapname (optionnal, without brackets) }"; end; } dispbottom .@atcmd_parameters$[0] +" is "+ ( .@atcmd_numparameters > 1 ? "broadcasted on the entire map." : "played for the entire server." ); if( .@atcmd_numparameters > 1 ) playBGMall .@atcmd_parameters$[0], .@atcmd_parameters$[1]; else playBGMall .@atcmd_parameters$[0]; end; } You can't stop bgm (I think ?) but if player warp/log out, the custom music stop.
  11. Something like this ? prontera,155,159,5 script infamy 56,{ // Check if already log in // ----------------------- query_sql "SELECT `logincount` FROM `login` WHERE `account_id` = '"+ getcharid(3) +"'", .@logincount; if( .@logincount > 1 ) end; // Count account with the same ip xx.xx.xx.* // ----------------------------------------- sscanf( getcharip(), "%d.%d.%d.%d", .@a, .@b, .@c, .@d ); query_sql( "SELECT COUNT(`account_id`) FROM `login` WHERE `last_ip` LIKE '%"+ .@a +"."+ .@b +"."+ .@c +".%'", .@count ); if( .@count == 1 ) { dispbottom "Here a reward for newbie."; getitem 501, 1; } query_sql "UPDATE `login` SET `logincount` = '2' WHERE `account_id` = '"+ getcharid(3) +"'"; end; }
  12. Just put == in (.@name_m$[ .@i ](.@master$[ .@s ]) ? "( L )" : "( M )" ) @xmaniacx I don't understand well your request. If you only want payg_cas03 castle... well something like this ? prontera,155,155,5 script Guild manager 56,{ //- Limit 128 guild names //- NPC name .@npc$ = "[ Guild manager ]"; //-------------------------------------- L_list: // Delete variables // ---------------- if( .@m ) { .@m = 0; .@cast_owned$ = ""; setarray .@var$, ".@guild_id", ".@name$", ".@master$", ".@guild_lv", ".@connect_member", ".@max_member", ".@name_m$", ".@castle_id"; for( .@i = 0; .@i < getarraysize( .@var$ ); .@i++ ) deletearray getd( .@var$[ .@i ] ), getarraysize( getd( .@var$[ .@i ] ) ); } // Count guild // ----------- query_sql( "SELECT COUNT(`guild_id`) FROM `guild`", .@count ); mes .@npc$; mes " "; mes "Total: ^FF0000"+ .@count +"^000000 guild"+ ( .@count -1 ? "s." : "." ); mes "Select a guild for more informations."; next; // Menu display name guild // ----------------------- query_sql( "SELECT `guild_id`, `name`, `master`, `guild_lv` FROM `guild` ORDER BY `guild_id` ASC limit 128", .@guild_id, .@name$, .@master$, .@guild_lv ); .@s = select( implode( .@name$, ":" ) ) -1; .@size = query_sql( "SELECT `name` FROM `guild_member` WHERE `guild_id`= '"+ .@guild_id[ .@s ] +"' ORDER BY `position` ASC", .@name_m$ ); for( .@i = 0; .@i < .@size; .@i++ ) if( getcharid( 0,.@name_m$[ .@i ] ) ) .@m++; mes .@npc$; mes "Guild name: ^FF0000"+ .@name$[ .@s ] +"^000000", "Master name: ^FFCC00"+ .@master$[ .@s ] +"^000000", "Guild lvl: ^FF00CC"+ .@guild_lv[ .@s ] +"^000000", "Members Online: ^0000FF"+ .@m +"^000000", "Castle owned: ^CC00CC"+ ( getcastledata( "payg_cas03",1 ) == .@guild_id[ .@s ] ? getcastlename( "payg_cas03" ) : "None" ) +"^000000"; // Menu members // ------------ switch( select( "~ ^777777Informations members^000000", "~ ^777777Cancel^000000", "~ ^777777Choose another guild^000000" ) ) { case 1: next; break; case 2: next; mes .@npc$; mes " "; mes "See you soon ^-^"; close; case 3: next; goto L_list; } deletearray .@name_m$, getarraysize( .@name_m$ ); .@size = query_sql( "SELECT `name` FROM `guild_member` WHERE `guild_id`= '"+ .@guild_id[ .@s ] +"' ORDER BY `position` ASC", .@name_m$ ); mes .@npc$; mes "Members of ^0000FF"+ .@name$[ .@s ] +"^000000 guild.", "- Red: currently ^FF0000offline^000000.", "- Green: currently ^00C957online^000000.", " "; for( .@i = 0; .@i < .@size; .@i++ ) mes "-> "+ ( getcharid( 0,.@name_m$[ .@i ] ) ? "^00C957" : "^FF0000" ) + .@name_m$[ .@i ] +"^000000"; next; goto L_list; }
  13. In atcommand.c search ACMD_FUNC(who) Replace if (pl_GM_level > 0) { to if (pl_GM_level > 0 && pl_sd->status.account_id != 2000000) { (eathena)
  14. Replace switch( select( "Yes, I want to exchange my points:See my points" ) ) { by switch( select( "Yes, I want to exchange my points", "See my points", "Exchange points to Cashpoints" ) ) { and case 2: next; mes .npcname$; set .@points, getPoints( getcharid(3) ); mes "You currently have "+ .@points +" pt(s)."; garbagecol(); close; } to case 2: next; mes .npcname$; set .@points, getPoints( getcharid(3) ); mes "You currently have "+ .@points +" pt(s)."; garbagecol(); close; case 3: next; set .@points, getPoints( getcharid(3) ); mes .npcname$; if( !.@points ) { mes "Sorry you don't have points."; close; } mes "You will exchange "+ .@points +" for "+ .@points +" Cashpoints."; mes "Proceed ?"; if( select( "Yes", "No" ) -1 ) close; query_sql("UPDATE `cp_v4p_voters` SET points=0 WHERE account_id='"+ getcharid(3) +"'"); set #CASHPOINTS, #CASHPOINTS + .@points; dispbottom "Gained: "+.@points+" Cashpoints."; close; } >> Add a menu to convert points to Cashpoints.
  15. Error corrected. I don't know if it's better to put .@npc$ in OnInit label but it's just a little set so it doesn't need much ressource in both case.
  16. It's more like a script request.. whatever here for you. prontera,155,155,5 script Guild manager 56,{ //- Limit 128 guild names //- NPC name .@npc$ = "[ Guild manager ]"; //-------------------------------------- L_list: // Delete variables // ---------------- .@m = 0; .@cast_owned$ = ""; setarray .@var$, ".@guild_id", ".@name$", ".@master$", ".@guild_lv", ".@connect_member", ".@max_member", ".@name_m$", ".@castle_id"; for( .@i = 0; .@i < getarraysize( .@var$ ); .@i++ ) deletearray getd( .@var$[ .@i ] ), getarraysize( getd( .@var$[ .@i ] ) ); // Count guild // ----------- query_sql( "SELECT COUNT(`guild_id`) FROM `guild`", .@count ); mes .@npc$; mes " "; mes "Total: ^FF0000"+ .@count +"^000000 guild"+ ( .@count -1 ? "s." : "." ); mes "Select a guild for more informations."; next; // Menu display name guild // ----------------------- query_sql( "SELECT `guild_id`, `name`, `master`, `guild_lv` FROM `guild` ORDER BY `guild_id` ASC limit 128", .@guild_id, .@name$, .@master$, .@guild_lv ); .@s = select( implode( .@name$, ":" ) ) -1; .@c = query_sql( "SELECT `castle_id` FROM `guild_castle` WHERE `guild_id` = '"+ .@guild_id[ .@s ] +"'", .@castle_id ); for( .@i = 0; .@i < .@c; .@i++ ) .@cast_owned$ = .@cast_owned$ + .castle$[ .@castle_id[ .@i ] ] + ( .@i == .@c -1 ? "" : ", " ); .@size = query_sql( "SELECT `name` FROM `guild_member` WHERE `guild_id`= '"+ .@guild_id[ .@s ] +"' ORDER BY `position` ASC", .@name_m$ ); for( .@i = 0; .@i < .@size; .@i++ ) if( getcharid( 0,.@name_m$[ .@i ] ) ) .@m++; mes .@npc$; mes "Guild name: ^FF0000"+ .@name$[ .@s ] +"^000000", "Master name: ^FFCC00"+ .@master$[ .@s ] +"^000000", "Guild lvl: ^FF00CC"+ .@guild_lv[ .@s ] +"^000000", "Members Online: ^0000FF"+ .@m +"^000000", "Castle owned: ^CC00CC"+ ( .@c ? .@cast_owned$ : "None" ) +"^000000"; // Menu members // ------------ switch( select( "~ ^777777Informations members^000000", "~ ^777777Cancel^000000", "~ ^777777Choose another guild^000000" ) ) { case 1: next; break; case 2: next; mes .@npc$; mes " "; mes "See you soon ^-^"; close; case 3: next; goto L_list; } deletearray .@name_m$, getarraysize( .@name_m$ ); .@size = query_sql( "SELECT `name` FROM `guild_member` WHERE `guild_id`= '"+ .@guild_id[ .@s ] +"' ORDER BY `position` ASC", .@name_m$ ); mes .@npc$; mes "Members of ^0000FF"+ .@name$[ .@s ] +"^000000 guild.", "- Red: currently ^FF0000offline^000000.", "- Green: currently ^00C957online^000000.", " "; for( .@i = 0; .@i < .@size; .@i++ ) mes "-> "+ ( getcharid( 0,.@name_m$[ .@i ] ) ? "^00C957" : "^FF0000" ) + .@name_m$[ .@i ] +"^000000"; next; goto L_list; OnInit: deletearray .castle$, getarraysize( .castle$ ); //- prevent duplicate setarray .castle$, "Neuschwanstein", "Hohenschwangau", "Nuernberg", "Wuerzburg", "Rothenburg", "Repherion", "Eeyolbriggar", "Yesnelph", "Bergel", "Mersetzdeitz", "Bright Arbor", "Scarlet Palace", "Holy Shadow", "Sacred Altar", "Bamboo Grove Hill", "Kriemhild", "Swanhild", "Fadhgridh", "Skoegul", "Gondul", "Earth", "Air", "Water", "Fire", "Himinn", "Andlangr", "Viblainn", "Hljod", "Skidbladnir", "Mardol", "Cyr", "Horn", "Gefn", "Bandis"; end; } Display : - Number of guild (total) - when you select a guild -- display guild name, guild master, guild lvl, member online and castle owned by the guild -- display all member name and check if they are online/offline Works on rAthena only. Edit including comment of nanakiwurtz
  17. You have an NPC with ID 0. Like in this topic (google search ^-^) http://www.eathena.ws/board/index.php?showtopic=267813
  18. if (pc_get_group_id(pl_sd) > 0 && pc_get_group_id(pl_sd) != 100) // Player title, if exists Doesn't display title for group ID 100 or normal player.
  19. atcommand.c Below ACMD_FUNC(who) Search and replace (multiple) if (pc_get_group_id(pl_sd) > 0) // Player title, if exists to if (pc_get_group_id(pl_sd) > 1) // Player title, if exists Then recompile. All players with group ID 0 or 1 wouldn't have title, so you could play with your player group ID 1 with all command. @nanakiwurtz @who display title when using adjgroup even if it's in the session.
  20. Noreturn description What you want is mapflag nosave. Nosave description
  21. you already make a topic like this one... Well my script is not automatic but it works.
  22. @Kiritoryu This script works only with rathena. Be sure you set a correct groupid for your GM. @icabit You can use getgroupid() instead of query_sql "SELECT `group_id` FROM `login` WHERE `account_id` ="+getcharid(3),.@getgroupid; No need to put an end; after close;
  23. For each files aldeg_cas01, aldeg_cas02 etc... in npc/guild/ folder find the NPC below // Guild Flag (Inside Castle) //============================================================ For example in aldeg_cas03.txt- script Nuernberg#3::InsideFlagsA3 722,{ end; OnRecvCastleA03: FlagEmblem GetCastleData("aldeg_cas03",1); end; }For each NPC replace the first end; byif( !getmapflag( strnpcinfo(4),mf_town ) ) end; if( select( "^777777~ Warp to "+ strnpcinfo(1) +" ?:~ Cancel^000000" ) -1 ) close; getmapxy( .@map$, .@x, .@y, 1, strnpcinfo(1) +"#2" ); warp .@map$, .@x, .@y; end;No more.(Like that for example) When a player click on the flag in town, he can warp outside the castle.
×
×
  • Create New...