본문으로 이동
주 메뉴
주 메뉴
사이드바로 이동
숨기기
둘러보기
대문
최근 바뀜
게임 목록
임의의 게임으로
커뮤니티
리버티게임 본진
리버티게임(개발)
검색
검색
보이기
계정 만들기
로그인
개인 도구
계정 만들기
로그인
이 서버는
리버티게임
의 개발용 베타 서버로, 게임 플레이 용도로 제작된 사이트가 아닙니다.
리버티게임의 자동 인증된 사용자라면 개발에 필요한 관리자 권한을
신청
할 수 있습니다.
틀 및 기능별 소도구를 필요한 문서에만 선택적으로 로딩하는 테스트를 진행하고 있습니다. 작동하지 않는 문서가 있다면
담당자
에게 알려주세요.
사용자:BANIP/플러그인/랭킹시스템 문서 원본 보기
사용자 문서
토론
한국어
읽기
원본 보기
역사 보기
도구
도구
사이드바로 이동
숨기기
동작
읽기
원본 보기
역사 보기
새로 고침
일반
여기를 가리키는 문서
가리키는 글의 최근 바뀜
특수 문서 목록
문서 정보
축약된 URL 얻기
보이기
사이드바로 이동
숨기기
←
사용자:BANIP/플러그인/랭킹시스템
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
<div style="display:none"> 요령 => 아래 변수들의 첫번째 인자들을 내용에 맞게 자르고 붙여넣어주세요 !!!!!!!!!!!!!!!! 플러그인 정보 입력 구간 윗부분은 만지지 마시오 절대로!!!!!!!!!!!!!!!!! {{#vardefine:name|RankingSystem}} {{#vardefine:creat|BANIP}} {{#vardefine:version|1.1.0}} {{#vardefine:descript|랭킹시스템 라이브러리}} {{#vardefine:local|true}} {{#vardefine:excutable|false}} {{#vardefine:code| // 이부부분에 코드 입력 // <nowiki> /** * @param {string} documentTitle 랭킹정보가 있는 문서의 제목. {function} sortCallback 랭킹을 정렬할때 기준으로 사용하는 함수 {any} prev 랭킹 정렬 기준으로 사용할 왼쪽의 값 {any} next 랭킹 정렬 기준으로 사용할 오른쪽의 값 {object} api MediaWikiapi의 인스턴스, 없어도 됨. @return {Object} {function} get 랭킹정보를 object형태로 획득 {function} update 랭킹정보 업데이트 {object} updateInfo 업데이트할 사용자 정보 {function} updateCriteria 사용자정보의 업데이트 기준 @param {any} rankingScore 랭킹에서 사용중인 스코어 {any} thisScore 사용자 스코어 @return{bool} true가 반환되면 업데이트 {object} alternateKeys 랭킹에서 보여지는 대체 키 */ return function(documentTitle, sortCallback, api) { function forEach(object, callback) { for (var key in object) { var variable = object[key]; callback(variable, key); } } function getRankingJSON(rankingDoc) { if (!rankingDoc) return {}; var includeOnlyString = "includeonly" var regexp = new RegExp("\<" + includeOnlyString + "\>(.*)\<\/" + includeOnlyString + "\>"); var stringRanking = regexp.exec(rankingDoc)[1]; return JSON.parse(stringRanking); } function updateDoc(rankingJSON, api, alternateKeys) { //alternateKeys가 반영된 개개인의 랭킹정보 획득 function getOutputJSON(json) { var result = {}; forEach(json, function(value, key) { key = alternateKeys[key] || key; result[key] = value; }) return result; } //보여지는 형태의 랭킹정보 획득 function getOutputString(json) { var name = json.name; var result = "* '''" + name + "''' : "; forEach(json, function(value, key) { if (key === "name") return; key = alternateKeys[key] || key; result += key + ": " + value + ", "; }) result += "\n" return result } var stringRanking = JSON.stringify(rankingJSON); var result = "<includ" + "eonly>" + stringRanking + "</inclu" + "deonly>\n"; result += "<onlyin" + "clude>\n"; var rankingList = Object.entries(rankingJSON).sort(function(prev,next){ return sortCallback(prev[1],next[1]) }).map(function(value){ return value[0] }); rankingList.forEach(function(key) { var json = rankingJSON[key]; var outputJSON = getOutputJSON(json); result += getOutputString(outputJSON) }); result += "</only" + "include>"; var reply = documentTitle.replace(new RegExp("\/.*"),"") + " 점수 갱신"; api.changeDocument(documentTitle, reply, result, true); return result; } function updateUserScore(rankingJSON, thisScore, updateCriteria) { updateCriteria = updateCriteria || function(rankingScore, thisScore) { return rankingScore.score < thisScore.score; } var userName = thisScore.name; var rankingScore = rankingJSON[userName]; if (!rankingScore || updateCriteria(rankingScore, thisScore)) { rankingJSON[userName] = thisScore; } } api = api || MediaWikiAPI(); var userName = mw.config.get("wgUserName"); var rankingDoc = api.getDocument(documentTitle); var rankingJSON = getRankingJSON(rankingDoc); var actions = { get: function() { return rankingJSON; }, update: function(updateInfo, updateCriteria, alternateKeys) { rankingJSON = actions.get(); updateUserScore(rankingJSON, updateInfo, updateCriteria); updateDoc(rankingJSON, api, alternateKeys); } } return actions; } </nowiki> }} !!!!!!!!!!!!!!!! 플러그인 정보 입력 구간 끝 아래는 만지지 마시오!!!!!!!!!!!!!!!!! </div>{{#switch: {{{1|화면}}} |dump = |화면 = {{플러그인/preset/각주}} <p<includeonly></includeonly>re class="script" data-name="{{#var:name}}" data-create="{{#var:creat}}" data-version="{{#var:version}}" data-descript="{{#var:descript}}" data-local="{{#var:local}}" data-excutable="{{#var:excutable}}" data-state="사용자:BANIP/플러그인/랭킹시스템"> {{#var:code}} </pre> |#default = {{#ifeq:{{{2|틀}}}|틀|{{플러그인/알림|{{#var:name}}}}|}} <span class="use-script" data-name="{{#var:name}}" data-creat="{{#var:creat}}" data-version="{{#var:version}}" data-excutable="{{#var:excutable}}" data-descript="{{#var:descript}}" data-local="{{#var:local}}" data-state="사용자:BANIP/플러그인/랭킹시스템" data-link="{{fullurl: {{#rel2abs: {{{1}}} }} }}"></span> }}
사용자:BANIP/플러그인/랭킹시스템
문서로 돌아갑니다.