被邀请人充值任务
This commit is contained in:
parent
a943492d80
commit
22dbae7f80
|
@ -712,6 +712,7 @@ const (
|
||||||
TaskTypeFirstLogin = 15 // 每日首次登录
|
TaskTypeFirstLogin = 15 // 每日首次登录
|
||||||
TaskTypeInviteNum = 16 // 邀请绑定数量
|
TaskTypeInviteNum = 16 // 邀请绑定数量
|
||||||
TaskTypeTurnplate = 17 // 转盘抽奖次数
|
TaskTypeTurnplate = 17 // 转盘抽奖次数
|
||||||
|
TaskTypeInviteRecharge = 18 // 被邀请人充值金额
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -791,3 +792,7 @@ const (
|
||||||
)
|
)
|
||||||
|
|
||||||
var PetIDs = []int32{PetIDChicken}
|
var PetIDs = []int32{PetIDChicken}
|
||||||
|
|
||||||
|
const (
|
||||||
|
InviteScoreRecharge = 10000 // 用户每充值$1邀请人获得积分
|
||||||
|
)
|
||||||
|
|
|
@ -1,213 +1,209 @@
|
||||||
|
|
||||||
ΟΠ(±κ0:
|
ΟΠ(±κ0:
|
||||||
Ο<18>'(±κ0%:
|
Ο<18>'(±κ0J:
|
||||||
Ο<18>N(±κ0J:
|
Ο<18>N(±κ0•:
|
||||||
Ο<18>u(±κ0o:
|
Ο<18>u(±κ0ί:
|
||||||
Ο <>(±κ0•:
|
Ο <>(±κ0©:
|
||||||
Ο¨Γ(±κ0Ί:
|
Ο¨Γ(±κ0σ:
|
||||||
Ο°κ(±κ0ί:
|
Ο°κ(±κ0Ύ:
|
||||||
ΟΈ‘(±κ0„:
|
ΟΈ‘(±κ0<EFBFBD>:
|
||||||
ΟΐΈ(±κ0©:
|
ΟΐΈ(±κ0<EFBFBD>:
|
||||||
|
|
||||||
ΟΘί(±κ0Ξ:
|
ΟΘί(±κ0<>:
|
||||||
ΟΠ†(±κ0σ:
|
ΟΠ†(±κ0η:
|
||||||
ΟΨ(±κ0<>:
|
ΟΨ(±κ0±:
|
||||||
ΟΰΤ(±κ0Ύ:
|
ΟΰΤ(±κ0ϋ:
|
||||||
Οθϋ(±κ0γ:
|
Οθϋ(±κ0Ε:
|
||||||
ΟπΆ(±κ0<>:
|
ΟπΆ(±κ0<>:
|
||||||
ΟψΙ(±κ0:
|
ΟψΙ(±κ0Ϊ:
|
||||||
Ο€ρ(±κ0<>:
|
Ο€ρ(±κ0¤ :
|
||||||
Ο<18><>(±κ0χ:
|
Ο<18><>(±κ0ξ :
|
||||||
Ο<18>Ώ(±κ0<>:
|
Ο<18>Ώ(±κ0Ή
|
||||||
Ο<18>ζ(±κ0Α:
|
:
|
||||||
Ο <>(±κ0η:
|
Ο<18>ζ(±κ0ƒ:
|
||||||
Οπ“ (±κ0Ϊ:
|
Ο <>(±κ0Ν:
|
||||||
Οΐ<>(±κ0Ν:
|
Οπ“ (±κ0΄:
|
||||||
Ο<18>΅(±κ0ΐ:
|
Οΐ<>(±κ0<>:
|
||||||
Οΰ§(±κ0΄:
|
Ο<18>΅(±κ0<>:
|
||||||
Ο°®(±κ0§:
|
Οΰ§(±κ0η":
|
||||||
Ο€µ(±κ0<>:
|
Ο°®(±κ0Ξ(:
|
||||||
ΟΠ»(±κ0<>:
|
Ο€µ(±κ0΄.:
|
||||||
Ο Β(±κ0<>:
|
ΟΠ»(±κ0›4:
|
||||||
ΟπΘ!(±κ0τ:
|
Ο Β(±κ0<>::
|
||||||
ΟΐΟ$(±κ0η":
|
ΟπΘ!(±κ0θ?:
|
||||||
Ο<18>Φ'(±κ0Ϊ%:
|
ΟΐΟ$(±κ0ΞE:
|
||||||
!Οΰά*(±κ0Ξ(:
|
Ο<18>Φ'(±κ0µK:
|
||||||
"Ο°γ-(±κ0Α+:
|
!Οΰά*(±κ0<>N:
|
||||||
#Ο€κ0(±κ0΄.:
|
"Ο°γ-(±κ0<>N:
|
||||||
$ΟΠπ3(±κ0§1:
|
#Ο€κ0(±κ0<>N:
|
||||||
%Ο χ6(±κ0›4:
|
$ΟΠπ3(±κ0<>N:
|
||||||
&Οπύ9(±κ0<>7:
|
%Ο χ6(±κ0<>N:
|
||||||
'Οΐ„=(±κ0<>::
|
&Οπύ9(±κ0<>N:
|
||||||
(Ο€‰z(±κ0<>N:
|
'Οΐ„=(±κ0<>N:
|
||||||
|
(Ο€‰z(±κ0<>N:
|
||||||
)Οΐ–±(±κ0<>N:
|
)Οΐ–±(±κ0<>N:
|
||||||
|
*Ο€β(±κ0<>N:
|
||||||
*Ο€β(±κ0<>N:2
|
+ΟΐΓ“(±κ0<>N:
|
||||||
+ΟΐΓ“(±κ0<>N:2K
|
,Ο€ΪΔ (±κ0<>N:
|
||||||
,Ο€ΪΔ (±κ0<>N:Kd
|
-Οΐπυ(±κ0<>N:#'
|
||||||
-Οΐπυ(±κ0<>N:d}
|
.Ο€‡§(±κ0<>N:+/
|
||||||
.Ο€‡§(±κ0<>N:}–
|
/Οΐ<>Ψ(±κ0<>N:26
|
||||||
/Οΐ<>Ψ(±κ0<>N:–―
|
0Ο€΄‰(±κ0<>N:9=
|
||||||
0Ο€΄‰(±κ0<>N:―Θ
|
1ΟΐΚΊ(±κ0<>N:AE
|
||||||
1ΟΐΚΊ(±κ0<>N:Θα
|
2Ο€αλ(±κ0<>N:HL
|
||||||
2Ο€αλ(±κ0<>N:αϊ
|
3ΠΠ(±κ0:
|
||||||
3ΠΠ(±κ0:
|
4Π<18>'(±κ0J:
|
||||||
4Π<18>'(±κ0%:
|
5Π<18>N(±κ0•:
|
||||||
5Π<18>N(±κ0J:
|
6Π<18>u(±κ0ί:
|
||||||
6Π<18>u(±κ0o:
|
7Π <>(±κ0©:
|
||||||
7Π <>(±κ0•:
|
8Π¨Γ(±κ0σ:
|
||||||
8Π¨Γ(±κ0Ί:
|
9Π°κ(±κ0Ύ:
|
||||||
9Π°κ(±κ0ί:
|
:ΠΈ‘(±κ0<>:
|
||||||
:ΠΈ‘(±κ0„:
|
;ΠΐΈ(±κ0<>:
|
||||||
;ΠΐΈ(±κ0©:
|
<ΠΘί(±κ0<>:
|
||||||
<ΠΘί(±κ0Ξ:
|
=ΠΠ†(±κ0η:
|
||||||
=ΠΠ†(±κ0σ:
|
>ΠΨ(±κ0±:
|
||||||
>ΠΨ(±κ0<>:
|
?ΠΰΤ(±κ0ϋ:
|
||||||
?ΠΰΤ(±κ0Ύ:
|
@Πθϋ(±κ0Ε:
|
||||||
@Πθϋ(±κ0γ:
|
AΠπΆ(±κ0<>:
|
||||||
AΠπΆ(±κ0<>:
|
BΠψΙ(±κ0Ϊ:
|
||||||
BΠψΙ(±κ0:
|
CΠ€ρ(±κ0¤ :
|
||||||
CΠ€ρ(±κ0<>:
|
DΠ<18><>(±κ0ξ :
|
||||||
DΠ<18><>(±κ0χ:
|
EΠ<18>Ώ(±κ0Ή
|
||||||
EΠ<18>Ώ(±κ0<>:
|
:
|
||||||
FΠ<18>ζ(±κ0Α:
|
FΠ<18>ζ(±κ0ƒ:
|
||||||
GΠ <>(±κ0η:
|
GΠ <>(±κ0Ν:
|
||||||
HΠπ“ (±κ0Ϊ:
|
HΠπ“ (±κ0΄:
|
||||||
IΠΐ<>(±κ0Ν:
|
IΠΐ<>(±κ0<>:
|
||||||
JΠ<18>΅(±κ0ΐ:
|
JΠ<18>΅(±κ0<>:
|
||||||
KΠΰ§(±κ0΄:
|
KΠΰ§(±κ0η":
|
||||||
LΠ°®(±κ0§:
|
LΠ°®(±κ0Ξ(:
|
||||||
MΠ€µ(±κ0<>:
|
MΠ€µ(±κ0΄.:
|
||||||
NΠΠ»(±κ0<>:
|
NΠΠ»(±κ0›4:
|
||||||
OΠ Β(±κ0<>:
|
OΠ Β(±κ0<>::
|
||||||
PΠπΘ!(±κ0τ:
|
PΠπΘ!(±κ0θ?:
|
||||||
QΠΐΟ$(±κ0η":
|
QΠΐΟ$(±κ0ΞE:
|
||||||
RΠ<18>Φ'(±κ0Ϊ%:
|
RΠ<18>Φ'(±κ0µK:
|
||||||
SΠΰά*(±κ0Ξ(:
|
SΠΰά*(±κ0<>N:
|
||||||
TΠ°γ-(±κ0Α+:
|
TΠ°γ-(±κ0<>N:
|
||||||
UΠ€κ0(±κ0΄.:
|
UΠ€κ0(±κ0<>N:
|
||||||
VΠΠπ3(±κ0§1:
|
VΠΠπ3(±κ0<>N:
|
||||||
WΠ χ6(±κ0›4:
|
WΠ χ6(±κ0<>N:
|
||||||
XΠπύ9(±κ0<>7:
|
XΠπύ9(±κ0<>N:
|
||||||
YΠΐ„=(±κ0<>::
|
YΠΐ„=(±κ0<>N:
|
||||||
ZΠ€‰z(±κ0<>N:
|
ZΠ€‰z(±κ0<>N:
|
||||||
|
[Πΐ–±(±κ0<>N:
|
||||||
[Πΐ–±(±κ0<>N:
|
\Π€β(±κ0<>N:
|
||||||
|
]ΠΐΓ“(±κ0<>N:
|
||||||
\Π€β(±κ0<>N:2
|
^Π€ΪΔ (±κ0<>N:
|
||||||
]ΠΐΓ“(±κ0<>N:2K
|
_Πΐπυ(±κ0<>N:#'
|
||||||
^Π€ΪΔ (±κ0<>N:Kd
|
`Π€‡§(±κ0<>N:+/
|
||||||
_Πΐπυ(±κ0<>N:d}
|
aΠΐ<>Ψ(±κ0<>N:26
|
||||||
`Π€‡§(±κ0<>N:}–
|
bΠ€΄‰(±κ0<>N:9=
|
||||||
aΠΐ<>Ψ(±κ0<>N:–―
|
cΠΐΚΊ(±κ0<>N:AE
|
||||||
bΠ€΄‰(±κ0<>N:―Θ
|
dΠ€αλ(±κ0<>N:HL
|
||||||
cΠΐΚΊ(±κ0<>N:Θα
|
eΡΠ(±κ0:
|
||||||
dΠ€αλ(±κ0<>N:αϊ
|
fΡ<18>'(±κ0J:
|
||||||
eΡΠ(±κ0:
|
gΡ<18>N(±κ0•:
|
||||||
fΡ<18>'(±κ0%:
|
hΡ<18>u(±κ0ί:
|
||||||
gΡ<18>N(±κ0J:
|
iΡ <>(±κ0©:
|
||||||
hΡ<18>u(±κ0o:
|
jΡ¨Γ(±κ0σ:
|
||||||
iΡ <>(±κ0•:
|
kΡ°κ(±κ0Ύ:
|
||||||
jΡ¨Γ(±κ0Ί:
|
lΡΈ‘(±κ0<>:
|
||||||
kΡ°κ(±κ0ί:
|
mΡΐΈ(±κ0<>:
|
||||||
lΡΈ‘(±κ0„:
|
nΡΘί(±κ0<>:
|
||||||
mΡΐΈ(±κ0©:
|
oΡΠ†(±κ0η:
|
||||||
nΡΘί(±κ0Ξ:
|
pΡΨ(±κ0±:
|
||||||
oΡΠ†(±κ0σ:
|
qΡΰΤ(±κ0ϋ:
|
||||||
pΡΨ(±κ0<>:
|
rΡθϋ(±κ0Ε:
|
||||||
qΡΰΤ(±κ0Ύ:
|
sΡπΆ(±κ0<>:
|
||||||
rΡθϋ(±κ0γ:
|
tΡψΙ(±κ0Ϊ:
|
||||||
sΡπΆ(±κ0<>:
|
uΡ€ρ(±κ0¤ :
|
||||||
tΡψΙ(±κ0:
|
vΡ<18><>(±κ0ξ :
|
||||||
uΡ€ρ(±κ0<>:
|
wΡ<18>Ώ(±κ0Ή
|
||||||
vΡ<18><>(±κ0χ:
|
:
|
||||||
wΡ<18>Ώ(±κ0<>:
|
xΡ<18>ζ(±κ0ƒ:
|
||||||
xΡ<18>ζ(±κ0Α:
|
yΡ <>(±κ0Ν:
|
||||||
yΡ <>(±κ0η:
|
zΡπ“ (±κ0΄:
|
||||||
zΡπ“ (±κ0Ϊ:
|
{Ρΐ<>(±κ0<>:
|
||||||
{Ρΐ<>(±κ0Ν:
|
|Ρ<18>΅(±κ0<>:
|
||||||
|Ρ<18>΅(±κ0ΐ:
|
}Ρΰ§(±κ0η":
|
||||||
}Ρΰ§(±κ0΄:
|
~Ρ°®(±κ0Ξ(:
|
||||||
~Ρ°®(±κ0§:
|
Ρ€µ(±κ0΄.:
|
||||||
Ρ€µ(±κ0<>:
|
€ΡΠ»(±κ0›4:
|
||||||
€ΡΠ»(±κ0<>:
|
<08>Ρ Β(±κ0<>::
|
||||||
<08>Ρ Β(±κ0<>:
|
‚ΡπΘ!(±κ0θ?:
|
||||||
‚ΡπΘ!(±κ0τ:
|
ƒΡΐΟ$(±κ0ΞE:
|
||||||
ƒΡΐΟ$(±κ0η":
|
„Ρ<18>Φ'(±κ0µK:
|
||||||
„Ρ<18>Φ'(±κ0Ϊ%:
|
…Ρΰά*(±κ0<>N:
|
||||||
…Ρΰά*(±κ0Ξ(:
|
†Ρ°γ-(±κ0<>N:
|
||||||
†Ρ°γ-(±κ0Α+:
|
‡Ρ€κ0(±κ0<>N:
|
||||||
‡Ρ€κ0(±κ0΄.:
|
<08>ΡΠπ3(±κ0<>N:
|
||||||
<08>ΡΠπ3(±κ0§1:
|
‰Ρ χ6(±κ0<>N:
|
||||||
‰Ρ χ6(±κ0›4:
|
<08>Ρπύ9(±κ0<>N:
|
||||||
<08>Ρπύ9(±κ0<>7:
|
‹Ρΐ„=(±κ0<>N:
|
||||||
‹Ρΐ„=(±κ0<>::
|
<08>Ρ€‰z(±κ0<>N:
|
||||||
<08>Ρ€‰z(±κ0<>N:
|
<08>Ρΐ–±(±κ0<>N:
|
||||||
|
<08>Ρ€β(±κ0<>N:
|
||||||
<08>Ρΐ–±(±κ0<>N:
|
<08>ΡΐΓ“(±κ0<>N:
|
||||||
|
<08>Ρ€ΪΔ (±κ0<>N:
|
||||||
<08>Ρ€β(±κ0<>N:2
|
‘Ρΐπυ(±κ0<>N:#'
|
||||||
<08>ΡΐΓ“(±κ0<>N:2K
|
’Ρ€‡§(±κ0<>N:+/
|
||||||
<08>Ρ€ΪΔ (±κ0<>N:Kd
|
“Ρΐ<>Ψ(±κ0<>N:26
|
||||||
‘Ρΐπυ(±κ0<>N:d}
|
”Ρ€΄‰(±κ0<>N:9=
|
||||||
’Ρ€‡§(±κ0<>N:}–
|
•ΡΐΚΊ(±κ0<>N:AE
|
||||||
“Ρΐ<>Ψ(±κ0<>N:–―
|
–Ρ€αλ(±κ0<>N:HL
|
||||||
”Ρ€΄‰(±κ0<>N:―Θ
|
—<10>Π(±κ0:
|
||||||
•ΡΐΚΊ(±κ0<>N:Θα
|
<08><10><18>'(±κ0J:
|
||||||
–Ρ€αλ(±κ0<>N:αϊ
|
™<10><18>N(±κ0•:
|
||||||
—<10>Π(±κ0:
|
<08><10><18>u(±κ0ί:
|
||||||
<08><10><18>'(±κ0%:
|
›<10> <>(±κ0©:
|
||||||
™<10><18>N(±κ0J:
|
<08><10>¨Γ(±κ0σ:
|
||||||
<08><10><18>u(±κ0o:
|
<08><10>°κ(±κ0Ύ:
|
||||||
›<10> <>(±κ0•:
|
<08><10>Έ‘(±κ0<>:
|
||||||
<08><10>¨Γ(±κ0Ί:
|
<08><10>ΐΈ(±κ0<>:
|
||||||
<08><10>°κ(±κ0ί:
|
<10>Θί(±κ0<>:
|
||||||
<08><10>Έ‘(±κ0„:
|
΅<10>Π†(±κ0η:
|
||||||
<08><10>ΐΈ(±κ0©:
|
Ά<10>Ψ(±κ0±:
|
||||||
<10>Θί(±κ0Ξ:
|
£<10>ΰΤ(±κ0ϋ:
|
||||||
΅<10>Π†(±κ0σ:
|
¤<10>θϋ(±κ0Ε:
|
||||||
Ά<10>Ψ(±κ0<>:
|
¥<10>πΆ(±κ0<>:
|
||||||
£<10>ΰΤ(±κ0Ύ:
|
¦<10>ψΙ(±κ0Ϊ:
|
||||||
¤<10>θϋ(±κ0γ:
|
§<10>€ρ(±κ0¤ :
|
||||||
¥<10>πΆ(±κ0<>:
|
¨<10><18><>(±κ0ξ :
|
||||||
¦<10>ψΙ(±κ0:
|
©<10><18>Ώ(±κ0Ή
|
||||||
§<10>€ρ(±κ0<>:
|
:
|
||||||
¨<10><18><>(±κ0χ:
|
<08><10><18>ζ(±κ0ƒ:
|
||||||
©<10><18>Ώ(±κ0<>:
|
«<10> <>(±κ0Ν:
|
||||||
<08><10><18>ζ(±κ0Α:
|
¬<10>π“ (±κ0΄:
|
||||||
«<10> <>(±κ0η:
|
<10>ΐ<>(±κ0<>:
|
||||||
¬<10>π“ (±κ0Ϊ:
|
®<10><18>΅(±κ0<>:
|
||||||
<10>ΐ<>(±κ0Ν:
|
―<10>ΰ§(±κ0η":
|
||||||
®<10><18>΅(±κ0ΐ:
|
°<10>°®(±κ0Ξ(:
|
||||||
―<10>ΰ§(±κ0΄:
|
±<10>€µ(±κ0΄.:
|
||||||
°<10>°®(±κ0§:
|
²<10>Π»(±κ0›4:
|
||||||
±<10>€µ(±κ0<>:
|
³<10> Β(±κ0<>::
|
||||||
²<10>Π»(±κ0<>:
|
΄<10>πΘ!(±κ0θ?:
|
||||||
³<10> Β(±κ0<>:
|
µ<10>ΐΟ$(±κ0ΞE:
|
||||||
΄<10>πΘ!(±κ0τ:
|
¶<10><18>Φ'(±κ0µK:
|
||||||
µ<10>ΐΟ$(±κ0η":
|
·<10>ΰά*(±κ0<>N:
|
||||||
¶<10><18>Φ'(±κ0Ϊ%:
|
Έ<10>°γ-(±κ0<>N:
|
||||||
·<10>ΰά*(±κ0Ξ(:
|
Ή<10>€κ0(±κ0<>N:
|
||||||
Έ<10>°γ-(±κ0Α+:
|
Ί<10>Ππ3(±κ0<>N:
|
||||||
Ή<10>€κ0(±κ0΄.:
|
»<10> χ6(±κ0<>N:
|
||||||
Ί<10>Ππ3(±κ0§1:
|
Ό<10>πύ9(±κ0<>N:
|
||||||
»<10> χ6(±κ0›4:
|
½<10>ΐ„=(±κ0<>N:
|
||||||
Ό<10>πύ9(±κ0<>7:
|
Ύ<10>€‰z(±κ0<>N:
|
||||||
½<10>ΐ„=(±κ0<>::
|
Ώ<10>ΐ–±(±κ0<>N:
|
||||||
Ύ<10>€‰z(±κ0<>N:
|
ΐ<10>€β(±κ0<>N:
|
||||||
|
Α<10>ΐΓ“(±κ0<>N:
|
||||||
Ώ<10>ΐ–±(±κ0<>N:
|
Β<10>€ΪΔ (±κ0<>N:
|
||||||
|
Γ<10>ΐπυ(±κ0<>N:#'
|
||||||
ΐ<10>€β(±κ0<>N:2
|
Δ<10>€‡§(±κ0<>N:+/
|
||||||
Α<10>ΐΓ“(±κ0<>N:2K
|
Ε<10>ΐ<>Ψ(±κ0<>N:26
|
||||||
Β<10>€ΪΔ (±κ0<>N:Kd
|
Ζ<10>€΄‰(±κ0<>N:9=
|
||||||
Γ<10>ΐπυ(±κ0<>N:d}
|
Η<10>ΐΚΊ(±κ0<>N:AE
|
||||||
Δ<10>€‡§(±κ0<>N:}–
|
Θ<10>€αλ(±κ0<>N:HL
|
||||||
Ε<10>ΐ<>Ψ(±κ0<>N:–―
|
|
||||||
Ζ<10>€΄‰(±κ0<>N:―Θ
|
|
||||||
Η<10>ΐΚΊ(±κ0<>N:Θα
|
|
||||||
Θ<10>€αλ(±κ0<>N:αϊ
|
|
||||||
иП░N(╠Й0∙:
|
иП░N(╠Й0∙:
|
||||||
йПп├(╠Й0Г:
|
йПп├(╠Й0Г:
|
||||||
кПю (╠Й0 :
|
кПю (╠Й0 :
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
6Նֆ׆ӆԆ"¡<>À„=
|
6Նֆ׆ӆԆ"¡<>À„=
|
||||||
.и<>й<>к<EFBFBD>л<EFBFBD>"Ё<>Р<>=
|
.л<EFBFBD>и<EFBFBD>й<>к<>"Ё<>Р<>=
|
||||||
Wж<EFBFBD>е<>д<>з<EFBFBD>и<>й<>к<>л<>г<>" Ё<><10>т
|
Wз<>и<>й<>к<>л<>г<EFBFBD>д<>е<>ж<EFBFBD>" Ё<><10>т
|
||||||
]з<>и<EFBFBD>л<>г<>д<>ж<>м<>е<>й<>к<EFBFBD>"Ђ<>є
|
]з<>к<EFBFBD>г<>е<>и<>й<>л<>м<>д<>ж<EFBFBD>"Ђ<>є
|
BIN
data/DB_Task.dat
BIN
data/DB_Task.dat
Binary file not shown.
|
@ -199,6 +199,18 @@
|
||||||
"100002": 10
|
"100002": 10
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"Id": 21,
|
||||||
|
"Order": 6,
|
||||||
|
"ActivityType": 3,
|
||||||
|
"TaskType": 18,
|
||||||
|
"TargetTimes": 100,
|
||||||
|
"FinishTimes": 1,
|
||||||
|
"Award": {
|
||||||
|
"100001": 10000000,
|
||||||
|
"100002": 10
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"Id": 17,
|
"Id": 17,
|
||||||
"Order": 1,
|
"Order": 1,
|
||||||
|
|
|
@ -48,6 +48,7 @@ func (b *BindScoreSvc) GetInviteScore(req *model.InviteScoreReq, ret *model.Invi
|
||||||
|
|
||||||
type M struct {
|
type M struct {
|
||||||
Score int64
|
Score int64
|
||||||
|
Money int64
|
||||||
}
|
}
|
||||||
|
|
||||||
var tc []M
|
var tc []M
|
||||||
|
@ -58,6 +59,7 @@ func (b *BindScoreSvc) GetInviteScore(req *model.InviteScoreReq, ret *model.Invi
|
||||||
{"$group": bson.M{
|
{"$group": bson.M{
|
||||||
"_id": nil,
|
"_id": nil,
|
||||||
"score": bson.M{"$sum": "$score"},
|
"score": bson.M{"$sum": "$score"},
|
||||||
|
"money": bson.M{"$sum": "$money"},
|
||||||
}},
|
}},
|
||||||
}).AllowDiskUse().All(&tc)
|
}).AllowDiskUse().All(&tc)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -67,6 +69,7 @@ func (b *BindScoreSvc) GetInviteScore(req *model.InviteScoreReq, ret *model.Invi
|
||||||
|
|
||||||
if len(tc) > 0 {
|
if len(tc) > 0 {
|
||||||
ret.Score = tc[0].Score
|
ret.Score = tc[0].Score
|
||||||
|
ret.Money = tc[0].Money
|
||||||
c := PlayerDataCollection(req.Platform)
|
c := PlayerDataCollection(req.Platform)
|
||||||
if c == nil {
|
if c == nil {
|
||||||
return PlayerColError
|
return PlayerColError
|
||||||
|
|
|
@ -53,6 +53,7 @@ type InviteScore struct {
|
||||||
Tp int32 // 积分类型 common.InviteScoreType~
|
Tp int32 // 积分类型 common.InviteScoreType~
|
||||||
Score int64 // 积分
|
Score int64 // 积分
|
||||||
Ts int64 // 时间戳
|
Ts int64 // 时间戳
|
||||||
|
Money int64 // 充值金额
|
||||||
}
|
}
|
||||||
|
|
||||||
type InviteScoreReq struct {
|
type InviteScoreReq struct {
|
||||||
|
@ -61,16 +62,18 @@ type InviteScoreReq struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type InviteScoreRet struct {
|
type InviteScoreRet struct {
|
||||||
Score int64
|
Score int64 // 包含扣积分
|
||||||
ZScore int64
|
ZScore int64 // 只包含大于0的积分
|
||||||
|
Money int64 // 充值金额
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetInviteScore 查询总积分
|
// GetInviteScore 查询总积分
|
||||||
// 下级玩家所有积分
|
// 下级玩家所有积分
|
||||||
func GetInviteScore(plt string, snid int32) (int64, int64, error) {
|
// 返回 包含扣积分,只包含大于0的积分,充值金额
|
||||||
|
func GetInviteScore(plt string, snid int32) (int64, int64, int64, error) {
|
||||||
if rpcCli == nil {
|
if rpcCli == nil {
|
||||||
logger.Logger.Warnf("rpcCli is nil")
|
logger.Logger.Warnf("rpcCli is nil")
|
||||||
return 0, 0, errors.New("rpcCli is nil")
|
return 0, 0, 0, errors.New("rpcCli is nil")
|
||||||
}
|
}
|
||||||
|
|
||||||
req := &InviteScoreReq{
|
req := &InviteScoreReq{
|
||||||
|
@ -81,10 +84,10 @@ func GetInviteScore(plt string, snid int32) (int64, int64, error) {
|
||||||
err := rpcCli.CallWithTimeout("BindScoreSvc.GetInviteScore", req, ret, time.Second*30)
|
err := rpcCli.CallWithTimeout("BindScoreSvc.GetInviteScore", req, ret, time.Second*30)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Logger.Warnf("GetInviteScore err:%v", err)
|
logger.Logger.Warnf("GetInviteScore err:%v", err)
|
||||||
return 0, 0, err
|
return 0, 0, 0, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret.Score, ret.ZScore, err
|
return ret.Score, ret.ZScore, ret.Money, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveInviteScore 保存积分变更记录
|
// SaveInviteScore 保存积分变更记录
|
||||||
|
|
|
@ -313,28 +313,25 @@ func CSInviteInfo(s *netlib.Session, packetid int, data interface{}, sid int64)
|
||||||
res, err = webapi.ApiGetInviteLink(common.GetAppId(), req)
|
res, err = webapi.ApiGetInviteLink(common.GetAppId(), req)
|
||||||
return nil
|
return nil
|
||||||
}), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) {
|
}), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) {
|
||||||
|
info := webapi_proto.SAPlayerInviteLink{}
|
||||||
|
link := ""
|
||||||
if err != nil || res == nil {
|
if err != nil || res == nil {
|
||||||
logger.Logger.Errorf("ApiGetInviteLink err %v or not return", err)
|
logger.Logger.Errorf("ApiGetInviteLink err %v or not return", err)
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
var info webapi_proto.SAPlayerInviteLink
|
|
||||||
proto.Unmarshal(res, &info)
|
|
||||||
|
|
||||||
if info.Tag == webapi_proto.TagCode_SUCCESS {
|
|
||||||
ret := &welfare.SCInviteInfo{
|
|
||||||
Num: p.InviteNum,
|
|
||||||
Code: p.InviteCode,
|
|
||||||
InviteUrl: info.Link,
|
|
||||||
Score: p.InviteScore,
|
|
||||||
OtherCode: p.OtherCode,
|
|
||||||
}
|
|
||||||
|
|
||||||
p.SendToClient(int(welfare.SPacketID_PACKET_SCInviteInfo), ret)
|
|
||||||
logger.Logger.Tracef("SCInviteInfo %v", ret)
|
|
||||||
} else {
|
} else {
|
||||||
logger.Logger.Errorf("ApiGetInviteLink:%v", info.String())
|
proto.Unmarshal(res, &info)
|
||||||
|
logger.Logger.Infof("ApiGetInviteLink info %v", info.String())
|
||||||
|
link = info.Link
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ret := &welfare.SCInviteInfo{
|
||||||
|
Num: p.InviteNum,
|
||||||
|
Code: p.InviteCode,
|
||||||
|
InviteUrl: link,
|
||||||
|
Score: p.InviteScore,
|
||||||
|
OtherCode: p.OtherCode,
|
||||||
|
}
|
||||||
|
p.SendToClient(int(welfare.SPacketID_PACKET_SCInviteInfo), ret)
|
||||||
|
logger.Logger.Tracef("SCInviteInfo %v", ret)
|
||||||
})).Start()
|
})).Start()
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,20 +30,29 @@ func SaveInviteScore(data *model.InviteScore) {
|
||||||
return nil
|
return nil
|
||||||
}), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) {
|
}), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) {
|
||||||
p := PlayerMgrSington.GetPlayerBySnId(data.InviteSnId)
|
p := PlayerMgrSington.GetPlayerBySnId(data.InviteSnId)
|
||||||
if err == nil && p != nil && data.Score != 0 {
|
if err == nil && p != nil {
|
||||||
if data.Score < 0 {
|
if data.Score != 0 {
|
||||||
if -data.Score > p.InviteScore {
|
if data.Score < 0 {
|
||||||
data.Score = -p.InviteScore
|
if -data.Score > p.InviteScore {
|
||||||
|
data.Score = -p.InviteScore
|
||||||
|
}
|
||||||
|
}
|
||||||
|
p.InviteScore += data.Score
|
||||||
|
p.dirty = true
|
||||||
|
|
||||||
|
// 更新邀请任务进度
|
||||||
|
if data.Score > 0 {
|
||||||
|
TaskSubjectSingleton.Touch(common.TaskTypeInviteScore, &TaskData{
|
||||||
|
SnId: p.SnId,
|
||||||
|
Num: data.Score,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
p.InviteScore += data.Score
|
|
||||||
p.dirty = true
|
|
||||||
|
|
||||||
// 更新邀请任务进度
|
if data.Money > 0 {
|
||||||
if data.Score > 0 {
|
TaskSubjectSingleton.Touch(common.TaskTypeInviteRecharge, &TaskData{
|
||||||
TaskSubjectSingleton.Touch(common.TaskTypeInviteScore, &TaskData{
|
|
||||||
SnId: p.SnId,
|
SnId: p.SnId,
|
||||||
Num: data.Score,
|
Num: data.Money,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -51,10 +60,10 @@ func SaveInviteScore(data *model.InviteScore) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetInviteScore(platform string, snid int32) {
|
func GetInviteScore(platform string, snid int32) {
|
||||||
var n, z int64
|
var n, z, money int64
|
||||||
var err error
|
var err error
|
||||||
task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
|
task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
|
||||||
n, z, err = model.GetInviteScore(platform, snid)
|
n, z, money, err = model.GetInviteScore(platform, snid)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Logger.Errorf("GetInviteScore error:%v", err)
|
logger.Logger.Errorf("GetInviteScore error:%v", err)
|
||||||
return err
|
return err
|
||||||
|
@ -72,6 +81,12 @@ func GetInviteScore(platform string, snid int32) {
|
||||||
SnId: p.SnId,
|
SnId: p.SnId,
|
||||||
Num: z,
|
Num: z,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
p.ResetTaskN(common.TaskTypeInviteRecharge)
|
||||||
|
TaskSubjectSingleton.Touch(common.TaskTypeInviteRecharge, &TaskData{
|
||||||
|
SnId: p.SnId,
|
||||||
|
Num: money,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
})).StartByFixExecutor(fmt.Sprintf("invite_score_%v", snid))
|
})).StartByFixExecutor(fmt.Sprintf("invite_score_%v", snid))
|
||||||
}
|
}
|
||||||
|
|
|
@ -4431,8 +4431,9 @@ func (this *Player) InviteTask(scoreType int32, gameId int32, n int64) {
|
||||||
SnId: this.SnId,
|
SnId: this.SnId,
|
||||||
InviteSnId: this.InviteSnId,
|
InviteSnId: this.InviteSnId,
|
||||||
Tp: scoreType,
|
Tp: scoreType,
|
||||||
Score: a * 10000,
|
Score: a * common.InviteScoreRecharge,
|
||||||
Ts: time.Now().UnixNano(),
|
Ts: time.Now().UnixNano(),
|
||||||
|
Money: n,
|
||||||
})
|
})
|
||||||
|
|
||||||
case common.InviteScoreTypeGameTimes:
|
case common.InviteScoreTypeGameTimes:
|
||||||
|
|
|
@ -245,4 +245,5 @@ func init() {
|
||||||
TaskSubjectSingleton.Attach(common.TaskTypeFirstLogin, taskHandle)
|
TaskSubjectSingleton.Attach(common.TaskTypeFirstLogin, taskHandle)
|
||||||
TaskSubjectSingleton.Attach(common.TaskTypeInviteNum, taskHandle)
|
TaskSubjectSingleton.Attach(common.TaskTypeInviteNum, taskHandle)
|
||||||
TaskSubjectSingleton.Attach(common.TaskTypeTurnplate, taskHandle)
|
TaskSubjectSingleton.Attach(common.TaskTypeTurnplate, taskHandle)
|
||||||
|
TaskSubjectSingleton.Attach(common.TaskTypeInviteRecharge, taskHandle)
|
||||||
}
|
}
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue