Domanda [HELP] Modificare Durata Cavalcature e Pet (tempo illimitato)

Stato
Discussione chiusa ad ulteriori risposte.

TwlightTavern

Utente Silver
26 Novembre 2010
69
23
0
80
Ultima modifica:
Ciao
Vorrei modificare questi script in modo che siano cosi:
- Durata illimitata in modo che uno possa rimanere sulla mount quanto tempo vuole, poter scendere togliendo e rimetterlo per risalire senza che ci sia un tempo limite
- Vorrei poter togliere ad alcune cavalcature i bonus e ad altre lasciarle


Codice:
ride={["start"]=0,Ride= function (vnum,remain_time)ride_info = { 
[ 71124 ] = { 20114 , item . get_socket ( 2 ) * 60 , apply . POINT_MALL_EXPBONUS , 30 , 1 , false , false , false } , 
[ 71125 ] = { 20115 , item . get_socket ( 2 ) * 60 , apply . ATTBONUS_MONSTER , 20 , 1 , false , false , false } , 
[ 71126 ] = { 20116 , item . get_socket ( 2 ) * 60 , apply . CRITICAL_PCT , 10 , 1 , false , false , false } , 
[ 71127 ] = { 20117 , item . get_socket ( 2 ) * 60 , apply . CRITICAL_PCT , 10 , 1 , false , false , false } , 
[ 71128 ] = { 20118 , item . get_socket ( 2 ) * 60 , apply . POINT_DEF_BONUS , 10 , 1 , false , false , false } , 
[ 71131 ] = { 20221 , item . get_socket ( 2 ) * 60 , apply . MOV_SPEED , 60 , 1 , false , false , false } , 
[ 71132 ] = { 20222 , item . get_socket ( 2 ) * 60 , apply . MOV_SPEED , 60 , 1 , false , false , false } , 
} 
if pc . level < ride_info [ vnum ] [ 5 ] then 
syschat ( "Il tuo livello e' troppo basso per usare la mount." ) 
else 
if ride_info [ vnum ] [ 2 ] == 0 and remain_time ~= 0 then 
pc . mount ( ride_info [ vnum ] [ 1 ] , remain_time * 60 ) 
pc . mount_bonus ( ride_info [ vnum ] [ 3 ] , ride_info [ vnum ] [ 4 ] , remain_time * 60 ) 
else 
pc . mount ( ride_info [ vnum ] [ 1 ] , ride_info [ vnum ] [ 2 ] ) 
pc . mount_bonus ( ride_info [ vnum ] [ 3 ] , ride_info [ vnum ] [ 4 ] , ride_info [ vnum ] [ 2 ] ) 
end 
if true == ride_info [ vnum ] [ 6 ] then 
pc . remove_item ( vnum , 1 ) 
end 
end 
end }

Codice:
quest ride begin
    state start begin
        function Ride( vnum, remain_time )
            ride_info = {
            -- new mount   
                [71124] = { 20114,    item.get_socket(2)*60,    apply.POINT_MALL_EXPBONUS,    30,    1,    false,    false,    false},
                [71125] = { 20115,    item.get_socket(2)*60,    apply.ATTBONUS_MONSTER,    20,    1,    false,    false,    false},
                [71126] = { 20116,    item.get_socket(2)*60,    apply.CRITICAL_PCT,    10,    1,    false,    false,    false},
                [71127] = { 20117,    item.get_socket(2)*60,    apply.CRITICAL_PCT,    10,    1,    false,    false,    false},
                [71128] = { 20118,    item.get_socket(2)*60,    apply.POINT_DEF_BONUS,    10,    1,    false,    false,    false},
                [71131] = { 20221,    item.get_socket(2)*60,    apply.MOV_SPEED,    60,        1,    false,    false,    false},
                [71132] = { 20222,    item.get_socket(2)*60,    apply.MOV_SPEED,    60,        1,    false,    false,    false},
            }        

            if pc.level < ride_info[vnum][5] then
                syschat("Il tuo livello e' troppo basso per usare la mount.")
            else
                if ride_info[vnum][2] == 0 and remain_time != 0 then
                    pc.mount( ride_info[vnum][1], remain_time*60 )
                    pc.mount_bonus( ride_info[vnum][3], ride_info[vnum][4], remain_time*60 )
                else
                    pc.mount( ride_info[vnum][1], ride_info[vnum][2] )
                    pc.mount_bonus( ride_info[vnum][3], ride_info[vnum][4], ride_info[vnum][2] )
                end

                if true == ride_info[vnum][6] then
                    pc.remove_item(vnum, 1)
                end    
            end    
        end

        when login begin
            local vnum, remain_time = pc.get_special_ride_vnum()

            if 0 != vnum then
                ride.Ride(vnum, remain_time)
            end
        end

        when 71124.use or
             71125.use or 
             71126.use or 
             71127.use or 
             71128.use or 
             71131.use or 
             71132.use begin

            if pc.is_polymorphed() then
                syschat("Non puoi usare una mount se sei trasformato..")
            elseif false == pc.is_riding() then
                 if true == horse.is_summon() then
                    horse.unsummon()
                end
                ride.Ride(item.vnum, 0)
            else
                pc.unmount()
            end
        end
    end
end

Grazie mille ;)
 
Per togliere o aggiungere i bonus, ti basta cambiare quel che c'è inserito nell'array. Per togliere ti conviene settare un bonus nabbo tipo hp a 1 punto, in modo tale che averlo e non averlo non cambi.
Per quanto riguarda la durata del sigillo, se è questo che intendi, devi lavorare nell'item_proto del db.
 
Stato
Discussione chiusa ad ulteriori risposte.
Indietro
Top Bottom