[EE] Quickfix House e outras opções
MMORPG Brasil :: OPEN SOURCE ENGINES :: Eclipse :: Tutoriais
Página 1 de 1
[EE] Quickfix House e outras opções
Aew ese e o emu Primeiro TUTU AKI EM XD
Aqui está um quickfix para a mudança de nomes quando o jogador compra uma casa, e um bônus de venda / comando para a venda de casas. Sempre faça um backup de origem e meter main.txt isso não funciona para você.
Por apenas corrigir o rápido, com Server; modHandleData, procurar;
Substituir o código inteiro com isso;
-------------------------------------------------- ------------
Desde 2,8 executa os mapas no cache, você tem que recriar o mapa no cache quando os dados forem alterados, caso contrário, os jogadores não verá as mudanças até que sair e voltar, o que é legal também.
Agora, se você deseja adicionar o / venda de comando ...
No modHandleData Server, postos em que os casos são;
Role para baixo, onde os submarinos estão em modHandleData e colocar isto em;
Enquanto ainda no modHandleData Server, procurar;
Substituir o código inteiro com isso;
Agora abra a fonte de clientes e entrar em modHandleData, procure por "buyhouse" e ponha esta embaixo que casestring;
Agora você pode chamar o sub sellhouse (índice) de comando de texto em sadscript. Abra seu main.txt e colocar isso na parte inferior do seu Sub Comandos (Acima End Select / End Sub)
Agora o jogador pode ficar na casa de telha e do tipo comprar / vender e eles podem vender a casa para a metade do custo do que já pagou.
-------------------------------------------------- -------------
Agora, se você quer restringir jogadores de só comprar 1 casa de cada vez. Eu uso um GetVar / PutVar verificar no momento da compra / venda. Isso requer que remonta ao Packet_BuyHouse (índice) e Packet_SellHouse (índice) Caso você já tenha editado los.
Em Server / modHandleData, procurar;
Substituir o código inteiro com isso;
Então olhe para Packet_SellHouse índice () se você tivesse colocado no de cima. Substituir, que com isso;
Isso deve fazê-lo muito bem. Ah, quase esqueci, se você quiser dar aos jogadores pré-definida de habitação, então você tem que parar o pacote do modhandledata Server;
Aqui está um quickfix para a mudança de nomes quando o jogador compra uma casa, e um bônus de venda / comando para a venda de casas. Sempre faça um backup de origem e meter main.txt isso não funciona para você.
Por apenas corrigir o rápido, com Server; modHandleData, procurar;
- Código:
Public Sub Packet_BuyHouse(ByVal index As Long)
Substituir o código inteiro com isso;
- Código:
Public Sub Packet_BuyHouse(ByVal index As Long)
Dim I As Long
Dim MapNum As Long
MapNum = GetPlayerMap(index)
If Map(MapNum).Tile(GetPlayerX(index), GetPlayerY(index)).Type <> TILE_TYPE_HOUSE Then
Call PlayerMsg(index, "Você precisa estar em uma telha de casa para comprar!", BRIGHTRED)
Exit Sub
End If
If Map(MapNum).Tile(GetPlayerX(index), GetPlayerY(index)).Data1 = 0 Then
Map(MapNum).Owner = GetPlayerName(index)
Map(MapNum).Name = GetPlayerName(index) & "'s House"
Map(MapNum).Revision = Map(MapNum).Revision + 1
Call SaveMap(MapNum)
Call MapCache_Create(MapNum)
Call SendDataToMap(MapNum, "CHECKFORMAP" & SEP_CHAR & MapNum & SEP_CHAR & (Map(MapNum).Revision + 1) & END_CHAR)
Call PlayerMsg(index, "Você agora esta casa própria!", BRIGHTGREEN)
Exit Sub
End If
For I = 1 To MAX_INV
If GetPlayerInvItemNum(index, I) = Map(MapNum).Tile(GetPlayerX(index), GetPlayerY(index)).Data1 Then
If Item(GetPlayerInvItemNum(index, I)).Type = ITEM_TYPE_CURRENCY Then
If GetPlayerInvItemValue(index, I) >= Map(MapNum).Tile(GetPlayerX(index), GetPlayerY(index)).Data2 Then
Call SetPlayerInvItemValue(index, I, GetPlayerInvItemValue(index, I) - Map(MapNum).Tile(GetPlayerX(index), GetPlayerY(index)).Data2)
If GetPlayerInvItemValue(index, I) = 0 Then
Call SetPlayerInvItemNum(index, I, 0)
End If
Map(MapNum).Owner = GetPlayerName(index)
Map(MapNum).Name = GetPlayerName(index) & "'s House"
Map(MapNum).Revision = Map(GetPlayerMap(index)).Revision + 1
Call SaveMap(MapNum)
Call SendInventory(index)
Call PlayerMsg(index, "Você comprou uma casa nova!", BRIGHTGREEN)
Call MapCache_Create(MapNum)
Call SendDataToMap(MapNum, "CHECKFORMAP" & SEP_CHAR & MapNum & SEP_CHAR & (Map(MapNum).Revision + 1) & END_CHAR)
End If
Else
If GetPlayerWeaponSlot(index) <> I And GetPlayerArmorSlot(index) <> I And GetPlayerShieldSlot(index) <> I And GetPlayerHelmetSlot(index) <> I And GetPlayerLegsSlot(index) <> I And GetPlayerRingSlot(index) <> I And GetPlayerNecklaceSlot(index) <> I Then
Call SetPlayerInvItemNum(index, I, 0)
Map(MapNum).Owner = GetPlayerName(index)
Map(MapNum).Name = GetPlayerName(index) & "'s House"
Map(MapNum).Revision = Map(MapNum).Revision + 1
Call SaveMap(MapNum)
Call SendInventory(index)
Call PlayerMsg(index, "Você possui agora uma nova casa!", BRIGHTGREEN)
Call MapCache_Create(MapNum)
Call SendDataToMap(MapNum, "CHECKFORMAP" & SEP_CHAR & MapNum & SEP_CHAR & (Map(MapNum).Revision + 1) & END_CHAR)
End If
End If
If GetPlayerWeaponSlot(index) <> I And GetPlayerArmorSlot(index) <> I And GetPlayerShieldSlot(index) <> I And GetPlayerHelmetSlot(index) <> I And GetPlayerLegsSlot(index) <> I And GetPlayerRingSlot(index) <> I And GetPlayerNecklaceSlot(index) <> I Then
Exit Sub
End If
End If
Next I
Call PlayerMsg(index, "Você não tem o suficiente para comprar esta casa!", BRIGHTRED)
End Sub
-------------------------------------------------- ------------
Desde 2,8 executa os mapas no cache, você tem que recriar o mapa no cache quando os dados forem alterados, caso contrário, os jogadores não verá as mudanças até que sair e voltar, o que é legal também.
Agora, se você deseja adicionar o / venda de comando ...
No modHandleData Server, postos em que os casos são;
- Código:
Case "sellhouse"
Call Packet_SellHouse(index)
Exit Sub
Role para baixo, onde os submarinos estão em modHandleData e colocar isto em;
- Código:
Public Sub Packet_SellHouse(ByVal index As Long)
Dim I As Long
If Map(GetPlayerMap(index)).Tile(GetPlayerX(index), GetPlayerY(index)).Type <> TILE_TYPE_HOUSE Then
Call PlayerMsg(index, "Você precisa ser na telha de comprar casa para vendê-lo!", BRIGHTRED)
Exit Sub
End If
If Map(GetPlayerMap(index)).Owner <> GetPlayerName(index) Then
Call PlayerMsg(index, "Você não possui esta casa!", BRIGHTRED)
Exit Sub
End If
For I = 1 To MAX_INV
If GetPlayerInvItemNum(index, I) = Map(GetPlayerMap(index)).Tile(GetPlayerX(index), GetPlayerY(index)).Data1 Then
If Item(GetPlayerInvItemNum(index, I)).Type = ITEM_TYPE_CURRENCY Then
Call SetPlayerInvItemValue(index, I, GetPlayerInvItemValue(index, I) + (Map(GetPlayerMap(index)).Tile(GetPlayerX(index), GetPlayerY(index)).Data2 / 2))
If GetPlayerInvItemValue(index, I) = 0 Then
Call SetPlayerInvItemNum(index, I, 0)
End If
Call SendInventory(index)
Call PlayerMsg(index, "Você vendeu esta casa para " & (Map(GetPlayerMap(index)).Tile(GetPlayerX(index), GetPlayerY(index)).Data2 / 2) & "!", BRIGHTGREEN)
Call Packet_ClearOwner(index)
End If
End If
Next I
End Sub
Enquanto ainda no modHandleData Server, procurar;
- Código:
Public Sub Packet_ClearOwner(index)
Substituir o código inteiro com isso;
- Código:
Public Sub Packet_ClearOwner(ByVal index As Long)
Dim MapNum As Long
If GetPlayerAccess(index) < ADMIN_DEVELOPER Then
Call HackingAttempt(index, "Admin Cloning")
Exit Sub
End If
MapNum = GetPlayerMap(index)
Map(MapNum).Owner = 0
Map(MapNum).Name = "Abandoned House"
Map(MapNum).Revision = Map(MapNum).Revision + 1
Call SaveMap(MapNum)
Call MapCache_Create(MapNum)
Call SendDataToMap(MapNum, "CHECKFORMAP" & SEP_CHAR & MapNum & SEP_CHAR & (Map(MapNum).Revision + 1) & END_CHAR)
Call PlayerMsg(index, "O proprietário da casa foi limpa com êxito.", BRIGHTRED)
End Sub
[code=vb]
Now go into Server, clscommands and put this in;
[code=vb]
Sub SellHouse(index)
Call SendDataTo(index, "HOUSESELL" & END_CHAR)
End Sub
Agora abra a fonte de clientes e entrar em modHandleData, procure por "buyhouse" e ponha esta embaixo que casestring;
- Código:
If casestring = "housesell" Then
i = MsgBox("Você gostaria de vender esta casa?", 4, "Vender Casa")
If i = 6 Then
Call SendData("sellhouse" & END_CHAR)
End If
Exit Sub
End If
Agora você pode chamar o sub sellhouse (índice) de comando de texto em sadscript. Abra seu main.txt e colocar isso na parte inferior do seu Sub Comandos (Acima End Select / End Sub)
- Código:
Case "/Vender"
Call SellHouse(index)
Exit Sub
Agora o jogador pode ficar na casa de telha e do tipo comprar / vender e eles podem vender a casa para a metade do custo do que já pagou.
-------------------------------------------------- -------------
Agora, se você quer restringir jogadores de só comprar 1 casa de cada vez. Eu uso um GetVar / PutVar verificar no momento da compra / venda. Isso requer que remonta ao Packet_BuyHouse (índice) e Packet_SellHouse (índice) Caso você já tenha editado los.
Em Server / modHandleData, procurar;
- Código:
Packet_BuyHouse(index)
Substituir o código inteiro com isso;
- Código:
Public Sub Packet_BuyHouse(ByVal index As Long)
Dim I As Long
Dim MapNum As Long
MapNum = GetPlayerMap(index)
If Map(MapNum).Tile(GetPlayerX(index), GetPlayerY(index)).Type <> TILE_TYPE_HOUSE Then
Call PlayerMsg(index, "Você precisa estar em uma telha de casa para comprar!", BRIGHTRED)
Exit Sub
End If
If GetVar("scripts\Housing.ini", "OWNERS", "" & GetPlayerName(index) & "") = "1" Then
Call PlayerMsg(index, "Você já possui uma casa, você não pode comprar outra, até você vender o que você tem em primeiro lugar.", BRIGHTRED)
Exit Sub
End If
If Map(MapNum).Tile(GetPlayerX(index), GetPlayerY(index)).Data1 = 0 Then
Map(MapNum).Owner = GetPlayerName(index)
Map(MapNum).Name = GetPlayerName(index) & "'s House"
Map(MapNum).Revision = Map(MapNum).Revision + 1
Call SaveMap(MapNum)
Call PutVar("scripts\Housing.ini", "OWNERS", "" & GetPlayerName(index) & "", 1)
Call MapCache_Create(MapNum)
Call SendDataToMap(MapNum, "CHECKFORMAP" & SEP_CHAR & MapNum & SEP_CHAR & (Map(MapNum).Revision + 1) & END_CHAR)
Call PlayerMsg(index, "Você possui agora esta casa!", BRIGHTGREEN)
Exit Sub
End If
For I = 1 To MAX_INV
If GetPlayerInvItemNum(index, I) = Map(MapNum).Tile(GetPlayerX(index), GetPlayerY(index)).Data1 Then
If Item(GetPlayerInvItemNum(index, I)).Type = ITEM_TYPE_CURRENCY Then
If GetPlayerInvItemValue(index, I) >= Map(MapNum).Tile(GetPlayerX(index), GetPlayerY(index)).Data2 Then
Call SetPlayerInvItemValue(index, I, GetPlayerInvItemValue(index, I) - Map(MapNum).Tile(GetPlayerX(index), GetPlayerY(index)).Data2)
If GetPlayerInvItemValue(index, I) = 0 Then
Call SetPlayerInvItemNum(index, I, 0)
End If
Map(MapNum).Owner = GetPlayerName(index)
Map(MapNum).Name = GetPlayerName(index) & "'s House"
Map(MapNum).Revision = Map(GetPlayerMap(index)).Revision + 1
Call SaveMap(MapNum)
Call SendInventory(index)
Call PlayerMsg(index, "Você comprou uma casa nova!", BRIGHTGREEN)
Call PutVar("scripts\Housing.ini", "OWNERS", "" & GetPlayerName(index) & "", 1)
Call MapCache_Create(MapNum)
Call SendDataToMap(MapNum, "CHECKFORMAP" & SEP_CHAR & MapNum & SEP_CHAR & (Map(MapNum).Revision + 1) & END_CHAR)
End If
Else
If GetPlayerWeaponSlot(index) <> I And GetPlayerArmorSlot(index) <> I And GetPlayerShieldSlot(index) <> I And GetPlayerHelmetSlot(index) <> I And GetPlayerLegsSlot(index) <> I And GetPlayerRingSlot(index) <> I And GetPlayerNecklaceSlot(index) <> I Then
Call SetPlayerInvItemNum(index, I, 0)
Map(MapNum).Owner = GetPlayerName(index)
Map(MapNum).Name = GetPlayerName(index) & "'s House"
Map(MapNum).Revision = Map(MapNum).Revision + 1
Call SaveMap(MapNum)
Call SendInventory(index)
Call PlayerMsg(index, "Você possui agora uma nova casa!", BRIGHTGREEN)
Call PutVar("scripts\Housing.ini", "OWNERS", "" & GetPlayerName(index) & "", 1)
Call MapCache_Create(MapNum)
Call SendDataToMap(MapNum, "CHECKFORMAP" & SEP_CHAR & MapNum & SEP_CHAR & (Map(MapNum).Revision + 1) & END_CHAR)
End If
End If
If GetPlayerWeaponSlot(index) <> I And GetPlayerArmorSlot(index) <> I And GetPlayerShieldSlot(index) <> I And GetPlayerHelmetSlot(index) <> I And GetPlayerLegsSlot(index) <> I And GetPlayerRingSlot(index) <> I And GetPlayerNecklaceSlot(index) <> I Then
Exit Sub
End If
End If
Next I
Call PlayerMsg(index, "Você não tem o suficiente para comprar esta casa!", BRIGHTRED)
End Sub
Então olhe para Packet_SellHouse índice () se você tivesse colocado no de cima. Substituir, que com isso;
- Código:
Public Sub Packet_SellHouse(ByVal index As Long)
Dim I As Long
If Map(GetPlayerMap(index)).Tile(GetPlayerX(index), GetPlayerY(index)).Type <> TILE_TYPE_HOUSE Then
Call PlayerMsg(index, "Você precisa ser na telha de comprar casa para vendê-lo!", BRIGHTRED)
Exit Sub
End If
If Map(GetPlayerMap(index)).Owner <> GetPlayerName(index) Then
Call PlayerMsg(index, "Você não possui esta casa!", BRIGHTRED)
Exit Sub
End If
For I = 1 To MAX_INV
If GetPlayerInvItemNum(index, I) = Map(GetPlayerMap(index)).Tile(GetPlayerX(index), GetPlayerY(index)).Data1 Then
If Item(GetPlayerInvItemNum(index, I)).Type = ITEM_TYPE_CURRENCY Then
Call SetPlayerInvItemValue(index, I, GetPlayerInvItemValue(index, I) + (Map(GetPlayerMap(index)).Tile(GetPlayerX(index), GetPlayerY(index)).Data2 / 2))
If GetPlayerInvItemValue(index, I) = 0 Then
Call SetPlayerInvItemNum(index, I, 0)
End If
Call SendInventory(index)
Call PlayerMsg(index, "Você vendeu esta casa para" & (Map(GetPlayerMap(index)).Tile(GetPlayerX(index), GetPlayerY(index)).Data2 / 2) & "!", BRIGHTGREEN)
Call PutVar("scripts\Housing.ini", "OWNERS", "" & GetPlayerName(index) & "", "")
Call Packet_ClearOwner(index)
End If
End If
Next I
End Sub
Isso deve fazê-lo muito bem. Ah, quase esqueci, se você quiser dar aos jogadores pré-definida de habitação, então você tem que parar o pacote do modhandledata Server;
- Código:
Case "requestedithouse"
Creditos WIlclefison
PS: ISSO E para deixar Com uma cara melhor para voce vender uma casa e compara ela de alguem
Tópicos semelhantes
» Menu de Opções
» Como Retirar Augumas Opções do Client
» Como colocar mais opcoes de sprites, arrows e spells?
» Sprites Digimon-Outras
» Como colocar server on para outras pessoas jogarem
» Como Retirar Augumas Opções do Client
» Como colocar mais opcoes de sprites, arrows e spells?
» Sprites Digimon-Outras
» Como colocar server on para outras pessoas jogarem
MMORPG Brasil :: OPEN SOURCE ENGINES :: Eclipse :: Tutoriais
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
Dom 08 Abr 2018, 18:40 por JorgeZinhoo002
» Ojkjeeeee
Seg 10 Out 2016, 23:19 por Frozen
» Naruto Great Ninja Batle
Dom 09 Out 2016, 14:29 por GuiinhoLP
» Recrutamento de um Designer para jogo de CDZ.
Sex 23 Set 2016, 18:37 por newbie123
» Serviços de suporte maker( Programação , Design , PixelArt ) E Vendas de Jogos
Qui 22 Set 2016, 20:11 por Eduardo
» Serviços de suporte maker( Programação , Design , PixelArt ) E Vendas de Jogos
Qui 22 Set 2016, 20:11 por Eduardo
» Serviços de suporte maker( Programação , Design , PixelArt ) E Vendas de Jogos
Qui 22 Set 2016, 20:09 por Eduardo
» Projeto Dbz
Qua 31 Ago 2016, 23:46 por 157
» Avaliação - Sprites Naruto
Qua 31 Ago 2016, 17:09 por 157
» [Sprites] DBZ (Plix)
Qua 31 Ago 2016, 14:13 por 157
» Super Pack - Bleach V.2
Qua 31 Ago 2016, 13:02 por 157
» [PEDIDO][PROJETO][RECRUTAMENTO] DYNISTYGAMES
Ter 30 Ago 2016, 10:04 por 157
» [PEDIDO][PROJETO][RECRUTAMENTO] DYNISTYGAMES
Ter 30 Ago 2016, 10:03 por 157
» [PEDIDO][PROJETO][RECRUTAMENTO] DYNISTYGAMES
Ter 30 Ago 2016, 10:02 por 157
» [Pedido] Contador de resets na FrmMain
Sáb 13 Ago 2016, 17:45 por killers97
» [Recrutamento]
Qua 10 Ago 2016, 23:09 por Monsters
» Ajuda erro no Cliente e Servidor do EEB 2.6!
Qua 20 Jul 2016, 19:53 por Binholx
» Como criar tilesets para Eclipse Origins 3.0 (POKÉMON)
Qua 29 Jun 2016, 19:46 por Sir Aaron
» Recursos Pokemons
Qua 29 Jun 2016, 19:34 por Sir Aaron
» erro frm flash
Qua 25 maio 2016, 13:51 por vava123
» Pedido - Pack de star wars
Qui 19 maio 2016, 05:06 por edsonpet
» [Ajuda] Sobre como por o servidor on por ip fixo
Ter 17 maio 2016, 16:14 por vava123
» Illusion Dimension - O Misterio do ID: BETA TESTE ONLINE
Sex 06 maio 2016, 20:02 por LksFlorencio
» [NSME] Naruto Shinobi Maker Engine
Qua 23 Mar 2016, 15:11 por luana1457
» Script /base,/casa Igual DBZ Forces
Dom 21 Fev 2016, 07:34 por JorgeZinhoo002
» [Pedido]Colar Tsunade item sprite eclipse origin
Qui 21 Jan 2016, 07:38 por lawllietbr
» [Pedido] Elysium
Sáb 19 Dez 2015, 11:31 por luana1457
» Naruto - Recruta
Ter 15 Dez 2015, 18:40 por Uchiha ~
» [Avaliação] - Kirito from Sword Art Online; Red and Pikachu from Pokemon.
Qua 25 Nov 2015, 13:43 por Thanakii
» [Avaliação] - Kenpachi Zaraki from Bleach; Libra Shiryu From Saint Seiya.
Qua 25 Nov 2015, 12:55 por Thanakii
» Demonstração de Sprites (Á VENDA!)
Qua 25 Nov 2015, 12:40 por Thanakii
» [Sistema de Reset]Para Eclipse .
Ter 24 Nov 2015, 16:51 por VithorUchi
» Cada Guild Nascer em Certo Mapa
Qui 12 Nov 2015, 06:13 por fabiofeijó_HIT
» Dragon Ball z Fusion A Grande Volta
Qui 29 Out 2015, 15:17 por fabiofeijó_HIT
» Ajuda com Ip fixo
Seg 26 Out 2015, 16:07 por GalaxyHells15
» Como Fazer um GUI no Eclipse Origins
Dom 18 Out 2015, 22:10 por Jeanleee
» Shisui Susanoo
Dom 18 Out 2015, 20:23 por Jeanleee
» Fantasy Art Online
Dom 18 Out 2015, 16:41 por daviih123
» Ajuda !!
Seg 05 Out 2015, 12:13 por andersonzika
» como passar o usuário e senha para o MainMenu?
Seg 28 Set 2015, 22:03 por Bëzerk
» Ru time ero 13 Type mismatch
Seg 28 Set 2015, 09:08 por andredarle
» Jarvis 1.3 Download
Qua 23 Set 2015, 18:42 por soares125
» [Avaliação/Disponibilização]Árvore 64x64
Qua 23 Set 2015, 15:15 por Over~
» Mlk's Zikas Signatures
Ter 22 Set 2015, 21:15 por Aikawa Reborn'
» Pedido de Sistemas
Dom 20 Set 2015, 18:05 por cleyton_05
» [AjudaEEB]Gerador de EXP
Qua 16 Set 2015, 14:04 por Over~
» [Avaliar] Base, Humano e Goblin.
Seg 14 Set 2015, 22:51 por .iBlaz3.
» Fabrica do Tio Cronos!
Dom 13 Set 2015, 21:31 por [ADM]Cronos
» [PixelArt] Minion - Meu malvado favorito
Dom 13 Set 2015, 12:51 por [ADM]Cronos
» [Avaliar] Goku Dragon Ball Z
Qua 05 Ago 2015, 21:36 por Setrux