Board logo

標題: [已解決] petskill參數的問題 [打印本頁]

作者: kill466    時間: 2010-1-28 20:15     標題: petskill參數的問題

結晶光線,讓敵人容易呈現石化達十回合前後,PETSKILL_Combined,綜合法|1|427,,,685,1,7,2,2000,PETSKILL_NONE
精神催眠,讓敵人容易呈現混亂達十回合前後,PETSKILL_Combined,綜合法|1|428,,,686,1,7,2,2000,PETSKILL_NONE
深層注射,讓敵人容易呈現中毒達十回合前後,PETSKILL_Combined,綜合法|1|429,,,687,1,7,2,2000,PETSKILL_NONE
沉睡大地,讓敵人容易呈現沉睡達十回合前後,PETSKILL_Combined,綜合法|1|430,,,688,1,7,2,2000,PETSKILL_NONE
靈魂枷鎖,封鎖敵人行動三回合,PETSKILL_Barrier,障 turn 3 成 50,,,689,1,7,2,0,PETSKILL_BARRIER
魔幻之術,破壞敵方光鏡守護精靈並取得部分能力為自己使用,PETSKILL_Lighttakeed,ABSROB,,,690,1,7,2,5000,PETSKILL_Light
黏液攻擊,有機率造成敵寵無法動彈或降低攻擊次數,PETSKILL_NormalAttack,羅 turn 1 成 100,,,691,1,6,2,1000,PETSKILL_NORMALATTACK
精準,儲存3回合力量,攻擊時有三倍以上攻擊力且100%命中,PETSKILL_ChargeAttack,2 攻%210 命%100,,,692,1,6,2,8000,PETSKILL_CHARGE2
反擊,當對手攻擊自己時,以五倍功擊力反擊,PETSKILL_NoGuard,功%400 反擊%100 會心%100 命%100,,,693,1,5,2,3000,PETSKILL_NOGUARD1
束縛,敵方全體敏捷力三回合內降低15%,PETSKILL_SetMagicPet,3|-15|DEX,,,694,1,8,2,2500,PETSKILL_SETMAGICPET
天旋地轉,攻下降40%命中上升60%攻擊三體,使敵MP損耗迴避敏捷降低並容易混亂,PETSKILL_AttackCrazed,3 功%-20% 防%+30 命%+60  5|5|混|3,,,694,1,1,2,0,PETSKILL_MPDAMAGE
憤怒,將防禦力轉為攻擊敏捷力,PETSKILL_PowerBalance,攻%+150 防%-100 敏%+150,,,695,1,6,2,2000,PETSKILL_POWERBALANCE1
爆裂攻擊,功擊力上升50% 命中率上升50% 防禦降50%,有機率使敵人落馬,PETSKILL_FallGround,功%+50 防%-50 會心%100 命%50,,,696,1,6,2,3000,PETSKILL_FALLGROUND

有經驗的大大應該看得出我超過一半的技能無效吧...

有誰能指點一下嗎?

舉例反擊這招,我是拿不守防來改,是不是除了技能本身的迴避跟反擊之外(也就是說都寫死在PETSKILL_後面了?),其他參數都是無效的?

蝸牛的黏液攻擊,到底要用甚麼改?群體技改單體?試好久了- -"

我很天真以為魔障改參數就可以變成其他效果,後來看到"PETSKILL_"後面字串發現,都是有相對應的....

[ 本帖最後由 kill466 於 2010-1-30 09:31 編輯 ]
作者: kill466    時間: 2010-1-28 20:25

剛剛又測試了一下,我的卡克爾無法使用精準、黏液攻擊,但是蝴蝶可以正常跑出去打,為甚麼呢?
作者: yang    時間: 2010-1-28 20:53

你說對了,加什麼都寫死在"PETSKILL_"裡
其他參數都無效
作者: kill466    時間: 2010-1-28 22:20

對不起,在問個問題

群體技的效果前面的數字

5|5|麻

兩個5的機率分別是指?
作者: yang    時間: 2010-1-28 23:24

恩,我剛剛看了一下群攻
大概了解了  
現在說給你聽
不知道你會不懂

5|5|眠|3|30|攻%-5|101489
攻擊類型|攻擊物件數量|效果|回合數|效果命中機率|圖號(至少一個)

// 當攻擊物件數量小於在場目標數量,則以攻擊類型決定攻擊方式

攻擊類型說明一下↓
型態 1 :每個目標都要打到,會有一個攻擊物件打二個目標以上的情形(詳細請看源碼)
型態 2 :每個攻擊物件打完該攻擊目標後便不再攻擊其它目標,每個目標只會受一次攻擊
//當 攻擊類型& 0x00000001 為 true 之外的值都以型態 2 處理

所以攻擊類型為1時,為型態2。(1 and 1 =true)
        攻擊類型為5時,是型態1。
作者: kill466    時間: 2010-1-29 00:00

也就是說

if (場上敵人數量 <= 攻擊物件數量) {
  if (攻擊類型 == 1) 進行型態2
if (攻擊型態 == 5) 進行型態1
}

是嗎?
作者: kill466    時間: 2010-1-29 00:03

##覺醒,命中率與迴避率上升50% 攻防敏上升25%,PETSKILL_Awaken,攻%5 防%5 敏%5 命%30 回%30,,Aw,642,1,7,3,10000,PETSKILL_NONE

話說我比較在意這一招,他是1,7,3,學來玩玩發現根本沒效果,這是Boss技?

原本是想要做一系列強化舊寵物的技能,真失望= =" 只能從原創技能改改效果了

補:我後來抓服務端那邊的源碼看一下,發現沒有awaken這一項,是這個原因嗎?也就是說這文件原本是用在不同版本的服務端上?還是pkser是有的,只是我抓的那個源碼比較舊?


下面是pet_skill.c的 狂獅怒吼 的if片段
        if( (pszP = strstr( pszOption, "-攻%" ) ) != NULL ){
                sscanf( pszP+4, "%f", &fPer );
                fPer=(fPer/100);
                CHAR_setWorkInt( charaindex, CHAR_WORKATTACKPOWER, (CHAR_getWorkInt( charaindex, CHAR_WORKFIXSTR)*fPer) );
        }
        if( (pszP = strstr( pszOption, "+攻%" ) ) != NULL ){
                sscanf( pszP+4, "%f", &fPer );
                fPer=(fPer/100);
                CHAR_setWorkInt( charaindex, CHAR_WORKATTACKPOWER, CHAR_getWorkInt( charaindex, CHAR_WORKFIXSTR)+(CHAR_getWorkInt( charaindex, CHAR_WORKFIXSTR)*fPer) );
        }

假使我要做一個不守防具有增加能力效果,是不是把這些加入不防守判斷式裡面就可以了?

只有稍微看一下- - 還不是很懂

如果是的話,那不防守裡面的讀取參數判斷式是不是也能用在其他技能?

[ 本帖最後由 kill466 於 2010-1-29 09:52 編輯 ]
作者: yang    時間: 2010-1-29 09:46

PETSKILL_Awaken  源碼裡面沒有,所以沒功能
寵物技能我是隨便拿一個檔案來改的(應該是大陸那抓來的)
所以沒去檢查那些技能有沒有用

寵物技能幾乎都是寫死的
所以很多私服自創技能也不過是群功改圖檔之類的技能而已
作者: kill466    時間: 2010-1-29 09:55

sorry,推一下,上一篇有編輯內容。
作者: yang    時間: 2010-1-29 10:19

剛看了一下,我覺得是下面這個  
不確定正不正確喔
正確的話只要在技能的函數加上這個判斷就有功能  
讀取敏值是我改的

//讀取攻值
if( (pszP = strstr( pszOption, "攻%" ) ) != NULL ){
sscanf( pszP+3, "%f", &fPer );
fPer=(fPer/100);

//設定修正值
strdef=CHAR_getWorkInt(charaindex,CHAR_WORKFIXSTR);
strdef=(int)(strdef * fPer);
CHAR_setWorkInt(charaindex,CHAR_WORKATTACKPOWER,(CHAR_getWorkInt(charaindex,CHAR_WORKFIXSTR)+strdef));
}
    //讀取敏值
if( (pszP = strstr( pszOption, "敏%" ) ) != NULL ){
sscanf( pszP+3, "%f", &fPer );
fPer=(fPer/100);

//設定修正值
strdef=CHAR_getWorkInt(charaindex,CHAR_WORKFIXDEX);
strdef=(int)(strdef * fPer);
CHAR_setWorkInt(charaindex,CHAR_WORKQUICK,(CHAR_getWorkInt(charaindex,CHAR_WORKFIXDEX)+strdef));
}


    //讀取防值
if( (pszP = strstr( pszOption, "防%" ) ) != NULL ){
sscanf( pszP+3, "%f", &fPer );
fPer=(fPer/100);

//設定修正值
strdef=CHAR_getWorkInt(charaindex,CHAR_WORKFIXTOUGH);
strdef=(int)(strdef * fPer);
CHAR_setWorkInt(charaindex,CHAR_WORKDEFENCEPOWER,(CHAR_getWorkInt(charaindex,CHAR_WORKFIXTOUGH)+strdef));
}

--------------------------------------------------------------
陣列讀取方式  參考群功技能 在修正讀取位置




歡迎光臨 We Love SA 石器時代研討中心 (http://lab.welovesa.com/) Powered by Discuz! 6.0.0