Autohotkey – 熱鍵取代九宮格數字鍵
對於我這個魔獸新手來說..那個九宮格在右邊的熱鍵實在是有夠難按的..
真不知道當初怎麼會設計成這樣..
我們就用簡單的Autohotkey來製作一個簡單的小程式吧!!
對於我這個魔獸新手來說..那個九宮格在右邊的熱鍵實在是有夠難按的..
真不知道當初怎麼會設計成這樣..
我們就用簡單的Autohotkey來製作一個簡單的小程式吧!!
上次看到這篇Google 採用 HTML5 製作手機應用程式(老新聞)文章後,就覺得Yahoo Pipes實作應該不是太難! (當然是不考慮畫面的部分XD)
但是要如何畫出優美的線條呢? 直覺告訴我應該可以使用貝茲曲線來畫出漂亮的曲線
灌了64bit的作業系統後,發現右鍵選單中的Ultraedit不見了>”<
把底下的內容存成.reg執行就好囉!
要注意的就是最後一行的路徑,可能會因為你安裝的位置不同而有所差異
REGEDIT4 [HKEY_CLASSES_ROOT\*\shell\UltraEdit] @="UltraEdit" [HKEY_CLASSES_ROOT\*\shell\UltraEdit\command] @="\"C:\\Program Files (x86)\\IDM Computer Solutions\\UltraEdit-32\\uedit32.exe\" %1"
以前常到處跑來跑去,又要改網路設定真的很麻煩,所以寫個簡單的批次檔來設定
雖然我知道有很多現成又好用的軟體,不過不想裝那些程式的可以試試這個
DHCP:
netsh interface ip set address “區域連線” dhcp
netsh interface ip set dns “區域連線” dhcp
Static IP:
netsh interface ip set address “區域連線” static 192.168.0.33 255.255.255.0 192.168.0.254 1
netsh interface ip set dns “區域連線” static 168.95.1.1
區域連線的名稱為你網路連線設定的名稱,若你想修改的網路卡為”區域連線1″,那就把上述的”區域連線”改成”區域連線1″即可!
將上述的內容存到.bat檔中即可使用:)
Dir sample:
D:\[01] Music\[01] 國語流行\1990\1984-08-01-陳慧嫻-故事的感覺 的目錄
2008/07/28 上午 01:57 <DIR> .
2008/07/28 上午 01:57 <DIR> ..
2004/02/11 上午 02:17 4,621,084 01.mp3
2004/02/11 上午 02:23 2,858,968 02.mp3
2004/02/11 上午 02:29 3,052,483 03.mp3
2004/02/11 上午 02:36 3,541,496 04.mp3
2004/02/11 上午 02:44 3,757,163 05.mp3
2004/02/11 上午 02:50 2,690,531 06.mp3
2004/02/11 上午 02:58 4,202,707 07.mp3
2004/02/11 上午 03:03 2,392,944 08.mp3
2004/02/11 上午 03:11 3,396,046 09.mp3
2004/02/11 上午 03:21 5,205,809 10.mp3
10 個檔案 35,719,231 位元組
D:\[01] Music\[01] 國語流行\1990\1987-05-01-張學友-在我心深處(國) 的目錄
2008/07/28 上午 01:57 <DIR> .
2008/07/28 上午 01:57 <DIR> ..
1999/12/24 上午 03:30 4,154,096 01_藍雨.MP3
1999/12/24 上午 03:30 496 01_藍雨.TXT
1999/12/24 上午 03:30 3,126,334 02_在我心深處.MP3
1999/12/24 上午 03:30 406 02_在我心深處.TXT
1999/12/24 上午 03:30 2,928,640 03_夢.MP3
1999/12/24 上午 03:31 392 03_夢.TXT
1999/12/24 上午 03:31 4,374,360 04_思念.MP3
1999/12/24 上午 03:31 421 04_思念.TXT
1999/12/24 上午 03:31 4,765,152 05_繫情.MP3
1999/12/24 上午 03:31 367 05_繫情.TXT
1999/12/24 上午 03:32 4,009,064 06_別戀.MP3
1999/12/24 上午 03:32 346 06_別戀.TXT
1999/12/24 上午 03:32 4,052,532 07_是悲是喜.MP3
1999/12/24 上午 03:32 276 07_是悲是喜.TXT
1999/12/24 上午 03:32 3,457,358 08_二人世界.MP3
1999/12/24 上午 03:32 458 08_二人世界.TXT
1999/12/24 上午 03:32 3,067,296 09_狂傲.MP3
17 個檔案 33,937,994 位元組
把dir匯出的資料輸出成特定的格式
#!/usr/bin/perl
$x="2008-12-30.txt";
if (-e $x) {
open(RF, "$x");
@list = <RF>;
printf("INSERT INTO `music`.`musiclist` (`location` ,`filename` ,`filesize`) VALUES ");
foreach $thing (@list)
{
chomp($thing);
$check = substr $thing, 1,3;
if( $check eq "D:\\" )
{
$fileDirector = substr $thing,0,length($thing)-7;
$fileDirector =~ s/^\s+|\s+$//g;
}
else
{
$createDate = substr $thing, 0, 22;
$fileSize = substr $thing, 22, 18;
$fileSize =~ s/^\s+|\s+$//g;
$fileName = substr $thing, 40;
$fileName =~ s/^\s+|\s+$//g;
if($fileName ne "位元組" &amp;&amp; $fileName ne "." &amp;&amp; $fileName ne ".." &amp;&amp; $fileName ne "" &amp;&amp; $fileSize ne "<DIR>")
{
printf("('".$fileDirector."','".$fileName."','".$fileSize."'),\n");
}
}
}
close($x);
} else {
printf "文件不存在。\n";
}
很高興的買了一台U6回來,找好了一堆for XP的Driver
沒想到重灌XP就卡住了=.=
舊版的XP竟然不支援SATA2…
幸好BIOS裡面有選項可以改..Orz
進入BIOS之後選 Advanced >> IDE Configuration >> SATA Operation Mode >> Compatible/Enhanced
將原來的 Enhanced (增強模式式) 改為 Compatible (相容模式)
儲存離開~
希望接下來能順利的灌好XP! 哈哈
每次調整音量大小都要打開工作列上的音量調整音量大小
真的是很麻煩~~~ (雖然說現在很多鍵盤上面都有這功能啦)
用簡單的Autohotkey來製作一個快速調整音量的程式吧!
使用說明:
ctrl + 滑鼠滾輪 調整音量控制大小
alt + 滑鼠滾輪 調整Wave音量大小
程式碼:
~Lcontrol & WheelUP::
SoundSet +2.8
return
~Lcontrol & WheelDown::
SoundSet -2.5
return
~Lalt & WheelUP::
SoundSetWaveVolume, +10
return
~Lalt & WheelDown::
SoundSetWaveVolume, -10
return
如果大家使用上有甚麼問題,在跟我說囉:)
簡單又好用的Prototype Window
該如何使用呢? 首先要引用下列幾個js及css (選擇你要的樣板)
<script type="text/javascript" src="/javascripts/prototype.js"></script>
<script type="text/javascript" src="/javascripts/window.js"> </script>
<link href="/stylesheets/themes/default.css" rel="stylesheet" type="text/css"/>
<!-- Add this to have a specific theme-->
<link href="themes/mac_os_x.css" rel="stylesheet" type="text/css"/>
使用的方法如下,宣告一個新的視窗!
win = new Window({className: "mac_os_x", title: "Sample", width:200, height:150,
destroyOnClose: true, recenterAuto:false}); win.getContent().update("<h1>Hello
world !!</h1>");
win.showCenter();
非常簡單吧!
當你計算依些數值的時候,有些時候會想要取到小數點第二位之類的
就可以使用number_format囉! 之前我都是使用printf(“%.2f”,$num);
最近發現 number_format 也很好用喔!!
而且還可以設定自己想要的格式,如果我要取到小數點第二位的話
number_format($num,2);
其他相關用法: $number = 1234.56; // 預設 // French notation $number = 1234.5678; // english notation without thousands seperator ?>
$english_format_number = number_format($number);
// 印出 1,235
$nombre_format_francais = number_format($number, 2, ',', ' ');
// 1 234,56
$english_format_number = number_format($number, 2, '.', '');
// 1234.57
不知道為什麼這一系列的都出現了這樣的錯誤,令人不解
這邊只舉一個地方來做修改,如果有遇到相關的錯誤,可以自行運用
(略) plasticsurgery.cpp(135) : warning C4700: 使用了未初始化的區域變數 ‘eyes’
原始程式碼:
void NPCsScripts::npc_1052005(NPC* npc){
int eyes[] = {20000, 20001, 20002, 20003, 20004, 20006, 20007, 20008, 20012, 20013};
int state = npc->getState();
if(state == 0){
npc->addText("If you use the regular coupon, your face may transform into a random new look. ");
npc->addText("Do you still want to use the #bHenesys Face Coupon (REG)#k?");
npc->sendYesNo();
}
if(state == 1){
if(npc->getSelected() == YES){
if(npc->getItemNum(5152000) >= 1){
npc->giveItem(5152000, -1);
int random = rand()% 10 + 1;
if(random == 1){
npc->setStyle(eyes[20000]);} <---135行
if(random == 2){
npc->setStyle(eyes[20001]);}
if(random == 3){
npc->setStyle(eyes[20002]);}
if(random == 4){
npc->setStyle(eyes[20003]);}
if(random == 5){
npc->setStyle(eyes[20004]);}
if(random == 6){
npc->setStyle(eyes[20006]);}
if(random == 7){
npc->setStyle(eyes[20007]);}
if(random == 8){
npc->setStyle(eyes[20008]);}
if(random == 9){
npc->setStyle(eyes[20012]);}
if(random == 10){
npc->setStyle(eyes[20013]);}
npc->end();
}
else{
npc->addText("Hmm ... it looks like you don't have the coupon specifically for this place...sorry to say this, but without the coupon, there's no plastic surgery for you.");
npc->sendNext();
npc->end();
}
}
顧名思義,問題出在eyes[]這個地方,所以我們稍加修改
3>
void NPCsScripts::npc_1052005(NPC* npc){
int eyes[] = {20000, 20001, 20002, 20003, 20004, 20006, 20007, 20008, 20012, 20013};
int state = npc->getState();
if(state == 0){
npc->addText("If you use the regular coupon, your face may transform into a random new look. ");
npc->addText("Do you still want to use the #bHenesys Face Coupon (REG)#k?");
npc->sendYesNo();
}
if(state == 1){
if(npc->getSelected() == YES){
if(npc->getItemNum(5152000) >= 1){
npc->giveItem(5152000, -1);
int random = rand()% 10 + 1;
if(random == 1){
npc->setStyle(eyes[0]);}
if(random == 2){
npc->setStyle(eyes[1]);}
if(random == 3){
npc->setStyle(eyes[2]);}
if(random == 4){
npc->setStyle(eyes[3]);}
if(random == 5){
npc->setStyle(eyes[4]);}
if(random == 6){
npc->setStyle(eyes[5]);}
if(random == 7){
npc->setStyle(eyes[6]);}
if(random == 8){
npc->setStyle(eyes[7]);}
if(random == 9){
npc->setStyle(eyes[8]);}
if(random == 10){
npc->setStyle(eyes[9]);}
npc->end();
}
else{
npc->addText("Hmm ... it looks like you don't have the coupon specifically for this place...sorry to say this, but without the coupon, there's no plastic surgery for you.");
npc->sendNext();
npc->end();
}
}
看出來了嗎?
由於我們宣告的時候是 int eyes[] = {20000, 20001, 20002, 20003, 20004, 20006, 20007, 20008, 20012, 20013};
所以使用的時候應該針對每個位置 eyes[0] (代表20000),eyes[1] (代表(20001)….依此類推
而不是使用 eyes[20000],eyes[20001] ,這樣他會去尋找eyes的第20000個..當然會出現錯誤囉!
如果還有遇到類似的相關問題,可以自己修改囉!
Step 1. 首先要建立一個新的CPP-> cody.cpp
Step 2.在cody.cpp中,我們首先要插入下列這段程式碼
#include "NPCs.h"
#include "NPCsScripts.h"
3.我們接下來要著手比較困難的部分,我們必須在NPCsScripts中宣告一個void的function,如下
void NPCsScripts::npc_2100(NPC* npc){
}
現在也許你會擔心,我該如何取得npc_2100這代碼呢?
非常簡單,你可以到這網站尋找所有的NPC代碼
Step 4. 我們必須宣告state及map
state-> Current State
map-> Game map..
所以我們必須在下列這段程式碼這裡面
void NPCsScripts::npc_2100(NPC* npc){
}
新增這段程式碼
int state = npc->getState();
int map = npc->getPlayerMap();
所以看起來會像
void NPCsScripts::npc_2100(NPC* npc){
int state = npc->getState();
int map = npc->getPlayerMap();
}
Step5. 現在我們需要在我們的地圖上新增檢查
這段程式碼之後
int state = npc->getState();
int map = npc->getPlayerMap();
新增這段
if(npc->getPlayerMap() == 100000000){
}
也許你不知道地圖的代碼,所以可以到這查詢地圖代碼
Step6. 這裡可能會讓你造成困惑,但是在後面我會有更詳細的介紹,state[0]代表開始對話,state[1]代表選擇[是/否] (記住這邊只是範例而已!! 詳細的用法需要到程式碼中查詢)
接下來我們在
if(npc->getPlayerMap() == 100000000){
}
裡面新增
if(state == 0){
}
所以我們現在的程式碼看起來會像
void NPCsScripts::npc_2100(NPC* npc){
int state = npc->getState();
int map = npc->getPlayerMap();
if(npc->getPlayerMap() == 100000000){
if(state == 0){
}
}
這樣我們就完成啦!!
接下來我們只需要設定何時使用這個NPC就好了,接下來是實際新增NPC的例子
#include "NPCs.h"
#include "NPCsScripts.h"
void NPCsScripts::npc_2100(NPC* npc){
int state = npc->getState();
int map = npc->getPlayerMap();
if(npc->getPlayerMap() == 100000000){
if(state == 0){
npc->addText("");//Send Text For Cody To Output
npc->sendNext();//Just think of this to enable you to Click "next" button for continuing....
npc->addText("Good Bye");
npc->sendOK();//Think of this to Enable click "ok" before continuing...
npc->end();//You should know what this is.....Quit Talking to NPC...?
}
}
現在讓我們把NPC ID換成9200000
void NPCsScripts::npc_2100(NPC* npc)
換成
void NPCsScripts::npc_9200000(NPC* npc)
接著開啟NPCsScripts.h,你應該可以看到下列這兩段程式碼
switch(npcid){
case 2100: npc_2100(npc); break;
case 2101: npc_2101(npc); break;
case 2020005: npc_2020005(npc); break;
case 9101001: npc_9101001(npc); break;
case 9900000: npc_9900000(npc); break;
default: npc->end(); break;
}
及
private:
static void npc_2100(NPC* npc);
static void npc_2101(NPC* npc);
static void npc_2020005(NPC* npc);
static void npc_9101001(NPC* npc);
static void npc_9900000(NPC* npc);
將下列兩個程式碼加進去即可
static void npc_9200000(NPC* npc);
及
case 9900000: npc_9200000(npc); break;
這樣就完成啦! 非常簡單吧~ 只是過程瑣碎XD
底下是npc的一些指令
npc->addChar(char cha);
npc->addQuest(int QuestID);
npc->addText(char string);
npc->cend();
npc->end();
npc->endQuest();
npc->getItemNum(int itemid);
npc->getMesos();
npc->getNpcID();
npc->getnum();
npc->getNumber();
npc->getPlayer();
npc->getPlayerEyes();
npc->getPlayerHP();
npc->getPlayerMap();
npc->getSelected();
npc->getState();
npc->getState();
npc->getText();
npc->gettext();
npc->getVariable(char *name);
npc->giveEXP(int exp);
npc->giveItem(int itemid,short amount);
npc->giveMesos(int amount);
npc->isEnd();//bool
npc->isQuest();//bool
npc->isquest();
npc->isStart();//bool
npc->isstart();
npc->npcid();
npc->npcPacket(char type);
npc->player();//More to come....
npc->selected();
npc->sendAcceptDecline();
npc->sendBackNext();
npc->sendOK();
npc->sendBackOK();
npc->sendGetNumber(int def,int min,int max);
npc->sendGetText();
npc->sendOK();
npc->sendNext();
npc->sendSimple();
npc->sendStyle();
npc->sendYesNo();
npc->setGetNumber(int num);
npc->setGetText(char *text);
npc->setIsStart(bool what);
npc->setPlayerHP(short hp);
npc->setSelected(int selected);
npc->setState(int state);
npc->setStyle(int id);
npc->setVariable(char *name,int val);
npc->showShop();
npc->state();
npc->teleport(int mapid);
npc->text();
npc->vars();
npc->~NPC();
原文網址:http://forum.ragezone.com/f428/guide-scripting-your-npc-381658/
方法1 跟 方法2 的結果是一樣的! 所以請選擇其中一種方法就可以囉!! ^^
方法 1. 請開啟你的PlayerPacket.cpp,並將下面程式碼全部取代#include "PlayerPacket.h"
#include "PacketCreator.h"
#include "Player.h"
#include "Inventory.h"
#include "Skills.h"
#include "SkillsPacket.h" //for 4th job skills error 38 fix
void PlayerPacket::connectData(Player* player){
Packet packet = Packet();
packet.addHeader(0x4D);
packet.addInt(0); // Channel
packet.addBytes("0101853D4B11F4836B3DBA9A4FA1");
packet.addShort(-1);
packet.addInt(player->getPlayerid());
packet.addString(player->getName(), 12);
packet.addByte(0);
packet.addByte(player->getGender());
packet.addByte(player->getSkin());
packet.addInt(player->getEyes());
packet.addInt(player->getHair());
packet.addInt(0);
packet.addInt(0);
packet.addByte(player->getLevel());
packet.addShort(player->getJob());
packet.addShort(player->getStr());
packet.addShort(player->getDex());
packet.addShort(player->getInt());
packet.addShort(player->getLuk());
packet.addShort(player->getHP());
packet.addShort(player->getMHP());
packet.addShort(player->getMP());
packet.addShort(player->getMMP());
packet.addShort(player->getAp());
packet.addShort(player->getSp());
packet.addInt(player->getExp());
packet.addShort(player->getFame());
packet.addInt(player->getMap());
packet.addByte(player->getMappos());
packet.addByte(0x14);
packet.addInt(player->inv->getMesos());
packet.addByte(100);
packet.addByte(100);
packet.addByte(100);
packet.addByte(100);
packet.addByte(100);
for(int i=0; i
Equip* equip = player->inv->getEquip(i);
if(equip->pos<0){>type);
packet.addByte(1);
packet.addInt(equip->id);
packet.addShort(0);
packet.addBytes("8005BB46E61702");
packet.addShort(equip->slots); // slots
packet.addShort(equip->istr); // STR
packet.addShort(equip->idex); // DEX
packet.addShort(equip->iint); // INT
packet.addShort(equip->iluk); // LUK
packet.addShort(equip->ihp); // HP
packet.addShort(equip->imp); // MP
packet.addShort(equip->iwatk); // W.Atk
packet.addShort(equip->imatk); // M.Atk
packet.addShort(equip->iwdef); // W.def
packet.addShort(equip->imdef); // M.Def
packet.addShort(equip->iacc); // Acc
packet.addShort(equip->iavo); // Avo
packet.addShort(equip->ihand); // Hands
packet.addShort(equip->ispeed); // Speed
packet.addShort(equip->ijump); // Jump
packet.addShort(0);
packet.addShort(0);
packet.addShort(0);
packet.addShort(0);
packet.addShort(0);
packet.addShort(0);
}
}
packet.addShort(0);
for(int i=0; i
Equip* equip = player->inv->getEquip(i);
if(equip->pos>0){
packet.addByte((char)equip->pos);
packet.addByte(1);
packet.addInt(equip->id);
packet.addShort(0);
packet.addBytes("8005BB46E61702");
packet.addShort(equip->slots); // slots
packet.addShort(equip->istr); // STR
packet.addShort(equip->idex); // DEX
packet.addShort(equip->iint); // INT
packet.addShort(equip->iluk); // LUK
packet.addShort(equip->ihp); // HP
packet.addShort(equip->imp); // MP
packet.addShort(equip->iwatk); // W.Atk
packet.addShort(equip->imatk); // M.Atk
packet.addShort(equip->iwdef); // W.def
packet.addShort(equip->imdef); // M.Def
packet.addShort(equip->iacc); // Acc
packet.addShort(equip->iavo); // Avo
packet.addShort(equip->ihand); // Hands
packet.addShort(equip->ispeed); // Speed
packet.addShort(equip->ijump); // Jump
packet.addShort(0);
packet.addShort(0);
packet.addShort(0);
packet.addShort(0);
packet.addShort(0);
packet.addShort(0);
}
}
packet.addByte(0);
for(int j=2; j<=5; j++){ for(int i=0; i
Item* item = player->inv->getItem(i);
if(item->inv == j){
packet.addByte((char)item->pos);
packet.addByte(2);
packet.addInt(item->id);
packet.addShort(0);
packet.addBytes("8005BB46E61702");
packet.addShort(item->amount); // slots
packet.addInt(0);
if(ISSTAR(item->id)){
packet.addInt(2);
packet.addShort(0x54);
packet.addByte(0);
packet.addByte(0x34);
}
}
}
packet.addByte(0);
}
packet.addShort(0); //Skills
packet.addInt(0);
packet.addInt(0);
packet.addInt(0);
packet.addShort(0);
for(int i=0; i<15; i="0;">skills->getSkillsNum(); i++){
SkillsPacket::addSkill(player, player->skills->getSkillID(i), player->skills->getSkillLevel(player->skills->getSkillID(i)));
}
}
void PlayerPacket::newHP(Player* player, short hp){
Packet packet = Packet();
packet.addHeader(0x23);
packet.addByte(0);
packet.addShort(0);
packet.addShort(4);
packet.addByte(0);
packet.addShort(hp);
packet.packetSend(player);
}
void PlayerPacket::newMP(Player* player, short mp, bool is){
Packet packet = Packet();
packet.addHeader(0x23);
packet.addByte(is);
packet.addShort(0);
packet.addShort(0x10);
packet.addByte(0);
packet.addShort(mp);
packet.packetSend(player);
}
void PlayerPacket::newEXP(Player* player, int exp){
Packet packet = Packet();
packet.addHeader(0x23);
packet.addShort(0);
packet.addShort(0);
packet.addShort(1);
packet.addInt(exp);
packet.packetSend(player);
}
void PlayerPacket::showKeys(Player* player, int keys[90]){
Packet packet = Packet();
packet.addHeader(0xf6);
packet.addByte(0);
for(int i=0; i<90; packet =" Packet();">getSp());
packet.packetSend(player);
}
void PlayerPacket::setJob(Player* player){
Packet packet = Packet();
packet.addHeader(0x23);
packet.addShort(0);
packet.addInt(0x20);
packet.addShort(player->getJob());
packet.packetSend(player);
}
void PlayerPacket::newHair(Player* player){
Packet packet = Packet();
packet.addHeader(0x23);
packet.addShort(0);
packet.addInt(0x4);
packet.addInt(player->getHair());
packet.packetSend(player);
}
void PlayerPacket::newEyes(Player* player){
Packet packet = Packet();
packet.addHeader(0x23);
packet.addShort(0);
packet.addInt(0x2);
packet.addInt(player->getEyes());
packet.packetSend(player);
}
void PlayerPacket::newSkin(Player* player){
Packet packet = Packet();
packet.addHeader(0x23);
packet.addShort(0);
packet.addInt(0x1);
packet.addByte(player->getSkin());
packet.packetSend(player);
}
方法 2:
自己動手修改囉!
Step 1.首先在最放上方新增一個,原作者建議放在 #include “Skills.h” 後面 (基本上沒差)#include "SkillsPacket.h"
Step 2.將下面這五行程式碼刪除 packet.addShort(player->skills->getSkillsNum());並取代成
for(int i=0; i
packet.addInt(player->skills->getSkillID(i));
packet.addInt(player->skills->getSkillLevel(player->skills->getSkillID(i)));
}packet.addShort(0);Step 3. 在 packet.addBytes("90633A0DC55DC801");的後面新增
packet.packetSend(player); for(int i=0; i
SkillsPacket::addSkill(player, player->skills->getSkillID(i), player->skills->getSkillLevel(player->skills->getSkillID(i)));
}
基本上就修改這幾個地方囉!
所以最後看起來應該會像下面這樣這個版本的好處就是,下次登入時四轉技能還在喔~^^ 比起我上個版本要好得多了! //Skills
/*
packet.addShort(player->skills->getSkillsNum());
for(int i=0; i
packet.addInt(player->skills->getSkillID(i));
packet.addInt(player->skills->getSkillLevel(player->skills->getSkillID(i)));
}
//End 以上皆刪除
packet.addShort(0); // 我們新增的code
packet.addInt(0);
packet.addInt(0);
packet.addInt(0);
packet.addShort(0);
for(int i=0; i<15; color="blue">for(int i=0; i
SkillsPacket::addSkill(player, player->skills->getSkillID(i), player->skills->getSkillLevel(player->skills->getSkillID(i)));
}
原文網址:http://forum.ragezone.com/f427/release-fix-logging-characters-have-4th-job-skills-386505/
附註:如果有使用我之前解決無法登入的方法,請至Player.cpp中將 MySQL::delete4thSkills(getPlayerid()); 這段程式碼刪掉即可!
關於sql server的一個問題,很幸運的我遇到了這個問題..
資料庫使用很久以後..應該都會遇到的問題!
雖然我是第一次遇到..
不過我想是因為以往的硬碟夠大,資料量少的關係吧!
寫IPMAP的時候..發現自己硬碟空間越來越少,
而且少得離譜..然後會出現 “交易紀錄檔已滿” 請備份資料
並刪除log檔..後來發現log檔..檔案超大…不過要刪log檔,
也不是那麼的方便….
不過只要只要下sql command > dbcc shrinkdatabase(dbname)
就可以順利解決了!
當然還有其他方法..不過我想這是最方便的
關於owc元件..找到很多教學網站都是舊的資訊!
所以常常會無法顯示圖片..
後來發現是classid的關係!
目前只測試兩個!
ChartSpace1->clsid:0002E556
Spreadsheet1->clsid:0002E551
繼續研究下一個部份囉!
Recent Comments