Jump to content

Jesky

Members
  • Posts

    51
  • Joined

  • Last visited

1 Follower

About Jesky

  • Birthday June 26

Profile Information

Recent Profile Visitors

2645 profile views

Jesky's Achievements

Poring

Poring (1/15)

  • Week One Done
  • One Month Later
  • One Year In

Recent Badges

3

Reputation

2

Community Answers

  1. Hey, no problem, i've seen similiar issue like this and it's also happened to me before. I'm on pre-renewal server as well but just want to take costumes from renewal database. I spent almost a week just to import, edit the item_db_equip and fix every item description. It took a lot of time and dedication, but believe me, just like i said before, it's more cleaner and easier to debug if there is any error because of the sprite, effect, script, etc for example. Personally, i think this is the only way to do it right, so yes, my best suggestion is to change the equip manually one by one. I'm sorry that i can't help much but i hope you could solve it somehow, if you did, please share it here how. Goodluck!
  2. Hi again, sorry for late reply was working. // Max armor def/mdef // NOTE: This setting have no effect if server is run on Renewal Mode (RENEWAL) // NOTE: does not affects skills and status effects like Mental Strength // If weapon_defense_type is non-zero, it won't apply to max def. // If magic_defense_type is non-zero, it won't apply to max mdef. max_def: 500 // Def to Def2 conversion bonus. If the armor def/mdef exceeds max_def, // the remaining is converted to vit def/int mdef using this multiplier // (eg: if set to 10, every armor point above the max becomes 10 vit defense points) over_def_bonus: 1 I've tried this one and it was working flawlessly on my server, all i did was exactly same; change the max_def to 500 from 99, change the over_def_bonus to 1 from 0 and change cotton shirt def from 1 to 200 (it's shown 100 + 28, i think this is happened because the calculation from my server, not sure tho but at least it's not minus and i can exceed max 99 def). Then in game, i reload the itemdb using `@reload itemdb` and also reload the conf using `@reload battleconf`. It's not a good idea to directly change the formula, for example if you change the formula for def, you might need to change the def gained for refine from pre-re stats to renewal stats as well for example and so on, it would be like a domino effect. But if you are on pre-renewal server and wants to use the renewal system, why don't you just change your server to renewal? Edit: After tested it a few times, i noticed that even if i change the max_def to any values greater than 99, it would always show 100 def at max even when im not using the over_def_bonus (over_def_bonus: 0). Not sure if recompile will do but im too tired waiting for my server to recompile, so i haven't try it.
  3. I'm not sure if this would work but you can try to change the source code in /src/config/const.h find this code: #ifdef RENEWAL typedef short defType; #define DEFTYPE_MIN SHRT_MIN #define DEFTYPE_MAX SHRT_MAX #else typedef signed char defType; #define DEFTYPE_MIN CHAR_MIN #define DEFTYPE_MAX CHAR_MAX #endif change it to this one #ifdef RENEWAL typedef signed char defType; #define DEFTYPE_MIN CHAR_MIN #define DEFTYPE_MAX CHAR_MAX #else typedef signed char defType; #define DEFTYPE_MIN CHAR_MIN #define DEFTYPE_MAX CHAR_MAX #endif basically it just ignore the conditional statement and think of it as a pre-renewal mode, don't forget to recompile your server after changed the codes. if you want to change the server to renewal again or if it doesn't work, simply just revert it. I hope it works. As for the item description, if the item is already available from pre-renewal, i think you can just use the pre-renewal iteminfo.lua and overwrite it to your current iteminfo in your client/System folder.
  4. First add the npc here and call the function for the fourth shop or just simply call the function for fourth shop with this command 'callfunc "qshop", 4;' if your npc is in difference file. // ADD YOUR NPC HERE //============================================================ prontera,180,213,4 script Quest Worker 556,{ callfunc "qshop",1; } prontera,184,209,4 script Event Ticket Shop 112,{ callfunc "qshop",2; } new_1-1,155,111,5 script Costume Shop 555,{ callfunc "qshop",3; } // add the npc for the fourth shop prontera,182,211,4 script Fourth NPC 556,{ callfunc "qshop",4; } Make sure you already add the duplicate NPC data for the fourth shop with the name qshop4: - shop qshop4 -1,909:-1; Then add the shop into the array setarray .Shops$[1], "Hat Maker", // Shop Named 1 "Weapons", // Shop Named 2 "Other"; // Shop Named 3 "Fourth Shop"; Last step, use the add function to add the items to the shop // Fourth Shop Add(4,501,1,0,0); Make sure the first index on add function is the number referring to the shop number you want to use. For ex: Add(1,501,1,0,0); to open the first shop, Add(2,501,1,0,0); to open the second shop and so on...
  5. I don't see there is any other way except changing it manually one by one for each item you copied from renewal item_db. I'm not sure even if disabling the renewal system from /src/config/renewal.h will change the defense on each renewal equips. Same thing goes for the item description. I've experienced similiar thing like this before where i want to use some renewal items, the only solution i came up with was duplicate the item from renewal item_db, put it on import/item_db and then create the item description for those items one by one. It took a lot of time but it'll be cleaner for your db, good to prevent bugs/error and easier to debug in the future.
  6. ups sorry, i forgot add " on set variable.. try this, hope this time the script will work well.. prontera,150,150,6 script Sign 50,{ mes "Do you want to enter this room?"; menu "Enter",L_enter,"Cancel",L_cancel; L_enter: if (getmapusers("poring_c02") >= 1) goto Lfull; mes "Please input your name"; next; input .@name$; set .@aid, getcharid(3, .@name$); if ( !.@aid ) { if ( !query_sql("select account_id, from `char` where name = '"+ escape_sql(.@name$) +"'", .@aid) ) { mes "Sorry, but your name is not exist"; close; } } else { set .@name$, rid2name( .@aid ); } warp "poring_c02",0,0; end; L_cancel: end; Lfull: next; mes .@name$ +" has already inside the room."; next; mes "Please wait until this person get out from this room."; next; end; OnInit: while( 1 ){ delwaitingroom; waitingroom "Player : "+getmapusers("poring_c02")+"",0; sleep 1000; } end; }
  7. try this, i'm not test this script yet yourmap,x,y,facing script Sign 50,{ if (getmapusers(yourmap)==1)goto Full; mes "Do you want to enter this room?"; menu "Enter",enter,"Cancel",cancel; enter: set @name, +strcharinfo(0); warp "yourdestinationmap",0,0; end; cancel: end; Full: next; mes "Sorry, the room is on used by "+@name+" right now"; next; mes "Please wait until the person get out from this room."; next; end; OnInit: while( 1 ){ delwaitingroom; waitingroom "Miner(s) : "+getmapusers("yourmap")+"",0; sleep 1000; } end; }
  8. Ah yah, Annie was right, i just tweak it by adding atcommand "@option 8", +strcharinfo(0); (make character in white imprisson status). i will use the script that Annie tweak, thank you so much for helping me again edit: i found other way to bypass it is by waiting for berserk/frenzy buff gone.
  9. i already modify the script it self, the player can't walk, speak, use skill, attack, etc... so how it can be abused? maybe i can tweak again
  10. But, it will removed when the player relogin isn't?
  11. of course, you can't change the item type from item_db by script (from my knowledge). so the npc is just exchange your equipment with costume item based on item_db... that's why the cards, refine, enchant, etc will gone...
  12. Wow! It's work very fine like what i want, thank you so much sir! I already try and use this on my server, my player love it many thanks to sir Patskie and Kido My last request, can you make this script to show up when the player first login to ask if he/she want to set 2nd password or not.. if he/she do not want to set 2nd password, the script will never show up again until they set by @security.. Edited: Ah solved, i try to make another script based on sir Patskie script.. Again, thank you so much for all of your help sir
  13. Alright sir, i'm so sorry because i really need this for my running online server.. i will try when my server on maintenance mode and see where's the error of this script, btw.. thank you so much for your responding sir glad to got your help.. while i trying to make this script work by myself, i will wait for someone doing this script too regards, Jesky
  14. yeah, i guess so sir Kido, but i'm not too good at scripting eathena script model... i will check if there's error message on the map... is there someone can make this script work on rathena? really need some script like this No one? Help me please
  15. Wow! You're so kind sir, thank you very much!! Thanks to sir iMrFreeziNg, i can got Midgard Security System on eathena, here is the script: prontera,171,186,2 script Midgard Security 413,{ set .@npcName$,"[^0000FF Security Personel ^000000]"; mes .@npcName$; mes "Welcome! I am a member of Midgard's Security."; mes "As such, it is my job to ensure account safety of our players."; mes "That is of course if they wish to use our service."; next; mes "So, what would you like to do?"; goto LacctCheck; LacctCheck: menu "Enable / Disable Security",iAD,"Change Password",iCP,"Change RecoveryPhrase",iRP,"View Password Attempts",iVP,"Cancel",cancel; iAD: if (#SecurityPass$!="NoPopUp"){set #SecurityPass$,"NoPopUp"; mes "Security is now turned OFF."; close;} if (#SecurityPass$=="NoPopUp") {next; mes "Input a new Password"; input .@CSpassword$; if (.@CSpassword$==#RecoveryPhrase$){next; mes "Your Password cannot be the same as your Recovery-Phrase. Please try agian."; goto iAD;} set @CSpassword$,.@CSpassword$; next; mes "Input it again for confirmation."; input .@CSpassword$; if (.@CSpassword$!=@CSpassword$){mes "That is incorrect. Try again."; close;} set #SecurityPass$,@CSpassword$; mes "Security is now turned ON."; next; goto iRecoveryPhrase; iRecoveryPhrase: mes "... ... ... ..."; mes "Now then, please input a recovery phrase"; mes "This phrase will be used to recover your password, in case you forget it."; input .@RecoveryPhrase$; if (.@RecoveryPhrase$==#SecurityPass$){next; mes "Your Recovery-Phrase cannot be the same as your Password. Please try again."; next; goto iRecoveryPhrase;} set @RecoveryPhrase$,.@RecoveryPhrase$; next; mes "Input it again for confirmation."; input .@RecoveryPhrase$; if (@RecoveryPhrase$!=.@RecoveryPhrase$){mes "Those phrases don't match. Please try again."; close;} set #RecoveryPhrase$,@RecoveryPhrase$; mes "Please write this phrase down. It will be used to recover your password should you ever forget it."; next; mes "Once again, here it is:"; mes "^0000FF"+#RecoveryPhrase$+"^000000"; mes "WRITE IT DOWN ! "; close;} end; iCP: next; mes .@npcName$; if (#SecurityPass$=="NoPopUp"){mes "You don't have a password set."; mes "^0000FFPlease go set one by enabling the security.^000000"; close;} mes "Very well then. Please Enter your Current Security Password."; input .@CSpassword$; if (.@CSpassword$!=#SecurityPass$){next; mes "That is incorrect. Try again."; close;} next; mes "Now then. Please Enter your new Security Password."; input .@NSpassword$; if (.@NSpassword$==#RecoveryPhrase$){next; mes "Your Password cannot be the same as your Recovery-Phrase. Please try agian."; goto iCP;} set @NSpassword$,.@NSpassword$; next; mes "Please Enter it again for confirmation."; input .@CNSpassword$; if (@NSpassword$!=.@CNSpassword$){next; mes "That is incorrect. Try again."; close;} set #SecurityPass$,.@CNSpassword$; next; mes "Your password was changed successfully. Come again."; close; iRP: next; mes .@npcName$; if (#RecoveryPhrase$=="") {mes "You don't have a Recovery Phrase set."; mes "Please set one by enabling the Security."; close;} mes "Very well then. Please Enter your Current Recovery Phrase."; input .@RecovPhrase$; if (.@RecovPhrase$!=#RecoveryPhrase$){next; mes "That is incorrect. Try again."; close;} next; mes "Now then. Please Enter your new Recovery Phrase."; input .@NRP$; if (.@NRP$==#SecurityPass$){next; mes "Your Recovery-Phrase cannot be the same as your Password. Please try again."; goto iRP;} set @NRP$,.@NRP$; next; mes "Please enter it again for confirmation."; input .@NRP$; if (@NRP$!=.@NRP$){next; mes "Those phrases don't match. Try again."; close;} set #RecoveryPhrase$,@NRP$; next; mes "Your Recovery Phrase was changed successfully."; mes "Please write it down. It will be used in case you forget your password."; next; mes "Here it is:"; mes "^0000FF"+#RecoveryPhrase$+"^000000"; mes "WRITE IT DOWN !"; close; iVP: next; mes .@npcName$; mes "Alright. Here you go."; mes "There have been in total: ^0000FF"+#SecurityAttempt+"^000000 password attempts."; close; cancel: close; OnPCLoginEvent: set .@npcName$,"[^0000FF Security Personel ^000000]"; set @BanTime,5; if (#SecurityPass$=="") {mes .@npcName$; mes "This server has a unique system which allows you to have a SECOND password."; mes "This is of course optional. Would you like to use it?"; menu "Yes, set it up.",iYes,"No, and please stop showing up.",iNo; iYes: next; callfunc "Set_AcctSecure"; iNo: set #SecurityPass$,"NoPopUp"; percentheal 100,100; mes "Alright then. Just remember, if you're interested, talk to the Security Personel in prontera."; close; end;} if (#SecurityPass$=="NoPopUp"){set @SecurityPass,1; end;} if (#SecurityPass$!="NoPopUp" && #SecurityPass$==#SecurityPass$) {sc_start 112,999999999,100; sc_start 1,999999999,100; sc_start 8,999999999,100; goto InputSecurityPass;} end; OnPCLoadMapEvent: getmapxy(@Map$,@X,@Y,0); if (@Map$=="prontera" || @Map$!="prontera"){ if (@SecurityPass==0 && #SecurityPass$!="NoPopUp" && #SecurityPass$==#SecurityPass$) {goto InputSecurityPass;} if (@SecurityPass==0 && #SecurityPass$=="NoPopUp"){set @SecurityPass,1; end;} if (@SecurityPass==1){end;} end; } InputSecurityPass: mes "This account is protected by Midgard Security Personel."; mes "Input your password to continue playing."; mes "OR"; mes "Input your Recovery-Phrase in case you lost your password."; input .@spass$; if (#RecoveryPhrase$==.@spass$) {next; mes "Here is your password, don't lose it again."; mes "^0000FF"+#SecurityPass$+"^000000"; next; goto InputSecurityPass;} if (#SecurityPass$==.@spass$) {mes "That is correct"; set @SecurityPass,1; sc_end 1; sc_end 112; sc_end 8; percentheal 100,100; close; end;} if (#SecurityPass$!=.@spass$ && #RecoveryPhrase$!=.@spass$) {set @Attempt,@Attempt+1; mes "INCORRECT!!"; if (@Attempt>=3){atcommand "@ban "+@BanTime+"mn "+strcharinfo(0)+""; end;} next; goto InputSecurityPass;} close; end; } function script Set_AcctSecure { set .@npcName$,"[^0000FF Security Personel ^000000]"; menu "Set up a Security Password",iSP,"Information on System",iSI,"Cancel",cancel; iSP: next; mes .@npcName$; mes "Very well then. Please enter a Password."; mes "It may contain 4-32 alphanumeric characters"; mes "(A-Z) & (1-0) are all alphanumeric characters."; input .@Npassword$; set @Npassword$,.@Npassword$; next; mes "Please enter your password again for confirmation."; input .@Npassword$; if (.@Npassword$!=@Npassword$){mes "The Passwords did not match. Try again by talking to a security personel."; goto iSP;} set #SecurityPass$,@Npassword$; next; mes "Your password was set successfully."; next; goto iRecoveryPhrase; iRecoveryPhrase: mes "Now then. Please enter a Recovery Phrase"; mes "This phrase will be used in case you forget your password."; input .@RecovPhrase$; if (.@RecovPhrase$==#SecurityPass$){mes "Your Recovery-Phrase cannot be the same as your Password. Please try agian."; next; goto iRecoveryPhrase;} set @RecovPhrase$,.@RecovPhrase$; next; mes "Please input your Recovery Phrase again for confirmation."; input .@RecovPhrase$; if (@RecovPhrase$!=.@RecovPhrase$){mes "The Recovery Phrases did not match. Try again by talking to a security personel."; next; goto iRecoveryPhrase;} set #RecoveryPhrase$,@RecovPhrase$; next; mes "Your Recovery Phrase was set successfully."; mes "Please write this down. It will be used if you forgot your password."; mes "Here it is:"; mes "^0000FF"+#RecoveryPhrase$+"^000000"; mes "WRITE IT DOWN !!"; close; iSI: next; mes .@npcName$; mes "This system is a unique system that will allow you to have a second password for your account."; mes "In other words, after you login at the login screen, our security personel will ask you to enter your Security Password."; mes "This will prevent others from hacking into your account while you're away."; next; mes .@npcName$; mes "That is all there is to this system."; mes "So, what would you like to do?"; callfunc "Set_AcctSecure"; end; cancel: close; } But why when i login and try to set a password, the script stopped and my character is freezing... I'm using rathena 17600.. please someone help me
×
×
  • Create New...