จัดการ ป๊อกเด้ง by

26
Dec
0

การเปิด event high low
** ไฟล์จัดการอยู่ที่ lib/model/event **
1. php แก้ไฟล์ config/event ‘event_highlow’ เป็น true;
2. รัน node ไฟล์ createHighLowEvent เพื่อเปิด event ทุกนาทีที่กำหนด ตามของเก่า*
3. รัน node ไฟล์ endHighLowEvent เพื่อปิด event ทุกนาทีที่กำหนด ตามของเก่า*
—————————————————————————
mission nickname achievement
ตัวจัดการทั้งหมด อยู่ที่ lib/model/activity
จะมีการเรียกฟังก์ชั่น เพื่อเช็ค อัพเดท mission nickname achievement อยู่ 4 ตัว คือ
updateActivitys //เอาไว้อัพเดท หรือเช็คค่าหลังเล่นจบ ไว้อัพเดทข้อมูล พวก ได้เงิน เสียเงิน ต่างๆ
updateActivitys_emotion//เอาไว้อัพเดท หรือเช็คค่าหลังส่งอีโมติค่อน
updateActivitys_buy//เอาไว้อัพเดท หรือเช็คค่าหลังซื้อของ
updateActivitys_sendMoney//เอาไว้อัพเดท หรือเช็คค่าหลังส่งเงินไห้เพื่อน
updateActivitys_sitroom//เอาไว้อัพเดท หรือเช็คค่าเงินที่เอาไว้เข้าห้อง หลังสร้างห้อง / นั่ง / จอยรูมแบบนั่งด้วย

** บางตัวจะไม่ อัพเดท mission ถ้าจะเพิ่ม mission ไปดูตัวอย่างจาก updateActivitys ได้จะเรียกอัพเดท และส่งnoti จาก updateMissionNoti
—————————————————————————
event ต่างๆ
- config อยู่ที่ lib/config/event
ตัวจัดการ อีเว้น กลาง
– getEventOpen จัดการ ข้อมูล โดยจะส่งข้อมูล อีเว้นที่เปิดอยู่ใน config ออกมาไห้
– getEventPopup เวลาที่คนเล่น กดไอคอนอีเว้น จะเรียก ฟังก์ชั่นนี้เพื่อแสดงรายละเอียด ถ้ามี error เรียก มาแสดงว่าเขายิงตรง

event จะแบ่งเป็น type ต่างๆ ดังนี้
* inroom_bet เป็นอีเว้นที่เล่นครบกำหนด จะมีโอกาสลุ่นได้รางวัลใหญ่
ตัวจัดการอีเว้นนี้คือ
ฟังก์ชั่นที่เกี่ยวข้อง
– getEventReward เอาไว้คำนวณเวลากดรับของรางวัล โดยมันจะแรนดอม เงินให้
* inroom_click เทพเจ้าโชคลาภ
** ถ้าจะเพิ่ม id ต้องไปเพิ่มใน php ด้วย น่ะ ตรง user/god_event_user_get ด้วย โดยเพิ่ม $activity['event_*ไอดีไหม่*_lasttime'] ด้วย
ตัวจัดการอีเว้นนี้คือ
– timeGodBorn จัดการเวลาเกิดของเทพ
– eventGodClick ทำหน้าที่ 2 อย่าง คือเช็ค ว่าถึงเวลาเทพเกิดยัง กับ กดเทพ โดย flash จะยิงมาถามตลอด เวลา ที่เล่นจบ

*** เวลาจะเปิด event ของ inroom_click จะต้องอัพก่อน 1 วัน คือเปิดได้ 1 วันหลังจากที่ อัพ โค๊ด โดยจัดการเปิด code ที่ ตัวแปร
date_start ใน config
—————————————————————————
emotion
แบ่งเป็น 2 ส่วน
ซื้อ อยู่ที่ php
ฟังก์ชั่น controller/emo_shop
– shop_get เปิด shop ขาย
– buy
– emotion_can_use เรียกตอนจะใช้ emo ตอนอยู่ในห้อง
ตอนใช้ จะเรียกเข้าฟังก์ชั่น js
– sendEmotion อยู่ไฟล์ pokdeng.js เป็นตัวจัดการ

—————————————————————————

จัดการ event stage ตอน 2 by

26
Dec
0

จัดการ config event stage
‘name’ => ชื่อ อีเว้น,
‘full_name’ => ชื่อ เต็มเอาไว้ส่งให้ flash,
‘require_lv’=> เลเวลที่สามารถเข้าได้,
‘start_dungeon_id’ => dungeon_id ของแมพแรกของ อีเว้น,
‘multi_hour’ => array(0,4,8,12,16,20) ชั่วโมงเปิดคูน 2,
‘energy_use_per_step’ => energy ที่เสีย ต่อ ช่องว่าง / วาป ,
‘energy_use_per_get_item’ => energy ที่เสีย ต่อ ช่องที่มีไอเอ็มดรอป,
‘energy_use_per_fight’ => energy ที่เสีย ต่อ ช่องที่สู้กับมอนเตอร์,
‘reward_rank_have_group’ => ของรางวัลแต่ละกลุ่มเหมือนกันไหม ไม่ = 1 เหมือน = 0,
‘random_map_end’ => true ถ้าจบชั้นสูงสุดแล้วแมพต่อไปจะ แรนดอมไหม,
‘time_end’ => strtotime(’2014-01-06 13:00:00′) เวลาจบ อีเว้น,
‘image_name’ => ‘event/20131219_winter_castle.png’ รูปปุ่มเข้าอีเว้น,
‘can_capture_mon’ => true สามารถจับมอนเตอร์ได้ป่าว,
‘type’ => ‘stage’ ประเภทของอีเว้น,
config แยกคนออกเป็นกลุ่ม key คือ ช่องเลเวลของผู้เล่น
‘group’ => array(
ผู้เล่นที่มีเลเวล array(
‘group_id’=>1,
‘max_level’=> 20,
‘max_sub_group’=> 7,
‘code_name’ =>’1-20 ‘,
),
ผู้เล่นที่มีเลเวล 21-30
30=>array(
‘group_id’=>2,
‘max_level’=> 30,
‘max_sub_group’=> 5,
‘code_name’ =>’21-30 ‘,
),
ผู้เล่นที่มีเลเวล 31-45
45=>array(
‘group_id’=>3,
‘max_level’=> 45,
‘max_sub_group’=> 3,
‘code_name’ =>’31-45 ‘,
),
ผู้เล่นที่มีเลเวล array(
‘group_id’=>4,
‘max_level’=> 100,
‘max_sub_group’=> 1,
‘code_name’ =>’45+ ‘,
),
),
config สร้างข้อมูลของ ช้น ‘end_less’ โดยจะเอารูปแบบชั้นจาก ดาต้าเบต แต่พวก เลเวลของมอนเตอร์ เงิน exp จะเปลี่ยนตามนี้
‘end_less’ =>array(
‘mon_lv_min’=>80,
‘mon_lv_max’=>90,
‘mon_team’=>6,
‘money_min’=>750,
‘money_max’=>1000,
‘exp_per_fight’=> 275,
‘monster’=>array(
10=>array(“188″,”189″,”190″,”196″,”197″,”198″,”203″,”204″,”205″,”210″,”211″,”212″,”282″),
40=>array(“1096″,”1112″,”287″,”648″,”302″,”648″,”199″,”206″,”213″),
70=>array(“1097″,”1113″,”1782″,”1787″,”1788″,”1789″,”649″,”442″),
95=>array(“1098″,”1114″,”1783″,”1790″,”1791″,”1792″,”1802″),
100=>array(“1802″),
),
),
คะแนนต่างๆ ของอีเว้น
‘add_point’ => array(
//key เป็นดาวของมอนเตอร์
‘fight_monster’=>array(
1 => 10,
2 => 20,
3 => 30,
4 => 90,
5 => 210,
),
‘capture_monster’=>array(
1 => 20,
2 => 32,
3 => 100,
4 => 1000,
5 => 10000,
),
//key เป็นชั้น
‘end_floor’=>array(
30=>300,
60=>500,
100=>1000
),
‘fight_miniboss’=>array(
20=>2500,
40=>2500,
60=>2500
),
‘fight_boss’=>array(
50=>4000,
80=>4500,
100=>5000,
)
),
ของรางวัลที่แจก โดยอันนี้แต่ละกรุ๊ปเหมือนกัน แต่ถ้า ไม่เหมือน จะเป็น อาเร่ย์ซ้อน เข้าไปอีก 1 ชั้นโดยมี key เป็น กรุ๊ป 1-4
‘reward_rank’ => array(
1=>array(
‘rank_image’=>’grand’,
‘rewards’=>array(
array(
‘type’ => ‘monster’,
‘id’ => 1804,
‘count’ => 1
),
array(
‘type’ => ‘inventory’,
‘id’ => 100,
‘count’ => 1
),
array(
‘type’ => ‘ticket_gold’,
‘count’ => 2
),
),
),
10=>array(
‘rank_image’=>’gold’,
‘rewards’=>array(
array(
‘type’ => ‘monster’,
‘id’ => 1803,
‘count’ => 1
),
array(
‘type’ => ‘inventory’,
‘id’ => 100,
‘count’ => 1
),
array(
‘type’ => ‘ticket_gold’,
‘count’ => 1
),
),
),
25=>array(
‘rank_image’=>’silver’,
‘rewards’=>array(
array(
‘type’ => ‘monster’,
‘id’ => 1784,
‘count’ => 1
),
array(
‘type’ => ‘ticket_silver’,
‘count’ => 3
),
),
),
50=>array(
‘rank_image’=>’bronze’,
‘rewards’=>array(
array(
‘type’ => ‘monster’,
‘id’ => 1783,
‘count’ => 1
),
array(
‘type’ => ‘ticket_silver’,
‘count’ => 2
),
),
),
100=>array(
‘rewards’=>array(
array(
‘type’ => ‘ticket_silver’,
‘count’ => 2
),
array(
‘type’ => ‘money’,
‘count’ => 30000
),
),
),
200=>array(
‘rewards’=>array(
array(
‘type’ => ‘ticket_silver’,
‘count’ => 1
),
array(
‘type’ => ‘money’,
‘count’ => 20000
),
),
),
300=>array(
‘rewards’=>array(
array(
‘type’ => ‘inventory’,
‘id’ => 3,
‘count’ => 2
),
array(
‘type’ => ‘money’,
‘count’ => 10000
),
),
),
500=>array(
‘rewards’=>array(
array(
‘type’ => ‘inventory’,
‘id’ => 3,
‘count’ => 1
),
array(
‘type’ => ‘money’,
‘count’ => 5000
),
),
),
),
ของรางวัลเมื่อจบชั้น จะเป็น อาเรย์ โดยมี key เป็น ชั้นที่จะแจก
‘reward_end_floor’ => array(
1=>array(
‘type’ => ‘inventory’,
‘id’ => 2,
‘count’ => 1
),
10=>array(
‘type’ => ‘inventory’,
‘id’ => 3,
‘count’ => 1
),
20=>array(
‘type’ => ‘inventory’,
‘id’ => 3,
‘count’ => 1
),
30=>array(
‘type’ => ‘money’,
‘count’ => 10000
),
40=>array(
‘type’ => ‘inventory’,
‘id’ => 82,
‘count’ => 1
),
50=>array(
‘type’ => ‘ticket_silver’,
‘count’ => 1
),
60=>array(
‘type’ => ‘inventory’,
‘id’ => 3,
‘count’ => 2
),
70=>array(
‘type’ => ‘inventory’,
‘id’ => 3,
‘count’ => 2
),
80=>array(
‘type’ => ‘money’,
‘count’ => 20000
),
90=>array(
‘type’ => ‘inventory’,
‘id’ => 82,
‘count’ => 2
),
100=>array(
‘type’ => ‘ticket_silver’,
‘count’ => 2
),
),

จัดการ event stage ตอน 1 by

23
Dec
0

สร้างฐานข้อมูลต่าง
รันฟังก์ชัน generate/event_dungeon_gen
โดยมีตัวแปรที่ต้องใส่คือ
-treasurebox obj มีkey เป็นโอกาสสุ่ม และ value เป็นดาต้าของรางวัล
-magicbox obj มีkey เป็นโอกาสสุ่ม และ value เป็นดาต้าของรางวัล
-floor_boss อาเร่ย์ของชั้นที่มี บอส อาศัยอยู่
-floor_mini_boss อาเร่ย์ของชั้นที่มี มินิบอส อาศัยอยู่
-mini_boss ดาต้าของมินบอส เป็น obj
‘id’=> id ของมินิบอสเป็นอาเรย์ ตาม floor_mini_boss,
‘level’=> level ของมินิบอสเป็นอาเรย์ ตาม floor_mini_boss,
‘minion_id’=> idลูกน้องของมินิบอสเป็นอาเรย์ ตาม floor_mini_boss,
‘minion_level’=> levelลูกน้องของมินิบอสเป็นอาเรย์ ตาม floor_mini_boss,
‘minion_count’=> จำนวนลูกน้องของมินิบอสเป็นอาเรย์ ตาม floor_mini_boss,
‘exp’=> exp ของมินิบอสเป็นอาเรย์ ตาม floor_mini_boss,
‘money’=> money ของมินิบอสที่ดรอปเป็นอาเรย์ ตาม floor_mini_boss,
‘resource’=> resource ของมินิบอสที่ดรอปเป็นอาเรย์ ตาม floor_mini_boss,
‘reward’=> รางวัลอย่างอื่น ของมินิบอสที่ดรอปเป็นอาเรย์ ตาม floor_mini_boss
-randbox ข้อมูลของกล่องแรนดรอม
‘name’=> ชื่อ,
‘image_name’=> ลิงค์รูป,
‘data’=> obj มีkey ชื่อของโอกาส และมี value objที่เก็บ โอกาส และ ของรางวัล
-data:obj
ชั้น:obj
‘mon_lv_min’=> int,
‘mon_lv_max’=> int,
‘mon_team’=> int,
‘money_min’=> int,
‘money_max’=> int,
‘exp_per_fight’=> int,
‘mon_per’=> อาเรย์การออกของมอนเตอร์ แต่ละดาว,
‘money_box_serialized’=> อาเรย์ของกล่องเงิน,
‘item_box_serialized’=> obj มีkey เป็นโอกาสสุ่ม และ value เป็นดาต้าของรางวัล
-monster ข้อมูลของมอนเตอร์ในอีเว้น เก็บเป็น อาเรย์ตาม ดาว-1
*** ถ้าชื่อ family มี ‘-’ ให้เปลี่ยน ‘-’ เป็น ‘_’ ***
ex:4=>array(‘puppet-3′,’banshee-2′,’iron maiden-1′),
3=>array(‘puppet-2′,’banshee-1′,’black cat-2′),
2=>array(‘puppet-1′,’zombie-2′,’black cat-1′,’flying skull-2′),
1=>array(‘wanderer-2′,”Jack o’Lantern-2″,’Ghost-2′,’Skeleton-2′,’zombie-1′,’flying skull-1′),
0=>array(“wanderer-1″,”Jack o’Lantern-1″,”Ghost-1″,”Skeleton-1″),
-boss
‘count’=> 3,
‘name’=>ชื่อบอส,
‘image_name’=>รูปบอส,
‘dungeon_id’=> เดียวระบบเจน เอง,
‘atk’=> atk ของบอสเป็นอาเรย์ ตาม floor_boss,
‘hp’=> hp ของบอสเป็นอาเรย์ ตาม floor_boss,
‘skill_deny’=>’debuff’ / ‘buff’,
‘element’=>’W',
‘atk_move’=>’ice_3′,
‘minion_id’=> ไอดีลูกน้อง ของบอสเป็นอาเรย์ ตาม floor_boss,
‘minion_lv’=> lv ลูกน้อง ของบอสเป็นอาเรย์ ตาม floor_boss,
‘exp’=> exp ที่ดรอปของบอสเป็นอาเรย์ ตาม floor_boss,
‘money’=> money ที่ดรอปของบอสเป็นอาเรย์ ตาม floor_boss,
‘resource’=> resource ที่ดรอปของบอสเป็นอาเรย์ ตาม floor_boss,
‘reward_serialized’=> เป็น json ของรางวัลที่ได้จาก บอส
รันฟังก์ชัน generate/event_random_box_gen เพื่อสร้าง ข้อมูลกล่อง

*** เครื่องมือ ***
ดูข้อมูลมอนเตอร์
ดูข้อมูลไอเท็ม
***

วิธี เพิ่ม Dungeon แมพ ต่างๆ by

31
Oct
0

-แมพในเกม จะมีอยู่ 2 ส่วน คือ
แมพปกติ (adventure) กับแมพ (event)
โดย วิธีการ เพิ่มนั้น ไฟล์ จะอยู่ใน public/assets/raw_data/dungeon_new
แบ่งเป็น
**สิ่งที่ต้องจำ
mon1_chance : mon1
mon2_chance : mon2
mon3_chance : mon3
mon4_chance : mon4
mon5_chance : mon5
เอาไว้ใช่สร้างมอนเตอร์ โดย mon1_chance จะเก็บ โอกาส เกิด มอนเตอร์ 1 ดาว
mon1 เก็บ ชื่อแฟมิลี่ของมอนเตอร์ 1 ดาวที่มีโอกาสเจอในแมพนั้นๆ โดยขั้นด้วยเครื่องหมาย ‘,’ และ ‘-’ตามด้วยตัวเลข เป็นการบอก form ของมอนเตอร์
**box_chance** e – a ะเก็บ % การดรอป กล่องแต่ละชนิดหลังจบการสู้กับมอนเตอร์ *มีเฉพาะ แมพบอส
**treasure_box** เก็บเงินที่จะได้จากกล่องแดง โดยมีโอกาส ออก 8 อย่างเท่าๆกัน โดยใชั # ขั้นเงินรางวัลไว้ *มีเฉพาะ แมพบอส
*magic_box1* จะคล้ายๆกับ treasure_box แต่จะมีการลดเอนนิจี้ เงิน และได้ของรางวัล โดย
magic_box1 – 3 จะลด energy
magic_box4 – 5 ลดเงิน
magic_box6 – 7 ให้ของโดยใช้ ไอเท็มไอดี#จำนวนที่ได้
magic_box8 ให้ ticket_silver โดยไส่แค่จำนวน
*****************************************
money_box_s1 – 4 ใส่เงิน คล้ายๆกับ treasure_box คือใส่เงินไปอย่างเดียว
mini_box_1-7 ใส่ไอเท็มลงไปโดย
mini_box_1 ใส่กล่องที่จะแจก โดยไส่เป็น E-c ระบบจะหากล่องของแมพนั้นๆเอง
mini_box_2 จำนวน ticket ที่่ได้
mini_box_3 ให้ของโดยใช้ หรัส-จำนวนที่ได้ || eS คือ energy เล็กเป็นต้น
mini_box_4 ให้ของโดยใช้ หรัส-จำนวนที่ได้ || mS คือ mbเล็กเป็นต้น
mini_box_5 แร่อัพเกด ระบบจะหาเองว่าได้แร่อาไร
mini_box_6 Basic Evo Disc / Advance Evo Disc
mini_box_7 cube
******
ต่อไปก็ถ้าแมพที่มี mini boss ช่องพวกนี้ก็จะมีข้อมูล
miniBoss_id
miniBoss_level
minion_id
minion_level
exp
money
ต่างโดยเราใส่ค่าลงไปได้เลยอันน้ไม่ยาก
การ gen ลง ดาต้าเบต
แมพปกติ (adventure)
tester/add_dungeon_db
แมพ (event)
generate/event_dungeon_gen
โดยในส่วนของ แมพ (event) ข้อมูลจะเขียนไว้เป็น แทมเพจ อยู่ในฟังก์ชั่นแล้ว แค่แก้ไขแล้วรัน มันก็จะเขียนลงดาต้าเบตให้แล้วว

**สุดท้ายเวลา จะแก้ไขข้อมูลของ dungeon ทำ แบ๊กอพไว้ให้ดีเพราะ แก้ไข เมื่อมันพังยากมาก ฮ่าๆๆ**

การจัดการข้อมูล มอนเตอร์ by

1
Oct
0

การจัดการข้อมูล มอนเตอร์
ข้อมูลภายในเกม ส่วนใหญ่ นั้นจะมีเก็บข้อมูลลง ฐานข้อมูล mysql
แต่ขอมูลอย่างเช่น มอนเตอร์ นั้นจะมีการ อัพเดท และแก้ไข เป็นประจำการที่เราเข้าไปแก้บนฝั่ง server เลยนั้นมันเสียเวลามาก
ในการทำงานส่วนใหญ่จะเป็นลง บนไฟล์ excel ก่อนโดยเราจะทำให้อยู่ในโครงสร้าง ที่อ่านได้ และสามารถนำมาเขียน เป็นเป็น โค๊ดเพื่อนำลง server ได้
โดยในส่วนตัวเกมของ cyber-mon นั้นเราจะออกแบบ ตารางเป็น

id | name | family | rarity | form | element | lv_max | mp | atk | hp | skill

โดยในส่วนของ family และ skill นั้นเราจะเก็บเป็น id เพื่อ อาจอิงกับ ฐานข้อมูลอื่น เพื่อให้ง่ายต่อการแก้ไขครับ
และวิธีการอัพขึ้น server นั้นเราจะเขียน php เพื่ออัพเดทข้อมูล
โดยการ save เป็นไฟล์ csv
และใช้ library เสริมชื่อ parsecsv
โดยมันจะทำหน้าที่ อ่านไฟล์ csv ครับ
ตัวอย่างการใช้
$this->load->library(‘base/parsecsv’); โหลด library
$csv = new parseCSV();
$csv->parse(PUBLICPATH.’assets/raw_data/newdun.csv’); //อางอิงไปยังไฟล์ csv
**$csv ก็จะได้ข้อมูลออกมาเป็น array 2 มิติ แล้วเราก็ วน foreach เพื่อนำข้อมูลของแต่ละ $row มาใช้ครับ
foreach($csv->data as $row){
$row['ชื่อหัวข้อ']
}
ส่วนคำสั่งที่ mysql ใช้ในการอัพเดทนั้นผมจะใช้คือ REPLACE ครับ โดยต้องเขียนคำสั่งเองน่ะครับ ใน codeigniter ไม่มีให้
ตัวอย่างการใช้ $this->db->query(“REPLACE `ชื่อตาราง` SET
`ชื่อ column ` = ค่าที่อัพเดท ,
);
ข้อดีของ REPLACE คือถ้ามันมี id อยู่แล้วมันจะอัพเดทข้อมูลให้ แต่ถ้าไม่มี มันก็จะ insert ไห้โดยอัตโนมัติ ครับ
ซึ่งจากตัวอย่างเราจะสามารถอัพเดทข้อมูลได้ ง่ายขึ้นเยอะเลยหล่ะครับ ไม่จำเป็นต้องแก้ไขใน mysql โดยตรงแต่สร้างเป็นฟังก์ชั่น อัพเดทครับ

 เราชนะรอบ 4 | ยืมเงิน 3000 ด่วน | แอพกู้เงิน | แอพเงินด่วน | สินเชื่อออนไลน์อนุมัติทันที | Site Map | กู้เงินก้อน | กระเป๋าตัง | thisshop และ ยืมเงินฉุกเฉิน 5000 ด่วน