-
Posts
1479 -
Joined
-
Last visited
-
Days Won
16
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by Winz
-
if you are the GM, you can set it to some number first to make sure it works. have you added it on scripts_custom.conf? (BTW, personally, I don't think this is a kind of useful). do this: @loadnpc npc/custom/filename.txt
-
Script For Vset and Other item Please Help
Winz replied to simplexjay2's question in Script Requests
Valkyrie set is available on both RE and Pre-RE on the latest version of GIT. https://github.com/rathena/rathena/blob/master/db/pre-re/item_db.txt https://raw.githubusercontent.com/rathena/rathena/master/db/re/item_db.txt -
hmm, inter_athena.conf and search: "use_sql_db:" set it to yes. The problem is that when you activate item_db_SQL, then other DBs (item_cash, mob_db, mob_skill_db) are also activated. Therefore, you need to load those as well. another problem is that when you had made custom item, you need to manually add them to the SQL. but, this should do it: INSERT INTO item_db VALUES (<your custom item goes here>); 1 line = 1 entry. e.g: INSERT INTO item_db VALUES (1503,"A Wing",A_WING,....); INSERT INTO item_db VALUES (1504,"B Wing",B_WING,....); INSERT INTO item_db VALUES (1505,"V Wing",V_WING,....);
-
Request a script that can input same ip cant join the event map
Winz replied to jimmyyheah's question in Script Requests
first of all, reinstall everything, use GIT not SVN http://rathena.org/wiki/Installation -
okay, so it will be double check: ID and IP. will continue doing this in some hours..
-
you... are requesting RMS' palettes right?
-
wrong. at least 60 to be a GM *realy *don't *don't *but if you don't know how to do that, then you do not deserve to be a GM *downvote post, words too sharp* *this is the first time of me being such a people. *capt. flies**
-
Usually, it's caused by the size of file / the huge number of lines (entries, characters, texts). That happens all on the first time you upload them. on the next time, you'll just do some upgrades, so it's fine.. I mean, upgrades will upgrade (modify the values) and / or add some values (will never be more than 50 at a time). To solve this, if you are using PMA, then copy some parts from the .sql and paste it on PMA's SQL box and execute it. do it several times.
-
Are you sure you are going to do this (checking the char's IP, not account_id)? If so, then I can win the first x rounds. Then after I'm banned from disguise event, I just restart my modem (I am using a dynamically given WAN IP from my ISP) and get the prizes again. and I'll do that again and again and again. anyway, I'll make both, making sure that the char's account_id and chars' IP is monitored. wait, I know why you want to do this. it's because you're preventing 1 player to play the disguise event and get the prize so many times by logging in different account, right? if so, that's pretty.... motorcycle..
-
if (countitem(985)==0) { This part checks if the player has 0 elunium (is currently has no elunium in inventory) change the 0 to the "x" number. say if you want the NPC to see at least 5 eluniums, then change it to 5: if (countitem(985)<5) { oh and change the symbol. == - exactly equals to != - exactly NOT equals to < - Less than <= - less than OR equals to > - Greater than >= - Greater than OR equals to
-
IF you want to be a GM on that running server (you are not the owner) then you need to go to apply to be a GM on that server. HOW? (wahd?) PM (or email) your GM, say that you want to be a GM for that server. Remember that you need to speak (write) politely. or hack that server, ruin it and then tell your GM you found a hacker and you are able to solve it nvm the last sentence. don't even try that. the GM will ban and ignore you lol
-
isn't it called iteminfo.lua lub? wait. this structure.. not thinking so, rA uses a table like on SQL and TXT. try to open excel, import data from text file, select item_db.txt (pre-re, re both are fine) and delimit with a comma (,) then you can see it looks like a table. (it is a table) If your question is: "Will rA modify the structure to be like this?" then,,, I don't know. you got to ask the developers. Probably, they would ask you "why?" because: For every entry, you will need to write [ { ], [ <tab> ], [ ID: ] , [ AegisName ], etc right? each character has a size that will be written. it may be small. but, what about if Ragnarok keep developing and add more items? then the item_db.txt will be soooooo large. This is the current rA's item_db.txt (mine, not sure if updated): *btw, usually a single <tab> is considered as 4 white spaces. May be read as [4 white spaces] or [\t] accordingly. conclusion: that structure will take up so many spaces.
-
[SIMPLE Request] Dispell all soul link spirit when entering to a pvp room
Winz replied to Obiwan's question in Script Requests
on the top of script, put this: function script dispell { while ( .@STATUS < 297 ) { if ( .@STATUS != SC_WEIGHT50 && .@STATUS != SC_WEIGHT90 && .@STATUS != SC_NOCHAT && .@STATUS != SC_XMAS && .@STATUS != SC_SUMMER && .@STATUS != SC_JAILED ) sc_end .@STATUS; set .@STATUS, .@STATUS+1; } return; } then when it's about to warp, change it to be like this: callfunc("dispell"); warp "pvp_n_1-3",0,0; close; i think you can put this code somewhere in a regular warper script, pvp section. this will remove ALL buffs. -
I somehow believe this is not script based, but source based.
-
http://rathena.org/wiki/Basic_Scripting#Duplicating they will have the exactly same items as the main script. if you want to make them different, you need to make different NPCs. you can copy paste the script, and change the sold item and price tho.
-
Install Notepad++ click edit, settings. on the left click "File Editing" set default editor to: Use Custom Editor click browse navigate to: C:\Program Files (x86)\Notepad++ (windows 64 bit) or C:\Program Files\Notepad++ (windows 32 bit) select "notepad++" OK done
-
NP, glad I could be a help
-
sure,no prob!
-
try: //===== rAthena Script ======================================= //= Disguise Event //===== By: ================================================== //= GmOcean //===== Current Version: ===================================== //= 5.1 //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= Guess a monster name correctly for prizes. //= //= NOTE: Requires PCRE library installed. //===== Additional Comments: ================================= //= 5.0 Last update by GmOcean. //= 5.1 Cleaned and standardized, mostly. [Euphy] //============================================================ prontera,161,188,6 script Disguise Event 795,{ // Currently set to run every two hours. // To change times, edit the OnClock labels below. set .@GMLevel,60; // GM level required to access NPC. set .@n$,"[^0000FFDisguise NPC^000000]"; if (getgmlevel()>=.@GMLevel) { mes .@n$; mes "Select an option."; next; switch(select("Turn ON/OFF Event:Event Settings")) { case 1: mes .@n$; if (.EventON) { mes "The Event is currently: [^0000FFON^000000]"; mes "Would you like to turn it OFF?"; } else { mes "The Event is currently: [^FF0000OFF^000000]"; mes "Would you like to turn it ON?"; } if(select("Yes:No")==2) close; if (.EventON) { set .EventON,0; set .Timer,0; setnpctimer 0; stopnpctimer; announce "A GM has decided to turn the Disguise Event off. As a result no further prizes will be given.",bc_map | bc_blue; deletepset 1; setnpcdisplay "Disguise Event",795; close; } set .EventON,1; set .Timer,1; setnpctimer 0; initnpctimer; set .ResetCounter,.ResetCounter+1; announce "The Disguise Event will begin in 3 minutes.",bc_all | bc_blue; announce "The Event is being held in middle Prontera.",bc_all | bc_blue; close; case 2: mes .@n$; mes "Pick a setting to modify."; next; switch(select("Monster Display:Number of Rounds:Prize Settings")) { case 1: setarray .@r$[0],"Disguise as all monsters.","Disguise as MVPs only."; mes .@n$; mes "Choose a disguise rule."; next; set .Rule, select(implode(.@r$,":")); mes .@n$; mes "The Disguise Rule has been set:"; mes " > ^0055FF"+.@r$[.Rule-1]+"^000000"; close; case 2: mes .@n$; mes "Input the number of rounds you want the event to last."; mes "Current number: [^0000FF"+.Rounds+"^000000]"; next; input .@Rounds; set .Rounds,.@Rounds; mes .@n$; mes "The number of rounds has been changed to "+.Rounds+"."; close; case 3: mes .@n$; mes "Input the Item ID of the prize given each round."; mes "Current item: [^0000FF"+getitemname(.Prize)+"^000000] (ID #"+.Prize+")"; next; input .@Prize; mes .@n$; if (getitemname(.@Prize)=="" || getitemname(.@Prize)=="null") { mes "That item does not exist. Please try again."; close; } set .Prize,.@Prize; mes "Input the amount to be given."; next; input .@amount; mes .@n$; if (.@amount<=0 || .@amount>=10000) { mes "That amount is invalid. Using default ammount of 1."; set .@amount,1; next; mes .@n$; } set .PrizeAmt,.@amount; mes "The Prize has been changed successfully."; mes "Prize: "+.PrizeAmt+"x [^0000FF"+getitemname(.Prize)+"^000000]"; close; } } } if (.EventON) end; mes .@n$; mes "Welcome."; mes "How may I be of assistance?"; if(select("Information:Nothing, just passing through.")==2) close; next; mes .@n$; mes "This event is quite simple."; mes "At the start of the event, I will"; mes "disguise myself as a random"; mes "monster. You have to shout"; mes "that monter's name out loud."; next; mes "If you are correct, you will receive"; mes "a prize. If not, keep trying!"; mes "That's all that there is to this event."; close; OnInit: set .EventON,0; set .Wait,0; set .Winner,0; set .ResetCounter,0; set .Rounds,15; set .Prize,6153; set .PrizeAmt,75; set .Rule,1; setarray .MVP[0],1038,1039,1046,1059,1086,1087,1112,1115,1147,1150,1157,1159,1190,1251,1252,1272,1312,1373, 1389,1399,1418,1492,1502,1511,1583,1623,1630,1646,1647,1648,1649,1650,1651,1658,1685,1688, 1708,1719,1734,1751,1768,1779,1785,1802,1832,1871,1874,1885,1917,1980,2022,2068,2087,2131, 2156,2165; set .BlackList$, "1003,1006,1017,1021,1022,1027,1043,1075,1136,1137,1168," + "1171,1172,1173,1181,1187,1210,1217,1218,1222,1223,1224,1225,1226,1227,1228," + "1233,1284,1407,1411,1414,1495,1501,1900,1996,2000,2001,2002,2003,2004," + "2005,2006,2007,2011,2012,2025,2028,2029,2030,2031,2032,2033,2034,2035," + "2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049," + "2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063," + "2064,2065,2066,2067,2075,2076,2077,2078,2079,2080,2081,2083,2084,2085," + "2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098,2099," + "2100,2101,2012,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113," + "2114,2115,2116,2117,2118,2119,2120,2121,2123,2124,2125,1496,"; end; OnClock0000: OnClock0200: OnClock0400: OnClock0422: OnClock0600: OnClock0800: OnClock1000: OnClock1200: OnClock1400: OnClock1600: OnClock1800: OnClock2000: OnClock2227: setcell "prontera",163,192,159,185,cell_walkable,0; // Sets cells unwalkable set .ResetCounter,.ResetCounter+1; set .EventON,1; set .Timer,1; set .Wait,1; announce "The Disguise Event will begin in 3 minutes. The Event is being held in middle Prontera.",bc_all | bc_blue; announce "RULE: Do not flood while the event is on or you might be silenced for 30 mins by a GM.",bc_all | bc_blue; announce "Prize: 75 SPECs per round, total of 15 rounds.",bc_all | bc_blue; announce "NOTE: Some cells near my area shall be unwalkable during the event.",bc_all | bc_blue; setnpctimer 0; initnpctimer; end; OnTimer10000: if (.Timer || .Change) end; set .Wait,0; goto iDisguise; end; OnTimer30000: if (.Timer) end; set .Change,0; setnpcdisplay "Disguise Event",795; npctalk "You took too long to guess what I was. Please wait 10 seconds while I disguise again."; specialeffect EF_DETECT2; set $MonsterName$,""; deletepset 1; stopnpctimer; setnpctimer 0; initnpctimer; end; OnTimer60000: if (.Timer!=1) end; announce "2 minutes left. The Disguise Event is being held in middle Prontera.",bc_all | bc_blue; announce "RULE: Do not flood while the event is on or you might be silenced for 30 mins by a GM.",bc_all | bc_blue; announce "Prize: 75 SPECs per round, total of 15 rounds.",bc_all | bc_blue; end; OnTimer120000: if (.Timer!=1) end; announce "1 minute left. The Disguise Event is being held in middle Prontera.",bc_all | bc_blue; announce "RULE: Do not flood while the event is on or you might be silenced for 30 mins by a GM.",bc_all | bc_blue; announce "Prize: 75 SPECs per round, total of 15 rounds.",bc_all | bc_blue; end; OnTimer180000: if (.Timer!=1) end; announce "The Disguise Event has begun!",bc_all | bc_blue; announce "The Event is being held in middle Prontera.",bc_all | bc_blue; announce "Prize: 75 SPECs per round, total of 15 rounds.",bc_all | bc_blue; set .Timer,0; stopnpctimer; setnpctimer 0; initnpctimer; iDisguise: if (.Rule==1) { set .Winner,0; set .Monster,1000+rand(1,995); if (compare(","+.BlackList$+"," , ","+.Monster+",")) goto iDisguise; if (.Monster==.LastMonster) goto iDisguise; set .LastMonster,.Monster; set $MonsterName$,getmonsterinfo(.Monster,0); } if (.Rule==2) { set .Winner,0; set .Monster,rand(49); set $MonsterName$,getmonsterinfo(.MVP[.Monster],0); } deletepset 1; sleep 1000; if (.Rule==1) setnpcdisplay "Disguise Event",.Monster; if (.Rule==2) setnpcdisplay "Disguise Event",.MVP[.Monster]; defpattern 1,"([^:]+):.\\s*"+$MonsterName$+".*", "iCorrect"; activatepset 1; set .Change,1; setnpctimer 0; end; iCorrect: if (.Winner) { dispbottom "Someone has already won this round."; end; } set .Winner,1; set .RoundCount,.RoundCount+1; deletepset 1; activatepset 1; getitem .Prize,.PrizeAmt; announce strcharinfo(0)+" is correct! I was disguised as: "+$MonsterName$+"",bc_map | bc_blue; if (.RoundCount>=.Rounds) { setnpcdisplay "Disguise Event",795; set .RoundCount,0; set .Change,0; set .EventON,0; setnpctimer 0; stopnpctimer; announce "Thank you all for playing. That was the last round of the Disguise Event. Come play again later.",bc_all | bc_blue; setcell "prontera",163,192,159,185,cell_walkable,1; // Sets cells walkable again end; } setnpcdisplay "Disguise Event",795; set .Change,0; setnpctimer 0; end; } modified some things starting on line 225: 1. moved pset pattern and activatepset to AFTER NPC disguised 2. Paused the script for 1 second after decided which monster to disguise AND before disguising
-
The winner is decided here: set $@win,rand(1,6); switch($@win) { case 1: donpcevent "Poring#race::OnPoringWin"; break; case 2: donpcevent "Drops#race::OnDropsWin"; break; case 3: donpcevent "Poporing#race::OnPoporingWin"; break; case 4: donpcevent "Marin#race::OnMarinWin"; break; case 5: donpcevent "Pouring#race::OnPouringWin"; break; default: donpcevent "Santa Poring#race::OnSantaWin"; break; } Therefore, it is really random. And I have no idea on how to modify this randomizing thing. if Marin wins 75% of the time in your server, then your server's mascot shall be Marin
- 1 reply
-
- 1
-
-
function script success { set.@zeny, getarg(0); set zeny, zeny - .@zeny; successrefitem 5; emotion e_gg; set .@win,rand(1,3); if (.@win == 1) { mes "Perfect!"; mes "Heh heh!"; mes "Once again,"; mes "flawless work"; mes "from the master~"; } else if(.@win == 2) { mes "Success...!"; mes "Yet again, my amazing"; mes "talent truly dazzles"; mes "and shines today."; } else { mes "Heh heh!"; mes "I'm all done."; mes "No doubt, my work is"; mes "to your satisfaction."; mes "Sheer, utter perfection~"; } return; } function script failed { set.@zeny, getarg(0); set zeny, zeny - .@zeny; downrefitem 5; emotion (!rand(5))?e_cash:e_omg; set .@lose,rand(1,3); if (.@lose == 1) { mes "OH! MY GOD!"; mes "Damn it! Not again!"; mes "I'm terribly sorry, but you know practice does make perfect."; mes "Um, right? Heh heh..."; } else if(.@lose == 2) { mes "Nooooooo!"; mes "It broke!"; mes "I-I'm sorry!"; } else { mes "Crap!"; mes "It couldn't take"; mes "much more tempering!"; mes "Sorry about this..."; } return; } prontera,156,145,4 script Refine 58,{ if(countitem(2589)==0){ mes "You don't have the Fallen Angel Wing right?"; mes "Sorry I can't help you"; close; } set .@zeny, 5000; set .@needzen, .@zeny*7; mes "Refining your Fallen Angel Wing?"; mes "I can do it for you for ^FF0000"+.@zeny+"^000000 Z!"; next; if (zeny < 35000) { mes "For this process, I need around ^FF0000"+.@needzen+"^000000 Z."; mes "Seems like you don't have it. please get them first."; close; } set .@i,2589; if((getequipid(EQI_GARMENT)!=2589)){ mes "Please put on those wings first"; close; } if(getequipisenableref(.@i)) { mes "I don't think I can"; mes "refine this item at all..."; close; } //Check to see if the items is already +10 if(getequiprefinerycnt(.@if) >= 10) { mes "I can't refine this"; mes "any more. This is as"; mes "refined as it gets!"; close; } callfunc "success", .@zeny,.@zeny; next; callfunc "success", .@zeny; next; mes "One more refining to go..."; next; callfunc "failed", .@zeny; next; callfunc "failed", .@zeny; next; mes "DARN! If I failed again this time, say goodbye, SAY GOODBYE~~"; next; mes "So, will you still continue doing this? What if it broke again? It will lose forever."; if(select("Let it go:STAHP! Please stop this!") == 1) { next; mes "Le.. Le.. Let it go~"; mes "Let it go~"; mes "LET IT GO~"; emotion e_sob,1; } else { next; mes "What are you talking about?"; mes "There's no going back."; mes "AND I SHALL CONTINUE THIS!!!"; emotion e_omg,1; emotion e_slur,0; } next; callfunc "success", .@zeny; emotion e_gg,0; emotion e_omg,1; next; callfunc "success", .@zeny; emotion e_gg,0; emotion e_omg,1; next; callfunc "success", .@zeny; emotion e_gg,0; emotion e_omg,1; next; mes "Done. LOL"; close2; specialeffect 154, SELF; specialeffect 154, SELF; specialeffect 154, SELF; specialeffect 154, SELF; specialeffect 154, SELF; end; } just run it, bring 35000 zeny or 7*(required zeny per "smash") and equip the item (2859) oh btw, since I got more free time, I added some well, entertainment.
- 1 reply
-
- 1
-