-
Posts
1479 -
Joined
-
Last visited
-
Days Won
14
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Posts posted by Winz
-
-
First of all, you need to comment the comments.
try to see the script side by side.
open using Notepad++, change language to C and you can see the differences
pls mark as solved / answered
-
k k
mark as answered / solved.
-
import folder? which?
I can't tell..
the settings will still work. it doesn't matter if you're using txt or sql.
-
1
-
-
Bug? no worries!
faulty pallete files? check every places, your grf, data folder, etc..
-
i guess rA treats last element array to be null if it's 0. or maybe you can change them to string array variable (i don't recommend it)
wow, you changed your profile pic! I thought somebody replied to this thread as well..
-
[spoiler=pointless to open this]pertamax diamankan :v
dat spoiler. such message. so much Indonesia. the kaskus thing. such wow. #onlykaskusthing
hmm, do you guys know that JRO has the wonderful headgear things? I wonder, is it custom or how? if it's official, will it be on rA?
-
i don't really understand about WoE.
Is FE WoE and SE WoE can be distinguished by the maps? if yes, then you can edit db/skill_nocast.txt, i guess.
create a new zone on npc/mapflag/restricted.txt:
<map_name><tab>mapflag restricted<tab><zone number>
then restrict the skills for that map trhough db/re(or pre re)/skill_nocast_db.txt:
<skill name><tab><zone number>
right? idk
-
First of all, you need to comment the comments.
//===== Hourly Points Script ========================================= //===== By: ========================================================== //= GorthexTiger modified by Nibi //===== Current Version: ============================================= //= 1.0 //===== Compatible With: ============================================= //= Any eAthena Version //===== Description: ================================================= //= Get Points every successful hours of gameplay, you cannot get //= the points even if you miss a second or a minute. A player will //= get a very big bonus if they played 12 hours consecutively //= or without logging out of the game. If the player is vending //= the script will then stop. //===== Additional Comments: ========================================= //= You can modify the script to your liking. //= The default points is Kafrapoints change it anyway if you like. //= 1.1 = Check Chatting too //= 1.2 = 5 Minute Idle Check & @at/@autotrade check. //= 1.3 = Corrected the current balance line on 12 Hours Consecutive //==================================================================== - script hourlypoints -1,{ //Start of the Script OnPCLoginEvent: attachnpctimer ""+strcharinfo(0)+""; initnpctimer; end; OnTimer30000: //Check if Vending (normal or @at) if(checkvending() >= 1 || checkchatting() == 1) { dispbottom "The Ragnarok Online hourly cash points event stopped because you were vending / chatting. Please relog if you wish to start again."; stopnpctimer; end; } //Check if Idle getmapxy( .@map$, .@x, .@y, 0 ); if(@map$ == .@map$ && @x == .@x && @y == .@y) { set @afk, @afk + 1; } //If move timer resets else { set @afk, 0; } set @map$, .@map$; set @x, .@x; set @y, .@y; //Idle Check for 10 Minutes if(@afk == 10) { dispbottom "The Ragnarok hourly points event stopped because you were idle for 5 minutes. Please relog if you wish to start again."; stopnpctimer; end; } end; OnTimer60000: set @minute, @minute + 1; //Check for 1 Minute if(@minute == 60){ set @minute,0; set .@point_amt, 10; //Points to get every hour (default: 10) getitem 7227,10; dispbottom "You received TCG Cards by staying ingame for 1 hour"; set @consecutive_hour, @consecutive_hour + 1; } stopnpctimer; initnpctimer; end; } //--End of the Script
-
did you put type the file name correctly? including the path..
what's the output on mapserver window?
if you see "Script could not be loaded" in your client, there should be some messages in mapserver window, either it's "file not found" or script error.
it's a simple change. but you probably just did not load it..
*has not been able to properly load it
-
I think .@var is a pointer before, but I realize it is a copy pointer with it's own structure (int). So this is why I always get array size equal 1.
this is the thing that I'd like to say since last night.
sure, np!
//off topic
shouldn't it be GLHF? (Good Luck Have Fun)?
-
wow it's such a complicated code..
If I were you, I probably will do something like this:
set .@choice$,"0xFF0000","0xFF4000","0xFF8000","0xFFBF00","0xFFFF00","0xBFFF00","0x80FF00","0x40FF00","0xFA5882","0x0101DF","0x7401DF"; select .@choice$; explode(.@option$,.@choice$,":"); <then on the broadcast> announce ""+strcharinfo(0)+": "+.Message$+"",bc_all,.@option$[@menu-1];
reference: rathena.org/wiki/Select
-
getarraysize (.@headgear); will of course return the value of 1.
think about this:
.@i = 0;
.@j = 1;
.@headgear = getd(".headgear" + .@i + "_" + .@j); ---> .@headgear = .headgear0_1; right?
Therefore, getarraysize(.@headgear); will ofc be 1. (because .headgear0_1 is the same as .headgear0_1[0] (C's rule))
(could be different in implementation, tho..)
but if you want to print all elements on the array, then it shall be like this:
for (.@i = 0; .@i <10; .@i++ <or i think: set .@i, .@i+1> { for (.@j = 0; .@j<=1; .@j++) { for (.@k = 0; .@k<10; .@k++){ .@headgear = getd(".headgear" + .@i + "_" + .@j + "[" + k + "]"); debugmes .@headgear; } } }
if you want to print the item name, then.....
for (.@i = 0; .@i <10; .@i++ <or i think: set .@i, .@i+1> { for (.@j = 0; .@j<=1; .@j++) { for (.@k = 0; .@k<10; .@k++){ .@headgear = getd(".headgear" + .@i + "_" + .@j + "[" + k + "]"); .@headgearname$ = getitemname(.@headgear); debugmes .@headgearname$; } } }
is it the question?
-
PLEASE READ THIS COMPLETELY BEFORE USING THE SCRIPT.
Modifications:
1. added some IP, SQL feature to the NPC to check it
2. added some SQL commands to remove the variables.
how it works:
after NPC disguised, when a player guessed, he is checked:
1. if someone else has win it or not (default)
2. how many wins have obtained (exceed max allowed win? if yes, not allowed to win anymore, IP is stored inside `restrict_disguise`) if no:
3. if the current IP was stored inside the `restrict_disguise` (if yes, not allowed to win anymore) if no:
4. set global (account variable) "#disguisewin" to be #disguisewin+1 (if had never win, then variable is added automatically)
5. when max_round has reached, game will end and will remove the variables "#disguisewin" and empty the banned ip table.
note:
1. can be bypassed by players who get dynamic IP by: logout, restart modem, login with another ID
2. if someone did (no. 1) and tried to do so, and (unluckily) he got the IP that the previous player used, he will get banned from the game.
3. If there are 10 rounds and was played 7 times, NPC will disguise infinitely till GM stops it, right? therefore, even if it's been more than 3 hours (in 3 hours the game is not ended), then the ban will remain the same.
4. seems like if the event has ended, a player who already touched the max_win must re-login (at least re-select char (esc, char selection, enter)) to join the next game. it's common.
5. be careful when copying the code (white space problems)
First, execute this SQL script:
CREATE TABLE IF NOT EXISTS `restrict_disguise` (`ip` varchar(100) NOT NULL default '', PRIMARY KEY (ip)) ENGINE=MyISAM;
Then you can load this script:
//===== 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; query_sql("delete from global_reg_value WHERE str = \"#disguisewin\";"); query_sql("delete from `restrict_disguise`;"); 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 .maxwin, 5; if (#disguisewin >= .maxwin) { dispbottom "Your ID has won "+#disguisewin+" rounds of this disguise game."; dispbottom "According to GM, you are not allowed to win anymore on this game."; emotion e_sob,1; query_sql("INSERT INTO `restrict_disguise` (ip) VALUES (\""+escape_sql(getcharip())+"\");"); end; } set @ipwin, query_sql("SELECT `ip` from `restrict_disguise` WHERE `ip` = \""+escape_sql(getcharip())+"\" "); if (@ipwin > 0) { dispbottom "Your IP has won "+.maxwin+" rounds of this disguise game."; dispbottom "According to GM, you are not allowed to win anymore on this game."; emotion e_sob,1; end; } set #disguisewin, #disguisewin+1; 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 query_sql("delete from global_reg_value WHERE str = \"#disguisewin\";"); query_sql("delete from `restrict_disguise`;"); end; } setnpcdisplay "Disguise Event",795; set .Change,0; setnpctimer 0; end; }
oh, and something like
[SQL]: DB error - Duplicate entry '127.0.0.1' for key 'PRIMARY'
will appear if winning players still guessing the disguise. don't care about this. (i'm lazy to do this. try to modify it using insert into ... if does not exist)
*guessing correctly
-
For such issue you can use some open sourced font like Google Font: https://www.google.com/fonts
Alright, I think I solved it. If you visit the site (ebilro.altervista.org) you should see the Amatic font now (http://www.fontsquirrel.com/fonts/amatic). Now time to learn how to add server information (php right?). Although I don't host a server, can I still do this? I'm assuming it will just say that everything is offline.
yes. PHP has variables thing to be set. you also can render PHP using Apache (XAMPP)
-
wow dat chain quote..
I installed my flux from git/rathena/fluxcp but I didn't get such error. I wonder why did you get some..
and about the screenshot..
AdBlock? XD JK
-
if you got that one, then probably this?
http://stackoverflow.com/questions/8028957/how-to-fix-headers-already-sent-error-in-php
-
I assume you are using a theme, named "FluxWOW"
then, open the addons folder, go to vote4points (or something (IDK)) and go to the "theme" folder. change the folder name inside it to "FluxWOW".
this should do the trick..
-
hmm, I believe the theme does not come with the views list you wished to see. amd. what is it exactly? screenshot? (and the address bar pls)
-
1
-
-
Help
in Web Support
i think it's best to leave the nameserver left default. but better ask them.
-
okay, nvm.
AS I know, you are NOT eligible to get client's MAC address. the only thing you can ban is their character, ID, and IPv4 IP (which if the player got a dynamic IP, will be able to be bypassed by restarting modem)
What do you wish from @afk or @afk2? THIS?
http://rathena.org/board/topic/71389-afk-with-afk-hat/
or this?
http://rathena.org/board/topic/82415-afk-command/?p=233804
found from here:
-
what's the connection between GIT and root access? to install GIT? then ask your server provider to install GIT for you to use..
-
As I know, when players logout, the copied skill will be deleted (unless I used preserve?). that's how I played Stalker long ago and I copied Storm Gust from my friend for WoE.
-
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
-
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
[R] Custom Jobmaster
in Script Requests
Posted
sure, no prob. pls mark as solved / answered.