Jump to content

ShogS

Members
  • Posts

    91
  • Joined

  • Last visited

Posts posted by ShogS

  1. First of all I'd like to make some things clear

    1. Check your data folder if there is an existing idnum2itemdesctable.txt, idnum2itemdisplaynametable.txt, idnum2itemresnametable.txt

    How? -- ragnarok folder/data/ ------------- you can see it there

    Why? -- because all RAGNAROK EXE reads the data folder first before the grf it self

    Now delete those if you seen one

    That's for now just to clarify some things /heh

  2. @AllHailToTheKing have you tried to restart your server?

    You need to restart your server for this to work properly

    Open

    db/re/refine_db.txt ------->> if you are using renewal

    db/pre-re/refine_db.txt ----->> if you are using pre-renewal

    Now Change the values for

    PRE-RENEWAL

    // Armors

    0,66,0,0,100:0,100:0,100:0,100:0,100:0,100:0,100:0,40:0,25:0,10:0

    // Level 1 weapons

    1,200,8,300,100:0,100:0,100:0,100:0,100:0,100:0,100:0,40:0,25:0,10:0

    // Level 2 weapons

    2,300,7,500,100:0,100:0,100:0,100:0,100:0,100:0,100:0,40:0,25:0,10:0

    // Level 3 weapons

    3,500,6,800,100:0,100:0,100:0,100:0,100:0,100:0,100:0,40:0,25:0,10:0

    // Level 4 weapons

    4,700,5,1300,100:0,100:0,100:0,100:0,100:0,100:0,100:0,40:0,25:0,10:0

    • Upvote 1
  3. are you using RATHENA as your emulator? if yes open this one

    npc/merchants/refine.txt

    Find this line:

    callfunc "refinemain","Hollgrehenn",0;

    Change it to:

    callfunc "refinemain","Hollgrehenn",1;

    Take note of the difference of this

    callfunc "refinemain","Hollgrehenn",0; -------->This will use the old refine function like 1ups per talk to the npc

    callfunc "refinemain","Hollgrehenn",1; -------->This one will use the new refine function like will ask you if how many refine do you want that is why I've set it to 1

    Delete this line:

    //============================================================

    //= Main Refiner Function

    //============================================================

    UNTIL:

    mes "All finished... Come again soon.";

    close;

    }

    NOW REPLACE IT WITH THIS CODE:

    //============================================================
    //= Main Refiner Function
    //============================================================
    //= To allow auto safe refining/multiple refining set the
    //= second argument to '1' in the function call.
    //= If you enable this function make sure you set the appropiate +x Level in your refine_db.txt
    //= to 100 and adjust the .@safe Value in the Script to your desired max. Safe Level.
    //= Otherwise it won't work .
    //============================================================
    function	script	refinemain	{
    set .@features,getarg(1);
    mes "[" + getarg(0) + "]";
    mes "I'm the Armsmith.";
    mes "I can refine all kinds of weapons, armor and equipment, so let me";
    mes "know what you want me to refine.";
    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) )
    		set .@menu$, .@menu$ + .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]";
    	set .@menu$, .@menu$ + ":";
    }
    set .@part,select(.@menu$);
    if(!getequipisequiped(.@part)) {
    	mes "[" + getarg(0) + "]";
    	mes "You're not wearing";
    	mes "anything there that";
    	mes "I can refine.";
    	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 is already +10
    if(getequiprefinerycnt(.@part) >= 10) {
    	mes "[" + getarg(0) + "]";
    	mes "I can't refine this";
    	mes "any more. This is as";
    	mes "refined as it gets!";
    	close;
    }
    set .@refineitemid, getequipid(.@part); // save id of the item
    set .@refinerycnt, getequiprefinerycnt(.@part); //save refinery count
    switch(getequipweaponlv(.@part)){
    case 0:	 //Refine Armor
    	set .@price,2000;
    	set .@material,985;
    	set .@safe,7;
    	break;
    case 1:	 //Refine Level 1 Weapon
    	set .@price,50;
    	set .@material,1010;
    	set .@safe,7;
    	break;
    case 2:	 //Refine Level 2 Weapon
    	set .@price,200;
    	set .@material,1011;
    	set .@safe,7;
    	break;
    case 3:	 //Refine Level 3 Weapon
    	set .@price,5000;
    	set .@material,984;
    	set .@safe,7;
    	break;
    case 4:	 //Refine Level 4 Weapon
    	set .@price,20000;
    	set .@material,984;
    	set .@safe,7;
    	break;
    case 5:	 //Refine other stuff?
    	set .@price,2000;
    	set .@material,985;
    	set .@safe,7;
    	break;
    }
    if(.@features != 1) {
    	mes "[" + getarg(0) + "]";
    	mes "To refine this I need";
    	mes "one ^003366"+getitemname(.@material)+"^000000 and";
    	mes "a service fee of " + .@price + " Zeny.";
    	mes "Do you really wish to continue?";
    	next;
    	if(select("Yes:No") == 2){
    		mes "[" + getarg(0) + "]";
    		mes "Yeah...";
    		mes "There's no need to";
    		mes "rush. Take your time.";
    		close;
    	}
    	if(getequippercentrefinery(.@part) < 100) {
    		mes "[" + getarg(0) + "]";
    		mes "Oh no! If I continue to";
    		mes "refine this, there's a risk it could";
    		switch(.@material) {
    		case 985:
    			mes "be destroyed! That means that ^FF0000this equipment^000000, and ^FF0000any cards^000000 or special properties added to this armor, ^FF0000will be gone^000000.";
    			break;
    		default:
    			mes "be destroyed, and you'd ^FF0000lose the weapon^000000, any ^FF0000cards in the weapon^000000,";
    			mes "or any added special properties.";
    			break;
    		}
    		next;
    		mes "["+getarg(0)+"]";
    		mes "I can't make it any clearer.";
    		mes "Once a weapon is destroyed,";
    		mes "there's no getting it back.";
    		mes "You really have a chance to";
    		mes "^FF0000lose this weapon^000000 forever.";
    		mes "Do you still want to refine?";
    		next;
    		if(select("Yes:No") == 2){
    			mes "[" + getarg(0) + "]";
    			mes "I completely agree...";
    			mes "I might be a great refiner, but sometimes even I make mistakes.";
    			close;
    		}
    	}
    	if((countitem(.@material) < 1) || (Zeny < .@price)) {
    		mes "[" + getarg(0) + "]";
    		mes "You don't seem to have";
    		mes "enough Zeny or "+getitemname(.@material)+"...";
    		mes "Go get some more. I'll be";
    		mes "here all day if you need me.";
    		close;
    	}
    	set Zeny,Zeny-.@price;
    	delitem .@material,1;
    	if(getequipisequiped(.@part) == 0) { // hacker has removed the item (not changed, why?)
    		mes "[" + getarg(0) + "]";
    		mes "Look here... you don't have any Items on...";
    		close;
    	}
    	if(getequiprefinerycnt(.@part) != .@refinerycnt || getequipid(.@part) != .@refineitemid) { // hacker has changed the item
    		mes "[" + getarg(0) + "]";
    		Emotion e_an;
    		mes "Wait a second...";
    		mes "Do you think I'm stupid?!";
    		mes "You switched the item while I wasn't looking! Get out of here!";
    		close;
    	}
    	if(getequippercentrefinery(.@part) <= rand(100)) {
    		failedrefitem .@part;
    		mes "[" + getarg(0) + "]";
    		set .@emo,rand(1,5);
    		if (.@emo == 1) {
    			Emotion e_cash;
    		} else {
    			Emotion e_swt;
    		}
    		set .@lose,rand(1,3);
    		if (.@lose == 1) {
    			mes "OH! MY GOD!";
    			mes "Damn it! Not again!";
    			mes "I'm terribly sorry, but you know practice does make perfect.";
    			mes "Um, right? Heh heh...";
    		} else if(.@lose == 2) {
    			mes "Nooooooo!";
    			mes "It broke!";
    			mes "I-I'm sorry!";
    		} else {
    			mes "Crap!";
    			mes "It couldn't take";
    			mes "much more tempering!";
    			mes "Sorry about this...";
    		}
    		close;
    	}
    	mes "["+getarg(0)+"]";
    	successrefitem .@part;
    	Emotion e_heh;
    	set .@win,rand(1,3);
    	if (.@win == 1) {
    		mes "Perfect!";
    		mes "Heh heh!";
    		mes "Once again,";
    		mes "flawless work";
    		mes "from the master~";
    	} else if(.@win == 2) {
    		mes "Success...!";
    		mes "Yet again, my amazing";
    		mes "talent truly dazzles";
    		mes "and shines today.";
    	} else {
    		mes "Heh heh!";
    		mes "I'm all done.";
    		mes "No doubt, my work is";
    		mes "to your satisfaction.";
    		mes "Sheer, utter perfection~";
    	}
    	close;
    }
    // New Refining Functions ========================
    if(getequiprefinerycnt(.@part) < .@safe) {
    	mes "[" + getarg(0) + "]";
    	mes "I can refine this to the safe limit or a desired number of times... it's your choice...";
    	next;
    	set .@menu2,select("To the safe limit please.","I'll decide how many times.","I've changed my mind...");
    } else set .@menu2,2;
    switch(.@menu2){
    case 1:
    	set .@refinecnt,.@safe - getequiprefinerycnt(.@part);
    	break;
    case 2:
    	next;
    	mes "[" + getarg(0) + "]";
    	mes "So how many times would you like me to refine your item?";
    	next;
    	input .@refinecnt;
    	set .@refinecheck,.@refinecnt + getequiprefinerycnt(.@part);
    	if (.@refinecnt < 1 || .@refinecheck > 10) {
    		mes "[" + getarg(0) + "]";
    		mes "I can't refine this item that many times.";
    		close;
    	}
    	if(.@refinecheck > .@safe) {
    		set .@refinecheck,.@refinecheck - .@safe;
    		mes "[" + getarg(0) + "]";
    		mes "This will try to refine the equipment " + .@refinecheck + " times past the safe limit. Your equipment may be destroyed... is that ok?";
    		next;
    		if(select("Yes...","No...") == 2){
    			mes "[" + getarg(0) + "]";
    			mes "You said so..Hmm so be it...";
    			close;
    		}
    	}
    	break;
    case 3:
    	next;
    	mes "[" + getarg(0) + "]";
    	mes "You said so..Hmm so be it...";
    	close;
    }
    set .@fullprice,.@price * .@refinecnt;
    mes "[" + getarg(0) + "]";
    mes "That will cost you " + .@refinecnt + " " + 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(countitem(.@material) < .@refinecnt || Zeny < .@fullprice) {
    	mes "[" + getarg(0) + "]";
    	mes "Is that all you got? Unfortunately I can't work for you at a lower price. Try putting yourself in my shoes.";
    	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 || (.@menu2 == 1 && getequippercentrefinery(.@part) < 100)) {
    		mes "[" + getarg(0) + "]";
    		mes "Clan... No, but Did you imagine I could be so stupid !?!";
    		mes "You have changed it...";
    		mes "Go out before I stun you with my Hammer!!!";
    		close;
    	}
    	mes "Clang, clang!!!";
    	if(.@menu2 == 2 && getequippercentrefinery(.@part) <= rand(100)) {
    		failedrefitem .@part;
    		emotion 23;
    		mes "[" + getarg(0) + "]";
    		mes "WAHHHH!!! I'm so sorry... I warned you this could happen...";
    		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;
    }
    mes "[" + getarg(0) + "]";
    mes "All finished... Come again soon.";
    close;
    }
    

    Now for refine Percentage

    Open

    db/re/refine_db.txt ------->> if you are using renewal

    db/pre-re/refine_db.txt ----->> if you are using pre-renewal

    Now Change the values for

    PRE-RENEWAL

    // Armors

    0,66,0,0,100:0,100:0,100:0,100:0,100:0,100:0,100:0,40:0,25:0,10:0

    // Level 1 weapons

    1,200,8,300,100:0,100:0,100:0,100:0,100:0,100:0,100:0,40:0,25:0,10:0

    // Level 2 weapons

    2,300,7,500,100:0,100:0,100:0,100:0,100:0,100:0,100:0,40:0,25:0,10:0

    // Level 3 weapons

    3,500,6,800,100:0,100:0,100:0,100:0,100:0,100:0,100:0,40:0,25:0,10:0

    // Level 4 weapons

    4,700,5,1300,100:0,100:0,100:0,100:0,100:0,100:0,100:0,40:0,25:0,10:0

    • Upvote 2
  4. @xilence01 20$ for the Thor Patcher

    Package Contains:

    NOTICE, Thor exe, Patch Folder

    Note: We do not allow Buyers or Client to have the Whole WEB folders but they can own - NOTICE, PATCH FOLDER and the EXE it self but the Banner Rotator and FB Plugs is HOSTED by us to avoid those RIPPERS from copying and RIPPING our designs. If you want us to change the IMAGES for Banner Rotators just Message us, BUT on Design of the Patcher we won't change that if it is already released, You can also request if you want to change the Name of the patcher We Can Do that 1 more thing if you were already our recent customer just message us for changes for Banner and Server Name.

    @kairunotabi - Just message me here in RA or email me for more details

    my email: [email protected]

  5. Final Output for ZodiacRO Site

    GFX for Zodiac Ragnarok Online - Design by: SHOGS GFX. [email protected]

    Upper Menu - FLASH with effects and sounds for buttons, Quick Links = Javascript, WAR Events panel = Tab Control. Banner = Flash, CERES INTEG. Galery = JAVA SCRIPT, Item Images = FLASH

    541979_407590012587153_2102379481_n_zpsf0fc8fdf.jpg

    Matic Ragnarok Online New Website Design Flux CP Integration - Design 100% done, Functionality 100% done

    Features: Flux Integration with (CMS) Content Management System, V4P, Admin Control, Flash Banner and buttons, Java Script with AJAX, Automated Castle ownership shown

    FINAL OUT PUT: www.matic-ro.com

    483322_466588263353994_826854193_n_zps3ed3dd34.jpg

    Tactics Ragnarok Online New Website Design Flux CP Integration - Design 95% done, Functionality 100% done

    Features: Flux Integration with (CMS) Content Management System, V4P, Admin Control, Flash Banner and buttons, Java Script with AJAX, Automated Castle ownership shown, PvP Rankings, Flash Buttons, Flash Effects, FB addon,

    FINAL OUT PUT: www.tactics-ro.net

    229234_490870620925758_585090896_n_zpse84cc8ae.jpg

    Thor Patcher Designs

    TacticsRO PATCHER

    NOTICE BOX = 3

    1 - Banner Rotator using Jquery

    2 - Facebook Plugins

    3 - Server News and Updates

    Sample Image Bellow:

    tro-patcher_zpsad206a45.jpg

    New TacticsRO Patcher

    Features:

    NOTICE BOX = 1

    - With Banner Rotator, Facebook Plugs, Server Status, Server News and Updates,

    Server Time, BGM

    Design Features:

    It was base with the name "Tactics" that is why the design looks like that,

    with clean vector, clean glow

    Sample Image Below:

    TRO-PATCHER_zps07658f36.png

    MagRO PATCHER

    NOTICE BOX = 3

    1 - Banner Rotator using Jquery

    2 - Facebook Plugins

    3 - Server News and Updates

    Sample Image Bellow:

    mag-ro-patcher-design_zps37f80d6e.jpg

    • Upvote 1
  6. Whats ShogS problem? Im not understanding clearly whats wrong. Does this issue also happen with older clients?

    Also is the client download really corrupted?

    I've made an script like this on 3ceam

    OnInit:

    disablepc "Manager";

    and I also used this client you posted but my problem is the NPC is not hiding if I set it to (disablepc "Manager";) it is disable but the NPC was still shown in prontera

    Here is the sample Image

    ss.JPG

    This is the NPC I've made it is disable but it won't hide on 2010 clients if I set the npc for (disablepc "Manager";) it will hide but on this client you've posted it won't also in 20111122 clients it does not hide

  7. Go to addons/voteforpoints/modules/voteforpoints and in index.php

    Replace the code there with this code:

    <?php //A login is required
    include ('function.php');$this->loginRequired();
    //This will list the sites
    $vp = Flux::config('FluxTables.Sites');
    $vp_voter = Flux::config('FluxTables.Voters');
    $serverLogDB = $server->loginDatabase;
    $vp_voter = Flux::config('FluxTables.Voters');
    $vp_logs = Flux::config('FluxTables.Logs');  
    $serverObj = $server->connection;$sql = "SELECT site_id,site_name,address,points,blocking_time,banner,banner_url FROM {$server->loginDatabase}.{$vp}";
    $sth = $server->connection->getStatement($sql);
    $sth->execute();
    $vp = $sth->fetchAll();
    $account_idz = $session->account->account_id;
    $current_time= date("Y-m-d G:i:s",time());
    $ip_address = 0;if(Flux::config('IP_BLOCKING'))
    $ip_address = $_SERVER['REMOTE_ADDR'];
    $sql = "SELECT points FROM {$server->loginDatabase}.{$vp_voter} WHERE account_id=?";
    $sth = $server->connection->getStatement($sql);$sth->execute(array($session->account->account_id));
    $vp_voter = $sth->fetch();
    $curr_points = $vp_voter->points;
    function isBlock($account_idz,$site_id,$current_time,$ip_address,$serverLogDB,$vp_logs,$serverObj){ if($ip_address!=0) {
    $sql = "SELECT `rtid`,`unblock_time`,`ip_address` FROM {$serverLogDB}.{$vp_logs} WHERE f_site_id=? AND unblock_time>? AND ip_address=? ORDER BY unblock_time ASC LIMIT 1";
    $sth = $serverObj->getStatement($sql);
    $sth->execute(array($site_id,$current_time,$ip_address));
    $ip_check = $sth->fetchAll();
    $diff_time = strtotime($ip_check[0]->unblock_time)-strtotime(date("Y-m-d G:i:s",time()));
    if(!empty($ip_check))
    return strtotime($ip_check[0]->unblock_time); }
    $sql = "SELECT `unblock_time` FROM {$serverLogDB}.{$vp_logs} WHERE account_id=? AND f_site_id=?";
    $sth = $serverObj->getStatement($sql);
    $sth->execute(array($session->account->account_id,$site_id));
    $account_check = $sth->fetch();
    if(!empty($account_check))
    $diff_time = strtotime($account_check->unblock_time)-strtotime(date("Y-m-d G:i:s",time()));
    else
    $diff_time = 0;
    if($diff_time>0)
    return strtotime($account_check->unblock_time);
    else
    return 0;
    return strtotime($account_check->unblock_time);}
    ?>

    sir this works for me now but upon click the sites it will show. "Proxy is not allowed" - how to fix that one? this was happen last week I don't now why. it was fine and working on the past days but now that was my problem

  8. SIr Jupeto help me on how to put the Admin Menu's on a Drop Down List

    hmm how about on Sub Menu?

    here's the code for Admin's Menu

    <?php if (!empty($adminMenuItems) && Flux::config('AdminMenuNewStyle')): ?>
    <form name="form1">
    <strong>Admin</strong>:
    <select name="menu1" onChange="window.location.href=this.value">
    <option value="javascript:void(0);">Choose Menu</option>
    <?php foreach ($adminMenuItems as $menuItem) : ?>
    <option value="<?php echo $menuItem['url']; ?>"><?php echo $menuItem['name']; ?></option>
    <?php endforeach; ?>
    </select>
    </form>
    <?php endif ?>
    

×
×
  • Create New...