That's why I said I'm not sure [:wall:] . T.G. Halberd just says once per turn you can negate the summon of a monster and destroy it. It doesn't have that specific condition wording that cards I mentioned have (If/when your opponent would special summon a/exactly 1 monster(s)...". But checking out its script it looks the same as them so imagine no, T.G. Halberd won't help. Maybe copy something like koaki meiru overload's negate special summon effect, but maybe add this line to the condition
return bit.band(r,REASON_EFFECT)~=0
KM Overload's effect in the spoiler if you want it.
--disable spsummon
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(14309486,3))
e2:SetCategory(CATEGORY_DISABLE_SUMMON+CATEGORY_DESTROY)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EVENT_SUMMON)
e2:SetCondition(c14309486.condition)
e2:SetCost(c14309486.cost)
e2:SetTarget(c14309486.target)
e2:SetOperation(c14309486.operation)
c:RegisterEffect(e2)
local e3=e2:Clone()
e3:SetCode(EVENT_FLIP_SUMMON)
c:RegisterEffect(e3)
local e4=e2:Clone()
e4:SetCode(EVENT_SPSUMMON)
c:RegisterEffect(e4)
end
function c14309486.condition(e,tp,eg,ep,ev,re,r,rp)
return tp~=ep and Duel.GetCurrentChain()==0
end
function c14309486.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsReleasable() end
Duel.Release(e:GetHandler(),REASON_COST)
end
function c14309486.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_DISABLE_SUMMON,eg,eg:GetCount(),0,0)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,eg,eg:GetCount(),0,0)
end
function c14309486.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.NegateSummon(eg)
Duel.Destroy(eg,REASON_EFFECT)
end