Jump to content

Patskie

Members
  • Posts

    1702
  • Joined

  • Last visited

  • Days Won

    19

Everything posted by Patskie

  1. You can back up your eathena global_reg_value table i guess because eathena and rathena global_reg_value table is almost the same eAthena ---- CREATE TABLE IF NOT EXISTS `global_reg_value` ( `char_id` int(11) unsigned NOT NULL default '0', `str` varchar(255) NOT NULL default '', `value` varchar(255) NOT NULL default '0', `type` tinyint(1) NOT NULL default '3', `account_id` int(11) unsigned NOT NULL default '0', PRIMARY KEY (`char_id`,`str`,`account_id`), KEY `account_id` (`account_id`), KEY `char_id` (`char_id`) ) ENGINE=MyISAM; rAthena ---- CREATE TABLE IF NOT EXISTS `global_reg_value` ( `char_id` int(11) unsigned NOT NULL default '0', `str` varchar(255) NOT NULL default '', `value` varchar(255) NOT NULL default '0', `type` tinyint(1) NOT NULL default '3', `account_id` int(11) unsigned NOT NULL default '0', PRIMARY KEY (`char_id`,`str`,`account_id`), KEY `account_id` (`account_id`) ) ENGINE=MyISAM;
  2. Maybe u can use onpcloadmap event and unbindatcmd
  3. Your request is in not detailed manner like who will create the serial number for the npc? is it the admin or what? From what i have seen on this post i conclude that u want something like this http://rathena.org/board/topic/63332-coupon-npc-112/?p=100384 just change the prize to #CASHPOINTS
  4. What emulator u using? Did you execute these files on your database?
  5. Index: src/map/battle.c =================================================================== --- src/map/battle.c (revision 15817) +++ src/map/battle.c (working copy) @@ -233,10 +233,8 @@ nullpo_ret(target); sc = status_get_sc(target); - - if( sc && sc->data[SC_DEVOTION] && damage > 0 && skill_id != PA_PRESSURE && skill_id != CR_REFLECTSHIELD ) + //devotion patch by Cyrix (rathena) ([email protected]) +//https://www.facebook.com/ragdb.ragnarok +if( sc && sc->data[SC_DEVOTION] && damage > 0 && skill_id != PA_PRESSURE && skill_id != CR_REFLECTSHIELD ) damage = 0; - if ( !battle_config.delay_battle_damage || amotion <= 1 ) { map_freeblock_lock(); status_fix_damage(src, target, damage, ddelay); // We have to seperate here between reflect damage and others [icescope] @@ -4186,7 +4184,7 @@ } else status_change_end(target, SC_DEVOTION, INVALID_TIMER); - } + } if (sc && sc->data[SC_AUTOSPELL] && rnd()%100 < sc->data[SC_AUTOSPELL]->val4) { int sp = 0; Index: src/map/pc.c =================================================================== --- src/map/pc.c (revision 15817) +++ src/map/pc.c (working copy) @@ -6078,8 +6078,7 @@ for(k = 0; k < 5; k++) if (sd->devotion[k]){ struct map_session_data *devsd = map_id2sd(sd->devotion[k]); - if (devsd) - status_change_end(&devsd->bl, SC_DEVOTION, INVALID_TIMER); + //devotion patch by Cyrix (rathena) ([email protected]) +//https://www.facebook.com/ragdb.ragnarok + if (devsd) status_change_end(&devsd->bl,SC_DEVOTION,-1); sd->devotion[k] = 0; } Index: src/map/status.c =================================================================== --- src/map/status.c (revision 15817) +++ src/map/status.c (working copy) @@ -1015,31 +1015,43 @@ // if (!target->prev && !(flag&2)) // return 0; //Cannot damage a bl not on a map, except when "charging" hp/sp - sc = status_get_sc(target); - if( hp && battle_config.invincible_nodamage && src && sc && sc->data[SC_INVINCIBLE] && !sc->data[SC_INVINCIBLEOFF] ) - hp = 1; + //devotion patch by Cyrix (rathena) ([email protected]) +//https://www.facebook.com/ragdb.ragnarok + sc = status_get_sc(target); + - if( hp && !(flag&1) ) { + if( hp && !(flag&(1|8)) ) { if( sc ) { struct status_change_entry *sce; + if( (sce = sc->data[SC_DEVOTION]) && src && battle_getcurrentskill(src) != PA_PRESSURE ) + { // Devotion prevents any of the other ailments from ending. + struct block_list *d_bl = map_id2bl(sce->val1); + + if( d_bl && ( + (d_bl->type == BL_MER && ((TBL_MER*)d_bl)->master && ((TBL_MER*)d_bl)->master->bl.id == target->id) || + (d_bl->type == BL_PC && ((TBL_PC*)d_bl)->devotion[sce->val2] == target->id) + ) && check_distance_bl(target, d_bl, sce->val3) ) + { + clif_damage(d_bl, d_bl, gettick(), 0, 0, hp, 0, 0, 0); + status_fix_damage(NULL, d_bl, hp, 0); + return 0; + } + + status_change_end(target, SC_DEVOTION, -1); + } if (sc->data[SC_STONE] && sc->opt1 == OPT1_STONE) - status_change_end(target, SC_STONE, INVALID_TIMER); - status_change_end(target, SC_FREEZE, INVALID_TIMER); - status_change_end(target, SC_SLEEP, INVALID_TIMER); - status_change_end(target, SC_WINKCHARM, INVALID_TIMER); - status_change_end(target, SC_CONFUSION, INVALID_TIMER); - status_change_end(target, SC_TRICKDEAD, INVALID_TIMER); - status_change_end(target, SC_HIDING, INVALID_TIMER); - status_change_end(target, SC_CLOAKING, INVALID_TIMER); - status_change_end(target, SC_CHASEWALK, INVALID_TIMER); - status_change_end(target, SC_CAMOUFLAGE, INVALID_TIMER); - status_change_end(target, SC__INVISIBILITY, INVALID_TIMER); - status_change_end(target, SC_DEEPSLEEP, INVALID_TIMER); + status_change_end(target,SC_STONE,-1); + status_change_end(target,SC_FREEZE,-1); + status_change_end(target,SC_SLEEP,-1); + status_change_end(target,SC_WINKCHARM,-1); + status_change_end(target,SC_CONFUSION,-1); + status_change_end(target,SC_TRICKDEAD,-1); + status_change_end(target,SC_HIDING,-1); + status_change_end(target,SC_CLOAKING,-1); + status_change_end(target,SC_CHASEWALK,-1); if ((sce=sc->data[SC_ENDURE]) && !sce->val4) { //Endure count is only reduced by non-players on non-gvg maps. //val4 signals infinite endure. [Skotlex] if (src && src->type != BL_PC && !map_flag_gvg(target->m) && !map[target->m].flag.battleground && --(sce->val2) < 0) - status_change_end(target, SC_ENDURE, INVALID_TIMER); + status_change_end(target, SC_ENDURE, -1); } if ((sce=sc->data[SC_GRAVITATION]) && sce->val3 == BCT_SELF) { struct skill_unit_group* sg = skill_id2group(sce->val4); @@ -8235,14 +8247,14 @@ for( i = 0; i < 5; i++ ) { if( sd->devotion && (tsd = map_id2sd(sd->devotion)) && tsd->sc.data[type] ) - status_change_end(&tsd->bl, type, INVALID_TIMER); + status_change_end(&tsd->bl, type, -1); } } else if( bl->type == BL_MER && ((TBL_MER*)bl)->devotion_flag ) { // Clear Status from Master tsd = ((TBL_MER*)bl)->master; if( tsd && tsd->sc.data[type] ) - status_change_end(&tsd->bl, type, INVALID_TIMER); + status_change_end(&tsd->bl, type, -1); } } break; @@ -8258,10 +8270,10 @@ clif_devotion(d_bl, NULL); } - status_change_end(bl, SC_AUTOGUARD, INVALID_TIMER); - status_change_end(bl, SC_DEFENDER, INVALID_TIMER); - status_change_end(bl, SC_REFLECTSHIELD, INVALID_TIMER); - status_change_end(bl, SC_ENDURE, INVALID_TIMER); + status_change_end(bl,SC_AUTOGUARD,-1); + status_change_end(bl,SC_DEFENDER,-1); + status_change_end(bl,SC_REFLECTSHIELD,-1); + status_change_end(bl,SC_ENDURE,-1); } break;
  6. Check ur lua files
  7. Patskie

    No Card Drop

    // The rate the common items are dropped (Items that are in the ETC tab, besides card) item_rate_common: 1000000 item_rate_common_boss: 1000000 item_drop_common_min: 1 item_drop_common_max: 10000 // The rate healing items are dropped (items that restore HP or SP) item_rate_heal: 1000000 item_rate_heal_boss: 1000000 item_drop_heal_min: 1 item_drop_heal_max: 10000 // The rate at which usable items (in the item tab) other then healing items are dropped. item_rate_use: 1000000 item_rate_use_boss: 1000000 item_drop_use_min: 1 item_drop_use_max: 10000 // The rate at which equipment is dropped. item_rate_equip: 10000 item_rate_equip_boss: 10000 item_drop_equip_min: 1 item_drop_equip_max: 10000 // The rate at which cards are dropped item_rate_card: 1000000 item_rate_card_boss: 250000 item_drop_card_min: 1 item_drop_card_max: 10000 // The rate adjustment for the MVP items that the MVP gets directly in their inventory item_rate_mvp: 10000 item_drop_mvp_min: 1 item_drop_mvp_max: 10000 // The rate adjustment for card-granted item drops. item_rate_adddrop: 10000 item_drop_add_min: 1 item_drop_add_max: 10000 // Rate adjustment for Treasure Box drops (these override all other modifiers) item_rate_treasure: 10000 item_drop_treasure_min: 1 item_drop_treasure_max: 10000
  8. maybe you can post your script?
  9. Patskie

    NPC Captcha

    Post your gold room script here
  10. Did you portforward your router?
  11. Portforward your router or maybe you can use hamachi (no-ip)
  12. Maybe we can add a translation for filipino msg_conf
  13. +1 rep We really need this kind of party command!
  14. 1. Diff a ragexeRE client 2. Do portforwarding so others can connect on your server
  15. SVN you are using?
  16. Install Creator
  17. Make things easier.
  18. prontera,110,56,3<TAB>script<TAB>Freebies Coin<TAB>962,{
  19. Use getitem2 instead of getitem if you want your players have the +7 freebies. *getitem2 <item id>,<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>{,<account ID>}; *getitem2 "<Item name>",<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>{,<account ID>}; This command will give an amount of specified items to the invoking character. If an optional account ID is specified, and the target character is currently online, items will be created in their inventory instead. If they are not online, nothing will happen. It works essentially the same as 'getitem' (it even works for negative ID numbers the same way, which is kinda silly) but is a lot more flexible, since it allows you to give the player an item altered with it's specific properties. Those parameters that are different from 'getitem' are: identify - Whether you want the item to be identified or not, 0 unidentified, 1 identified. refine - For how many pluses will it be refined. It will not let you refine an item higher than +10, if you specify more it'll still be 10. attribute - Whether the item is broken (1) or not (0) and NOT an elemental attribute. card1,2,3,4 - If you want a card compound to it, place the card ID number into the specific card slot. Card ID numbers also found in 'db/item_db.txt' Card1-card4 values are also used to store name information for named items, as well as the elemental property of weapons and armor. You can create a named item in this manner, however, if you just need a named piece of standard equipment, it is much easier to the 'getnameditem' function instead.
  20. Why not use @request command?
  21. Another link : http://pastebin.com/raw.php?i=WvrcKeDZ prontera,148,171,6 script Arena Master 808,{ mes "[PvP Warper]"; menu "Deathmatch [" + getmapusers("guild_vs2") + " / 2]",L1, "Normal PVP [" + getmapusers("guild_vs3") + " / 2]",L2, L1: if (getmapusers("guild_vs2") > 1) goto Lsorry; warp "guild_vs2",49,49; end; L2: if (getmapusers("guild_vs3") > 1) goto Lsorry; warp "guild_vs3",49,49; end; Lsorry: mes "[PvP Warper]"; mes "Sorry but this PvP Arena is full, maybe you could try another one."; close; L_No: end; OnPCDieEvent: if(strcharinfo(3) == "guild_vs2") { dispbottom "You will respawn in 3 Seconds."; sleep2 3000; atcommand "@alive"; atcommand "@heal"; warp "guild_vs2",0,0; } if(strcharinfo(3) == "guild_vs3") { dispbottom "You will respawn in 3 Seconds."; sleep2 3000; warp "savepoint",0,0; } end; } // Mapflags guild_vs2 mapflag pvp guild_vs3 mapflag pvp guild_vs2 mapflag nowarp guild_vs3 mapflag nowarp
  22. Dota Sound ( Put these on your data/wav folder ) : wav.rar Warper : prontera,150,150,0 script Warper 100,{ warp <map>,<x>,<y>; end; } Ladder : //===== eAthena Script ======================================= //= eAthena PVP-Ladder //===== By: ================================================== //= Terces //===== Current Version: ===================================== //= 1.7.2 //===== Compatible With: ===================================== //= Any Athena Version that has "for" implemented //===== Credits: ============================================= //= The whole eAthena Board and the eAthena Chat //===== Notes: =============================================== //= Note 1: //= Experience gain works like this formula: //= ($@LadderLength-(<new position>-1))*$@LadderExp //= so if someone gets the first place he'll get //= $@LadderLength*$@LadderExp experience points. //============================================================ //= Fixxed by Dante //= V1.7.2 //= Hosted by Dant3 aka Dante // HAFE FUN! READ THE TOPIC! IT DONT WORKS MAYBE ON OLDER REV // // // LAST UPDATE: 12th,February.2008 // // Main Script - Terces (Main Thanks to Terces ) // V1.7.0 - Dant3 // v1.7.1 - AnnieRuRu // v1.7.2 - Dant3 // THIS SCRIPT WORKS ONLY ON THE NEW EATHENA REVISIONS! ENJOY! - script PVPLADDEROPTIONS -1,{ end; OnInit: // 0 = Disabled (NO) // 1 = Enable (YES) set $@languageselect, 0; //Enable/Disable language selection [English/German] (Default: 1) set $@LadderAnnounce, 0; //Enable/Disable the announcement when a char reaches a new position in the ladder (Default: 1) set $@LadderLength, 30; //Set the length of the Ladder [!Not higher than 128!] (Default: 30) set $@LadderSteps, 10; //Set the views per page (Default: 10) set $@LadderExpGain, 100; //Enable/Disable experience gain when reaching a new position in the ladder (*Note1) set $@LadderExp, 150; //Set Experience gain value (*Note1) // Update v1.7.0 set $@LadderZenyGain, 1; //Enable/Disable zeny gain when reaching a new position in the ladder set $@LadderZeny, 100; //Set Zeny gain value set $@LadderChatRoom, 1; //Enable/Disable an Chat Room over the NPC with the message "PvP Ladder" (Users can not enter the Chat room) // Update v1.7.1 (Thanks to AnnieRuRu) // Added GM PvP Ladder Reset Function // Update v1.7.2 // Thanks to for the Feedback set $@LadderAskLogin, 1; //Enable/Disable that the NPC asks about the Broadcast when a Player logins / or with the Npc Chat (0 = Login Ask , 1 = Npc Chat) Related: 0 } - script PVPLADDERS -1,{ OnPCKillEvent: if (terces_PVP_resets != $terces_PVP_resets) { dispbottom "Please relog your character, in order to get the correct kills for you in the PVP ladder."; dispbottom "Because a GM just reset the ladder."; end; } if ( killedrid == getcharid(3) ) { set PVPDeaths, PVPDeaths +1; set #PVPDeathsAccount, #PVPDeathsAccount +1; set @PVPDeathstoday, @PVPDeathstoday +1; end; } set $@PVPcounter,$@PVPcounter+1; set getd("$@PVPKill"+$@PVPcounter),getcharid(3); //getd to avoid errors when more than 1 people kill someone attachrid(killedrid); set PVPDeaths,PVPDeaths+1; set @PVPDeathstoday,@PVPDeathstoday+1; set #PVPDeathsAccount,#PVPDeathsAccount+1; set getd("$@PVPkilledplayer"+$@PVPcounter+"$"), strcharinfo(0); //again, getd to avoid possible glitches detachrid; attachrid(getd("$@PVPKill"+$@PVPcounter)); CountKills: set PVPKills,PVPKills+1; set @PVPKillstoday,@PVPKillstoday+1; set #PVPKillsAccount,#PVPKillsAccount+1; setarray @playerstats[0],@PVPKillstoday,@PVPDeathstoday,PVPKills,PVPDeaths,#PVPKillsAccount,#PVPDeathsAccount; l_ladder: set @considerdeath,0; for (set @PosinLadder, 0; @PosinLadder < $@LadderLength; set @PosinLadder, @PosinLadder + 1){ if (PVPKills >= $terces_PVP_kills[@PosinLadder]){ //Player deserves to be in the ladder //Check if Death plays a role on the position if ((PVPKills == $terces_PVP_kills[@PosinLadder]) && (PVPDeaths > $terces_PVP_deaths[@PosinLadder])) set @considerdeath,1; //Consider Deaths //Check if the player only topped his own scores if ($terces_PVP_names$[@PosinLadder] == strcharinfo(0)){ set $terces_PVP_kills[@PosinLadder],PVPKills; set $terces_PVP_deaths[@PosinLadder],PVPDeaths; end; } //Moves all characters in the Ladder for (set @beginmoving, $@LadderLength; @beginmoving >= (@PosinLadder+@considerdeath); set @beginmoving, @beginmoving - 1){ if ($terces_PVP_names$[@beginmoving] == strcharinfo(0)){ //If the player already is in the Ladder it only has to move players between characters new position and characters old position callsub L_LadderMove,0; end; } else if (@beginmoving == (@PosinLadder+@considerdeath)){ //Player is not in the Ladder and therefor it has to move all players from characters new position downwards callsub L_LadderMove,1; end; } } end; } } L_LadderMove: if (getarg(0) == 0) set @length,@beginmoving; if (getarg(0) == 1) set @length,$@LadderLength; for (set @movecycle, @length; @movecycle > (@PosinLadder+@considerdeath); set @movecycle, @movecycle - 1){ set $terces_PVP_names$[@movecycle],$terces_PVP_names$[(@movecycle-1)]; set $terces_PVP_kills[@movecycle],$terces_PVP_kills[(@movecycle-1)]; set $terces_PVP_deaths[@movecycle],$terces_PVP_deaths[(@movecycle-1)]; set $terces_PVP_times[@movecycle],$terces_PVP_times[(@movecycle-1)]; } //sets the character's stats in the new position set $terces_PVP_names$[(@PosinLadder+@considerdeath)],strcharinfo(0); set $terces_PVP_kills[(@PosinLadder+@considerdeath)],PVPKills; set $terces_PVP_deaths[(@PosinLadder+@considerdeath)],PVPDeaths; set $terces_PVP_times[(@PosinLadder+@considerdeath)],gettimetick(2); //Experience Gain if ($@LadderExpGain == 1){ set BaseExp,BaseExp+(($@LadderLength-((@PosinLadder+@considerdeath)-1))*$@LadderExp); dispbottom "You have just been rewarded with "+(($@LadderLength-((@PosinLadder+@considerdeath)-1))*$@LadderExp)+" base experience points"; } //Zeny Gain if ($@LadderZenyGain == 1){ set Zeny,Zeny+(($@LadderLength-((@PosinLadder+@considerdeath)-1))*$@LadderZeny); dispbottom "You have just been rewarded with "+(($@LadderLength-((@PosinLadder+@considerdeath)-1))*$@LadderZeny)+" Zeny"; } //Announcement (Setting for Char) if (pvpbroadcast == 2){ announce strcharinfo(0)+" just claimed the "+((@PosinLadder+@considerdeath)+1)+". Position in the Top "+$@LadderLength+" after killing "+getd("$@PVPkilledplayer"+$@PVPcounter+"$")+".",16; } //Announcement (Setting for Account) if (#pvpbroadcast == 2){ announce strcharinfo(0)+" just claimed the "+((@PosinLadder+@considerdeath)+1)+". Position in the Top "+$@LadderLength+" after killing "+getd("$@PVPkilledplayer"+$@PVPcounter+"$")+".",16; } end; OnPCLoginEvent: if (terces_PVP_resets != $terces_PVP_resets){ set PVPDeaths,0; set @PVPDeathstoday,0; set #PVPDeathsAccount,0; set PVPKills,0; set @PVPKillstoday,0; set #PVPKillsAccount,0; set terces_PVP_resets,$terces_PVP_resets; } if ($@LadderAskLogin == 0){ if (#pvpbroadcast == 2) goto L_ignore; if (pvpbroadcast == 2) goto L_ignore; if (#pvpbroadcast == 1) goto L_ignore; if (pvpbroadcast == 1) goto L_ignore; if (pvpbroadcast == 0) mes "Hi, "+strcharinfo(0)+""; mes "Me is the PvP Top Management!"; mes "Let me ask you one Question and i will let you play!"; menu "Later please",L_close,"Okay, fine",L_fine; L_fine: next; mes "Well, do you want read Broadcast Messages when a Player reach a new position on the PvP Ranglist?"; menu "Yeah, why not",L_accept,"No, thanks",L_accept_2,"Wtf is Broadcast?",L_broadcast; L_accept: next; mes "Yay, thank you! ^_^"; mes "Will this Setting work on all your Chars on this account or only this char?"; menu "Account",L_account,"Only this char",L_char; L_account: set #pvpbroadcast,2; next; mes "Okay, "+strcharinfo(0)+""; mes "Thank you for your time and have fun!"; close; L_char: set pvpbroadcast,2; next; mes "Okay, "+strcharinfo(0)+""; mes "Thank you for your time and have fun!"; goto access_eng; close; L_accept_2: next; mes "Yay, thank you! ^_^"; mes "Will this Setting work on all your Chars on this account or only this char?"; menu "Account",L_account_2,"Only this char",L_char_2; L_close: close; L_account_2: set #pvpbroadcast,1; next; mes "Okay, "+strcharinfo(0)+""; mes "Thank you for your time and have fun!"; close; L_char_2: set pvpbroadcast,1; next; mes "Okay, "+strcharinfo(0)+""; mes "Thank you for your time and have fun!"; goto access_eng; close; L_broadcast: mes "Broadcasts are this yellow messages from the GMs"; goto L_fine; } } prontera,168,178,1 script PvP Ladder 57,{ if ($@LadderChatRoom == 1) { waitingroom "Top "+$@LadderLength+" Players!",0; // Look on the configuration! } set @name$,"[PvP-Ladder]"; //Colour of: Position Name Kills Deaths Time setarray @colour$[0], "^996600", "^006699", "^00AA00", "^FF0000", "^EE8800"; if ($@LadderAskLogin == 1){ if (#pvpbroadcast == 2) goto access_eng; if (pvpbroadcast == 2) goto access_eng; if (#pvpbroadcast == 1) goto access_eng; if (pvpbroadcast == 1) goto access_eng; if (pvpbroadcast == 0) mes "Hi, "+strcharinfo(0)+""; mes "Me is the PvP Top Management!"; mes "Let me ask you one Question and i will let you play!"; menu "Later please",L_close,"Okay, fine",L_fine; L_fine: next; mes "Well, do you want read Broadcast Messages when a Player reach a new position on the PvP Ranglist?"; menu "Yeah, why not",L_accept,"No, thanks",L_accept_2,"Wtf is Broadcast?",L_broadcast; L_accept: next; mes "Yay, thank you! ^_^"; mes "Will this Setting work on all your Chars on this account or only this char?"; menu "Account",L_account,"Only this char",L_char; L_account: set #pvpbroadcast,2; next; mes "Okay, "+strcharinfo(0)+""; mes "Thank you for your time and have fun!"; close; L_char: set pvpbroadcast,2; next; mes "Okay, "+strcharinfo(0)+""; mes "Thank you for your time and have fun!"; goto access_eng; close; L_accept_2: next; mes "Yay, thank you! ^_^"; mes "Will this Setting work on all your Chars on this account or only this char?"; menu "Account",L_account_2,"Only this char",L_char_2; L_close: close; L_account_2: set #pvpbroadcast,1; next; mes "Okay, "+strcharinfo(0)+""; mes "Thank you for your time and have fun!"; close; L_char_2: set pvpbroadcast,1; next; mes "Okay, "+strcharinfo(0)+""; mes "Thank you for your time and have fun!"; goto access_eng; close; L_broadcast: mes "Broadcasts are this yellow messages from the GMs"; goto L_fine; } access_eng: mes @name$; mes "Hello "+strcharinfo(0)+""; mes "If you want to I can show you your PVP stats."; next; M_selection_eng: if ( getgmlevel () < 99 ) menu "Show me the PVP Ladder",M_Ladder_eng,"PvP stats since my login",M_seitLogin_eng,"PvP stats of this Char",M_dieserChar_eng,"Stats of the whole account",M_vomAccount_eng,"Cancel",M_abbrechen_eng; else menu "Show me the PVP Ladder",M_Ladder_eng,"PvP stats since my login",M_seitLogin_eng,"PvP stats of this Char",M_dieserChar_eng,"Stats of the whole account",M_vomAccount_eng,"Reset Ladder",L_reset,"Cancel",M_abbrechen_eng; M_Ladder_eng: mes "Alright...I'll show you the Top "+ $@LadderLength +" with "+$@LadderSteps+" entries per page."; mes "It'll be viewed like this:"; mes @colour$[0]+"Place^000000: "+@colour$[1]+"<name>^000000 :"+@colour$[2]+"<kills>^000000:"+@colour$[3]+"<deaths>^000000 "+@colour$[4]+"<time>"; next; callsub L_Ladder; goto M_selection_eng; M_seitLogin_eng: mes @name$; mes "Your stats since your login:"; mes @PVPKillstoday+"/"+@PVPDeathstoday+"(Kills/Deaths)"; next; goto M_selection_eng; M_dieserChar_eng: mes @name$; mes "Your stats of this Char:"; mes PVPKills+"/"+PVPDeaths+"(Kills/Deaths)"; next; goto M_selection_eng; M_vomAccount_eng: mes @name$; mes "Your stats of the whole account:"; mes #PVPKillsAccount+"/"+#PVPDeathsAccount+"(Kills/Deaths)"; next; goto M_selection_eng; M_abbrechen_eng: mes @name$; mes "OK. You can come back to me and see your stats whenever you want."; close; L_reset: if (getgmlevel() < 99) end; mes "Do you want to reset the ladder?"; if (select ("Yes","No") == 2) goto L_end; mes "Are you really really sure you want to reset it?"; menu "Yes, ffs!!",-,"No",L_end; deletearray $terces_PVP_kills,128; deletearray $terces_PVP_deaths,128; deletearray $terces_PVP_names$,128; deletearray $terces_PVP_times,128; set $terces_PVP_resets,$terces_PVP_resets +1; L_end: mes "Okay...cya"; close; L_Ladder: for (set @y,0; @y < $@LadderLength; set @y,@y+$@LadderSteps){ for (set @x,@y; (@x < (@y+$@LadderSteps)) && (@x < ($@LadderLength)); set @x,@x+1){ if ($terces_PVP_names$[@x] != ""){ mes @colour$[0]+(@x+1)+"^000000: "+@colour$[1]+$terces_PVP_names$[@x]+"^000000 "+@colour$[2]+$terces_PVP_kills[@x]+"^000000:"+@colour$[3]+$terces_PVP_deaths[@x]+"^000000 ~ "+@colour$[4]+callfunc ("Gettime",$terces_PVP_times[@x])+"^000000"; } else { mes "^DD0000"+(@x+1)+": ^006699None^000000 "; } } next; } return; } function script Gettime { if (getarg(0)==0) return; set @difftimedays,(gettimetick(2) - getarg(0)); set @difftimehours,@difftimedays%86400; set @difftimeminutes,@difftimehours%3600; set @difftimeseconds,@difftimeminutes%60; set @days,@difftimedays/86400; set @hours,@difftimehours/3600; set @minutes,@difftimeminutes/60; set @seconds,@difftimeseconds; set @result$,""; if(@days != 0) set @result$,@result$+@days+"d "; if(@hours != 0) set @result$,@result$+@hours+"h "; if(@minutes != 0) set @result$,@result$+@minutes+"m "; if(@seconds != 0) set @result$,@result$+@seconds+"s"; return (@result$); } Enjoy!
  23. Hahaha ^
  24. Patskie

    rename npc

    prontera,150,150,0 script Sample 100,{ mes .NPC$; mes "Hello there, " + strcharinfo(0)+ ". I can change your name! Would you like it?"; mes "The change name service will cost " +.AMOUNT+ "x " +getitemname(.ID)+ "."; next; if (select("Yes:No") - 1) close; mes .NPC$; mes "Let me first check if you comply with my requirements."; next; if (countitem(.ID) < .AMOUNT) { mes .NPC$; mes "You do not comply with my requirements."; mes "My requirements : "; mes "- " +getitemname(.ID)+ " " +.AMOUNT+ "x"; close; } mes .NPC$; mes "This is interesting! You have my requirements. Let's start the transaction."; next; mes .NPC$; mes "Enter your desired new name"; next; input .@new$; mes .NPC$; mes "So you want to do the following : "; mes "Current Name : " +strcharinfo(0); mes "New Name : " +.@new$; next; if (select("Yes:No") - 1) close; mes .NPC$; mes "Updating your name...."; query_sql "UPDATE `char` SET `name` = '"+escape_sql(.@new$)+"' WHERE `char_id` = '"+getcharid(0)+"'"; next; mes .NPC$; delitem .ID, .AMOUNT; mes "This has been done for you. You must relog to see the effects. You want me to relog you?"; next; if (select("Yes:No") - 1) { mes .NPC$; mes "Okay then bye!"; close; } atcommand "@kick " +strcharinfo(0); end; OnInit: set .NPC$,"[ " +strnpcinfo(1)+ " ]"; set .ID,674; set .AMOUNT,4; end; }
  25. Patskie

    Hair Style

    // Payment Currency + Cost // Can be ITEM ID or Any Variable. setarray .currency$, "512", // Hairstyle - Ex. need Apple "#CASHPOINTS", // Hair Color - Ex. need CASHPOINTS "Zeny"; // Cloth Color - Ex. need Zeny setarray .cost, 0, // Hairstyle ( 123 Apple ) 0, // Hair Color ( 5,432 CASHPOINTS ) 0; // Cloth Color ( 12,345 Zeny )
×
×
  • Create New...