Richiesta Script

« Older   Newer »
 
  Share  
.
  1.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Member
    Posts
    1,305
    Duel Points
    0

    Status
    Offline
    Sono tornato a moddare, usando il metodo di usare gli script già esistenti e modificandoli o aggiungendoli, ieri sono riuscito a creane un po', ma sono bloccato con uno che nn dovrebbe essere complicato in confronto a quelli già fatti:


    CODICE
    Quando viene evocato, puoi distruggere un numero di s/t controllate dal tuo avversario pari al numero di mostri (archetipo [0x97]) scoperti che controllo.
    Quando questa carta viene distrutta in battaglia e mandata al cimitero, puoi evocare 1 (archetipo) dal tuo deck (di qualsiasi livello), <u>eccetto lui stesso</u>
    Puoi attivare 1 solo effetto di "nome mostro" una volta per turno.


    Ho provato ad unire l'effetto di "Signora della fortuna Vento" e di "scimmia da laboratorio": se ne uso solo uno, funzione, se li metto insieme funziona solo quello di evocare dal deck.
    CODICE
    function c2011.initial_effect(c)
           
           --destroy
           local e1=Effect.CreateEffect(c)
           e1:SetDescription(aux.Stringid(2011,1))
           e1:SetCategory(CATEGORY_DESTROY)
           e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
           e1:SetCode(EVENT_SUMMON_SUCCESS)
           e1:SetTarget(c2011.destg)
           e1:SetOperation(c2011.desop)
           c:RegisterEffect(e1)
                   local e2=Effect.CreateEffect(c)
           e2:SetDescription(aux.Stringid(2011,0))
           e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
           e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
           e2:SetCode(EVENT_BATTLE_DESTROYED)
           e2:SetCondition(c2011.condition)
           e2:SetTarget(c2011.target)
           e2:SetOperation(c2011.operation)
           c:RegisterEffect(e2)
           
    end


    ---destroy


    function c2011.cfilter(c)
           return c:IsFaceup() and c:IsSetCard(0x97)
    end

    function c2011.filter(c)
           return c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsDestructable()
    end
    function c2011.destg(e,tp,eg,ep,ev,re,r,rp,chk)
           if chk==0 then
                   local ct=Duel.GetMatchingGroupCount(c2011.cfilter,tp,LOCATION_MZONE,0,nil)
                   local dt=Duel.GetMatchingGroupCount(c2011.filter,tp,0,LOCATION_ONFIELD,nil)
                   e:SetLabel(ct)
                   return dt>=ct
           end
           local g=Duel.GetMatchingGroup(c2011.filter,tp,0,LOCATION_ONFIELD,nil)
           Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,e:GetLabel(),0,0)
    end
    function c2011.desop(e,tp,eg,ep,ev,re,r,rp)
           local ct=Duel.GetMatchingGroupCount(c2011.cfilter,tp,LOCATION_MZONE,0,nil)
           local g=Duel.GetMatchingGroup(c2011.filter,tp,0,LOCATION_ONFIELD,nil)
           if ct>g:GetCount() then return end
           Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
           local sg=g:Select(tp,ct,ct,nil)
           Duel.HintSelection(sg)
           Duel.Destroy(sg,REASON_EFFECT)
    end

    ----summon

    function c2011.condition(e,tp,eg,ep,ev,re,r,rp)
           return e:GetHandler():IsLocation(LOCATION_GRAVE) and e:GetHandler():IsReason(REASON_BATTLE)
    end
    function c2011.filter(c,e,tp)
           return c:IsLevelBelow(4) and c:IsSetCard(0x97) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
    end
    function c2011.target(e,tp,eg,ep,ev,re,r,rp,chk)
           if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
                   and Duel.IsExistingMatchingCard(c2011.filter,tp,LOCATION_DECK,0,1,nil,e,tp) end
           Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
    end
    function c2011.operation(e,tp,eg,ep,ev,re,r,rp)
           if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
           Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
           local g = Duel.SelectMatchingCard(tp,c2011.filter,tp,LOCATION_DECK,0,1,1,nil,e,tp)
           if g:GetCount()>0 then
                   Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
           end
    end


    Qualcuno potrebbe crearmi l'effetto? Non riesco proprio, col resto ce la faccio....E anche la parte sottolineata (*eccetto lui stesso*)

    Edited by Aster Phoenix 94 - 24/2/2016, 00:48
     
    Top
    .
  2.     +2   +1   -1
     
    .
    Avatar

    Traduttore, scripter e developer di ygopro

    Group
    Vecchie Glorie
    Posts
    1,131
    Duel Points
    +105
    Location
    Casa mia

    Status
    Offline
    Ecco l'effetto :lol: :
    function c2011.initial_effect(c)
    --destroy
    local e1=Effect.CreateEffect(c)
    e1:SetDescription(aux.Stringid(2011,1))
    e1:SetCategory(CATEGORY_DESTROY)
    e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
    e1:SetCode(EVENT_SPSUMMON_SUCCESS)
    e1:SetTarget(c2011.destg)
    e1:SetOperation(c2011.desop)
    c:RegisterEffect(e1)
    local e2=Effect.CreateEffect(c)
    e2:SetDescription(aux.Stringid(2011,0))
    e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
    e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
    e2:SetCode(EVENT_BATTLE_DESTROYED)
    e2:SetCondition(c2011.condition)
    e2:SetTarget(c2011.target)
    e2:SetOperation(c2011.operation)
    c:RegisterEffect(e2)

    end
    ---destroy
    function c2011.cfilter(c)
    return c:IsFaceup() and c:IsSetCard(0x97)
    end
    function c2011.destg(e,tp,eg,ep,ev,re,r,rp,chk)
    if chk==0 then return Duel.GetMatchingGroupCount(c2011.cfilter,tp,LOCATION_MZONE,0,nil)<=Duel.GetMatchingGroupCount(Card.IsDestructable,tp,0,LOCATION_SZONE,nil) end
    local ct=Duel.GetMatchingGroupCount(c2011.cfilter,tp,LOCATION_MZONE,0,nil)
    local dg=Duel.GetMatchingGroup(Card.IsDestructable,tp,0,LOCATION_SZONE,nil)
    Duel.SetOperationInfo(0,CATEGORY_DESTROY,dg,ct,0,0)
    end
    function c2011.desop(e,tp,eg,ep,ev,re,r,rp)
    local ct=Duel.GetMatchingGroupCount(c2011.cfilter,tp,LOCATION_MZONE,0,nil)
    local g=Duel.GetMatchingGroup(c160002496.filter,tp,0,LOCATION_SZONE,nil)
    if ct>g:GetCount() then return end
    Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
    local sg=g:Select(tp,ct,ct,nil)
    Duel.HintSelection(sg)
    Duel.Destroy(sg,REASON_EFFECT)
    end
    ----summon
    function c2011.condition(e,tp,eg,ep,ev,re,r,rp)
    return e:GetHandler():IsLocation(LOCATION_GRAVE) and e:GetHandler():IsReason(REASON_BATTLE)
    end
    function c2011.sfilter(c,e,tp)
    return c:IsLevelBelow(4) and c:IsSetCard(0x97) and not c:IsCode(2011) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
    end
    function c2011.target(e,tp,eg,ep,ev,re,r,rp,chk)
    if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
    and Duel.IsExistingMatchingCard(c2011.filter,tp,LOCATION_DECK,0,1,nil,e,tp) end
    Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
    end
    function c2011.operation(e,tp,eg,ep,ev,re,r,rp)
    if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
    Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
    local g = Duel.SelectMatchingCard(tp,c2011.sfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp)
    if g:GetCount()>0 then
    Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
    end
    end

    il tuo andava gia bene ma c'erano 2 errori, nel primo effetto c'era SctCode(EVENT_SUMMON_SUCCESS), invece di SetCode(EVENT_SPSUMMON_SUCCESS). Il secondo invece è che c'erano 2 funzioni con lo stesso nome, che andavano in conflitto tra di loro. Ho anche rifatto la funzione target in modo un po' più semplice. La parte in rosso è la condizione che non ti permette di evocare lo stesso mostro :)
     
    Top
    .
  3.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Member
    Posts
    1,305
    Duel Points
    0

    Status
    Offline
    Grazie mille, non per lo script (che devo ancora testare), ma per avermi risposto ed averci provato.
    Forse avrei potuto accorgermene, soltanto che c'ero stato 2 ore, e quando non riesco a fare una cosa per così tanto, o mi viene sonno, o passo avanti xd.
     
    Top
    .
  4.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Member
    Posts
    1,305
    Duel Points
    0

    Status
    Offline
    Grazie, funziona. (C'era un errorino da niente, ma ho risolto)

    Sai dirmi perchè avvolte, quando aggiungo effetti da altre carte, e faccio la prova, riesco ad attivare la carta, ma non parte l'effetto? ( tipo si attivo la carta per distruggere una magia o evocare dal deck, ma non succede un bel niente)
     
    Top
    .
  5.     +1   +1   -1
     
    .
    Avatar

    Traduttore, scripter e developer di ygopro

    Group
    Vecchie Glorie
    Posts
    1,131
    Duel Points
    +105
    Location
    Casa mia

    Status
    Offline
    Di solito è qualche errore dello script
     
    Top
    .
  6.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Member
    Posts
    1,305
    Duel Points
    0

    Status
    Offline
    Spesso risolvevo, ma con l'ultimo non ero riuscito a capire, allora ho ricominciato da capo, con risultato positivo :D

    Ho creato un deck (mi mancano due xyz (un che dovrebbe fare da zenmaines ma che invece di distruggere in END, lo fa quando stacca il materiale) e una che non posso testare perchè l'ai non mi mente in condizione di testarla, e la LAN Mode non mi va) MA, ci penserò dopo.

    Ora ne sto creando un altro, ma già complesso xd
    Sto cercando di fare tutto da solo, per non molestarti (da ex pkmn hacker capisco cosa si prova), e prima di chiederti aiuto ci passerò almeno 2 ore.
     
    Top
    .
  7.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Member
    Posts
    1,305
    Duel Points
    0

    Status
    Offline
    AHAH sono disperato. Non riesco a creare un codice; con gli altri almeno mi avvicinavo o sbagliavo qualcosina, ma qui proprio....(ho buttato mezza giornata della mia vita)

    riusciresti tu a farmene uno tu? (Se hai voglia/tempo)
    CITAZIONE
    Magia terreno
    1)I TUOI mostri che vengono evocati specialmente dalla zona rimossa, guadagnano 500 di ATK e DEF.
    2) Una volta per turno, puoi scegliere come bersaglio 1 MOSTRO (0x98) rimosso, evocalo. Bandiscilo alla fine dell'End Phase.
    3)Una volta DURANTE IL TURNO, quando 1 CARTA (0x98) viene rimosso per effetto di una carta (0x98), PUOI pescare 1 carta.

    Quella sottolineata è la parte in cui sono bloccato (la prima), ma potrei avere problemi anche per l'ultima
    Ti darei uno schizzo mio, se solo fossi riuscito a farne uno.
    (potrei mandarti un mp, visto che mi è rimasto poco tempo per finire il deck)
     
    Top
    .
  8.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Member
    Posts
    1,305
    Duel Points
    0

    Status
    Offline
    Cazzo, il "banish" mi sta dando troppi problemi...prendo uno script, modifico solo tutti i "destroy" con "remove", e o si sfanculizza tutto o risolvono senza però fare niente, o ultimamente funziona a metà... :angry: ,

    Ma c'è qualche altro posto dove chiedere aiuto? Pechè non voglio rompere solo !

    P.s: che deck giochi in real Edo?
     
    Top
    .
  9.     +1   -1
     
    .
    Avatar

    Traduttore, scripter e developer di ygopro

    Group
    Vecchie Glorie
    Posts
    1,131
    Duel Points
    +105
    Location
    Casa mia

    Status
    Offline
    CITAZIONE (Aster Phoenix 94 @ 26/2/2016, 20:06) 
    Cazzo, il "banish" mi sta dando troppi problemi...prendo uno script, modifico solo tutti i "destroy" con "remove", e o si sfanculizza tutto o risolvono senza però fare niente, o ultimamente funziona a metà... :angry: ,

    Ma c'è qualche altro posto dove chiedere aiuto? Pechè non voglio rompere solo !

    P.s: che deck giochi in real Edo?

    Stai tranquillo che alla fine le cose sono sempre più facili di quello che sembrano, invece di cambiare i destroy cerca qualche carta che bandisce direttamente, stasera pubblico i buco nero e poi ci lavoro. Comunque credo che sia questa la sezione più appropriata, in quanto solo ti hai chiesto aiuto con gli script finora! :lol:. In real non gioco ma gioco un gimmik sul pro. Se vuoi una volta finite le tue carte puoi creare una discussione in piazza dove le presenti e la sposto nella sezione modding in modo che tutti possano vederle :)
     
    Top
    .
  10.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Member
    Posts
    1,305
    Duel Points
    0

    Status
    Offline
    Ma si, posto quello che ho fatto, anche se mi vergogno xd (posso postare solo lo script, o anche il nome e l'immy?)

    cmq niente, per le banish ho cercato, ma spesso non esistono carte simili, oppure cambiano per "destroy"

    Tipo quella che devo creare fa:
    CITAZIONE
    Scegli come bersaglio 1 mostro 0x98 che controlli e una carta dell'oppo, bandiscili.

    Ho preso due carte come base:
    1) Kozmojo che mi sembrava perfetto, solo che se invece di distruggere il mio (Destroy) ci ho piazzato "remove/removed": si attiva, ma si risolve con un nulla di fatto, irritante
    2) Infestation Infection: [bandisci il mio mostro e rimanda un carta dell'oppo in mano]; è meglio perchè il rimuovere il mio mostro non è costo, faccio le modifiche (da TOHAND a REMOVE), solo che viene rimosso solo quello dell'oppo. E se tolgo un "g2", rimuove solo il mio....


    E' un problema, ma per ora sono andato avanti (e sono bloccato pure li).
    Dopo questo deck, non creerò più effetti col le rimozioni.
     
    Top
    .
  11.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Member
    Posts
    1,305
    Duel Points
    0

    Status
    Offline
    Niente. Ho troppi problemi con le carte con effetto banish, cazzo, demoralizzazione incredibile....

    Ma se sostituisco "tograve" con "remove" perchè partono gli effetti ma senza fare nulla?
    Devo mica modificare altre cose? (Ho visto e rivisto il video scripting su ygopro, ma non serve)
     
    Top
    .
  12.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Member
    Posts
    1,305
    Duel Points
    0

    Status
    Offline
    No cacchio!

    ho preso twin vortex, ho messo remove/REMOVED al posto di "Destroy/destroyed", ma non succede più niente. Almeno prima distruggeva.

    Ma cos'altro devo cambiare? Credevo bastasse sostituire removed con destroy....
     
    Top
    .
  13.     +1   +1   -1
     
    .
    Avatar

    Traduttore, scripter e developer di ygopro

    Group
    Vecchie Glorie
    Posts
    1,131
    Duel Points
    +105
    Location
    Casa mia

    Status
    Offline
    CITAZIONE (Aster Phoenix 94 @ 27/2/2016, 15:55) 
    No cacchio!

    ho preso twin vortex, ho messo remove/REMOVED al posto di "Destroy/destroyed", ma non succede più niente. Almeno prima distruggeva.

    Ma cos'altro devo cambiare? Credevo bastasse sostituire removed con destroy....

    ecco lo script di questa carta ;):
    --contrattack
    function c3003.initial_effect(c)
    --destroy
    local e1=Effect.CreateEffect(c)
    e1:SetCategory(CATEGORY_REMOVE)
    e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
    e1:SetType(EFFECT_TYPE_ACTIVATE)
    e1:SetCode(EVENT_FREE_CHAIN)
    e1:SetTarget(c3003.target)
    e1:SetOperation(c3003.operation)
    c:RegisterEffect(e1)
    end
    function c3003.desfilter(c)
    return c:IsFaceup() and c:IsSetCard(0x98) and c:IsAbleToRemove()
    and Duel.IsExistingTarget(Card.IsAbleToRemove,0,LOCATION_ONFIELD,LOCATION_ONFIELD,1,c)
    end
    function c3003.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
    if chkc then return false end
    if chk==0 then return Duel.IsExistingTarget(c3003.desfilter,tp,LOCATION_MZONE,0,1,nil) end
    Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
    local g1=Duel.SelectTarget(tp,c3003.desfilter,tp,LOCATION_MZONE,0,1,1,nil)
    Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
    local g2=Duel.SelectTarget(tp,Card.IsAbleToRemove,tp,0,LOCATION_MZONE,1,1,g1:GetFirst())
    g1:Merge(g2)
    Duel.SetOperationInfo(0,CATEGORY_REMOVE,g1,g1:GetCount(),0,0)
    end
    function c3003.operation(e,tp,eg,ep,ev,re,r,rp)
    local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS):Filter(Card.IsRelateToEffect,nil,e)
    Duel.Remove(g,POS_FACEUP,REASON_EFFECT)
    end
     
    Top
    .
  14.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Member
    Posts
    1,305
    Duel Points
    0

    Status
    Offline
    Gira. Grazie davvero tanto, mi sei troppo d'aiuto. Metterò questo script nel nuovo topic che ho creato.

    P.s Poi controllerò, ma oltre a sostituire i "destroy", cos'altro bisogna modificare?
     
    Top
    .
  15.     +1   +1   -1
     
    .
    Avatar

    Traduttore, scripter e developer di ygopro

    Group
    Vecchie Glorie
    Posts
    1,131
    Duel Points
    +105
    Location
    Casa mia

    Status
    Offline
    CITAZIONE (Aster Phoenix 94 @ 27/2/2016, 17:57) 
    Gira. Grazie davvero tanto, mi sei troppo d'aiuto. Metterò questo script nel nuovo topic che ho creato.

    P.s Poi controllerò, ma oltre a sostituire i "destroy", cos'altro bisogna modificare?

    A differenza di destroy, remove ha bisogno di un argomento in più, quello della posizione, credo sia quello il problema che avevi. Comunque guarda la discussione che hai fatto sul forum di percy, ti ho risposto anche la
     
    Top
    .
15 replies since 23/2/2016, 21:32   120 views
  Share  
.