Jump to content

qtdan

Members
  • Posts

    223
  • Joined

  • Last visited

  • Days Won

    5

Everything posted by qtdan

  1. - 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.
  2. https://github.com/llchrisll/ROenglishRE here
  3. @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
  4. change your patcher directory from http:// to https:// since you add ssl certificate
  5. 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] PAYPAL
    Free
  6. i want to do it, can you guide me?
  7. is there a clear guide adding the web service support on latest rAthena trunk? TIA
  8. @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.
  9. @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.
  10. 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!!!
  11. Thank youuuu @Rytech early christmas present to us. more power!
  12. @grenat50 Already added without errors but When joining individual nothing happens.
  13. how to set up the item_vending.yaml i can see the item currency but i cant buy it,
  14. 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
  15. can you correct the code?
  16. 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.
  17. Go to your grf clientinfo.xml <address>127.0.0.1</address> <port>6900</port> put correctly your server ip and port
×
×
  • Create New...