Jump to content

klesler

Members
  • Posts

    46
  • Joined

  • Last visited

Posts posted by klesler

  1. Player Build Inspection


    How it works?

    1. Talk with the NPC
    2. Input the player nick you want to spy
    3. Choose if you want to add more coins to the spy auction
    4. The victim player receives the deal.
    5. If he pays the price, he wont get stalked, if not, you get a list with all his current equipments and statuses.

    • Submitter
    • Submitted
      04/30/2018
    • Category
    • Video
    • Content Author
      Gabriel Barberini (klesler)

     

  2. Thank you for the quick answer guys! @AnnieRuru, @pajodex

    I was using .@ before, but then I tried to use @ (thinking it was a global variable) to solve a problem.

    I mean, I started a timer with initnpctimer; inside an event called proceed, then I stop this timer on the next event (N_paying) or if the timer reach 15000 (15 seconds) e.g:

    Proceed:
        initnpctimer;
    	goto N_paying;
    end;
    
    N_paying:
      stopnpctimer;
    end;
    
    OnTimer15000:
    	stopnpctimer;
    	attachrid( @PlayerSpecID );
    	mes "The player is AFK or has disconnected...";
      	close2;
    	attachrid( getcharid(3,@PlayerSpecInputName$) );
    	close;
    end;

    But the

    attachrid (.@PlayerSpecID );

    and

    attachrid( getcharid(3,.@PlayerSpecInputName$) );

    inside

    OnTimer15000:

    was not working, the console was telling me that the player was not attached, then I changed from

    .@

    to

    @

    in order to solve that (I thought it was a scope thing), but it didn't work too HAhaha!

    If you know how to overcome that too, I would really appreciate it! ? 

    Thanks!
    Gabriel.

  3. Hi rAthena!

    I'm trying to compare an input with rid2name(getcharid(3))

    E.g

    input @PlayerSpecInputName$;
    
    set .@ownName$,( rid2name(getcharid(3)) );
    	if( @PlayerSpecInputName$ == .@ownName$ ) {
    		mes "You cant use your own name";
    		close;

    But the logic is only working if the player input his own name exactly how it is written (case-sensitive),

    ex: If a player nick is 'XxXExAmPLE' and he inputs 'xxxexample', my if ( @PlayerSpecInputName$ == .@ownName$ ) wont work properly.

    Does anybody know how to overcome that ?

    Thanks in advance! ?

    Best,
    Gabriel.

  4. I tested it with some changes:

     

    .@m = select(implode(.@MapList$,":")) - 1;
    			if(.MapMode[.@m]&2){
    				mes "You are about to enter NIGHTMARE PvP, on death you will lose gear randomly.";
    				if(select("Nevermind:Continue") == 2) {
    						if(.MaxPlayers[.@m] && getmapusers(.MapName$[.@m]) >= .MaxPlayers[.@m]){
    								mes "Room is Full.";
    								close;
    							} else	if(.MapMode[.@m]&8 && (countitem(607) || countitem(608))){
    							 	mes "No "+getitemname(607)+" or "+getitemname(608)+" Allowed.";
    							 	close;
    						 	} else 	if(.MapMode[.@m]&16){
    								mes "No 3rd Classes Allowed.";
    								close;
    							} else	if(.MapMode[.@m]&32){
    								mes "No Trans Classes Allowed.";
    								close;
    							} else {
    								warp .MapName$[.@m],0,0;
    								announce "[ PvP Warper ] "+strcharinfo(0)+" has entered in "+((.MapMode[.@m]&1)?"GvG":"PvP")+" Room",0,((.MapMode[.@m]&1)?0x00CC99:0xEE0000);
    							}
    				} else { close; }
    			}
    	}
    	end;

    And it worked well, maybe it just need some refactoring, but I'll let this part with you :D

    The problem was indeed caused by the close; right after your if () {

    Best,
    Gabriel.

  5. case 1:
    			.@m = select(implode(.MapList$,":")) - 1;
    			.@executa = 1;
    			if( .MapMode[.@m]&2 ){
    				mes "You are about to enter NIGHTMARE PvP, on death you will lose gear randomly.";
    				if(select("Nevermind:Continue") != 2) .@executa = 0;
    			}
    			
    			if(getmapusers(.MapName$[.@m]) >= .MaxPlayers[.@m]){
    				mes "Sala Cheia.";
    				.@executa = 0;
    			} else	if(.MapMode[.@m]&8 && (countitem(607) || countitem(608))){
    				mes "No "+getitemname(607)+" or "+getitemname(608)+" allowed.";
    				.@executa = 0;
    			} else 	if(.MapMode[.@m]&16){
    				mes "No 3rd Classes Allowed.";
    				.@executa = 0;
    			} else	if(.MapMode[.@m]&32){
    				mes "No Trans Classes Allowed.";
    				.@executa = 0;
    			} 
    			
    			if (.@executa == 1) { 
    				warp .MapName$[.@m],0,0;
    				announce "[ PvP Warper ] " + strcharinfo(0)+" has entered in "+((.MapMode[.@m]&1)?"GvG":"PvP")+" "+((.MapMode[.@m]&2)?"Nightmare":" "),0,((.MapMode[.@m]&1)?0x00CC99:0xEE0000);			
    			} else {
    				close;
    			}
    	}

    I think the close; right after the if() is causing the issue, I solved it a long time ago by just separating it in a case.

    Let me re-write the bug report, since I struggled to express myself the previous post:

    1 - The nightmare room is not working as intended, even if I choose to enter, I'm not getting teleported

    2 - It seems that the banner/chat which appears above the NPC is not being updated with the number of players inside the rooms

    Best,
    Gabriel.

  6. So 

     if (!.var)

    means 'if var is empty' ?

    If I want it to be true if not empty, should i only use :

    if (.var)

    Or should I use

    if (!(!.var))

    ?

     

    I was afraid that !.var would only check if .var exists, not validate its value.

  7. I'm calling it "platinum skills" but actually it is just normal skills which Doram players from my server are not able to get.

    I fixed it by adding this on Switch (BaseClass) {

    	case Job_Summoner:
    		skill "SU_HISS",1,SKILL_PERM;
    		skill "SU_POWEROFFLOCK",1,SKILL_PERM;
    		skill "SU_SVG_SPIRIT",1,SKILL_PERM;
    		skill "SU_SPIRITOFLIFE",1,SKILL_PERM;
    		skill "SU_CHATTERING",1,SKILL_PERM;
    		skill "SU_MEOWMEOW",1,SKILL_PERM;
    		skill "SU_NYANGGRASS",1,SKILL_PERM;
    		skill "SU_SPIRITOFLAND",1,SKILL_PERM;
    		skill "SU_SPIRITOFSEA",1,SKILL_PERM;
    		skill "SU_SHRIMPARTY",1,SKILL_PERM;
    		skill "SU_PURRING",1,SKILL_PERM;
    		skill "SU_GROOMING",1,SKILL_PERM;
    		break;

    But some skills still not saving

    Best,
    Gabriel

     

     

  8. Hi Rathena,

    I was looking into F_GetPlatinumSkills function in other/Global_Functions.txt and I could not find any case for Job_Summoner

    //////////////////////////////////////////////////////////////////////////////////
    // Gives attached player their Platinum Skill based on their class.
    //////////////////////////////////////////////////////////////////////////////////
    function	script	F_GetPlatinumSkills	{
    	skill "NV_FIRSTAID",1,SKILL_PERM;
    	switch (BaseClass) {
    	case Job_Novice:
    		if (Class != Job_Super_Novice)
    			skill "NV_TRICKDEAD",1,SKILL_PERM;
    		break;
    	case Job_Swordman:
    		skill "SM_MOVINGRECOVERY",1,SKILL_PERM;
    		skill "SM_FATALBLOW",1,SKILL_PERM;
    		skill "SM_AUTOBERSERK",1,SKILL_PERM;
    		break;
    	case Job_Mage:
    		skill "MG_ENERGYCOAT",1,SKILL_PERM;
    		break;
    	case Job_Archer:
    		skill "AC_MAKINGARROW",1,SKILL_PERM;
    		skill "AC_CHARGEARROW",1,SKILL_PERM;
    		break;
    	case Job_Acolyte:
    		skill "AL_HOLYLIGHT",1,SKILL_PERM;
    		break;
    	case Job_Merchant:
    		skill "MC_CARTREVOLUTION",1,SKILL_PERM;
    		skill "MC_CHANGECART",1,SKILL_PERM;
    		skill "MC_LOUD",1,SKILL_PERM;
    		if(PACKETVER >= 20150826)
    			skill "MC_CARTDECORATE",1,SKILL_PERM;
    		break;
    	case Job_Thief:
    		skill "TF_SPRINKLESAND",1,SKILL_PERM;
    		skill "TF_BACKSLIDING",1,SKILL_PERM;
    		skill "TF_PICKSTONE",1,SKILL_PERM;
    		skill "TF_THROWSTONE",1,SKILL_PERM;
    		break;
    	default:
    		break;
    	}
    	switch (BaseJob) {
    	case Job_Knight:
    		skill "KN_CHARGEATK",1,SKILL_PERM;
    		break;
    	case Job_Priest:
    		skill "PR_REDEMPTIO",1,SKILL_PERM;
    		break;
    	case Job_Wizard:
    		skill "WZ_SIGHTBLASTER",1,SKILL_PERM;
    		break;
    	case Job_Blacksmith:
    		skill "BS_UNFAIRLYTRICK",1,SKILL_PERM;
    		skill "BS_GREED",1,SKILL_PERM;
    		break;
    	case Job_Hunter:
    		skill "HT_PHANTASMIC",1,SKILL_PERM;
    		break;
    	case Job_Assassin:
    		skill "AS_SONICACCEL",1,SKILL_PERM;
    		skill "AS_VENOMKNIFE",1,SKILL_PERM;
    		break;
    	case Job_Crusader:
    		skill "CR_SHRINK",1,SKILL_PERM;
    		break;
    	case Job_Monk:
    		skill "MO_KITRANSLATION",1,SKILL_PERM;
    		skill "MO_BALKYOUNG",1,SKILL_PERM;
    		break;
    	case Job_Sage:
    		skill "SA_CREATECON",1,SKILL_PERM;
    		skill "SA_ELEMENTWATER",1,SKILL_PERM;
    		skill "SA_ELEMENTGROUND",1,SKILL_PERM;
    		skill "SA_ELEMENTFIRE",1,SKILL_PERM;
    		skill "SA_ELEMENTWIND",1,SKILL_PERM;
    		break;
    	case Job_Rogue:
    		skill "RG_CLOSECONFINE",1,SKILL_PERM;
    		break;
    	case Job_Alchemist:
    		skill "AM_BIOETHICS",1,SKILL_PERM;
    		break;
    	case Job_Bard:
    		skill "BA_PANGVOICE",1,SKILL_PERM;
    		break;
    	case Job_Dancer:
    		skill "DC_WINKCHARM",1,SKILL_PERM;
    		break;
    	default:
    		break;
    	}
    	return;
    }

    Does anybody knows if there is already a solution to overcome that ?

    OBS: If not it is ok, I'll make the changes myself and post it back here, but I would adore to not spend time on reinventing the wheel hahah :) 

    Best,
    Gabriel.

  9. 6 hours ago, Cyro said:

    Those aren't scripts, those are upgrades/adjustments for latest rathena sql database!

    If you are already having latest rathena all this updates would be included in sql-files itself,

     

    you can update your sql db when you update your rathena to latest version from upgrades folder

     

    Nice!

    Thanks Cyro, then I probably dont need to run it... Since I downloaded rAthena last week my server is probably already with the updated sql.

  10. Also, one more problem:

    PvP room is not updating the number of players inside. If some one enters the room, it stills 0/maxplayers.

    Any clue on what can be happening?

     

    ((.MaxPlayers[.@i])?"["+getmapusers(.MapName$[.@i])+"/"+.MaxPlayers[.@i]+"]":"");
    //===== Dont Touch - Menu & Mapflag Generation =============
    	for(.@i = 0; .@i < getarraysize(.MapName$); .@i++){
    		.MapList$[.@i] = "["+ ((.MapMode[.@i]&2)?"^EE3333Pesadelo ":"") + 
    			((.MapMode[.@i]&4)?"Party ":"") + 
    			((.MapMode[.@i]&1)?"GvG":"PvP") +"^000000] "+ 
    			((.MapMode[.@i] >= 8)?"Sem ":"") + 
    			((.MapMode[.@i]&8)?"Ygg ":"") + 
    			((.MapMode[.@i]&16)?"3rds ":"") + 
    			((.MapMode[.@i]&32)?"Trans ":"") + 
    			((.MapMode[.@i]&64)?.MapName$[.@i]:"") + 
    			((.MaxPlayers[.@i])?"["+getmapusers(.MapName$[.@i])+"/"+.MaxPlayers[.@i]+"]":"");
    		for ( .@f = 0; .@f < .@size; .@f++ )
    			setmapflag .MapName$[.@i], .mapflag[.@f];
    		if(.MapMode[.@i]&4) setmapflag .MapName$[.@i], mf_partylock;
    		if(.MapMode[.@i]&2) setmapflag .MapName$[.@i], MF_NIGHTMAREDROP;
    		if(.MapMode[.@i]&1){
    			setmapflag .MapName$[.@i], MF_GUILDLOCK;
    			setmapflag .MapName$[.@i], MF_GVG;
    		} else{
    			setmapflag .MapName$[.@i], MF_PVP_NOGUILD;
    			setmapflag .MapName$[.@i], MF_PVP;
    		}
    		if(!.MapMode[.@i]&4){
    			if(.MapMode[.@i]&1) setmapflag .MapName$[.@i], MF_GVG_NOPARTY;
    				else	setmapflag .MapName$[.@i], MF_NOPARTY;
    		}
    	}

    Best,

    Gabriel.

  11. On 3/12/2017 at 6:22 AM, whodhell said:

    where can i convert it to english??

    Still The same issue for me

    		case 1:
    			.@m = select(implode(.MapList$,":")) - 1;
    			.@executa = 1;
    			if( .MapMode[.@m]&2 ){
    				mes "You are about to enter NIGHTMARE PvP, on death you will lose gear randomly.";
    				if(select("Nevermind:Continue") != 2) .@executa = 0;
    			}
    			
    			if(getmapusers(.MapName$[.@m]) >= .MaxPlayers[.@m]){
    				mes "Sala Cheia.";
    				.@executa = 0;
    			} else	if(.MapMode[.@m]&8 && (countitem(607) || countitem(608))){
    				mes "No "+getitemname(607)+" or "+getitemname(608)+" allowed.";
    				.@executa = 0;
    			} else 	if(.MapMode[.@m]&16){
    				mes "No 3rd Classes Allowed.";
    				.@executa = 0;
    			} else	if(.MapMode[.@m]&32){
    				mes "No Trans Classes Allowed.";
    				.@executa = 0;
    			} 
    			
    			if (.@executa == 1) { 
    				warp .MapName$[.@m],0,0;
    				announce "[ PvP Warper ] " + strcharinfo(0)+" has entered in "+((.MapMode[.@m]&1)?"GvG":"PvP")+" "+((.MapMode[.@m]&2)?"Nightmare":" "),0,((.MapMode[.@m]&1)?0x00CC99:0xEE0000);			
    			} else {
    				close;
    			}
    	}

    Sorry. I made a mistake in the last code, try this above. Already translated for you.

  12. Hello rAthena fellows.

    I was trying to use mail system on 2015-11-02aRagexe, but it seems that it is not compatible anymore with this patch version. So I tried to use RODEX and it seems that it is not compatible too.

    Can anyone give a light here about this?

    They disabled both systems so we cant use mail features anymore? Why???

    Best,

    Gabriel.

  13. Is it possible to run client-side with a 2016-12-28aRagexeRE.exe ?

    Because I'm getting this message when login:

    "Please check tota character numbers"
    "(RequirePage 87557 / RequestePage 3)"

    Also this on my server log:

    "Rejected from server"
    [Info]: clif_parse: Disconnecting session #3 with unknown packet version (p:0x086d,l:19).

    Best,

    Gabriel.

×
×
  • Create New...