Jump to content

benching

Members
  • Posts

    350
  • Joined

  • Last visited

  • Days Won

    4

Posts posted by benching

  1. On 10/10/2017 at 4:43 PM, benching said:

    Modify warps to create and join instance of destination map,

    Add monsters npc and etc to the instanceed map, you can grab this data from the original map,

    Yea, looks like a heavy work,

    By "modify warps" i mean in src code,

    Instead of warping a player to the destination map,

    Make it "create an instance of the destination map then warp the player to that instance",

    (Note: Im not sure if theres an instance for a single player, (no party or guild))

     

     

  2. // Copyrights Notice
    // ========================================================
    // This work is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License.
    // To view a copy of this license, visit http://creativecommons.org/licenses/by-nc/4.0/.
    // ========================================================
    // Introduction
    // ========================================================
    // Copyrights 2015-2020 Jordan Lacandula All rights reserved
    // ========================================================
    // Script: Guild Package Giver/Redeemer NPC
    // ========================================================
    // Programmer: Jordan Lacandula
    // Website: For more info, visit http://jordanlacandula.tk/
    // ========================================================
    // Bug Report/Job Request
    // ========================================================
    // Email: [email protected]
    // Skype: jordan.lacandula
    // ========================================================
    // Features/Includes
    // ========================================================
    // SQL Database Support
    // used table names `gpack_code` and `guild_package`
    // Duplicate IP Checking (also supports same IP, see below)
    // Account Checking
    // Online Status Checker
    // Easy to change Package items for guild master
    // Easy to change Package items for guild member
    // Minimum Guild members Checking (default: 8)
    // ========================================================
    // Multiple IP ( Use gpack code to bypass IP Checking )
    // ========================================================
    // End Introduction
    // ========================================================
    
    quiz_02,233,367,8	script	Guild Master	421,{
    
    
    	if( getgmlevel() == 99 ){
    		set .c_length,10;
    		setarray .g_code$[0],"A","B","C","D","E","F","G","H","I","J","K","L", 				"M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","0","1","2","3","4","5","6","7","8","9";
    		mes "What can i do for you Sire?";
    		switch(select("Nothing:View Code List:^FF0000 Add Package Code^000000")){
    		case 1:
    			break;
    		case 2:
    			query_sql("SELECT `guild_id`, `gcode`,`status` FROM `gpack_code` ORDER BY `status` DESC",[email protected],[email protected]$,[email protected]);
    			dispbottom "Status | GPack Code";
    			for(set @ei,0; @ei < getarraysize([email protected]$); set @ei,@ei + 1){
    				query_sql("`SELECT `name` FROM `guild` WHERE `guild_id` = '"[email protected][@ei]+"'",[email protected]$);
    				dispbottom ""[email protected][@ei]+" | "[email protected]$[@ei]+"  |  "[email protected]$+"";
    			}
    			close;
    			break;
    		case 3:
    			next;
    			mes "Creating New Code for Guild: ";
    			input [email protected]$;
    			set [email protected],query_sql("SELECT `guild_id` FROM `guild` WHERE `name` = '"[email protected]$+"'",[email protected]);
    			if([email protected] <= 0){
    				mes "^FF0000 Guild Not Found!^000000";
    				close;
    			}
    
    			for(set @i, 0; @i< .c_length; set @i, @i+1)
    			{
    				set @random_char, rand(0,(getarraysize(.g_code$)-1));
    				set @new_code$, @new_code$ + .g_code$[@random_char];
    			}
    			query_sql "INSERT INTO `gpack_code` (`guild_id`, `gcode`, `status`) VALUES ('"[email protected]+"', '"[email protected]_code$+"', '0')";
    			set @new_code$, "";
    			next;
    			mes "Added Code for Guild";
    			mes "^FF0000 "[email protected]$+"^000000";
    			close;
    			break;
    		}
    		mes "Proceeding to Player View";
    		next;
    	}
    
    	set [email protected],0;
    	set [email protected]$,"null";
    	setarray [email protected][0],607,1,504,1; //gmaster pack
    	setarray [email protected][0],607,10,504,1;	//gmember pack
    	
    	if(getcharid(2) == 0){
    		mes "you're not member of a guild";
    		close;
    	}
    	query_sql("SELECT `master` FROM `guild` WHERE `guild_id` = '"+getcharid(2)+"'",[email protected]$);
    
    	if([email protected]$ != strcharinfo(0)){
    		mes "Only Guild Masters can claim the packages";
    		close;
    	}
    
    	mes "^FF0000 Guild Package^000000";
    	mes "Greetings ^FF0000 "+strcharinfo(0)+"^000000";
    	mes "Master of the Guild^FF0000 "+strcharinfo(2)+"^000000.";
    	next;
    	mes "Do you have code?";
    	switch(select("No:Yes")){
    	case 1:
    		break;
    	case 2:
    		input [email protected]$;
    		mes "Verifying Code";
    		mes "Please Wait....";
    
    		set [email protected],query_sql("SELECT `gcode` FROM `gpack_code` WHERE `gcode` = '"[email protected]$+"'");
    		if ( [email protected] <= 0 ){
    			next;
    			mes "^FF0000 Invalid Code^000000";
    			mes "Codes are Case-Sensitive, Please make sure of it.";
    			close;
    		}
    
    		query_sql("SELECT `status` FROM `gpack_code` WHERE `gcode` = '"[email protected]$+"'",[email protected]);
    		if( [email protected] != 0 ){
    			mes "Guild Package code has been used already";
    			close;
    		}
    
    		set [email protected],1;
    		break;
    	}
    	next;
    		
    	mes "Do you wish to claim your ^FF0000 Guild Package^000000 ?";
    	switch(select("No:Yes")){
    	case 1:
    		close;
    		break;
    	case 2:
    		next;
    		mes "^FF0000 CLAIM GUILD PACKAGE^000000 ";
    		mes "Master will receive the following:";
    		for ( set [email protected], 0; [email protected] < getarraysize([email protected]); set [email protected], [email protected] + 2 )
    		mes [email protected][[email protected]+1] + " x " + getitemname([email protected][[email protected]]);
    		next;
    		mes "^FF0000 CLAIM GUILD PACKAGE^000000 ";
    		mes "Members will receive the following:";
    		for ( set [email protected], 0; [email protected] < getarraysize([email protected]); set [email protected], [email protected] + 2 )
    		mes [email protected][[email protected]+1] + " x " + getitemname([email protected][[email protected]]);
    		next;
    		mes "[^FF0000 Warning^000000 ]"; 
    		mes "Every one in your Guild can only claim Once regarding of their IP.";
    		mes "Only Online characters can claim a Guld Package";
    		mes "No special treatments if characters go offline while in process of claiming";
    		next;
    		mes "^FF0000 NOTE:^000000 You can only claim once.";
    		mes "^FF0000 NOTE:^000000 All members should be online.";
    		mes "^FF0000 NOTE:^000000 Make sure everyone have lots of Space in their inventory.";
    		next;
    		mes "^FF0000 CLAIM GUILD PACKAGE^000000 ";
    		mes "Claim now?";
    		switch(select("No:Yes")){
    		case 1:
    			close;
    			break;
    		case 2:
    			next;
    			set [email protected],8;	//required minimum members
    			setarray [email protected]$[0],"null";
    			set [email protected],query_sql("SELECT `name` FROM `guild_member` WHERE `guild_id` = '"+getcharid(2)+"'",[email protected]$);
    			if( [email protected] < [email protected] ){
    				mes "Should have Total of "[email protected] +" members.";
    				close;
    				break;
    			}
    
    		// enforce IP check when code is not available
    		if( [email protected] == 0 ){
    			setarray [email protected]$[0],"null";
    			// same ip check
    			for( set [email protected],0; [email protected] < [email protected]; set [email protected],[email protected]+1 ){
    				query_sql("SELECT `account_id` FROM `char` WHERE `name` = '"[email protected]$[[email protected]]+"'",[email protected]);
    				query_sql("SELECT `last_ip` FROM `login` WHERE `account_id` = '"[email protected]+"'",[email protected]$);
    				//check for duplicates
    				for( set [email protected],0; [email protected] < [email protected]; set [email protected],[email protected]+1 ){
    					if( [email protected]$ == [email protected]$[[email protected]] ){
    						mes "^FF0000 Duplicate IP Address^000000";
    						mes "^FF0000 NOTE:^000000 Each player should have different IP address";
    						mes "If you should not see this, Please report to admin";
    						close;
    					}
    				}
    				//add to list
    				setarray [email protected]$[[email protected]],[email protected]$;
    			}
    		}
    			for( set [email protected],0; [email protected] < [email protected]; set [email protected],[email protected]+1 ){
    				//account check
    				query_sql("SELECT `account_id` FROM `char` WHERE `name` = '"[email protected]$[[email protected]]+"'",[email protected]);
    				set [email protected],query_sql("SELECT `acc_id` FROM `guild_package` WHERE `acc_id` = '"[email protected]+"'");
    				//ip check
    				query_sql("SELECT `last_ip` FROM `login` WHERE `account_id` = '"[email protected]+"'",[email protected]);
    				set [email protected],query_sql("SELECT `claim_ip` FROM `guild_package` WHERE `claim_ip` = '"[email protected]+"'");
    				//character name check
    				set [email protected],query_sql("SELECT `char_name` FROM `guild_package` WHERE `char_name` = '"[email protected]$[[email protected]]+"'");
    				if([email protected] > 0 || [email protected] > 0 || [email protected] > 0){
    					mes "One or more in your member(s) has already received the package.";
    					close;
    					break;
    				}
    			}
    
    			// TODOs: check if master and all members are online
    			set [email protected],query_sql("SELECT `name` FROM `guild_member` WHERE `guild_id` = '"+getcharid(2)+"' AND `online` = 0");
    			if( [email protected] > 0 ){
    				mes "Make sure all members are online";
    				close;
    				break;
    			}
    
    			for ( set [email protected],0; [email protected] < [email protected]; set [email protected],[email protected]+1 ){
    				if( [email protected]$[[email protected]] == strcharinfo(0)){
    					for ( set [email protected], 0; [email protected] < getarraysize([email protected]); set [email protected], [email protected] + 2 )
    					getitem [email protected][[email protected]], [email protected][[email protected]+1];
    				}else{
    					for ( set [email protected], 0; [email protected] < getarraysize([email protected]); set [email protected], [email protected] + 2 )
    					atcommand "#item "[email protected]$[[email protected]]+" "[email protected][[email protected]]+" "[email protected][[email protected]+1]+"";
    				}
    				set [email protected],"null";
    				query_sql("SELECT `account_id` FROM `guild_member` WHERE `name` = '"[email protected]$[[email protected]]+"'",[email protected]);
    				query_sql("SELECT `last_ip` FROM `login` WHERE `account_id` = '"[email protected]+"'",[email protected]_ip$);
    				query_sql("SELECT `last_mac` FROM `login` WHERE `account_id` = '"[email protected]+"'",[email protected]_mac$);
    				query_sql("SELECT `last_cpu` FROM `login` WHERE `account_id` = '"[email protected]+"'",[email protected]_cpu$);
    				query_sql("SELECT `last_motherboard` FROM `login` WHERE `account_id` = '"[email protected]+"'",[email protected]_mb$);
    				query_sql("SELECT `char_id` FROM `char` WHERE `name` = '"[email protected]$[[email protected]]+"'",[email protected]_id);
    
    				query_sql "INSERT INTO `guild_package` (`acc_id`, `char_id`, `char_name`, `guild_id`, `guild_name`, `guild_master`, `claim_ip`, `claim_mac`, `claim_cpu`, `claim_motherboard`) VALUES ('"[email protected]+"','"[email protected]_id+"','"[email protected]$[[email protected]]+"','"+getcharid(2)+"','"+strcharinfo(2)+"','"+strcharinfo(0)+"','"[email protected]_ip$+"','"[email protected]_mac$+"','"[email protected]_cpu$+"','"[email protected]_mb$+"')";
    			}
    			
    			next;
    			mes "Package has been Distributed.";
    			close2;
    			query_sql("UPDATE `gpack_code` SET `guild_id` = '"+getcharid(2)+"', `status` = '1' WHERE `gcode` = '"[email protected]$+"'");
    			announce "The Guild "+strcharinfo(2)+" has Signed Up for war",BC_ALL,0xFF0000;
    			break;
    		}
    		break;
    	}
    	switch(rand(1,4)){
    	case 1:
    		npctalk "Hey you noob, your turn";
    		sleep 1000;
    		npctalk "Oh you're not noob? Then prove it in WOE";
    		break;
    	case 2:
    		npctalk "Next!";
    		break;
    	case 3:
    		npctalk "NEXT NEXT NEXT, Move Faster";
    		break;
    	case 4:
    		npctalk "No more? Good.";
    	}
    	
    	OnInit:
    		waitingroom "Claim Guild Package Here",0;
    
    		query_sql "CREATE TABLE IF NOT EXISTS `guild_package` ( `acc_id` INT NOT NULL UNIQUE, `char_id` INT NOT NULL, `char_name` TEXT NOT NULL, `guild_id` INT NOT NULL, `guild_name` TEXT NOT NULL, `guild_master` TEXT NOT NULL, `claim_ip` TEXT NOT NULL, `claim_mac` TEXT NOT NULL, `claim_cpu` TEXT NOT NULL, `claim_motherboard` TEXT NOT NULL ) ENGINE=MyISAM";
    
    		query_sql "CREATE TABLE IF NOT EXISTS `gpack_code` (`guild_id` INT NOT NULL, `gcode` VARCHAR(10) NOT NULL, `status` INT NOT NULL ) ENGINE=MyISAM";
    	end;
    }
    

    I'm not sure what revision / hash of rA where they take the hardware details,

    This script was made that time,

     

    If the current version of rA you have don't take the hardware details of the client and save it to db,

    Then the claiming with same ip's is pretty much useless,

    This file is not being updated anymore, so through the updates of rA and MySQL,

    This file will throw errors,

    The code above will still show errors due to the column of hardware infos that are missing,

    You can just ignore them and assume that the same IP claiming is not working.

    • MVP 1
  3. 10 hours ago, Tio Akima said:

    Yes, this is the correct function
    nodamage_id

    The skill is being called now, but not on the target I want.
    She is being called in the player
    Must be on target. (mob) But it's already a big evolution.

    From what I can see, the first two arguments of the function define the target :D 

    The first arg is the second of the skill or the caster,

    The 2nd arg is the target,

    I'm not sure how to call it on mob that it bump into.

  4. 29 minutes ago, jadedlight said:

    Hi! good day.. guys.. would like to ask about this one since im trying to revive and edit this script.. with me scripting noobness i cant figure out.. whats wrong.. so here i am :D
    image.png.3089fca5e99b097aa4ab035055e6f950.png

    Original Script: https://pastebin.com/raw/6xk49UED

    NOTE: THIS IS NOT MY SCRIPT AND ALL CREDIT GOES TO THE ORIGINAL SCRIPT MAKER.. i simply want to fix this and edit this for a better script event..

     

    Change ++.w2[[email protected]]

    To (.w2[[email protected]]++) or without the parentheses

    • Love 1
  5. 14 minutes ago, Tio Akima said:

    I'm calling inside the case of SC_RUN
    in the function status_change_end  (in the status.c file)

    when this status in target ends, I want to call a skill (on the same target).
    But I do not know the function to use a skill

    this is the doubt
    It seems very simple, but I do not know hahahaha

    Let me check...

    Device too slow for me to check on GitHub,

  6. There is a function that is called on timer tick, (something like walkto) you can try finding and putting the code there, 

    Putting the code in the walkto function will affect all the units that uses that,

    I suggest putting something to identify that only this unit will die when reached an obstacle, sc status would be helpful for this,

  7. There's always an issue using someone's work,

    To avoid legal issues, you have to make everything from scratch,

     

    I suggest taking OpenGL / Vulcan for Graphics and C++ if you plan to start from scratch,

    But using engines out there is way better time saver than making your own engine too.

    • Upvote 1
  8. It is very possible,

    But an extensive knowledge needed for someone that will implement the HUD / UI part on Client side,

    The idea sounds good, but if it doesn't have any use...

    Implementing this will have to implement its use as well.

×
×
  • Create New...

Important Information

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