Siga-nos em...
Follow us on Twitter Follow us on Facebook Watch us on YouTube
Registro


HGIDC
Resultados 1 a 3 de 3
  1. #1

    Avatar de Getulio
    Data de Ingresso
    Mar 2010
    Localização
    char
    Idade
    24
    Posts
    96
    Agradecido
    289
    Agradeceu
    92
    Peso da Avaliação
    0

    Padrão Apenas letras e números em nome de guilds.

    Não sei se há um tópico com o mesmo intuito que este(eu ao menos não vi); caso haja, algum moderador exclua este.

    Bom, como muitos sabem, ao criar guild o gameserver por padrão, bloqueia alguns simobolos, como: @, !, #, $, %, entre outros. E alguns não são bloqueados.
    A procedure postada a seguir, foi retirada de um servidor 97d.
    Quem quiser usá-la em seu servidor, faça antes o backup da procedure original.

    - Como faço um backup da procedure original?
    1. Abra seu query analyzer
    2. Conecte-se ao sql server
    3. No painel à esquerda - chamado "Object Browser" - clique no + na opção "MuOnline"
    4. Clique no + Stored Procedures
    5. Procure a procedure WZ_GuildCreate e clique com o botão direito do mouse no mesmo.
    6. Vá em "Script Object To File As > Alter"
    7. Salve em qualquer local do seu computador.
    8. Pronto, o backup da procedure está feito.


    Após ter feito o backup, vá no query analyzer, copie o código abaixo e dê F5:
    Código:
    SET QUOTED_IDENTIFIER ON 
    GO
    SET ANSI_NULLS ON 
    GO
    
    
    
    ALTER   procedure WZ_GuildCreate
     @GuildName nvarchar(50),
     @MasterName  nvarchar(10)
    as 
    
    IF (SELECT COUNT(*) FROM guild where G_Name=@GuildName )=0 
    
    BEGIN
     DECLARE @p INTEGER
     DECLARE @ErrorCode int
     
     SET @ErrorCode = 0
     SET XACT_ABORT OFF
    
     Set nocount on 
    
     begin transaction
    
    SELECT @p = PATINDEX('%[^a-zA-Z0-9]%',@GuildName)
     IF(@p > 0)
     BEGIN
      SET @ErrorCode = 1
     END
     
     IF(@ErrorCode = 0)
     BEGIN
    
      INSERT INTO Guild (G_Name,G_Master,G_Score) values (@GuildName, @MasterName, 1)
      IF(@@Error <> 0)
      BEGIN
       SET @ErrorCode = 1
      END
     END
    
     IF(@ErrorCode = 0)
     BEGIN
    
      INSERT GuildMember (Name, G_Name, G_Level) values (@MasterName, @GuildName, 1)
      IF (@@Error <> 0)
      BEGIN
       SET @ErrorCode = 2
      END
     END
    
     IF(@ErrorCode <> 0)
      rollback transaction
     ELSE
      commit transaction
    
     select @ErrorCode
    
     Set  nocount off 
     SET XACT_ABORT ON
    END
    
    
    
    GO
    SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS ON 
    GO
    Jogadores que tentarem criar guilds com simbolos que não foram bloqueados por padrão no gameserver, terá uma mensagem de erro, informando que a guild já existe(mesmo não sendo existente), impedindo-o que poça prosseguir com o mesmo.
    Administradores que queiram liberar underline "_", em nome de guilds, basta procurar no código: '%[^a-zA-Z0-9]%' e modificá-lo para: '%[^a-zA-Z0-9_]%'.

    - Mas pra que isso?
    Simples. Como todos sabem, nenhuma segurança é 100%, sempre há um novo modo de burlar. E com essa procedure, você evitará de ter seu gameserver derrubado por programas como wpe pro.

    - Como eles derrubam?
    Não me pergunte, pois isso não sei informar.

    Está procedure foi modificada por mim, e não apresenta nenhum tipo de falha.
    Fiz e re-fiz diversos testes, e em todos obtive resultado positivo.
    Lembrando, está procedure é para versões 97d.
    Caso alguém tenha este problemas em gameservers superiores a está versão, basta informar a versão do muserver que irei modificá-la.
    Obs: não será possível testar-la em meu computador, sendo assim, o mesmo membro que tenha pedido, terá que testá-lo.

    Créditos
    Procedure: WebZen
    Modificação: Ðαяk Ðimeηsiση

    Abraços.
    Última edição por Getulio; 17-11-2010 às 12:32 AM.

  2. #2

    Avatar de Cøłєridgє
    Data de Ingresso
    Mar 2010
    Localização
    Italia
    Posts
    786
    Agradecido
    1
    Peso da Avaliação
    21

    Padrão

    Testada e no meu deu " Já possui uma guild " e não permitiu o underline, não apresentou nenhum erro, muito bom.

    Hidden Content Hidden Content -
    Sou melhor do que as pessoas pensam e pior do que elas imaginam ...

  3. #3

    Avatar de sTreZ
    Data de Ingresso
    Feb 2010
    Localização
    Sampa
    Posts
    397
    Agradecido
    0
    Agradeceu
    0
    Peso da Avaliação
    12

    Padrão

    WPE não cria guild através dessa procedure não ...

 

 

Informações de Tópico

Usuários Navegando neste Tópico

Há 1 usuários navegando neste tópico. (0 registrados e 1 visitantes)

Tópicos Similares

  1. |Dúvida| Numeros dos sockets options
    Por sula no fórum Dúvidas|Pedidos
    Respostas: 0
    Último Post: 29-03-2016, 03:57 PM
  2. |Dúvida| PHP ARREDONDANDO NÚMEROS DURANTE O CALCULO.
    Por FabioMR no fórum PHP
    Respostas: 5
    Último Post: 02-04-2013, 09:12 PM
  3. |Resolvido| Números desconhecido no item.bmd do cliente 1.07v (Força)
    Por kingrox no fórum Tópicos resolvidos
    Respostas: 5
    Último Post: 03-04-2012, 02:51 PM
  4. |Tutorial| [Algoritmo]Verificador de Números Primos
    Por FusioN no fórum Outras Linguagens
    Respostas: 0
    Último Post: 30-03-2011, 07:02 PM
  5. |Resolvido| Bug de Guilds nos GS 97
    Por Guz3rax no fórum Tópicos resolvidos
    Respostas: 5
    Último Post: 24-04-2010, 03:41 AM

Tags para este Tópico

Marcadores

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • Você não pode enviar respostas
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •