-
.
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: CODICEQuando 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.SPOILER (clicca per visualizzare)CODICEfunction 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. -
.
Ecco l'effetto : SPOILER (clicca per visualizzare)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. -
.
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.. -
.
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). -
.
Di solito è qualche errore dello script . -
.
Spesso risolvevo, ma con l'ultimo non ero riuscito a capire, allora ho ricominciato da capo, con risultato positivo
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.. -
.
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)CITAZIONEMagia 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). -
.
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à... ,
Ma c'è qualche altro posto dove chiedere aiuto? Pechè non voglio rompere solo !
P.s: che deck giochi in real Edo?. -
.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à... ,
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! . 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. -
.
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:CITAZIONEScegli 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.. -
.
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). -
.
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..... -
.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 :SPOILER (clicca per visualizzare)--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. -
.
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?. -
.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.