-
Posts
618 -
Joined
-
Last visited
-
Days Won
11
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by Z3R0
-
similar to what Crazy said, just a little optimized 4359,B_Eremes_Card,Assassin Cross Card,6,20,,10,,,,,,,,2,,,,,{ if(Class != Paladin && Class != Champion) { bonus3 bAutoSpell,378,3,30; },{},{}
-
lol @ you guys, no one has a test server? If this doens't get finalized soon, I will write it up
-
query_sql ()??
-
wow... if you wanted that, I would just do a mod then to guild creation, to also create a "dummy" char for the guild on creation
-
Update: I managed to get the video for the Request done, however, it was my first run through of the script and probably a little "whacky" took over an hour to go through the entire script and really get in detail what it did. Now that I have been through it once, I am going to end up redoing the walkthrough without all the uhm's and searching, because I know where it's all at... Tonight hopefully more things will be updated. I apologize for the wait, however I want to make sure it's clean and understandable. Hopefully I will get time tonight to fix up these videos. Thanks
-
Item trader that trades +10 item to a different item
Z3R0 replied to Pink Guy's question in Script Requests
I did +10 or greater... simply change this line if (@inventorylist_refine[.@i] >= 10) { to == instead of >= -
Due to children the videos are taking longer to record. Chapter 2 will be done tonight along with a walk through request over dynamics specifically explaining euphy's quest shop npc.
-
U didn't answer my question does ur debug message run?
-
can someone help me with Skorm script about an Expert Enchanter ¿?
Z3R0 replied to ItsFree's question in Scripting Support
Might be nice sadder to state what was wrong or what u changed or uploaded? -
If anyone would like to collaborate they could do src tutorials and I could splice then in with the rest. Unfortunately. I am not any good at src mods... :/
-
I don't really know what to say about an advanced menu system but more of it being dynamic... there isn't much u can do to make it "advanced" probably need to change that title
-
Chapter 2 variables should be released tomorrow night I will be in production tomorrow hopefully
-
need help adding maps on nighmare mode script
Z3R0 replied to Erio-chan's question in Scripting Support
Follow the same thing for blacklist... OnInit: .blacklist$ = "501,502,503,504,505"; .onmaps$ = "prontera,geffen,morocc"; then on... OnPCDieEvent: if (countitem(7773) >= 1) end; if (BaseLevel < 40) end; // Will halt the rest of the script if they are not on a map that is allowed if (!compare("," + .onmaps$ + ",", "," + strcharinfo(3) + ",")) end; // .... -
Chapter 1 (The Basics) has been fully uploaded. You can view the Playlist here: https://www.youtube.com/watch?v=vR563-KlMUo&list=PLEDk4ERsxAQBrVKVssnQhsQL20xH9DeHr
-
Thanks! There will be many more as we get more into the series for advanced scripters as well, but I had to start somewhere
-
hmmm that is strange actually you are correct and I was wrong, the key does infact include the # sign. wonder why it won't delete then? does your debugmes run at that time?
-
Welcome Everyone! Some of you may remember my old video series NPC Scripting 4 Dummies... Unfortunately, due to pesronal issues, I had to take a step back from rAthena and RO in general and I was out of touch with everything. MANY MANY MANY Things have changed, so I am going to be completely re-doing the series! I have begun production on Chapter 1 and should have that complete by the end of the weekend, and soon Chapter 2 will be released. Simply subscribe and you will know when new videos are added! Here is the channel and I will post here when new updates are released! Last time, I embedded every video, which I may do again, but for simplicity sake, just go to the channel! Right now, there are very limited videos, but there will be LOTS more to come! NPC Scripting 4 Dummies (YouTube Channel) Please keep in mind, this is still a work in progress and will take time. Chapter 1: The Basics - Complete Playlist: https://www.youtube.com/watch?v=vR563-KlMUo&list=PLEDk4ERsxAQBrVKVssnQhsQL20xH9DeHr Section 1 (Tutorial Setup) https://www.youtube.com/watch?v=vR563-KlMUo Section 2 (Starter NPC) https://www.youtube.com/watch?v=Vrq4LcPRn3s Section 3 (Mes Command) https://www.youtube.com/watch?v=n6eqa7WietI Section 4 (Duplicate & Float) https://www.youtube.com/watch?v=GjyNUBkTN28 Section 5 (Next, Close, & Comments) https://www.youtube.com/watch?v=BGZ0uS2DrLc Chapter 2: Variables - In Progress Chapter 3: Debugging - Chapter 4: Basic Menu System Chapter 5: Math & Logic Chapter 7: Player Input Chapter 8: Loops Chapter 9: Arrays Chapter 10: Dynamic Menu System Chapter 11: Functions Chapter 12: Events Chapter 13: Instances Chapter 14: To Be Determined...
-
Sure? Just attach the script to the player first... attachrid(char_id); // then perform dispbottom() ?
-
What's with the semi-colon within the sql statement? I don't think that needs to be there... Also, the sql key isn't goign to be #day_event ... it already knows it's an account variable beacuse it's in the acc_reg_num table... the variable is just "day_event"
-
Help me add item exception OnPCDieEvent: nighmare mode
Z3R0 replied to Erio-chan's question in Scripting Support
Hmmm I like that compare feature... implode an array with commas... and prefix string with starting and ending commas... check against ,#, smart move... -
Item trader that trades +10 item to a different item
Z3R0 replied to Pink Guy's question in Script Requests
Would it be a specific +10 item = a specific reward? prontera,158,173,4 script ItemExchanger 88,{ mes("Welcome!"); mes("I can trade certain +10 items with other items hehe :D"); // Clear Inventory List Information ClearGetInventoryList(); getinventorylist; set(.@counter, 0); set(.@menu$, ""); // First we loop through all available exchange items for(.@i = 0; .@i < getarraysize(.exchange_items); .@i++) { // Now we check if it exists in the inventory .@index = array_find(@inventorylist_id, .exchange_items[.@i]); if (.@index >= 0) { // Item was found :D // Now we need to check and make sure that it is a PLUS 10 item if (@inventorylist_refine[.@i] >= 10) { // We have verified that it's +10 or more and we will add it to our menu and psuedo array set(.@exchangeable_items[.@counter], .@index); set(.@exchangeable_refine[.@counter], @inventorylist_refine[.@i]); set(.@rewardable_items[.@counter], .@i); set(.@rewardable_amount[.@counter], .@i); .@menu$ += (.@menu$ == "" ? "" : ":") + "+" + @inventorylist_refine[.@i] + " " + getitemname(@inventorylist_id[.@i]); .@counter++; } } } // Now we show them the trade menu set .@choice, select(.@menu$) - 1; // We subtract 1 to get an array index point mes("You have chosen to trade +" + .@exchangeable_refine[.@choice] + " " + getitemname(.@excangeable_items[.@choice])); mes("You will receive " + .@rewardable_amount[.@choice] + "x " + getitemname(.@rewardable_items[.@choice])); if (select("Yes, Trade:Nevermind") == 1) { mes("Thanks, Come back soon!"); close; } // They opted to trade, let's do it! delitem @inventorylist_id[.@exchangeable_items[.@choice]], 1; getitem .@rewardable_items[.@choice], .@rewardable_amount[.@choice]; mes("Here you go"!); close; OnInit: setarray(.exchange_items, 1201, 1202, 1203); // 3 Knives (0 slot, 1 slot, 2 slot) setarray(.reward_items, 501, 502, 503); // Red Potion, Orange Potion, Yellow Potion setarray(.reward_amount, 1, 5, 10); // Amount to return end; } function script ClearGetInventoryList { deletearray(@inventorylist_id); deletearray(@inventorylist_amount); deletearray(@inventorylist_equip); deletearray(@inventorylist_refine); deletearray(@inventorylist_identify); deletearray(@inventorylist_attribute); deletearray(@inventorylist_card1); deletearray(@inventorylist_card2); deletearray(@inventorylist_card3); deletearray(@inventorylist_card4); deletearray(@inventorylist_expire); deletearray(@inventorylist_bound); set(@inventorylist_count, 0); return; } Untested -
R> All party members on the map get exp and item
Z3R0 replied to Rizz's question in Scripting Support
That's because emistry goofed! haha... you need to getpartymember(getcharid(1), 2); so that it gets account id -
R> All party members on the map get exp and item
Z3R0 replied to Rizz's question in Scripting Support
I hate emistry -
R> a NPC with progressbar & those with % to get one of a list of items [Solved]
Z3R0 replied to ItsFree's question in Script Requests
Omg I completely forgot about countitem... zomg! This is how out I have been wow... -
R> a NPC with progressbar & those with % to get one of a list of items [Solved]
Z3R0 replied to ItsFree's question in Script Requests
prontera,158,173,4 script CoinExchanger 88,{ mes("Welcome"); mes("Please give me your coins..."); // Check Inventory for Coins getinventorylist; freeloop(true); .@counter = 0; for(.@coin_index = 0; .@coin_index < getarraysize(.exchange_ids); .@coin_index++) { for(.@i = 0; .@i < @inventorylist_count; .@i++) { if (@inventorylist_id[.@i] == .exchange_ids[.@coin_index]) { if (@inventorylist_amount[.@i] >= .exchange_amount[.@coin_index]) { set(.@menu_coin_index[.@counter], .@coin_index); set(.@menu$, .@menu$ + ( .@menu$ == "" ? "" : ":" ) + getitemname(.exchange_ids[.@coin_index]) + "(" + @inventorylist_amount[.@i] + ")"); .@counter++; } } } } freeloop(false); if (.@menu$ == "") { next; mes("You do not have any coins!"); close; } // Display Option to Show them choices and how many coins they have... set .@choice, select(.@menu$) - 1; // Subtract 1 to get Array Index set .@index, .@menu_coin_index[.@choice]; // dispbottom("You have chosen to use " + getitemname(.exchange_ids[.@index]) ); // dispbottom("Progress bar Duration is: " + .exchange_duration[.@index] + " seconds."); mes("Goodluck"); close2; progressbar("00FF00", .exchange_duration[.@index]); // Start the Progressbar // On Progress Bar Completion... let's see what we do here... delitem(.exchange_ids[.@index], .exchange_amount[.@index]); freeloop(true); for(.@i = 0; .@i < getarraysize(.available_items); .@i++) { .@random = rand(1, 100); if (.@random <= .available_chance[.@i]) { // GET THE ITEM mes "Here you go"; getitem(.available_items[.@i], .available_amount[.@i]); if (.available_chance[.@i] <= .announce_level_chance) { announce(strcharinfo(0) + " just scored " + getitemname(.available_items[.@index]), bc_all, C_YELLOW); } close; } } freeloop(false); mes("You got the default prize..."); getitem(.default_item, .default_amount); close; OnInit: setarray(.exchange_ids, 673, 675, 671, 677); setarray(.exchange_amount, 1, 1, 1, 1); setarray(.exchange_duration, 10, 8, 5, 2); // # of seconds to progressbar... setarray(.available_items, 501, 502, 503, 504); setarray(.available_amount, 1, 1, 1, 1); setarray(.available_chance, 50, 40, 30, 10); // % of 100 set(.announce_level_chance, 10); // Will only display announce if they get item 504... since it's the only one with 10 chance or lower set(.default_item, 501); set(.default_amount, 1); end; } This should work