-
Posts
223 -
Joined
-
Last visited
-
Days Won
5
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by qtdan
-
The GTB card is making the player immune to the skill: PF_SPIDERWEB (405)
qtdan replied to Tdi123's question in General Support
- Id: 468 Name: SL_STUN Description: Estun MaxLevel: 7 Type: Magic TargetType: Attack Flags: IgnoreGtb: true Range: 9 Hit: Single HitCount: 1 Element: Endowed CastTime: 100 AfterCastActDelay: 500 Duration1: 2000 Requires: Add Flags: IgnoreGtb: true to Skill Spider Web. -
https://github.com/llchrisll/ROenglishRE here
-
@Cydh i try to add this on latest git and modified some codes i got no errors but the damage still the same, hope u upload the latest version on latest git thanksss
-
change your patcher directory from http:// to https:// since you add ssl certificate
-
Version 0.2.0
620 downloads
Hello rAthena, This tool is an item generator, to make easier to add new custom headgears on our servers. Don't hesitate to give me a feedbacks or suggestions! If you have question pm me on discord imaqtdan#1741 buy me a coffee : [email protected] PAYPALFree -
[Showcase] Weapons, Shields and more
qtdan replied to davilord's topic in Spriting & Palette Showcase
damnnnnnnnnnnnnnnnnnnnnn -
i want to do it, can you guide me?
-
is there a clear guide adding the web service support on latest rAthena trunk? TIA
-
can we have this for pre renewal calc?
-
kRO Sprite: 4th Jobs Corrected Sprites
qtdan replied to ohyono's topic in Sprites & Pallette Downloads
@ohyono can we have corrected on latest hairstyles? On Lastest rAthena Git Update 2021-11-03 Client even patch with Shared Body 1 still having this error but not dragon_knight_32, its body_32 error. -
Failed Download Link
-
@Rynbef L_monthly_reset_statue: OnTimer1200000: //OnClock0000: // refresh every 1 second for debug, change this to 30 seconds or 1 minute for (.@i = 0; .@i < 5; ++.@i) { setunitdata .pvp_ladder_statues[.@i +1], UNPC_HEADTOP, 0; setunitdata .pvp_ladder_statues[.@i +1], UNPC_HEADMIDDLE, 0; setunitdata .pvp_ladder_statues[.@i +1], UNPC_HEADBOTTOM, 0; } .@query$ = "SELECT `char`.`char_id`, `char`.`guild_id`, `char`.`name`, `char`.`class`, `char`.`sex`, `char`.`hair`, `char`.`hair_color`, `char`.`clothes_color`, `char`.`body`, `char`.`head_top`, `char`.`head_mid`, `char`.`head_bottom`, `pvpladder_epic`.`kills`, `pvpladder_epic`.`deaths` "; .@query$ += "FROM `char` RIGHT JOIN `pvpladder_epic` ON `char`.`char_id` = `pvpladder_epic`.`char_id` "; .@query$ += "ORDER BY `kills` DESC LIMIT 5"; .@nb = query_sql(.@query$, .@cid, .@guild_id, .@name$, .@class, .@sex$, .@hair, .@hair_color, .@clothes_color, .@body, .@head_top, .@head_mid, .@head_bottom, .@kills, .@deaths); for (.@i = 0; .@i < .@nb; ++.@i) { setunitdata .pvp_ladder_statues[.@i +1], UNPC_CLASS, .@class[.@i]; setunitdata .pvp_ladder_statues[.@i +1], UNPC_SEX, (.@sex$[.@i] == "F")?SEX_FEMALE:SEX_MALE; setunitdata .pvp_ladder_statues[.@i +1], UNPC_HAIRSTYLE, .@hair[.@i]; setunitdata .pvp_ladder_statues[.@i +1], UNPC_HAIRCOLOR, .@hair_color[.@i]; setunitdata .pvp_ladder_statues[.@i +1], UNPC_CLOTHCOLOR, .@clothes_color[.@i]; //setunitdata .pvp_ladder_statues[.@i +1], UNPC_BODY2, .@body[.@i]; setunitdata .pvp_ladder_statues[.@i +1], UNPC_HEADTOP, .@head_top[.@i]; setunitdata .pvp_ladder_statues[.@i +1], UNPC_HEADMIDDLE, .@head_mid[.@i]; setunitdata .pvp_ladder_statues[.@i +1], UNPC_HEADBOTTOM, .@head_bottom[.@i]; setnpcdisplay "pvp_ladder_statues#"+(.@i +1), .@name$[.@i]; .statue_name$[.@i +1] = .@name$[.@i]; .statue_guild$[.@i +1] = getguildname(.@guild_id[.@i]); .statue_kills[.@i +1] = .@kills[.@i]; .statue_deaths[.@i +1] = .@deaths[.@i]; } for (.@i = .@nb; .@i < 5; ++.@i) setunitdata .pvp_ladder_statues[.@i +1], UNPC_CLASS, HIDDEN_WARP_NPC; // HIDDEN_NPC = 111, HIDDEN_WARP_NPC = 139 if (.start) initnpctimer; else stopnpctimer; end; here on this line setunitdata .pvp_ladder_statues[.@i +1],UNPC_SEX,(.@sex$[.@i] == "F")?SEX_FEMALE:SEX_MALE; we are talking about is when the statue are appearing at the map instead pulling out the gender of the character, whenever its a male or female it only shows female.
-
Happy New Year rAthena, Thanks for Everyone. such a good community. hope we still help each other for so many years. more power rAthena, HAPPY NEW YEAR AGAIN! LETS MAKE 2022 GREAT!!!
-
Thank youuuu @Rytech early christmas present to us. more power!
-
Help flux error Message: Failed to import/replace rows from table
qtdan replied to qtdan's question in Web Support
bump -
Release: Battleground Extended 2020 ! With Bomberman/Poring Ball
qtdan replied to grenat50's topic in Source Releases
-
Help flux error Message: Failed to import/replace rows from table
qtdan posted a question in Web Support
-
how to set up the item_vending.yaml i can see the item currency but i cant buy it,
-
L_monthly_reset_statue: OnTimer1200000: //OnClock0000: // refresh every 1 second for debug, change this to 30 seconds or 1 minute for (.@i = 0; .@i < 5; ++.@i) { setunitdata .pvp_ladder_statues[.@i +1], UNPC_HEADTOP, 0; setunitdata .pvp_ladder_statues[.@i +1], UNPC_HEADMIDDLE, 0; setunitdata .pvp_ladder_statues[.@i +1], UNPC_HEADBOTTOM, 0; } .@query$ = "SELECT `char`.`char_id`, `char`.`guild_id`, `char`.`name`, `char`.`class`, `char`.`sex`, `char`.`hair`, `char`.`hair_color`, `char`.`clothes_color`, `char`.`body`, `char`.`head_top`, `char`.`head_mid`, `char`.`head_bottom`, `pvpladder_epic`.`kills`, `pvpladder_epic`.`deaths` "; .@query$ += "FROM `char` RIGHT JOIN `pvpladder_epic` ON `char`.`char_id` = `pvpladder_epic`.`char_id` "; .@query$ += "ORDER BY `kills` DESC LIMIT 5"; .@nb = query_sql(.@query$, .@cid, .@guild_id, .@name$, .@class, .@sex$, .@hair, .@hair_color, .@clothes_color, .@body, .@head_top, .@head_mid, .@head_bottom, .@kills, .@deaths); for (.@i = 0; .@i < .@nb; ++.@i) { setunitdata .pvp_ladder_statues[.@i +1], UNPC_CLASS, .@class[.@i]; setunitdata .pvp_ladder_statues[.@i +1], UNPC_SEX, (.@sex$[.@i] == "F")?SEX_FEMALE:SEX_MALE; setunitdata .pvp_ladder_statues[.@i +1], UNPC_HAIRSTYLE, .@hair[.@i]; setunitdata .pvp_ladder_statues[.@i +1], UNPC_HAIRCOLOR, .@hair_color[.@i]; setunitdata .pvp_ladder_statues[.@i +1], UNPC_CLOTHCOLOR, .@clothes_color[.@i]; //setunitdata .pvp_ladder_statues[.@i +1], UNPC_BODY2, .@body[.@i]; setunitdata .pvp_ladder_statues[.@i +1], UNPC_HEADTOP, .@head_top[.@i]; setunitdata .pvp_ladder_statues[.@i +1], UNPC_HEADMIDDLE, .@head_mid[.@i]; setunitdata .pvp_ladder_statues[.@i +1], UNPC_HEADBOTTOM, .@head_bottom[.@i]; setnpcdisplay "pvp_ladder_statues#"+(.@i +1), .@name$[.@i]; .statue_name$[.@i +1] = .@name$[.@i]; .statue_guild$[.@i +1] = getguildname(.@guild_id[.@i]); .statue_kills[.@i +1] = .@kills[.@i]; .statue_deaths[.@i +1] = .@deaths[.@i]; } for (.@i = .@nb; .@i < 5; ++.@i) setunitdata .pvp_ladder_statues[.@i +1], UNPC_CLASS, HIDDEN_WARP_NPC; // HIDDEN_NPC = 111, HIDDEN_WARP_NPC = 139 if (.start) initnpctimer; else stopnpctimer; end; OnGMCommandStart: OnMinute00: // configure time //OnMon2000: .start = true; pvpon .map$; deletearray .guild_ownage; initnpctimer; end; OnMinute59: //OnMon2045: .start = true; pvpon .map$; deletearray .guild_ownage; end; L_read: mes "["+ strnpcinfo(1) +"]"; mes "Hello! "+strcharinfo(0)+"."; mes "Join PVP! To Earn Rewards."; mes "Top 15 of the PVP Rankings will sure get an surprise reward."; next; switch(select( "Enter PvP Room", "Show Top 15 Rank", "My Ranking")) { mes "["+ strnpcinfo(1) +"]"; case 1: if (!.start) { if( BaseLevel < 999 || Class == Job_Novice ){ mes "Novice or Below level 999 cant enter."; close; } warp .map$, 0, 0; break; close; } if( BaseLevel < 999 || Class == Job_Novice ){ mes "Novice or Below level 999 cant enter."; close; } switch(rand(2)) { announce strcharinfo(0) +" entered PVP Room",bc_all,0xe57c00; default: warp .map$, 0, 0; break; case 1: warp .map$, 0, 0; break; } if (@dota_sql_kills == 0 && @dota_sql_deaths == 0) query_sql "SELECT `kills`, `deaths` FROM `pvpladder_epic` WHERE `char_id` = "+ getcharid(0), @dota_sql_kills, @dota_sql_deaths; end; case 2: .@nb = query_sql("SELECT `name`, `kills`, `deaths` FROM `pvpladder_epic` ORDER BY `kills` DESC LIMIT "+ .show_ranking, .@name$, .@kills, .@deaths); if (!.@nb) { mes "The ladder currently is empty."; close; } mes "^996600RANK: ^006699NAME ^00AA00[Kills] ^FF0000<Deaths>^000000"; for (.@i = 0; .@i < .@nb; ++.@i) mes "^996600"+ (.@i+1) +": ^006699"+ .@name$[.@i] +" ^00AA00["+ .@kills[.@i] +"] ^FF0000<"+ .@deaths[.@i] +">^000000"; close; case 3: if (!query_sql("SELECT `kills`, `deaths`, 1+(SELECT COUNT(1) FROM `pvpladder_epic` t1 WHERE t1.`kills` > t2.`kills`) FROM `pvpladder_epic` t2 WHERE `char_id` = "+ getcharid(0), .@kills, .@deaths, .@rank)) { mes "You haven't kill anybody in this month."; close; } mes "Your kills -> "+ .@kills; mes "Your deaths -> "+ .@deaths; mes "Your current rank -> "+ F_GetNumSuffix(.@rank); close; } end; OnPCKillEvent: if (.gmnokill && getgmlevel() >= .gmnokill) end; if (strcharinfo(3) != .map$) end; .@killername$ = strcharinfo(0); .@killeraid = getcharid(3); .@killercid = getcharid(0); .@killerguildid = getcharid(2); attachrid killedrid; .@victimname$ = strcharinfo(0); .@victimaid = getcharid(3); .@victimcid = getcharid(0); .@victimguildid = getcharid(2); if (@PlayersKilledStreak >= .holyshit) .@streakname$ = "Beyond Godlike"; else if (@PlayersKilledStreak >= .godlike) .@streakname$ = "Godlike"; else if (@PlayersKilledStreak >= .monsterkill) .@streakname$ = "Monster Kill"; else if (@PlayersKilledStreak >= .wickedsick) .@streakname$ = "Wicked Sick"; else if (@PlayersKilledStreak >= .unstoppable) .@streakname$ = "Unstoppable"; else if (@PlayersKilledStreak >= .megakill) .@streakname$ = "Mega-kill"; else if (@PlayersKilledStreak >= .dominating) .@streakname$ = "Dominating"; else if (@PlayersKilledStreak >= .killingspree) .@streakname$ = "Killing Spree"; if (@PlayersKilledStreak >= .killingspree && .@killeraid == .@victimaid) announce sprintf("%s has ended %s own %s[%d] streak", .@killername$, (Sex)?"him":"her", .@streakname$, @PlayersKilledStreak), bc_all,0xe57c00; else if (@PlayersKilledStreak >= .killingspree) announce sprintf("%s has ended %s's %s[%d] streak", .@killername$, .@victimname$, .@streakname$, @PlayersKilledStreak), bc_all,0xe57c00; else if (.@killeraid != .@victimaid) announce sprintf("%s has pawned %s's head", .@killername$, .@victimname$), bc_all,0xe57c00; @PlayersKilledStreak = 0; ++@dota_sql_deaths; @dota_multikills = 0; if (.@victimguildid) .guild_ownage[.@victimguildid] = 0; if (.@killeraid == .@victimaid) { query_sql "REPLACE INTO `pvpladder_epic` VALUES ("+ .@victimcid +", '"+ escape_sql(.@victimname$) +"', "+ @dota_sql_kills +", "+ @dota_sql_deaths +")"; end; } .@victim_kills = @dota_sql_kills; .@victim_deaths = @dota_sql_deaths; attachrid killerrid; ++@PlayersKilledStreak; ++@dota_sql_kills; if (@PlayersKilledStreak == .killingspree) setarray .@streakname$, "killingspree.wav", "is on a KILLING SPREE", "!"; else if (@PlayersKilledStreak == .dominating) setarray .@streakname$, "dominating.wav", "is DOMINATING", "!"; else if (@PlayersKilledStreak == .megakill) setarray .@streakname$, "megakill.wav", "has a MEGA KILL", "!"; else if (@PlayersKilledStreak == .unstoppable) setarray .@streakname$, "unstoppable.wav", "is UNSTOPPABLE", "!!"; else if (@PlayersKilledStreak == .wickedsick) setarray .@streakname$, "wickedsick.wav", "is WICKED SICK", "!!"; else if (@PlayersKilledStreak == .monsterkill) setarray .@streakname$, "monsterkill.wav", "has a MONSTER KILL", "!!"; else if (@PlayersKilledStreak == .godlike) setarray .@streakname$, "godlike.wav", "is GODLIKE", "!!!"; else if (@PlayersKilledStreak >= .holyshit && ((@PlayersKilledStreak - .holyshit) % .continue == 0)) setarray .@streakname$,"holyshit.wav", "is BEYOND GODLIKE",". Someone KILL "+( (Sex)?"HIM":"HER" ) +"!!!!!!"; if (getstrlen(.@streakname$[1])) { announce sprintf("%s %s[%d] %s", .@killername$, .@streakname$[1], @PlayersKilledStreak, .@streakname$[2]), bc_all,0xe57c00; soundeffectall .@streakname$[0], 0, .map$; } ++@dota_multikills; deltimer strnpcinfo(0) +"::OnStreakReset"; addtimer 18000, strnpcinfo(0) +"::OnStreakReset"; query_sql sprintf("REPLACE INTO `pvpladder_epic` VALUES (%d, '%s', %d, %d), (%d, '%s', %d, %d)", .@killercid, escape_sql(.@killername$), @dota_sql_kills, @dota_sql_deaths, .@victimcid, escape_sql(.@victimname$), .@victim_kills, .@victim_deaths); if (.@killerguildid && .@killerguildid != .@victimguildid) ++.guild_ownage[.@killerguildid]; .@dota_multikills = @dota_multikills; sleep 1500; if (.@killerguildid && .@killerguildid != .@victimguildid && .guild_ownage[.@killerguildid] >= .owned && ((.guild_ownage[.@killerguildid] - .owned) % .owncontinue == 0)) { announce "The guild ["+ getguildname(.@killerguildid) +"] is OWNING["+ .guild_ownage[.@killerguildid] +"] !!!", bc_all; soundeffectall "ownage.wav",0,.@map$; } sleep 1250; if (!attachrid(.@killeraid)) end; if (.@dota_multikills == 2) { announce strcharinfo(0) +" just got a Double Kill !", bc_all,0xe57c00; soundeffectall "doublekill.wav", 0, .map$; } else if (.@dota_multikills == 3) { announce strcharinfo(0) +" just got a Triple Kill !!!", bc_all,0xe57c00; soundeffectall "triplekill.wav", 0, .map$; } else if (.@dota_multikills == 4) { announce strcharinfo(0) +" just got an Ultra Kill !!!", bc_all,0xe57c00; soundeffectall "ultrakill.wav", 0, .map$; } else if (.@dota_multikills >= 5) { announce strcharinfo(0) +" is on a Rampage !!!", bc_all,0xe57c00; soundeffectall "rampage.wav", 0, .map$; } end; OnStreakReset: @dota_multikills = 0; end; OnClock0000: if (gettime(DT_DAYOFMONTH) != 1) end; L_Monthly_Reward_Rank: $pvpevent_last_given = atoi(gettime(7) +""+ gettime(6)); .@nb = query_sql("SELECT `char_id` FROM `pvpladder_epic` ORDER BY `kills` DESC LIMIT "+ .reward_monthly, .@cid); if (!.@nb) end; for (.@i = 0; .@i < .@nb; ++.@i) { setarray .@mail_itemid, getd(".reward_monthly_for_rank_"+(.@i +1)+"[1]"), getd(".reward_monthly_for_rank_"+(.@i +1)+"[3]"); setarray .@mail_amount, getd(".reward_monthly_for_rank_"+(.@i +1)+"[0]"), getd(".reward_monthly_for_rank_"+(.@i +1)+"[2]"); mail .@cid[.@i], "PvP Ladder Event", "Monthly PvP Ladder Event Rewards", "Congratulations for being "+ F_GetNumSuffix(.@i +1) +" Rank on PvP Ladder Event, this is your rewards.", 0, .@mail_itemid, .@mail_amount; } query_sql "TRUNCATE `pvpladder_epic`"; goto L_monthly_reset_statue; } function script pvp_ladder_statues { .@id = inarray(getvariableofnpc(.pvp_ladder_statues, "PvP Ladder Event"), getnpcid(0)); mes "^996600[TOP "+ .@id +"]"; mes "^006699Name : "+ getelementofarray(getvariableofnpc(.statue_name$, "PvP Ladder Event"), .@id); .@guildname$ = getelementofarray(getvariableofnpc(.statue_guild$, "PvP Ladder Event"), .@id); mes "^00AAAAGuild : "+((.@guildname$ == "null")? "^666666None": .@guildname$); mes " "; mes "^00AA00Kills : ["+ getelementofarray(getvariableofnpc(.statue_kills, "PvP Ladder Event"), .@id) +"]"; mes "^FF0000Deaths : <"+ getelementofarray(getvariableofnpc(.statue_deaths, "PvP Ladder Event"), .@id) +">"; return; } maintown,253,247,4 script pvp_ladder_statues#1 HIDDEN_WARP_NPC,{ callfunc "pvp_ladder_statues"; end; OnInit: set getvariableofnpc(.pvp_ladder_statues[1], "PvP Ladder Event"), getnpcid(0); end; } maintown,256,247,4 script pvp_ladder_statues#2 HIDDEN_WARP_NPC,{ callfunc "pvp_ladder_statues"; end; OnInit: set getvariableofnpc(.pvp_ladder_statues[2], "PvP Ladder Event"), getnpcid(0); end; } maintown,259,247,4 script pvp_ladder_statues#3 HIDDEN_WARP_NPC,{ callfunc "pvp_ladder_statues"; end; OnInit: set getvariableofnpc(.pvp_ladder_statues[3], "PvP Ladder Event"), getnpcid(0); end; } maintown,262,247,4 script pvp_ladder_statues#4 HIDDEN_WARP_NPC,{ callfunc "pvp_ladder_statues"; end; OnInit: set getvariableofnpc(.pvp_ladder_statues[4], "PvP Ladder Event"), getnpcid(0); end; } maintown,265,247,4 script pvp_ladder_statues#5 HIDDEN_WARP_NPC,{ callfunc "pvp_ladder_statues"; end; OnInit: set getvariableofnpc(.pvp_ladder_statues[5], "PvP Ladder Event"), getnpcid(0); end; } HERE
-
can you correct the code?
-
setunitdata .ladder_statues[.@i +1], UNPC_SEX, (.@sex$[.@i] == "F")?SEX_FEMALE:SEX_MALE; its only getting female all of the statues are always female.
-
[Showcase] Shrine of the Vanir (City & Interiors Project)
qtdan replied to Mina-chan's topic in Maps & 3D Modeling Showcase
beautiful -
Go to your grf clientinfo.xml <address>127.0.0.1</address> <port>6900</port> put correctly your server ip and port