Essa Job ela Premia os players da guild, fazendo diferença de valores pelo cargo do cidadao... Exemplo Guild Master: 10 gold, Assistente: 7 Gold, Batle master: 5 gold, membro normal: 2 gold...
Vamos a ela..
Código PHP:
Declare @Guild varchar(10);
Declare @Char varchar(10);
Declare @Conta varchar(10);
Declare @Premio int;
Declare @G_Status int;
Set @Guild = (Select OWNER_GUILD from MuCastle_DATA)
IF (@Guild <> '')
BEGIN
DECLARE C CURSOR FOR SELECT Name,G_Status FROM GuildMember Where G_Name = @Guild Order By G_Status desc
OPEN C
FETCH NEXT FROM C INTO @Char,@G_Status
WHILE @@FETCH_STATUS = 0
BEGIN
IF @G_Status = 128 -- G_status = 128 (Guild Master)
BEGIN
SET @Premio = 30;
END
IF @G_Status = 64 -- G_status = 64 (Assistente Guild Master)
BEGIN
SET @Premio = 20;
END
IF @G_Status = 32 -- G_status = 32 (Batle Master)
BEGIN
SET @Premio = 10;
END
IF @G_Status = 0 -- G_status = 0 (Membro)
BEGIN
SET @Premio = 5;
END
SET @Conta = '';
SET @Conta = (Select AccountID From Character where Name = @Char)
IF (@Conta <> '')
BEGIN
Update MEMB_INFO set Coins = Coins + @Premio where memb___id = @Conta
END
FETCH NEXT FROM C INTO @Char,@G_Status
END
CLOSE C
DEALLOCATE C
END
Algumas Explicações:
Na parte ->
IF @G_Status = 128 -- G_status = 128 (Guild Master)
BEGIN
SET @Premio = 30;
END
IF @G_Status = 64 -- G_status = 64 (Assistente Guild Master)
BEGIN
SET @Premio = 20;
END
IF @G_Status = 32 -- G_status = 32 (Batle Master)
BEGIN
SET @Premio = 10;
END
IF @G_Status = 0 -- G_status = 0 (Membro)
BEGIN
SET @Premio = 5;
END
Estou comparando a variavel @G_Status que recebe o valor referente a que tipo de membro estamos tratando..
@G_Status = 128 //Guild Master
@G_Status = 64 //Assistente de Guild Master
@G_Status = 32 //Batle Master
@G_Status = 0 //Player (Noob)
Onde a Variavel @Premio é o valor definido para Cada posição, ou seja é editavel e fica a seu gosto....
Na Linha:
Update MEMB_INFO set Coins = Coins + @Premio where memb___id = @Conta
Estou utilizando a Coluna (Coins), caso voce utilize Gold,Creditos,Cash....
Creditos:
Prøjë¢T