Jump to content

frenzmu06

Members
  • Content Count

    85
  • Joined

  • Last visited

Posts posted by frenzmu06


  1. On 4/9/2020 at 9:03 PM, ippo20 said:

    I think its because we dont have anything to  clean on first run. I only ran this: ./configure && make server ...

    after that I ran         make sql

     

    yours worked mate? mine threw this error

     

    ./configure: line 15: $'\r': command not found
    ./configure: line 30: syntax error near unexpected token `newline'
    '/configure: line 30: `     ;;

     

     

    On 4/15/2019 at 2:38 PM, anacondaq said:

     

    As you see on the video above, the compiler works PERFECTLY fine on Windows for Hercules.
    I think this small and very easy to use thing will be very helpful for people which care about their storage, and bandwidth.

    Idea

    Create a package of code compiler for the emulator, which took up little space,
    and will as portable as possible, it will not require installation, and which can be stored on a USB flash drive.

     

    Download Link: MEGA or Google Drive (189MB)

    How to use?

    Like on Linux, but on windows (thx to Cygwin)

    1.  Download, extract, run start_console.cmd
    2.  cd D:\path\to\your\emulator
    3. make clean && ./configure && make server
    4. wait when compilation will finish
    5. ./run-server.bat
    6. make sure that your SQL server is working fine (if you don't have any install, or take OpenServer from RO offline pack)

    If you wish to run a server outside the Cygwin environment, you need a lot of dlls copy-paste from /bin/ folder to emulator
    I give up to finish it and fix rAthena compiler issue (because the issue with CMake files, they are weird), because I have no time and it's out of my interest.

    Extra Notes
    Request: please, someone who can fix the rAthena to make work with this release.
    189MB compiler is very helpful, because not need to download 1.9GB for lite MSBuild, and ~8-9GB for Visual Studio. Feel the difference.

     

    • Note: cygwin always slower than original native code.
    • Note: rAhena can't compile with -stl=c++11, use -stl=gnu++11
    • Note: even with this -stl=gnu+11 you will get a crash a char-server, if you are a developer, try to debug it by yourself and fix, this is rAthena issue, not a package issue.
    • Note: tested: hercules, eathena, brathena, 3ceam -> works fine without any issues, even in gdb mode.

     

     

    can you help us with this, seems not working


  2. // Made by iTouch
    // ----------------------------------------------------------------------------
    // Ultimate PvP Warper ver. 1
    // Features:
    // Baby PvP Room
    // PvP Square(Every 2 days Random PvP Room)
    // PvP Nightmare
    // PvP Lowlvl( Supports 1 - 150 Lvl)
    // PvP No Potion (Berrys , Ygg seed , Any potions , etc. are restricted)
    // PvP Non Donator (Got Items are restricted here)
    // -----------------------------------------------------------------------------
    // ver. 2 update idea:
    // Adding a PvP Room that removes the buffs of the player when entering the room
    // Adding a PvP Room for GM's Only so GM's will have fun
    // -----------------------------------------------------------------------------
    // Special thanks to:
    // icescope of eAthena for helping me configuring the error at PvP Square
    // -----------------------------------------------------------------------------
    
    prontera,155,188,6	script	Ultimate PvP Warper	753,{
    
    	mes "[PvP Warper]";
    	mes "Which arena do you want to go to?";
    	switch(select("Normal PVP ["+getmapusers("5@tower")+"/100]:PVP NoPotion ["+getmapusers("5@tower")+"/100]:SinX PVP Room ["+getmapusers("5@tower")+"/100]:Champ PvP Room ["+getmapusers("5@tower")+"/100]")) {
    		
    	case 1:	// Normal PVP
    		if (getmapusers("5@tower") > 99) callsub S_full;
    		warp "5@tower",0,0;
    		end;
    
    	case 2:	// PVP NoPotion
    		if (getmapusers("5@tower") > 99) callsub S_full;
    		warp "5@tower",0,0;
    		end;
    
    	case 3:	// SinX PVP Room
    		if (getmapusers("5@tower") > 99) callsub S_full;
    		if (Class != Job_Assassin_Cross) { mes "You are not an Assassin Cross."; close; }
    		warp "5@tower",0,0;
    		end;
    		
    	case 4:	// Champ PvP Room
    		if (getmapusers("5@tower") > 99) callsub S_full;
    		if (Class != Job_Champion) { mes "You are not an Assassin Cross."; close; }
    		warp "5@tower",0,0;
    		end;
    
    		S_full:
    		mes " ";
    		mes "I'm sorry, this arena is full. Please try again later...";
    		close;
    
    OnInit:
    		waitingroom "PvP Warper",0;
    		end;
    	}
    }
    
    5@tower	mapflag	zone	NoYgg
    
    
    moscovia.gat,226,198,4	duplicate(Ultimate PvP Warper)	Ultimate PvP Warper#1	871
    //askydun.gat,96,113,3	duplicate(Ultimate PvP Warper)	Ultimate PvP Warper#2	871 // Kliwa
    alberta.gat,110,140,3	duplicate(Ultimate PvP Warper)	Ultimate PvP Warper#3	871 // Kliwa
    aldebaran.gat,147,115,1	duplicate(Ultimate PvP Warper)	Ultimate PvP Warper#4	871 // Kliwa
    amatsu.gat,207,86,3	duplicate(Ultimate PvP Warper)	Ultimate PvP Warper#5	871 // Kliwa
    ayothaya.gat,155,117,2	duplicate(Ultimate PvP Warper)	Ultimate PvP Warper#6	871 // Kliwa
    comodo.gat,206,80,4	duplicate(Ultimate PvP Warper)	Ultimate PvP Warper#7	871 // Kliwa
    einbech.gat,198,83,4	duplicate(Ultimate PvP Warper)	Ultimate PvP Warper#8	871 // Taas Kaliwa
    einbroch.gat,174,172,5	duplicate(Ultimate PvP Warper)	Ultimate PvP Warper#9	871 // Taas Kaliwa
    geffen.gat,125,71,4	duplicate(Ultimate PvP Warper)	Ultimate PvP Warper#10	871
    gonryun.gat,162,120,4	duplicate(Ultimate PvP Warper)	Ultimate PvP Warper#11	871
    hugel.gat,89,151,5	duplicate(Ultimate PvP Warper)	Ultimate PvP Warper#12	871
    izlude.gat,134,90,4	duplicate(Ultimate PvP Warper)	Ultimate PvP Warper#13	871
    lighthalzen.gat,166,101,4	duplicate(Ultimate PvP Warper)	Ultimate PvP Warper#14	871
    louyang.gat,214,120,5	duplicate(Ultimate PvP Warper)	Ultimate PvP Warper#15	871
    xmas.gat,154,136,4	duplicate(Ultimate PvP Warper)	Ultimate PvP Warper#16	871
    morocc.gat,160,97,4	duplicate(Ultimate PvP Warper)	Ultimate PvP Warper#17	871
    payon.gat,148,226,4	duplicate(Ultimate PvP Warper)	Ultimate PvP Warper#18	871
    rachel.gat,135,115,4	duplicate(Ultimate PvP Warper)	Ultimate PvP Warper#19	 871
    veins.gat,219,127,4	duplicate(Ultimate PvP Warper)	Ultimate PvP Warper#20	871
    yuno.gat,163,170,4	duplicate(Ultimate PvP Warper)	Ultimate PvP Warper#21	871
    umbala.gat,106,159,3	duplicate(Ultimate PvP Warper)	Ultimate PvP Warper#22	871
    poring_c02,139,81,4	duplicate(Ultimate PvP Warper)	Ultimate PvP Warper#23	871
    
    

     

    and add this to your map_zone_db

    add as many items as you want

    ,
    {
    	name: "NoYgg"
    
    	disabled_items: {
    		Yggdrasilberry: true
    		Seed_Of_Yggdrasil: true
    	}
    }
    

     

    NOTE: all room warps you in the same map 5@tower, (edit each and put your corresponding map)

     

    you can use BrowEdit to clone maps


  3. I use clientdate 2015-05-13

     

    I set src/common/mmo.h

     #define PACKETVER 20150513

     

    clientinfo.xml

    <?xml version="1.0" encoding="euc-kr" ?>
    <clientinfo>
        <desc>Ragnarok Online Client Information</desc>
        <servicetype>korea</servicetype>
        <servertype>primary</servertype>
        <connection>
            <display>Ragnarok Online</display>
              <address>127.0.0.1</address>
              <port>6900</port>
              <version>46</version>
              <langtype>10</langtype>
            <registrationweb>www.will-ro.net/?module=account&action=create</registrationweb>
            <loading>
                <image>loading00.jpg</image>
                <image>loading01.jpg</image>
                <image>loading02.jpg</image>
                <image>loading03.jpg</image>
                <image>loading04.jpg</image>
            </loading>
            <yellow>
                <admin>2000000</admin>
                <admin>2000001</admin>
                <admin>2000002</admin>
            </yellow>
           </connection>
    </clientinfo>
    

     

    Server files is running with No errors/issues

     

    Login Server

    [[email protected]<script data-cfhash='f9e31' type="text/javascript">/*  */</script> Hercules]$ screen -r 5588
    [Info]: Finished reading conf/import/login-server.conf.
    [Status]: Read information about 1 LAN subnets.
    [Status]: Read information about 1 trusted IP ranges.
    [Status]: Read information about 1 allowed server IP ranges.
    [Warning]: Using a wildcard IP range in the allowed server IPs is NOT RECOMMENDED.
    [Notice]: Please edit your 'conf/network.conf' allowed list to fit your network configuration.
    [Info]: Hercules, Copyright © 2012-2015, Hercules Dev Team and others.
    [Info]: Licensed under the GNU General Public License, version 3 or later.
    [Status]: The login-server is ready (Server is listening on the port 6900).
    
    
    [Info]: Connection request of the char-server 'Hercules' @ 127.0.0.1:6121 (account: 'ragnarok1', pass: 'ragnarok2', ip: '127.0.0.1')
    [Notice]: Authentication accepted (account: ragnarok1, id: 1, ip: 127.0.0.1)
    [Status]: Connection of the char-server 'Hercules' accepted.
    [Status]: Request for connection of mwsuranol_m (ip: 203.87.129.158).
    [Notice]: Account creation (account mwsuranol, id: 2000000, pass: passtest, sex: M)
    [Notice]: Authentication accepted (account: mwsuranol, id: 2000000, ip: 203.87.129.158)
    [Status]: Connection of the account 'mwsuranol' accepted.
    [Info]: Closed connection from '203.87.129.158'.
    

     

    Char Server

    [[email protected] Hercules]$ screen -r 6995
    [Info]: Loaded guild castle (11 - guild 0)
    [Info]: Loaded guild castle (12 - guild 0)
    [Info]: Loaded guild castle (13 - guild 0)
    [Info]: Loaded guild castle (14 - guild 0)
    [Info]: Loaded guild castle (15 - guild 0)
    [Info]: Loaded guild castle (16 - guild 0)
    [Info]: Loaded guild castle (17 - guild 0)
    [Info]: Loaded guild castle (18 - guild 0)
    [Info]: Loaded guild castle (19 - guild 0)
    [Info]: Loaded guild castle (20 - guild 0)
    [Info]: Loaded guild castle (21 - guild 0)
    [Info]: Loaded guild castle (22 - guild 0)
    [Info]: Loaded guild castle (23 - guild 0)
    [Info]: Loaded guild castle (24 - guild 0)
    [Info]: Loaded guild castle (25 - guild 0)
    [Info]: Loaded guild castle (26 - guild 0)
    [Info]: Loaded guild castle (27 - guild 0)
    [Info]: Loaded guild castle (28 - guild 0)
    [Info]: Loaded guild castle (29 - guild 0)
    [Info]: Loaded guild castle (30 - guild 0)
    [Info]: Loaded guild castle (31 - guild 0)
    [Info]: Loaded guild castle (32 - guild 0)
    [Info]: Loaded guild castle (33 - guild 0)
    

     

    Map Server

    [[email protected] Hercules]$ screen -r 7054
    [Info]: Done loading '16258' NPCs:
            -'3472' Warps
            -'2' Shops
            -'12784' Scripts
            -'3380' Spawn sets
            -'49241' Mobs Cached
            -'0' Mobs Not Cached
    [Status]: Event 'OnInit' executed with '2154' NPCs.
    [Info]: Hercules, Copyright © 2012-2015, Hercules Dev Team and others.
    [Info]: Licensed under the GNU General Public License, version 3 or later.
    [Status]: Server is 'ready' and listening on port '5121'.
    
    
    [Status]: Attempting to connect to Char Server. Please wait.
    [Status]: Connecting to 127.0.0.1:6121
    [Status]: Logging in to char server...
    [Status]: Successfully logged on to Char Server (Connection: '6').
    [Status]: Sending maps to char server...
    [Status]: Event 'OnInterIfInit' executed with '0' NPCs.
    [Status]: Event 'OnInterIfInitOnce' executed with '0' NPCs.
    [Status]: Requested '34' guild castles from char-server...
    [Status]: Map Server is now online.
    [Info]: Received Fame List of '0' characters.
    [Status]: Received '34' guild castles from char-server.
    

     

     

    char-server.conf

    // Information related to inter-server behavior
        inter: {
            // Server Communication username and password.
            userid: "ragnarok1"
            passwd: "ragnarok2"
            // Login Server IP
            // The character server connects to the login server using this IP address.
            // NOTE: This is useful when you are running behind a firewall or are on
            // a machine with multiple interfaces.
            login_ip: "127.0.0.1"
    
    
            // The character server listens on the interface with this IP address.
            // NOTE: This allows you to run multiple servers on multiple interfaces
            // while using the same ports for each server.
            //bind_ip: "127.0.0.1"
    
    
            // Login Server Port
            login_port: 6900
    
    
            // Character Server IP
            // The IP address which clients will use to connect.
            // Set this to what your server's public IP address is.
            char_ip: "127.0.0.1"
    
    
            // Character Server Port
            char_port: 6121
        }
    

     

    sql_connection.conf

    sql_connection: {
        // [INTER] You can specify the codepage to use in your mySQL tables here.
        // (Note that this feature requires MySQL 4.1+)
        //default_codepage: ""
    
    
        // [LOGIN] Is `userid` in account_db case sensitive?
        //case_sensitive: false
    
    
        // For IPs, ideally under linux, you want to use localhost instead of 127.0.0.1.
        // Under windows, you want to use 127.0.0.1.  If you see a message like
        // "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)"
        // and you have localhost, switch it to 127.0.0.1
        db_hostname: "127.0.0.1"
        db_port: 3306
        db_username: "root"
        db_password: "passtest"
        db_database: "ragnarok"
        //codepage:""
    }
    

     

    map-server.conf

    // Information related to inter-server behavior
        inter: {
            // Interserver communication passwords, set in the login server database
            userid: "ragnarok1"
            passwd: "ragnarok2"
    
    
            // Character Server IP
            // The map server connects to the character server using this IP address.
            // NOTE: This is useful when you are running behind a firewall or are on
            // a machine with multiple interfaces.
            char_ip: "127.0.0.1"
    
    
            // The map server listens on the interface with this IP address.
            // NOTE: This allows you to run multiple servers on multiple interfaces
            // while using the same ports for each server.
            //bind_ip: "127.0.0.1"
    
    
            // Character Server Port
            char_port: 6121
    
    
            // Map Server IP
            // The IP address which clients will use to connect.
            // Set this to what your server's public IP address is.
            map_ip: "127.0.0.1"
    
    
            // Map Server Port
            map_port: 5121
        }
    

     

    I need help what is wrong with my configuration. I need pro staff here that can resolve this issue. Thank you very much!

    34rsrqx.png

     

     

    not sure but it has a warning 

    "[Warning]: Using a wildcard IP range in the allowed server IPs is NOT RECOMMENDED.

    [Notice]: Please edit your 'conf/network.conf' allowed list to fit your network configuration."

     

    check your network.conf , when I had that problem I just put // on the other IP except for "127.0.0.1:255.0.0.0"

     

    // Network configuration file
    
    /*
     * List here any LAN subnets this server is in.
     * Example:
     * - char- (or map-) server's IP in LAN is 192.168.0.10
     * - Public IP is 198.51.100.37
     * If the list contains "192.168.0.10:255.255.255.0", any clients connecting
     * from the same 192.168.0.0/24 network will be presented with the LAN IP
     * (192.168.0.10) in the server list, rather than the public IP (198.51.100.37).
     */
    lan_subnets: (
    	"127.0.0.1:255.0.0.0",
    	// "192.168.1.1:255.255.255.0",
    )
    
    /*
     * List here any IP ranges a char- or map-server can connect from.
     * A wildcard of "0.0.0.0:0.0.0.0" means that server connections are allowed
     * from ANY IP. (not recommended).
     */
    allowed: (
    	//"0.0.0.0:0.0.0.0",
    	// "127.0.0.1:255.0.0.0",
    )
    
    /*
     * List here any IP ranges a char- or map-server can connect from. These ranges
     * will also be excluded from the automatic ipban in casee of password failure.
     * Any entry present in this list is also automatically included in the
     * allowed IP list.
     * Note: This may be a security threat. Only edit this list if you know what
     * you are doing.
     */
    trusted: (
    	"127.0.0.1:255.0.0.0",
    )
    
    

    thats my configuration, 

    Nevermind that I put // on the allowed I can still log in on my server

     

     

    Do you use mysql for database??

    If yes,

     

    sql_connection: {

        // [iNTER] You can specify the codepage to use in your mySQL tables here.

        // (Note that this feature requires MySQL 4.1+)

        //default_codepage: ""

     

     

        // [LOGIN] Is `userid` in account_db case sensitive?

        //case_sensitive: false

     

     

        // For IPs, ideally under linux, you want to use localhost instead of 127.0.0.1.

        // Under windows, you want to use 127.0.0.1.  If you see a message like

        // "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)"

        // and you have localhost, switch it to 127.0.0.1

        db_hostname: "localhost" <<------- Edit here!

        db_port: 3306

        db_username: "root"

        db_password: "passtest"

        db_database: "ragnarok"

        //codepage:""

    }

     

    i can't also connect after login, how to solve this guys? does OP already fixed it?


  4. Requesting a script that trades refine tickets for weapon or armor with upgrade

     

    the npc will trade Weapon (listed in weaponarray) with the specified refine for

    +12 Weapon =Guarantee_Weapon_11Up

    +10 Weapon =Guarantee_Weapon_9Up

    +9 Weapon =Guarantee_Weapon_8Up

    +8 Weapon =Guarantee_Weapon_7Up

    +7 Weapon =Guarantee_Weapon_6Up

     

    and Armor (listed in armorarray) with the specified refine for

    +12 Armor =Guarantee_Armor_11Up

    +10 Armor =Guarantee_Armor_9Up

    +9 Armor =Guarantee_Armor_8Up

    +8 Armor =Guarantee_Armor_7Up

    +7 Armor =Guarantee_Armor_6Up

     

     

    - script Ticket Trader FAKE_NPC{

     

    mes "I trade weapons and armors with specific refines for Refine Tickets";

    menu (Trade Weapon, Trade Armor)

    show available items from inventory including eqquiped item

    trade the item

     

    //configs

    weaponticketarray,6238,6228,6229,6230,6231;

    //6238 Guarantee_Weapon_11Up

    //6228 Guarantee_Weapon_9Up

    //6229 Guarantee_Weapon_8Up

    //6230 Guarantee_Weapon_7Up

    //6231 Guarantee_Weapon_6Up

     

    weaponarray,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112; //you can add more or modify

    //1101 Sword

    //1102 Sword_

    //1103 Sword__

    //1104 Falchion

    //1105 Falchion_

    //1106 Falchion__

    //1107 Blade

    //1108 Blade_

    //1109 Blade__

    //1110 Lapier

    //1111 Lapier_

    //1112 Lapier__

     

    armorticketarray,6239,6232,6233,6234,6235

    //6239 Guarantee_Armor_11Up

    //6232 Guarantee_Armor_9Up

    //6233 Guarantee_Armor_8Up

    //6234 Guarantee_Armor_7Up

    //6235 Guarantee_Armor_6Up

     

    armorarray,2302,2304,2306,2308,2310,2311,2313,2315,2317,2318,2319; //you can add more

    //2302 Cotton_Shirt_

    //2304 Leather_Jacket_

    //2306 Adventurere's_Suit_

    //2308 Mantle_

    //2310 Coat_

    //2311 Mink_Coat

    //2313 Padded_Armor_

    //2315 Chain_Mail_

    //2317 Plate_Armor_

    //2318 Clothes_Of_The_Lord

    //2319 Glittering_Clothes

     

    tnx if anyone helps


  5. //===== rAthena Script ============================================
    //= High Quick Refinement System
    //===== By: =======================================================
    //= Kenedos
    //===== Current Version: ==========================================
    //= 1.0
    //===== Compatible With: ==========================================
    //= rAthena SQL/TXT
    //===== Description: ==============================================
    //= Allows players to quickly refine their gear
    //===== Topic =====================================================
    //= Unknown
    //===== Additional Comments: ======================================
    //= Warning : If your server lags too much, you have to look for
    //= the "sleep2" command and increase the delay past 300.
    //=
    //= Make sure you disable the normal refine.txt from eAthena before
    //= enabling this one (else it will conflict with existing one)
    //=================================================================
    
    prt_in,59,55,3	script	Great Balthazar	813,{
    	callfunc "highrefinemain","Balthazar";
    	end;
    }
    
    morocc_in,73,35,3	script	Great Galadrel	813,{
    	callfunc "highrefinemain","Galadrel";
    	end;
    }
    
    payon,147,173,3	script	Great Adramelech	813,{
    	callfunc "highrefinemain","Adramelech";
    	end;
    }
    
    alberta_in,25,63,3	script	Great Azrael	813,{
    	callfunc "highrefinemain","Azrael";
    	end;
    }
    
    yuno_in01,167,23,3	script	Great Lannor	813,{
    	callfunc "highrefinemain","Lannor";
    	end;
    }
    
    ein_in01,23,82,3	script	Great Baulfor	813,{
    	callfunc "highrefinemain","Baulfor";
    	end;
    }
    
    lhz_in02,278,20,3	script	Great Kandror	813,{
    	callfunc "highrefinemain","Kandror";
    	end;
    }
    
    function	script	highrefinemain	{
    
    	mes "[" + getarg(0) + "]";
    	mes "Looking for more power, eh? I can high refine your equipments.";
    	mes "That is, attempt to refine them past +10 refine rates.";
    	mes "^0000FFJust have equipped your +10 gear, and they will be shown in the list.^000000";
    	next;
    
    	setarray .@position$[1], "Head","Body","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
    	set .@menu$,"";
    	for( set .@i,1; .@i <= 10; set .@i,.@i+1 )
    	{
    		if( getequipisequiped(.@i) && (getequiprefinerycnt(.@i) >= 10) )
    			set .@menu$, .@menu$ + .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]";
    
    		set .@menu$, .@menu$ + ":";
    	}
    	if (!M_quickref)
    		set .@menu$, .@menu$ + "^0000FFTurn ^009933ON^0000FF Quick Refining^000000";
    	else
    		set .@menu$, .@menu$ + "^0000FFTurn ^FF0000OFF^0000FF Quick Refining^000000";
    	set .@part,select(.@menu$);
    	if (.@part == .@i ) {
    		mes "[" + getarg(0) + "]";
    		if (!M_quickref) {
    			mes "The ^0000FFQuick Refine^000000 Function has been Turned ^009933ON^000000";
    			set M_quickref, 1;
    		}
    		else {
    			mes "The ^0000FFQuick Refine^000000 Function has been Turned ^FF0000OFF^000000";
    			set M_quickref, 0;
    		}
    		close;
    	}
    	if(!getequipisequiped(.@part)) {
    		mes "[" + getarg(0) + "]";
    		mes "Hey, you must have equipped +10 or above gears so that they can be highly refined.";
    		emotion 6;
    		close;
    	}
    	//Check if the item is refinable...
    	if(!getequipisenableref(.@part)) {
    		mes "[" + getarg(0) + "]";
    		mes "I don't think I can";
    		mes "refine this item at all...";
    		close;
    	}
    	//Check if the item is identified... (Don't know why this is in here... but kept it anyway)
    	if(!getequipisidentify(.@part)) {
    		mes "[" + getarg(0) + "]";
    		mes "You can't refine this";
    		mes "if you haven't appraised";
    		mes "it first. Make sure your";
    		mes "stuff is identified before";
    		mes "I can refine it.";
    		close;
    	}
    	//Check to see if the items are bellow +10 (Double check?)
    	if(getequiprefinerycnt(.@part) < 10) {
    		mes "[" + getarg(0) + "]";
    		mes "I can't refine this.";
    		mes "Talk to the normal blacksmith to";
    		mes "refine this up to +10 first.";
    		close;
    	}
    	set .@refineitemid, getequipid(.@part); // save id of the item
    	set .@refinerycnt, getequiprefinerycnt(.@part); //save refinery count
    	switch(getequipweaponlv(.@part)){
    	
    	// ----------- Refine Prices, Materials and Safe Refines ---------- //
    	
    	case 0: 	//Refine Armor
    		set .@price,50000;
    		set .@material,6223;
    		break;
    	case 1: 	//Refine Level 1 Weapon
    		set .@price,10000;
    		set .@material,6224;
    		break;
    	case 2: 	//Refine Level 2 Weapon
    		set .@price,20000;
    		set .@material,6224;
    		break;
    	case 3: 	//Refine Level 3 Weapon
    		set .@price,60000;
    		set .@material,6224;
    		break;
    	case 4: 	//Refine Level 4 Weapon
    		set .@price,120000;
    		set .@material,6224;
    		break;
    	case 5: 	//Refine other stuff?
    		set .@price,50000;
    		set .@material,6223;
    		break;
    		
    	// ------------------------------------------------------------------ //
    		
    	}
    
    	next;
    	mes "[" + getarg(0) + "]";
    	mes "So how many times would you like me to high refine your item?";
    	next;
    	input .@refinecnt;
    	set .@refinecheck,.@refinecnt + getequiprefinerycnt(.@part);
    	if (.@refinecnt < 1 || .@refinecheck > 20) {
    		mes "[" + getarg(0) + "]";
    		mes "I can't high refine this item that many times.";
    		close;
    	}
    	mes "["+strnpcinfo(1)+"]";
    	mes "Alright, I can do it for only your currently equipped item, or ALL ^0000FF"+getequipname(.@part)+"^000000 you have in your inventory. What would you like to do?";
    	next;
    	if (select ("Currently Equipped:All Items in Inventory") == 2) set .@allinv, 1;
    	if (.@allinv)
    	set .@refinecnt, getequiprefinerycnt(.@part) + .@refinecnt;
    	mes "[" + getarg(0) + "]";
    	if ( !.@allinv)
    		mes "This will try to high refine the equipment " + (.@refinecheck - getequiprefinerycnt(.@part)) + " times. If it fails, your equipment will be pulverized.";
    	else
    		mes "Remember this will attempt to high refine to ^009933+"+.@refinecnt+"^000000 ^FF0000ALL^000000 the ^0000FF"+getequipname(.@part)+"^000000 items you have in your inventory!!";
    	next;
    	if(select("Accept","Reject") == 2){
    		mes "[" + getarg(0) + "]";
    		mes "Ha, just as I thought!";
    		close;
    	}
    	
    	if (.@allinv) {
    		deletearray @inventorylist_refine;
    		deletearray @inventorylist_id;
    		getinventorylist;
    		set .@i, 0;
    		for (set .@j, 0; .@j < @inventorylist_count; set .@j, .@j + 1) {
    			if (( @inventorylist_id[.@j] == getequipid(.@part) ) && (@inventorylist_refine[.@j] >= 10)) {
    				set .@temp[.@i], @inventorylist_refine[.@j];
    				set .@i, .@i + 1;
    			}
    		}
    		deletearray @inventorylist_refine;
    		deletearray @inventorylist_id;
    	}
    	set .@fullprice, 0;
    	if ( !.@allinv )
    		set .@fullprice,.@price * .@refinecnt;
    	else {
    		set .@j, 0;
    		for ( set .@k, 0; .@k < .@i ; set .@k, .@k + 1) {
    			if ( .@temp[.@k] < .@refinecnt ) {
    				set .@fullprice, .@fullprice + ( ( .@refinecnt - .@temp[.@k] ) * .@price );
    				set .@j, .@j + (.@refinecnt - .@temp[.@k]);
    			}
    		}
    		deletearray .@temp;
    	}
    	mes "[" + getarg(0) + "]";
    	if ( !.@allinv )
    		mes "That will cost you " + .@refinecnt + " " + getitemname(.@material) + " and " + .@fullprice + " Zeny. Is that ok?";
    	else
    		mes "That will cost you " + .@j + " " + getitemname(.@material) + " and " + .@fullprice + " Zeny. Is that ok?";
    	next;
    	if(select("Yes","No...") == 2){
    		mes "[" + getarg(0) + "]";
    		mes "You said so..Hmm so be it...";
    		close;
    	}
    		
    	if ( !.@allinv ) {
    		if(countitem(.@material) < .@refinecnt || Zeny < .@fullprice) {
    			mes "[" + getarg(0) + "]";
    			mes "I only work with ^0000FFBradiums^000000, ^009933Kaluniums^000000 and ^FF0000Zeny^000000, pal.";
    			close;
    		}
    		set Zeny,Zeny - .@fullprice;
    		delitem .@material,.@refinecnt;
    		while(.@refinecnt){
    			if (getequipisequiped(.@part) == 0) {
    				mes "[" + getarg(0) + "]";
    				mes "Look here... you don't have any Items on...";
    				close;
    			}
    			if (getequipid(.@part) != .@refineitemid) {
    				mes "[" + getarg(0) + "]";
    				mes "What, you changed your equipment!?!";
    				mes "You moron!";
    				next;
    				atcommand "@nuke "+strcharinfo(0);
    				end;
    			}
    			mes "Clang, clang!!!";
    			if(getequippercentrefinery(.@part) <= rand(100)) {
    				failedrefitem .@part;
    				emotion 23;
    				mes "[" + getarg(0) + "]";
    				mes "Hey, it broke, but don't blame me. Your item sucked.";
    				set .@refinecnt,.@refinecnt - 1;
    				if(.@refinecnt == 0) close;
    				mes "Here's the unused Zeny and Material back.";
    				getitem .@material,.@refinecnt;
    				set .@fullprice,.@refinecnt * .@price;
    				set Zeny,Zeny + .@fullprice;
    				close;
    			}
    			successrefitem .@part;
    			emotion 21;
    			set .@refinecnt,.@refinecnt - 1;
    			next;
    		}
    	}
    	else {
    	
    		if ( getbrokenid (.@refineitemid) ) {
    			mes "[" + getarg(0) + "]";
    			mes "Sorry but I can't work to high refine an equipment if you have another of the same kind of item that's not repaired in your inventory.";
    			close;
    		}
    		if(countitem(.@material) < .@j || Zeny < .@fullprice) {
    			mes "[" + getarg(0) + "]";
    			mes "You have no zeny or materials. Get lost.";
    			close;
    		}
    		
    		set .@breakme, 0;
    		
    		while(1){
    		
    			for (set .@c, 0; .@c < .@re; set .@c, .@c + 1)
    				deletearray getd(".@equip_inf"+.@c);
    			
    			if ( getequipisequiped(.@part) == 0 ) {
    				equip .@refineitemid;
    				set .@re, 0;
    				while ( getequiprefinerycnt(.@part) >= .@refinecnt ) {
    					for (set .@c, 0; .@c < 4; set .@c, .@c + 1)
    						if (getequipcardid(.@part,.@c) != 0)
    							setd ".@equip_inf"+.@re+"[.@c]", getequipcardid(.@part,.@c);
    					setd ".@equip_inf"+.@re+"[4]", getequiprefinerycnt(.@part);
    					unequip .@part;
    					delitem2 .@refineitemid,1,1,getd(".@equip_inf"+.@re+"[4]"),0,getd(".@equip_inf"+.@re+"[0]"),
    					getd(".@equip_inf"+.@re+"[1]"),getd(".@equip_inf"+.@re+"[2]"),getd(".@equip_inf"+.@re+"[3]");
    					equip .@refineitemid;
    					set .@re, .@re + 1;
    				}
    				if (.@re) {
    					for (set .@c, 0; .@c < .@re; set .@c, .@c + 1) {
    						getitem2 .@refineitemid,1,1,getd(".@equip_inf"+.@c+"[4]"),0,getd(".@equip_inf"+.@c+"[0]"),
    						getd(".@equip_inf"+.@c+"[1]"),getd(".@equip_inf"+.@c+"[2]"),getd(".@equip_inf"+.@c+"[3]");
    					}
    				}
    				for (set .@c, 0; .@c < .@re; set .@c, .@c + 1)
    					deletearray getd(".@equip_inf"+.@c);
    			}
    			
    			if (checkweight(.@refineitemid,1) == 0 ) {
    				next;
    				mes "[" + getarg(0) + "]";
    				mes "Hey you are overweight, try storing some items first.";
    				close;
    			}
    			
    			if (getequipid(.@part) != .@refineitemid) {
    				mes "[" + getarg(0) + "]";
    				mes "What, you changed your equipment!?!";
    				mes "You moron!";
    				next;
    				atcommand "@nuke "+strcharinfo(0);
    				end;
    			}
    			
    			if (getequiprefinerycnt(.@part) < 10) {
    				next;
    				mes "[" + getarg(0) + "]";
    				mes "You changed your equipment!";
    				mes "You douchebag!!";
    				next;
    				atcommand "@nuke "+strcharinfo(0);
    				end;
    			}
    			
    			if (!M_quickref) {
    				set .@rand, rand(1,4);
    				if (.@rand == 1)
    					mes "WaCLANG clang CLANG!";
    				else if (.@rand == 2)
    					mes "Crack clang CLaNG ClAnG!";
    				else if (.@rand == 3)
    					mes "CRaCk ClAnG ClANg!";
    				else if (.@rand == 4)
    					mes "CraCK CrAck CLaNG!!";
    			}
    			else if (!.@breakme) {
    				mes "ClAng ClanG ^FF0000CRACK^000000 ClanG Clangg CLAgn ^FF0000CRACK^000000 Cnaglnac CLnacnlnagCALNGa ClangaglnaCLAnagacalNCagaCLNAangCRACKalncalclanCLANGlancLANgacln!!!";
    				mes "^FF0000(Please do not Log-Off while in this process)^000000";
    				set .@breakme, 1;
    			}
    			set Zeny, Zeny - .@price;
    			delitem .@material, 1;
    			
    			if(getequippercentrefinery(.@part) <= rand(100)) {
    				set .@breakgap, .@refinecnt - getequiprefinerycnt(.@part) ;
    				set .@j, .@j - .@breakgap ;
    				failedrefitem .@part;
    				if(.@j <= 0) close;
    			}
    			else {
    				successrefitem .@part;
    				set .@j, .@j - 1;
    				if(.@j <= 0) close;
    				set .@re, 0;
    				while ( getequiprefinerycnt(.@part) >= .@refinecnt ) {
    					for (set .@c, 0; .@c < 4; set .@c, .@c + 1)
    						if (getequipcardid(.@part,.@c) != 0)
    							setd ".@equip_inf"+.@re+"[.@c]", getequipcardid(.@part,.@c);
    					setd ".@equip_inf"+.@re+"[4]", getequiprefinerycnt(.@part);
    					unequip .@part;
    					delitem2 .@refineitemid,1,1,getd(".@equip_inf"+.@re+"[4]"),0,getd(".@equip_inf"+.@re+"[0]"),
    					getd(".@equip_inf"+.@re+"[1]"),getd(".@equip_inf"+.@re+"[2]"),getd(".@equip_inf"+.@re+"[3]");
    					equip .@refineitemid;
    					set .@re, .@re + 1;
    				}
    				if (.@re) {
    					for (set .@c, 0; .@c < .@re; set .@c, .@c + 1) {
    						getitem2 .@refineitemid,1,1,getd(".@equip_inf"+.@c+"[4]"),0,getd(".@equip_inf"+.@c+"[0]"),
    						getd(".@equip_inf"+.@c+"[1]"),getd(".@equip_inf"+.@c+"[2]"),getd(".@equip_inf"+.@c+"[3]");
    					}
    				}
    			}
    			if (!M_quickref)
    				next;
    			else {
    				set .@clang, .@clang + 1;
    					sleep2 300;
    			}
    		}
    	}
    	mes "[" + getarg(0) + "]";
    	mes "All finished... Come again soon.";
    	close;		
    }
    
    
    

    can someone make a +1~10 refine for this script, (it currently can refine 11~20 only)

    requesting also for a configuration for success rate for every refine level (1~4 = safe, 5~10 configs)

    tnx


  6. just the chance to drop and another "$@ItemRewards2[1]"

     

    drop percentages for example is 10% for the zeny drop, 20% for the cash drop, and 5% for the item drop

    which has a individual config switch @ OnInit

     

    i think the @command isn't needed


  7.  

    I decided to rewrite this whole script, if you want them to have certain % rates for each mob instead of continuously getting the rewards, I'll change it, but here you go!

     

    // Created by Aeromesi
    // Version 1.0
    // Works with Hercules & rAthena
    -    script    ExtraDrop    -1,{
    OnNPCKillEvent:
     
        .@killedRID = killedrid;
        for ( .@i = 1; .@i <= $@SelectedMob; .@i++ ) {
        if ( .@killedRID == $@MonsterID[.@i]) {
        getitem $@ItemRewards[.@i], $@RewardAmount[.@i];
        Zeny += $@ZenyAmount[.@i];
        #CASHPOINTS += $@CashAmount[.@i];
        dispbottom "Obtained "+getitemname($@ItemRewards[.@i])+".";
        dispbottom "Obtained "+$@ZenyAmount[.@i]+" Zeny.";
        dispbottom "Obtained "+$@CashAmount[.@i]+" Cash Points.";
        end;
    }
    }
                    /* ---         Format:     
                            Poring(1002)
                            Zeny: 5000
                            Cash: 10
                            Item: Red Potion (501)
                            Amount of Red Potion: 6
                                                    --- */
                                        
    OnInit:
        setarray $@SelectedMob,4; // Edit this to the max amount of monsters you have, currently in $@MonsterID we have a total of 4 monsters, so we put 4.
        setarray $@MonsterID[1],1002,1004,1005,1007; // Monster ID's, make sure to keep count of how many you're adding for $@SelectedMob array.
        setarray $@ZenyAmount[1],5000,3000,4000,1000; // 1002 would be poring, so he would get 5000 zeny, set the item rewards/cash amounts in accordance to each monster.
        setarray $@CashAmount[1],10,5,10,5; // Same for Cash, 1002 (Poring) would get 10 Cash Points.
        setarray $@ItemRewards[1],501,502,503,504; // Poring would drop a Red Potion.
        setarray $@RewardAmount[1],6,5,5,5;
    end;
    }
    
    

     

    thanks Aeromesi this is great, configurable enough, btw how should i do it if i want to add another drop (2nd, 3rd or more) for monster id 1005 and 1007 and none for 1002 and 1004.

     

    can you also add % config @ OnInit for chances to get items or the rewards, individually (zeny, cash, item1, item2).

     

    thanks again for helping

     

     

    edit: can i also use constant names for items and monsters instead of their ids?


  8. Hello good day, can anyone with good scripting knowledge help finish this script. so what the script does is it's triggered by killing a monster from the list and it'll give the specified zeny and cash point to the killer (100%), there is also a 10% chance that the killer gets the listed items (if there are).
    i copied the array format from Stolao's DailyReward. 
     
    -	script	ExtraDrop	-1,{
    OnNPCKillEvent:
    	if (killedrid == <monster id>)	{
    			#CASHPOINTS += <cash points>;
    			Zeny += <zeny amount>;
    		}
    		if ()rand(1000) < 10 ) 			//Chance: 100 = 10%, 10 = 1%, etc.
    				getitem <item ids>, <item amounts>;
    	end;
    OnInit:
    	//		Monster & Drop List:
    	//		"<Monster ID>|<Zeny>|<Cash Points>|<itemID-1>|<amount-1>|<itemID-2>|<amount-2>...etc",
    	setarray .mvpmonsterdrop$[1],
    		"1112,5000,2,504,10",			//	Drake: 5000 Zeny + 2 Cash Points +10 White Potion
    		"1115,3000,1,504,10,506,10",		//	Eddga: 3000 Zeny + 1 Cash Points +10 White Potion + 10 Green Potion
    		"2098,4000,0,504,10,506,10,505,10",	//	Doppelganger: 4000 Zeny + 1 Cash Points +10 White Potion + 10 Green Potion + 10 Blue Potion
    		"1120,1000";				// 	Ghostring:	1000 Zeny
    	end;
    }
    

     

     


  9.  

    OVH does not help you setup RO, you have to set it up yourself.

     

    I suggest you look into the Paid Services section in the forum for more ready RO hostings.

    But RO hosts are expensive , because mostly they are reseller and they add up their profit , I suggest, learn setting up the server on your local PC first, then buy from ovh(or other unmanaged companies), that would save you lot of money with same(/even better) quality of service and network

    is there a guide on setting up wampserver online (not only localhost) specifically for herc/ea/ra or other ro emus. currently running herc @ localhost (Windows 10/latest wamp server) but doesn't know how to share it with my friend for testing purposes. hope you can help. sry for hijacking this thread if this post is a bit off


  10. i use something like this

     

    //====================================================//=       _   _                     _           //=      | | | |                   | |          //=      | |_| | ___ _ __ ___ _   _| | ___  ___ //=      |  _  |/ _  '__/ __| | | | |/ _ / __|//=      | | | |  __/ | | (__| |_| | |  __/__ //=      _| |_/___|_|  ___|__,_|_|___||___///=                                                  //=            http://herc.ws/board/                        //====================================================// run when any character logs in, attached to them.-	script	HerculesMOTD	-1,{//=================================================================// Put you Server Name//=================================================================set @server_name$,"screamRO";//=================================================================// Put you Website and Forum //=================================================================set @server_forum$,"www.screamRO.ragnarok.so";//=================================================================// Put you WOE Times//=================================================================set @server_woe$,"Everyday 6-7 PM (WoE Classic)";//=================================================================// Put you GMT Times//=================================================================set @server_gmt$,"GMT +8";//=================================================================// STOP EDIT BELOW HERE, IF YOU DON'T KNOW//=================================================================if (getgmlevel() >=90) goto admin;if (getgmlevel() >=60) goto master;	dispbottom "[ "+@server_name$+" ]";	if (sex == 1) {dispbottom "Hello!" + strcharinfo(0) + ", Welcome to "+@server_name$+"";} else {dispbottom "Hello!" + strcharinfo(0) + ", Welcome to "+@server_name$+""; };	dispbottom "The GM Team wish you a lot of fun on our server and meet new friends.";	dispbottom "[ Information ]---------------------------------------------------------------------";	dispbottom "Website : "+@server_forum$+"";	dispbottom "[ Reminder ]-------------------------------------------------------------------------";	dispbottom "-PLEASE TAKE CARE OF YOUR ACCOUNTS !!";	dispbottom "-Do not give your ID and password to Anyone including GM.";	dispbottom "-Do not use any third party programs.";	dispbottom "-Do not scam.";	dispbottom "-Please report any bugs you find.";	dispbottom "[ War Of Emperium ]-----------------------------------------------------------------";	dispbottom	@server_woe$;	dispbottom "[ Server Status ]-------------------------------------------------------------------";	dispbottom "Time: [" + gettime(3) + " : " + gettime(2) + " : " + gettime(1) + "] Date: [" + gettime(5) + " / " + gettime(6) + " / " + gettime(7) + "] [ "+@server_gmt$+" ]";	dispbottom "There are currently [ "+ getusers(1) +" ] Player/s Online";	close;master:	dispbottom "[ "+@server_name$+" ]";	dispbottom "Welcome to "+@server_name$+", Game Master " + strcharinfo(0) + " [ GM LV " +getgmlevel()+ " ]";	dispbottom "Read Here Ever Time You Login";	dispbottom "[ Information ]---------------------------------------------------------------------";	dispbottom "Website : "+@server_forum$+"";	dispbottom "[ :+: Warning :+: ]-------------------------------------------------------------------------";	dispbottom "-Do not Give any items to the player without My Permission.";	dispbottom "-Do not Start PVP/GVG at town without My Permission.";	dispbottom "-Do not Start Guild war without my permission.";	dispbottom "-Do not Spam the Mobs in the game without My Permission.";	dispbottom "-Do not Ask Any player Id,Password and Item.";	dispbottom "-Do Not Scam Player.";	dispbottom "-Do Not abuse your @commands.";	dispbottom "-Please make sure you follow all the Rules and don't break any Rule.";	dispbottom "If you Break Any Rule, Administrator will take Action.";	dispbottom "[ :+: Server Status :+: ]-------------------------------------------------------------------";	dispbottom "Time: [" + gettime(3) + " : " + gettime(2) + " : " + gettime(1) + "] Date: [" + gettime(5) + " / " + gettime(6) + " / " + gettime(7) + "] [ "+@server_gmt$+" ]";	dispbottom "There are currently [ "+ getusers(1) +" ] Player/s Online";	close;admin:	dispbottom "[ "+@server_name$+" ]";	dispbottom "Welcome to "+@server_name$+", Administrator " + strcharinfo(0) + " [ GM LV " +getgmlevel()+ " ]";	dispbottom "[ Information ]---------------------------------------------------------------------";	dispbottom "Website : "+@server_forum$+"";	dispbottom "[ War Of Emperium ]--------------------------------------------------------------";	dispbottom	@server_woe$;	dispbottom "[ Server Status ]-------------------------------------------------------------------";	dispbottom "Time: [" + gettime(3) + " : " + gettime(2) + " : " + gettime(1) + "] Date: [" + gettime(5) + " / " + gettime(6) + " / " + gettime(7) + "] [ "+@server_gmt$+" ]";	dispbottom "There are currently [ "+ getusers(1) +" ] Player Online";	close;}

  11. ** here's the exact error for the custom mobs. 

     

    [Error]: sv_readdb: Too many columns in line 1372 of "db/pre-re/mob_db.txt" (found 58, maximum is 57).  :unsure:

    the answer to this is that 3ceam has 58 columns on mob_db while in herc has only 57 since they removed the "ExpPer" column on it, try to remove one comma and 0 at the last column and the error should be fixed, while incase those has not 0 values then remove the  value next to "MEXP" column. ^_^

×
×
  • Create New...

Important Information

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