Jump to content

NexusXVI

Members
  • Posts

    227
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by NexusXVI

  1. Can I ask for a script that enables an item to drop on ALL MONSTERS including bosses.

    * Quantity can be changed to.. not limiting it to 1 drop
    * And Can black list a couple of monsters to if that's possible.

    Ex. "Item X" can be dropped on all maps except gold room monsters.

  2. @Paktskie

    Suggestion : HMm , can u make the npc timed/rented??

    I mean if GUILD X buy it for like maybe 8 CastleDrop the npc would be thier npc as long as they can pay it.. Maybe for 5 days.
    That way the guild will do their best to win woe..
    Failure to Pay the rent will make them lose the npc :) , and maybe a delay like 1day before they can buy another..

    Hope this isn't that much trouble.

  3. go to this:

    Trunk/src/map/battle.c

    find this : max_parameter

    Edit the 99 to ur desired lvl :

     

    	{ "max_parameter",                      &battle_config.max_parameter,                   99,     10,     10000,          },
    


    Like this :
     

    	{ "max_parameter",                      &battle_config.max_parameter,                   255,     10,     10000,          },
    

     

    Don't forget to recompile


    ======================================================================================
     

    exp.txt?

    I think that's for eathena if im not mistaken..

    If your using rathena : You are using one /oops /oops /oops

    edit it here :

    db\(pre-)re\job_exp.txt


    Make sure to edit it accordingly

    db\pre\job_exp.txt = for Pre - renewal
    db\re\job_exp.txt = for Renewal

    • Upvote 1
  4. I think it's about the packets..
    But im not that sure



    Ok for those people who are having a problem with lua consider this.
    I cannot precisely help you since, I myself sometimes still encounter this part and sometimes it makes me think too. But for the new comers sake I'll try to be as crystal as possible.

    I recommend this to those who are having lua problems :

    ** https://subversion.assembla.com/svn/client-side-translation/

    To download this you must have :

    ** http://tortoisesvn.net/

    Now, the best thing you must think of is.

    1. Google is your friend :) (We(ME and the other beginners) or them (the PRO's) is not always there to guide and teach you, so learn to explore and teach yourselves.)

    2. Look at clues.. errors sometimes provide an ample lot of clues. EX. cannot open System/iteminfo.lua NO SUCH FILE OR DIRECTORY = from this you can clearly see the clue.

    3. Try to widen your search, don't use 1 guide since no guide is flawless..specially EVERYDAY it's updating.

    ===========================================================================================

    FOR THOSE WHO ARE HAVING LUA PROBLEMS :

     *** Chat/Msg/Shadow error. / Iteminfo file Init / Option Info and all other lua related cases, Refer below


    Diff the client to :

    1. Read lua before lub = Consider this..

    2. Read data folder = Self explanatory ( This is only used if you don't plan to make GRF's yet)

    3. Make sure it's up to date.

    4. Remember that eathena and rathena data folders are different. = Meaning different lua locations (As far as I have observed)

    5. Google is still your no1 friend in this cases. = Never ever forget this

    ===========================================================================================
    FOR DISCONNECTION ISSUES :

    Refer :

    1. Check your clientinfo.xml = Most common error that is being over looked always

     

    2. SQL Id/Pass is DIFFERENT from Conf Id/Pass ( char_athena and map_athena)

    3. Make sure that the CONF ID/PASS is corrent when you input it at the SQL

    4. Never ever forget to edit inter_athena.conf (SQL INPUT) = specialy if you named the schema differently ex. ragnarok/rlogs or ragnarok/log or even ragnarok/logs.

    5. Always double check

    Remember guys. IM NO PRO myself and honestly me myself always ask sometimes, but I always explore and experiment. Don't be afraid to fail xD

    PS. Hope this helps ... Just message me freely if you have questions, just don't blame me if I don't have the right answer, Anyway Glad to help.

    Below : RO Made in less than 15 mins.. Just believe and Focus

    My_zps8655b697.jpg

  5. Untitled_zps1bdda714.png

    Can't  seem to find why time left is  Vote now XD!!
    The voting works.
    Except for cash

    Can anyone fix it?

    Here is my INDEX.PHP

     

    <?php if (!defined('FLUX_ROOT')) exit;
    
    
    
    $this->loginRequired();
    
    
    
    require_once("function.php");
    
    $vfp_sites		= Flux::config('FluxTables.vfp_sites');
    
    $vfp_logs		= Flux::config('FluxTables.vfp_logs');
    
    $errorMessage	= NULL;
    
    
    
    if (isset($_POST['id']))
    
    {
    
    	$id 		= (int) $params->get('id');
    
    	$ip 		= $_SERVER['REMOTE_ADDR'];
    
    	$account_id = (int) $session->account->account_id;
    
    
    
    	$sql = "SELECT * FROM $server->loginDatabase.$vfp_sites WHERE id = ?";
    
    	$sth = $server->connection->getStatement($sql);
    
    	$sth->execute(array($id));
    
    	$res = $sth->fetch();
    
    
    
    	// voting site doesn't exists
    
    	if ($sth->rowCount() === 0)
    
    	{
    
    		$errorMessage = Flux::message("VoteDontExists");
    
    	} else
    
    
    
    	// voter is using invalid ip
    
    	if (!empty($_SERVER["HTTP_X_FORWARDED_FOR"]) || !empty($_SERVER['HTTP_CLIENT_IP']) || !empty($_SERVER['HTTP_X_FORWARDED']))
    
    	{
    
    		$errorMessage = sprintf(Flux::message("UnableToVote"), 1);
    
    	} else {
    
    		// validate for ip address
    
    		if (Flux::config('EnableIPVoteCheck'))
    
    		{
    
    			$sql = "SELECT timestamp_expire FROM $server->loginDatabase.$vfp_logs WHERE ipaddress = ? AND sites_id = ? AND UNIX_TIMESTAMP(timestamp_expire) > ? LIMIT 1";
    
    			$sth = $server->connection->getStatement($sql);
    
    			$bind = array($ip, $id, time());
    
    			$sth->execute($bind);
    
    
    
    			if ($sth->rowCount() === 1) $errorMessage = Flux::message("AlreadyVoted");
    
    		}
    
    
    
    		// validate for account_id
    
    		if (is_null($errorMessage))
    
    		{
    
    			$sql = "SELECT timestamp_expire FROM $server->loginDatabase.$vfp_logs WHERE account_id = ? AND sites_id = ? AND UNIX_TIMESTAMP(timestamp_expire) > ? LIMIT 1";
    
    			$sth = $server->connection->getStatement($sql);
    
    			$bind = array($account_id, $id, time());
    
    			$sth->execute($bind);
    
    
    
    			if ($sth->rowCount() === 1) 
    
    			{
    
    				$errorMessage = Flux::message("AlreadyVoted");
    
    			} else {
    
    				// update the existing row
    
    				$sql = "UPDATE $server->loginDatabase.$vfp_logs SET timestamp_expire = ?, timestamp_voted = ?, ipaddress = ? WHERE account_id = ? AND sites_id = ?";
    
    				$sth = $server->connection->getStatement($sql);
    
    				$bind = array(
    
    					date(Flux::config("DateTimeFormat"), strtotime("+".$res->voteinterval." hours")),
    
    					date(Flux::config("DateTimeFormat")),
    
    					$ip,
    
    					$account_id,
    
    					$id
    
    				);
    
    				$sth->execute($bind);
    
    
    
    				if ($sth->rowCount() === 0)
    
    				{
    
    					// insert new row
    
    					$sql = "INSERT INTO $server->loginDatabase.$vfp_logs VALUES (NULL, ?, ?, ?, ?, ?)";
    
    					$sth = $server->connection->getStatement($sql);
    
    					$bind = array(
    
    						$id,
    
    						date(Flux::config("DateTimeFormat"), strtotime("+".$res->voteinterval." hours")),
    
    						date(Flux::config("DateTimeFormat")),
    
    						$ip,
    
    						$account_id
    
    					);
    
    					$sth->execute($bind);
    
    
    
    					if ($sth->rowCount() === 0)
    
    					{
    
    						$errorMessage = sprintf(Flux::message("UnableToVote"), 2);
    
    					} else {
    
    
    
    						switch (Flux::config('PointsType'))
    
    						{
    
    							case "vote":
    
    								// update votepoints
    
    								$sql = "UPDATE $server->loginDatabase.cp_createlog SET votepoints = votepoints + ? WHERE account_id = ?";
    
    								$sth = $server->connection->getStatement($sql);
    
    								$sth->execute(array((int) $res->votepoints, $account_id));
    
    
    
    								if ($sth->rowCount() === 0)
    
    								{
    
    									$errorMessage = sprintf(Flux::message("UnableToVote"), 3);
    
    								}
    
    							break;
    
    
    
    							case "cash":
    
    								// insert or update cashpoints
    
    								$cashpoints_var = "#CASHPOINTS";
    
    								$sql = "UPDATE global_reg_value SET value = value + ? WHERE str = ? AND account_id = ?";
    
    								$sth = $server->connection->getStatement($sql);
    
    								$sth->execute(array((int) $res->votepoints, $cashpoints_var, $account_id));
    
    
    
    								// account doesn't have a record for cashpoints
    
    								// so we will add a row
    
    								if ($sth->rowCount() === 0)
    
    								{
    
    									$sql = "INSERT INTO global_reg_value VALUES (0, ?, ?, 2, ?)";
    
    									$sth = $server->connection->getStatement($sql);
    
    									$bind = array($cashpoints_var, $res->votepoints, $account_id);
    
    									$sth->execute($bind);
    
    
    
    									if ($sth->rowCount() === 0)
    
    									{
    
    										$errorMessage = sprintf(Flux::message("UnableToVote"), 4);
    
    									}
    
    								}
    
    							break;
    
    
    
    							default:
    
    								// update credits row
    
    								$sql = "UPDATE $server->loginDatabase.cp_credits SET balance = balance + ? WHERE account_id = ?";
    
    								$sth = $server->connection->getStatement($sql);
    
    								$sth->execute(array((int) $res->votepoints, $account_id));
    
    
    
    								if ($sth->rowCount() === 0)
    
    								{
    
    									// insert new credits row
    
    									$sql = "INSERT INTO $server->loginDatabase.cp_credits VALUES (?, ?, NULL, NULL)";
    
    									$sth = $server->connection->getStatement($sql);
    
    									$sth->execute(array($account, $res->votepoints));
    
    
    
    									if ($sth->rowCount() === 0)
    
    									{
    
    										$errorMessage = sprintf(Flux::message("UnableToVote"), 6);
    
    									}
    
    								}
    
    							break;
    
    						}
    
    					}
    
    				}
    
    			}
    
    		}
    
    	}
    
    }
    
    
    
    // fetch all voting sites
    
    $sql = "SELECT * FROM $server->loginDatabase.$vfp_sites";
    
    $sth = $server->connection->getStatement($sql);
    
    $sth->execute();
    
    $votesites_res = $sth->fetchAll();
    
    
    
    ?>
    

     

  6. If this isn't the right place to post it im sorry...

    The problem is here :

     

    skill.c: In function ‘skill_parse_row_nonearnpcrangedb’:
    skill.c:18315: warning: comparison is always false due to limited range of data type
    

    and here :

    [Error]: pc_skill: Skill with id 0 does not exist in the skill database
    [Error]: pc_skill: Skill with id 0 does not exist in the skill database
    [Error]: pc_skill: Skill with id 0 does not exist in the skill database
    [Error]: pc_skill: Skill with id 0 does not exist in the skill database
    

     

    This is the line on skill.c

    /// Reads additional range [Cydh]
    static bool skill_parse_row_nonearnpcrangedb(char* split[], int column, int current) {
    	uint16 skill_id = skill_name2id(split[0]), idx; // -- This is the line 18315
    	if ((idx = skill_get_index(skill_id)) < 0) { // invalid skill id
    		ShowError("skill_parse_row_nonearnpcrangedb: Invalid skill '%s'\n",split[0]);
    		return false;
    	}
    
    	skill_db[idx].unit_nonearnpc_range = max(atoi(split[1]),0);
    	skill_db[idx].unit_nonearnpc_type = (atoi(split[2])) ? cap_value(atoi(split[2]),1,15) : 15;
    	return true;
    }
    


    Can anyone help me with this.. I don't know what this is  :(


    Addition :

    Im also have this problem on my mapserver log.

    Whenever I use the command @reloaditemdb the mapserver crashes here is the log :
     

    [Error]: Server received crash signal! Attempting to save all online characters!
    [Status]: Memory manager initialised: log/map-server.leaks
    
    

     




     

  7. //EMPERIUMRO ORIGINAL SCRIPT! DO NOT CLAIM THAT ITS YOURS! GIVE CREDIT TO THE
    //SCRIPTER
    // PROBLEM IS I DONT KNOW HIS NAME. BUT CREDITS TO HIM AND TO ME FOR SHARING. LOL!
    dicastes01,239,113,3	script	Man-Hunt Event	831,{
    
    	mes "[Man Hunt Event]";
    	if(.MStatus)
    		{
    			mes "Status: ^00ff00ACTIVE!^000000";
    			if(getgroupid() >= .GM)
    				{
    					menu "Join Event",-,"Admin Commands",MHAdmin;
    					next;
    						if(.MStart)
    						{	mes "You can't join the event when it is ongoing.";
    							close;
    						}
    					set .ManHunt[.o], getcharid(3);
    					set .ManHuntN$[.o], strcharinfo(0);
    					set .o, .o + 1;
    					warp .MHMap$,0,0;
    					close;
    				}
    			else
    				{
    					menu "Join Event",-;
    					if(.MStart)
    						{	mes "You can't join the event when it is ongoing.";
    							close;
    						}
    					set .ManHunt[.o], getcharid(3);
    					set .ManHuntN$[.o], strcharinfo(0);
    					set .o, .o + 1;
    					warp .MHMap$,0,0;
    					close;
    					close;
    				}
    		}
    	else if(!.MStatus)
    	{
    		
    		mes "Status: ^00ff00INACTIVE!^000000";
    		mes "Man Hunt Points: "+MHPoint+"";
    		if(getgroupid() >= .GM) 
    			menu "Admin Commands",MHAdmin,"Claim Rewards",-;
    		else
    			menu "Claim Rewards",-;
    		mes "There you go.";
    		getitem .MHReward,MHPoint;
    		set MHPoint, 0;
    		close;
    	}
    		
    MHAdmin:
    		if(!.MStatus)
    		{
    			mes "Start Event?";
    			menu "Start!",-;
    			set .MStatus, 1;
    			set .o, 0;
    			announce "Man-Hunt Event warper will be closed in 3 minutes",0;
    			setnpctimer 0;
    			initnpctimer;
    			close;
    		}
    		else if(.MStatus)
    		{
    			mes "End Event?";
    			menu "End",-;
    			set .MStatus, 0;
    			deletearray .ManHunt[0],getarraysize(.ManHunt);
    			deletearray .ManHuntN$[0],getarraysize(.ManHuntN$);	
    			announce "A GM has ended the Man Hunt Event",0;
    			stopnpctimer;
    			close;
    		}
    	close;
    	
    
    OnClock1100:
    OnClock1700:
    		set .MStatus, 1;
    		announce "Man-Hunt Event warper will be closed in 3 minutes",0;
    		set .o, 0;
    		setnpctimer 0;
    		initnpctimer;
    		end;
    OnTimer60000:
    		announce "Man-Hunt Event warper will be closed in 2 minutes",0;
    		end;
    OnTimer120000:
    		announce "Man-Hunt Event warper will be closed in 60 Seconds",0;
    		end;
    		
    OnTimer180000:
    		announce "Man-Hunt Event warper is now closed.",0;
    		sleep2 2000;
    		mapannounce .MHMap$,"The goal is this event is to kill the target within 30 seconds.",0;
    		sleep2 2000;
    		mapannounce .MHMap$,"The one who managed to kill the target will gain 1 Man Hunt Point",0;
    		sleep2 2000;
    		mapannounce .MHMap$,"But if the target surivived, the target will gain 3 Man Hunt Points",0;
    		sleep2 2000;
    		mapannounce .MHMap$,"Enough explaining, let's do the Man-Hunt Event!",0;
    		sleep2 2000;
    		mapannounce .MHMap$,"Man-Hunt Event start!",0;
    		atcommand "@doommap";
    		atcommand "@raisemap";
    		set .MStart,1;
    		stopnpctimer;
    		set .MRounds, 1;
    		goto ManHuntStart;
    		end;
    		
    OnTimer30000:
    		if (.HuntedTimer)
    		{
    			mapannounce .MHMap$,"The Target, "+.ManHuntN$[.Target]+", managed to survive",0;
    			atcommand "#killable "+.ManHuntN$[.Target]+"";
    			atcommand "#size \""+.ManHuntN$[.Target]+"\" 0";
    			sleep2 1000;
    			if(attachrid(.ManHunt[.Target])) 
    			{
    					set MHPoint, MHPoint + .MSurvive;
    					dispbottom "Gained "+.MSurvive+" Man Hunt Points.";
    					dispbottom "Current Man Hunt Points: "+MHPoint+"";
    					detachrid;					
    			}
    			set .MRounds, .MRounds + 1;
    			stopnpctimer;
    			goto MHNextRound;
    		}
    		end;
    		
    ManHuntStart:
    		if (getmapusers(.MHMap$) < .MHPlayer) goto MHPlayerLack;
    		set .Target, rand(0,getarraysize(.ManHunt)-1);
    		mapannounce .MHMap$,"[Round "+.MRounds+"] Our target is "+.ManHuntN$[.Target]+"!",0;
    		atcommand "#killable "+.ManHuntN$[.Target]+"";
    		atcommand "#size \""+.ManHuntN$[.Target]+"\" 2";
    		setnpctimer 0;
    		set .HuntedTimer, 1;
    		initnpctimer;
    		end;
    		
    OnPCDieEvent: //in victim's scope
    	if (strcharinfo(3) == .MHMap$)
    	{
    	if( getcharid(3) == .ManHunt[.Target] ){
    		if(attachrid(killerrid)) {
    			announce ""+strcharinfo(0)+" has killed the target",0;
    			set MHPoint, MHPoint + .MKill;
    			atcommand "#killable "+.ManHuntN$[.Target]+"";
    			atcommand "#size \""+.ManHuntN$[.Target]+"\" 0";
    			dispbottom "Gained "+.MKill+" Man Hunt Points.";
    			dispbottom "Current Man Hunt Points: "+MHPoint+"";
    			set .MRounds, .MRounds + 1;
    			stopnpctimer;
    			detachrid;
    			sleep2 500;
    			atcommand "#alive "+.ManHuntN$[.Target]+"";
    			goto MHNextRound;
            }
    	}
    	}
    	end;
    	
    MHPlayerLack:
    		mapannounce .MHMap$,"Failed to start Man-Hunt Event due to insufficient Players",0;
    		sleep2 2000;
    		mapannounce .MHMap$,"The minimum player required is "+.MHPlayer+" players",0;
    		sleep2 2000;
    		mapannounce .MHMap$,"All players will be warped to El Dicastes in 2 seconds.",0;
    		sleep2 2000;
    		mapwarp .MHMap$,"dicastes01",249,158;
    		set .MStatus, 0;
    		set .HunterTimer, 0;
    		set .Target, 0;
    		set .MStart, 0;
    		deletearray .ManHunt[0],getarraysize(.ManHunt);
    		deletearray .ManHuntN$[0],getarraysize(.ManHuntN$);
    		end;
    		
    	
    MHNextRound:
    	if (getmapusers(.MHMap$) < .MHPlayer) goto MHPlayerLack;
    	if (.MRounds > .MRoundsMax)
    			{
    				sleep2 1000;
    				announce "Man-Hunt Event ended.",0;
    				sleep2 1000;
    				set .MStatus, 0;
    				set .HunterTimer, 0;
    				deletearray .ManHunt[0],getarraysize(.ManHunt);
    				deletearray .ManHuntN$[0],getarraysize(.ManHuntN$);
    				mapannounce .MHMap$,"All Players will be warped to El Dicastes in 5 seconds.",0;
    				sleep2 5000;
    				set .Target, 0;
    				set .MStart, 0;
    				mapwarp .MHMap$,"dicastes01",249,158;
    				end;
                }
    			else
    			{
    				announce "Next Round in 10 seconds.",0;
    				sleep2 10000;
    				goto ManHuntStart;
    			}
    	end;
    
    OnPCLogOutEvent:
    	if (.MStatus)
    		if (getcharid(3) == .ManHunt[.Target])
    		{
    			mapannounce .MHMap$,"The target has logged out of this game. This round will be nulled.",0;
    			set .MRounds, .MRounds + 1;
    			goto MHNextRound;
    		}
    	end;
    			
    			
    OnInit:
    //start of config
    	set .MHMap$, "bossnia_01"; // event map
    	set .MHReward, 7227; // reward
    	set .o, 0; // dont touch this
    	set .GM, 99; // minimum gm lvl
    	set .MRoundsMax, 10; // number of rounds
    	set .MHPlayer, 3; // minimum players to start
    	set .MSurvive, 3; // points para sa nagsurvive
    	set .MKill, 1; // points para sa nakapatay
    //end of config
    	setarray .ManHunt[0],0;
    	setarray .ManHuntN$[0],"";
    	end;
    }
    

    HI dis isn't my script but I am using it in my server.

    I want some help cause everytime the event ends it KILLS everyone in the main town..

    I don't have any sleep yet and I can't figure out what is the problem. I hope someone can help me out.

×
×
  • Create New...