쿠폰 시스템
srt - scripting - NPCConversationManager. java 여신후 밑에 추가해주세요<br />
public String 쿠폰등록(String text) {
Connection con = MYSQL.getConnection();
StringBuilder string = new StringBuilder();
String[] item = text.split(",", 0); //item[0]- 템코드 ,item[1]수량
String code=getRandomcode(5)+"-"+getRandomcode(5)+"-"+getRandomcode(5)+"-"+getRandomcode(5);
int a = Integer.parseInt(item[0]);
int b = Integer.parseInt(item[1]);
PreparedStatement ps = null;
if(1000000<a&&a<9999999) {
string.append("쿠폰 번호는#r"+code+"#k입니다.");
string.append("\r\n");
string.append("스크린샷을 찍어주세요!!");
try {
ps = con.prepareStatement("INSERT INTO code (chrid, item, qua, code) VALUES (?, ?, ?, ?)");
ps.setInt(1, getPlayer().getId());
ps.setInt(2, a);
ps.setInt(3, b);
ps.setString(4, code);
ps.executeUpdate();
ps.close();
} catch (Exception error) {
} }
else{
string.append("아이템 코드가 잘못된 형식입니다. 다시 해주세요");
}
return string.toString();
}
public String 쿠폰입력(String code) {
Connection con = MYSQL.getConnection();
StringBuilder string = new StringBuilder();
int item,qua;
String code1;
int a=0;
PreparedStatement ps = null;
try {
ps = con.prepareStatement("SELECT * FROM code where code = ?");
ps.setString(1, code);
ps.close();
a=1;
} catch (Exception error) {
c.getPlayer().getClient().getSession().write(MainPacketCreator.getNPCTalk(1032201, (byte) 0, "쿠폰번호가 올바르지 않습니다.", "00 00", (byte) 0));
a=0;
}
if(a!=0){
string.append("#r" + code + "#k #b쿠폰을 사용하여\r\n");
string.append("#i"+item(code)+"##b아이템을 " + qua(code) + " 개 획득 하셨습니다.");
gainItem(item(code),qua(code));
try {
ps = con.prepareStatement("DELETE FROM code WHERE code = ?");
ps.setString(1, code);
ps.executeUpdate();
ps.close();
ps.setString(1, code);
ps.close();
} catch (Exception error) {
c.getPlayer().getClient().getSession().write(MainPacketCreator.getNPCTalk(1032201, (byte) 0, "쿠폰번호가 올바르지 않습니다.", "00 00", (byte) 0));
}
}else{
c.getPlayer().getClient().getSession().write(MainPacketCreator.getNPCTalk(1032201, (byte) 0, "쿠폰번호가 올바르지 않습니다.", "00 00", (byte) 0));
}
return string.toString();
}
sql 파일 만드셔서
-- MySQL Administrator dump 1.4
--
-- ------------------------------------------------------
-- Server version 6.0.0-alpha-community-nt-debug
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
--
-- Definition of table `code`
--
DROP TABLE IF EXISTS `code`;
CREATE TABLE `code` (
`chrid` int(10) NOT NULL DEFAULT '0',
`item` int(10) NOT NULL DEFAULT '0',
`qua` int(10) NOT NULL DEFAULT '0',
`code` varchar(50) NOT NULL DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=euckr;
--
-- Dumping data for table `code`
--
/*!40000 ALTER TABLE `code` DISABLE KEYS */;
/*!40000 ALTER TABLE `code` ENABLE KEYS */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
추가후 통쿼리 읽는것처럼 읽어 주시면 됩니다
-- ------------------------------------------------------
엔피시 파일 아무거에나
importPackage
var status = 0;
var sele = 0;
function start() {
status = -1;
action(1, 0, 0);
}
function action(mode, type, selection) {
if (mode == -1) {
cm.dispose();
} else {
if (mode == 0 && status == 0) {
cm.dispose();
return;
}
if (mode == 1)
status++;
else
status--;
if (status == 0) {
var chat = "안녕하세요? #b" +cm.getPlayer().getName() + "#k님\r\n저는 페리우스월드에서 쿠폰을 관리하고있는 #r라니아#k 라고해요.\r\n";
chat += "#L2##b쿠폰이란게 뭐야??#l\r\n";
chat += "#L1##b쿠폰을 사용하겠어!!#l\r\n";
if(cm.getPlayer().getGMLevel() >= 6)
chat += "#L0#쿠폰 번호 제작#l";
cm.sendSimple(chat);
} else if (status == 1) {
sele = selection;
if (sele == 0) {
cm.sendGetText("아이템,갯수");
} else if (sele == 1) {
cm.sendGetText("#r페리우스#k #b님에게서\r\n발급받으신 쿠폰번호를 입력해주세요\r\n#r(EX:ABCDE-12345-FGHIJ-67891-KLNMO)");
} else if (sele == 2) {
cm.sendOk("#b쿠폰#k에대해서 궁금하신가봐요?\r\n그렇다면 #r라니아#k 가 자세하게 설명을 해드릴게요.\r\n#b쿠폰#k은 #d페리우스#k님만 발급이 가능하며\r\n#b쿠폰#k을등록하면 아이템을 휙득할수있습니다.\r\n#b쿠폰#k에있는 아이템은 쿠폰마다 다르며\r\n#r한번 사용한 쿠폰 은 중복사용이 불가능합니다.");
cm.dispose();
}
} else if (status == 2) {
itemSelection = selection;
if (sele == 0) {
cm.sendOk(cm.쿠폰등록(cm.getText()));
cm.dispose();
} else if (sele == 1) {
cm.sendOk(cm.쿠폰입력(cm.getText()));
cm.dispose();
}
}
}
}

cksals33 님의 최근 댓글
감사용 2017 04.03