Lucas Roberto Administrador
Mensagens : 711
| Assunto: Comprar Itens com Cash! Dom 26 Jun 2011, 17:25 | |
| Olá gente! Vim postar mais um tutorial pra galerë, agora um de usar cash pra comprar itens normalmente pelo jogo. Sem mais delongas, vamos começar. Primeira coisa a fazer é ter efetuado o tutorial de "Sistema Cash" do Lenon, esse [Tens de ter uma conta e sessão iniciada para poderes visualizar este link], se não tiver ele o tutorial não vai funcionar, não tem jeito. :thumbsup: CLIENT-SIDE[/size] 1ª Passo é ir no ModTypes e procurar por: - Código:
-
Type TradeItemRec GiveItem As Long GiveValue As Long GetItem As Long GetValue As Long End Type Aqui você substitui por: - Código:
-
Type TradeItemRec GiveItem As Long GiveValue As Long GetItem As Long GetValue As Long Cash As Byte End Type 2ª Passo: Continuando no ModTypes, procure por: - Código:
-
Type ItemTradeRec ItemGetNum As Long ItemGiveNum As Long ItemGetVal As Long ItemGiveVal As Long End Type e substitua por: - Código:
-
Type ItemTradeRec ItemGetNum As Long ItemGiveNum As Long ItemGetVal As Long ItemGiveVal As Long Cash as Byte End Type 3ª Passo: Vá para o ModGameLogic e procure por: - Código:
-
Public Sub UpdateShopTrade() Dim I As Long, GetItem As Long, GetValue As Long, GiveItem As Long, GiveValue As Long, C As Long For I = 0 To 5 frmShopEditor.lstTradeItem(I).Clear Next I For C = 1 To 6 For I = 1 To MAX_TRADES GetItem = Shop(EditorIndex).TradeItem(C).Value(I).GetItem GetValue = Shop(EditorIndex).TradeItem(C).Value(I).GetValue GiveItem = Shop(EditorIndex).TradeItem(C).Value(I).GiveItem GiveValue = Shop(EditorIndex).TradeItem(C).Value(I).GiveValue
If GetItem > 0 And GiveItem > 0 Then frmShopEditor.lstTradeItem(C - 1).AddItem I & ": " & GiveValue & " " & Trim(Item(GiveItem).Name) & " por " & GetValue & " " & Trim(Item(GetItem).Name) Else frmShopEditor.lstTradeItem(C - 1).AddItem "Empty Trade Slot" End If Next I Next C For I = 0 To 5 frmShopEditor.lstTradeItem(I).ListIndex = 0 Next I End Sub Substitua a Sub toda por: - Código:
-
Public Sub UpdateShopTrade() Dim I As Long, GetItem As Long, GetValue As Long, GiveItem As Long, GiveValue As Long, C As Long Dim hascash As Byte For I = 0 To 5 frmShopEditor.lstTradeItem(I).Clear Next I For C = 1 To 6 For I = 1 To MAX_TRADES GetItem = Shop(EditorIndex).TradeItem(C).Value(I).GetItem GetValue = Shop(EditorIndex).TradeItem(C).Value(I).GetValue GiveItem = Shop(EditorIndex).TradeItem(C).Value(I).GiveItem GiveValue = Shop(EditorIndex).TradeItem(C).Value(I).GiveValue hascash = Shop(EditorIndex).TradeItem(C).Value(I).Cash If hascash = 1 And GetItem > 0 Then frmShopEditor.lstTradeItem(C - 1).AddItem I & ": " & GiveValue & " de Cash Por: " & GetValue & " " & Trim(Item(GetItem).Name) Else If GetItem > 0 And GiveItem > 0 Then frmShopEditor.lstTradeItem(C - 1).AddItem I & ": " & GiveValue & " " & Trim(Item(GiveItem).Name) & " por " & GetValue & " " & Trim(Item(GetItem).Name) Else frmShopEditor.lstTradeItem(C - 1).AddItem "Empty Trade Slot" End If End If Next I Next C For I = 0 To 5 frmShopEditor.lstTradeItem(I).ListIndex = 0 Next I End Sub 4ª Passo: Continuando nesse Mod, procure pela sub "ItemSelected", lá procure por essa linha: - Código:
-
frmTrade.lblTradeFor.Caption = "Trocar por: " & Trim(Item(Trade(Selected).Items(Index).ItemGiveNum).Name) Substitua por: - Código:
-
If Trade(Selected).Items(Index).Cash = 1 Then frmTrade.lblTradeFor.Caption = "Trocar por: Cash" Else frmTrade.lblTradeFor.Caption = "Trocar por: " & Trim(Item(Trade(Selected).Items(Index).ItemGiveNum).Name) End If 5ª Passo: Vamos agora para o ModClientTCP, lá procure por essa linha - Código:
-
Dim GiveItem As Long, GiveValue As Long, GetItem As Long, GetValue As Long abaixo dela coloque - Código:
-
dim hascash as byte 6ª Passo: Continuando nesse mod, procure por: - Código:
-
If (Parse(0) = "editshop") Then ShopNum = Val(Parse(1)) ' Update the shop Shop(ShopNum).Name = Parse(2) Shop(ShopNum).JoinSay = Parse(3) Shop(ShopNum).LeaveSay = Parse(4) Shop(ShopNum).FixesItems = Val(Parse(5)) n = 6 For z = 1 To 6 For I = 1 To MAX_TRADES GiveItem = Val(Parse(n)) GiveValue = Val(Parse(n + 1)) GetItem = Val(Parse(n + 2)) GetValue = Val(Parse(n + 3)) Shop(ShopNum).TradeItem(z).Value(I).GiveItem = GiveItem Shop(ShopNum).TradeItem(z).Value(I).GiveValue = GiveValue Shop(ShopNum).TradeItem(z).Value(I).GetItem = GetItem Shop(ShopNum).TradeItem(z).Value(I).GetValue = GetValue n = n + 4 Next I Next z ' Initialize the shop editor Call ShopEditorInit
Exit Sub End If Substitua o código acima todo por: - Código:
-
If (Parse(0) = "editshop") Then ShopNum = Val(Parse(1)) ' Update the shop Shop(ShopNum).Name = Parse(2) Shop(ShopNum).JoinSay = Parse(3) Shop(ShopNum).LeaveSay = Parse(4) Shop(ShopNum).FixesItems = Val(Parse(5)) n = 6 For z = 1 To 6 For I = 1 To MAX_TRADES GiveItem = Val(Parse(n)) GiveValue = Val(Parse(n + 1)) GetItem = Val(Parse(n + 2)) GetValue = Val(Parse(n + 3)) hascash = Val(Parse(n + 4)) Shop(ShopNum).TradeItem(z).Value(I).GiveItem = GiveItem Shop(ShopNum).TradeItem(z).Value(I).GiveValue = GiveValue Shop(ShopNum).TradeItem(z).Value(I).GetItem = GetItem Shop(ShopNum).TradeItem(z).Value(I).GetValue = GetValue Shop(ShopNum).TradeItem(z).Value(I).Cash = hascash n = n + 5 Next I Next z ' Initialize the shop editor Call ShopEditorInit
Exit Sub End If 7ª Passo: Ainda no mod citado, procure por: - Código:
-
If (Parse(0) = "trade") Then ShopNum = Val(Parse(1)) If Val(Parse(2)) = 1 Then frmTrade.picFixItems.Visible = True Else frmTrade.picFixItems.Visible = False End If n = 3 For z = 1 To 6 For I = 1 To MAX_TRADES GiveItem = Val(Parse(n)) GiveValue = Val(Parse(n + 1)) GetItem = Val(Parse(n + 2)) GetValue = Val(Parse(n + 3)) Trade(z).Items(I).ItemGetNum = GetItem Trade(z).Items(I).ItemGiveNum = GiveItem Trade(z).Items(I).ItemGetVal = GetValue Trade(z).Items(I).ItemGiveVal = GiveValue n = n + 4 Next I Next z Dim xx As Long For xx = 1 To 6 Trade(xx).Selected = NO Next xx Trade(1).Selected = YES frmTrade.shopType.Top = frmTrade.Label1.Top frmTrade.shopType.Left = frmTrade.Label1.Left frmTrade.shopType.Height = frmTrade.Label1.Height frmTrade.shopType.Width = frmTrade.Label1.Width Trade(1).SelectedItem = 1 Call ItemSelected(1, 1) frmTrade.Show vbModeless, frmMirage Exit Sub End If Substitua o código acima todo por: - Código:
-
If (Parse(0) = "trade") Then ShopNum = Val(Parse(1)) If Val(Parse(2)) = 1 Then frmTrade.picFixItems.Visible = True Else frmTrade.picFixItems.Visible = False End If n = 3 For z = 1 To 6 For I = 1 To MAX_TRADES GiveItem = Val(Parse(n)) GiveValue = Val(Parse(n + 1)) GetItem = Val(Parse(n + 2)) GetValue = Val(Parse(n + 3)) hascash = Val(Parse(n + 4)) Trade(z).Items(I).ItemGetNum = GetItem Trade(z).Items(I).ItemGiveNum = GiveItem Trade(z).Items(I).ItemGetVal = GetValue Trade(z).Items(I).ItemGiveVal = GiveValue Trade(z).Items(I).Cash = hascash n = n + 5 Next I Next z Dim xx As Long For xx = 1 To 6 Trade(xx).Selected = NO Next xx Trade(1).Selected = YES frmTrade.shopType.Top = frmTrade.Label1.Top frmTrade.shopType.Left = frmTrade.Label1.Left frmTrade.shopType.Height = frmTrade.Label1.Height frmTrade.shopType.Width = frmTrade.Label1.Width Trade(1).SelectedItem = 1 Call ItemSelected(1, 1) frmTrade.Show vbModeless, frmMirage Exit Sub End If 8ª Passo: Ainda nesse mod, procure por: - Código:
-
Sub SendSaveShop(ByVal ShopNum As Long) Dim Packet As String Dim I As Long, z As Long
Packet = "SAVESHOP" & SEP_CHAR & ShopNum & SEP_CHAR & Trim(Shop(ShopNum).Name) & SEP_CHAR & Trim(Shop(ShopNum).JoinSay) & SEP_CHAR & Trim(Shop(ShopNum).LeaveSay) & SEP_CHAR & Shop(ShopNum).FixesItems & SEP_CHAR For I = 1 To 6 For z = 1 To MAX_TRADES Packet = Packet & Shop(ShopNum).TradeItem(I).Value(z).GiveItem & SEP_CHAR & Shop(ShopNum).TradeItem(I).Value(z).GiveValue & SEP_CHAR & Shop(ShopNum).TradeItem(I).Value(z).GetItem & SEP_CHAR & Shop(ShopNum).TradeItem(I).Value(z).GetValue & SEP_CHAR Next z Next I Packet = Packet & END_CHAR Call SendData(Packet) End Sub Substitua por: - Código:
-
Sub SendSaveShop(ByVal ShopNum As Long) Dim Packet As String Dim I As Long, z As Long
Packet = "SAVESHOP" & SEP_CHAR & ShopNum & SEP_CHAR & Trim(Shop(ShopNum).Name) & SEP_CHAR & Trim(Shop(ShopNum).JoinSay) & SEP_CHAR & Trim(Shop(ShopNum).LeaveSay) & SEP_CHAR & Shop(ShopNum).FixesItems & SEP_CHAR For I = 1 To 6 For z = 1 To MAX_TRADES Packet = Packet & Shop(ShopNum).TradeItem(I).Value(z).GiveItem & SEP_CHAR & Shop(ShopNum).TradeItem(I).Value(z).GiveValue & SEP_CHAR & Shop(ShopNum).TradeItem(I).Value(z).GetItem & SEP_CHAR & Shop(ShopNum).TradeItem(I).Value(z).GetValue & SEP_CHAR & Shop(ShopNum).TradeItem(I).Value(z).Cash & SEP_CHAR Next z Next I Packet = Packet & END_CHAR Call SendData(Packet) End Sub 9ª Passo: Acabamos com o ClientSide agora, a única coisa que você deve fazer é substituir o frmShopEditor por esse que vou passar agora:[attachment=16:frmShopEditor.rar] [size="5"] SERVER-SIDE[/size] 1ª Passo: Após fazer todos os passos do client-side e adicionar o frmshopeditor que eu postei, vá para o project do server e no ModTypes procure por: - Código:
-
Type TradeItemRec GiveItem As Long GiveValue As Long GetItem As Long GetValue As Long End Type Substitua por: - Código:
-
Type TradeItemRec GiveItem As Long GiveValue As Long GetItem As Long GetValue As Long Cash As Byte End Type 2ª Passo: Ainda nesse mod procure por: - Código:
-
Shop(Index).TradeItem(z).Value(i).GetValue = 0 Coloque abaixo dele essa linha: - Código:
-
Shop(Index).TradeItem(z).Value(i).Cash = 0 3ª Passo: Vá para o ModServerTCP e procure por: - Código:
-
Case "saveshop"
' Prevent hacking If GetPlayerAccess(Index) < ADMIN_DEVELOPER Then Call HackingAttempt(Index, "Admin Cloning") Exit Sub End If
ShopNum = Val(Parse(1))
' Prevent hacking If ShopNum < 0 Or ShopNum > MAX_SHOPS Then Call HackingAttempt(Index, "Loja Inválida") Exit Sub End If
' Update the shop Shop(ShopNum).Name = Parse(2) Shop(ShopNum).JoinSay = Parse(3) Shop(ShopNum).LeaveSay = Parse(4) Shop(ShopNum).FixesItems = Val(Parse(5)) N = 6
For z = 1 To 6 For i = 1 To MAX_TRADES Shop(ShopNum).TradeItem(z).Value(i).GiveItem = Val(Parse(N)) Shop(ShopNum).TradeItem(z).Value(i).GiveValue = Val(Parse(N + 1)) Shop(ShopNum).TradeItem(z).Value(i).GetItem = Val(Parse(N + 2)) Shop(ShopNum).TradeItem(z).Value(i).GetValue = Val(Parse(N + 3)) N = N + 4 Next Next
' Save it Call SendUpdateShopToAll(ShopNum) Call SaveShop(ShopNum) Call AddLog(GetPlayerName(Index) & " salvou Loja #" & ShopNum & ".", ADMIN_LOG) Exit Sub Substitua o código acima todo por: - Código:
-
Case "saveshop"
' Prevent hacking If GetPlayerAccess(Index) < ADMIN_DEVELOPER Then Call HackingAttempt(Index, "Admin Cloning") Exit Sub End If
ShopNum = Val(Parse(1))
' Prevent hacking If ShopNum < 0 Or ShopNum > MAX_SHOPS Then Call HackingAttempt(Index, "Loja Inválida") Exit Sub End If
' Update the shop Shop(ShopNum).Name = Parse(2) Shop(ShopNum).JoinSay = Parse(3) Shop(ShopNum).LeaveSay = Parse(4) Shop(ShopNum).FixesItems = Val(Parse(5)) N = 6
For z = 1 To 6 For i = 1 To MAX_TRADES Shop(ShopNum).TradeItem(z).Value(i).GiveItem = Val(Parse(N)) Shop(ShopNum).TradeItem(z).Value(i).GiveValue = Val(Parse(N + 1)) Shop(ShopNum).TradeItem(z).Value(i).GetItem = Val(Parse(N + 2)) Shop(ShopNum).TradeItem(z).Value(i).GetValue = Val(Parse(N + 3)) Shop(ShopNum).TradeItem(z).Value(i).Cash = Val(Parse(N + 4)) N = N + 5 Next Next
' Save it Call SendUpdateShopToAll(ShopNum) Call SaveShop(ShopNum) Call AddLog(GetPlayerName(Index) & " salvou Loja #" & ShopNum & ".", ADMIN_LOG) Exit Sub 4ª Passo: Ainda nesse Mod procure por esse código: - Código:
-
' Check if they have the item If HasItem(Index, Shop(i).TradeItem(N).Value(z).GiveItem) >= Shop(i).TradeItem(N).Value(z).GiveValue Then Call TakeItem(Index, Shop(i).TradeItem(N).Value(z).GiveItem, Shop(i).TradeItem(N).Value(z).GiveValue) Call GiveItem(Index, Shop(i).TradeItem(N).Value(z).GetItem, Shop(i).TradeItem(N).Value(z).GetValue) Call PlayerMsg(Index, "A troca foi efetuada com sucesso!", Yellow) Else Call PlayerMsg(Index, "Algo deu errado na negociação.", BrightRed) End If Substitua por: - Código:
-
' Check if they have the item If Shop(i).TradeItem(N).Value(z).Cash = 1 Then If Shop(i).TradeItem(N).Value(z).GiveValue <= GetPlayerCash(Index) Then Call SetPlayerCash(Index, GetPlayerCash(Index) - Shop(i).TradeItem(N).Value(z).GiveValue) Call GiveItem(Index, Shop(i).TradeItem(N).Value(z).GetItem, Shop(i).TradeItem(N).Value(z).GetValue) Call PlayerMsg(Index, "A troca foi efetuada com sucesso!" & GetPlayerCash(Index), Yellow) Call SendStats(Index) Else Call PlayerMsg(Index, "Cash insuficiente para comprar o item!", BrightRed) End If ElseIf HasItem(Index, Shop(i).TradeItem(N).Value(z).GiveItem) >= Shop(i).TradeItem(N).Value(z).GiveValue Then Call TakeItem(Index, Shop(i).TradeItem(N).Value(z).GiveItem, Shop(i).TradeItem(N).Value(z).GiveValue) Call GiveItem(Index, Shop(i).TradeItem(N).Value(z).GetItem, Shop(i).TradeItem(N).Value(z).GetValue) Call PlayerMsg(Index, "A troca foi efetuada com sucesso!", Yellow) Else Call PlayerMsg(Index, "Algo deu errado na negociação.", BrightRed) End If 5ª Passo, ainda no ModServerTCP procure por esta sub: - Código:
-
Sub SendEditShopTo(ByVal Index As Long, ByVal ShopNum As Long) Dim Packet As String Dim i As Long, z As Long
Packet = "EDITSHOP" & SEP_CHAR & ShopNum & SEP_CHAR & Trim$(Shop(ShopNum).Name) & SEP_CHAR & Trim$(Shop(ShopNum).JoinSay) & SEP_CHAR & Trim$(Shop(ShopNum).LeaveSay) & SEP_CHAR & Shop(ShopNum).FixesItems & SEP_CHAR
For i = 1 To 6 For z = 1 To MAX_TRADES Packet = Packet & Shop(ShopNum).TradeItem(i).Value(z).GiveItem & SEP_CHAR & Shop(ShopNum).TradeItem(i).Value(z).GiveValue & SEP_CHAR & Shop(ShopNum).TradeItem(i).Value(z).GetItem & SEP_CHAR & Shop(ShopNum).TradeItem(i).Value(z).GetValue & SEP_CHAR Next Next
Packet = Packet & END_CHAR Call SendDataTo(Index, Packet) End Sub Substitua por: - Código:
-
Sub SendEditShopTo(ByVal Index As Long, ByVal ShopNum As Long) Dim Packet As String Dim i As Long, z As Long
Packet = "EDITSHOP" & SEP_CHAR & ShopNum & SEP_CHAR & Trim$(Shop(ShopNum).Name) & SEP_CHAR & Trim$(Shop(ShopNum).JoinSay) & SEP_CHAR & Trim$(Shop(ShopNum).LeaveSay) & SEP_CHAR & Shop(ShopNum).FixesItems & SEP_CHAR
For i = 1 To 6 For z = 1 To MAX_TRADES Packet = Packet & Shop(ShopNum).TradeItem(i).Value(z).GiveItem & SEP_CHAR & Shop(ShopNum).TradeItem(i).Value(z).GiveValue & SEP_CHAR & Shop(ShopNum).TradeItem(i).Value(z).GetItem & SEP_CHAR & Shop(ShopNum).TradeItem(i).Value(z).GetValue & SEP_CHAR & Shop(ShopNum).TradeItem(i).Value(z).Cash & SEP_CHAR Next Next
Packet = Packet & END_CHAR Call SendDataTo(Index, Packet) End Sub 6ª Passo: Pra finalizar, ainda neste mod procure por está linha: - Código:
-
Packet = Packet & Shop(ShopNum).TradeItem(i).Value(XX).GiveItem & SEP_CHAR & Shop(ShopNum).TradeItem(i).Value(XX).GiveValue & SEP_CHAR & Shop(ShopNum).TradeItem(i).Value(XX).GetItem & SEP_CHAR & Shop(ShopNum).TradeItem(i).Value(XX).GetValue & SEP_CHAR Substitua ela por: - Código:
-
Packet = Packet & Shop(ShopNum).TradeItem(i).Value(XX).GiveItem & SEP_CHAR & Shop(ShopNum).TradeItem(i).Value(XX).GiveValue & SEP_CHAR & Shop(ShopNum).TradeItem(i).Value(XX).GetItem & SEP_CHAR & Shop(ShopNum).TradeItem(i).Value(XX).GetValue & SEP_CHAR & Shop(ShopNum).TradeItem(i).Value(XX).Cash & SEP_CHAR Imagem Ilustrativa: [Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]Prontinho! :thumbsup: Bugs, dúvidas neste tópicos, e se gostou faz aquela fezinha e dá cred ae pra eu recuperar meus creds perdidos riaria :thumbsup: | |
|
Convidado Convidado
| Assunto: Re: Comprar Itens com Cash! Dom 26 Jun 2011, 21:30 | |
| Nao entendi pra que serve |
|
Convidado Convidado
| Assunto: Re: Comprar Itens com Cash! Seg 27 Jun 2011, 14:31 | |
| pra compra intem com cash né |
|
Convidado Convidado
| Assunto: Re: Comprar Itens com Cash! Ter 28 Jun 2011, 08:39 | |
| |
|
Convidado Convidado
| Assunto: Re: Comprar Itens com Cash! Ter 28 Jun 2011, 17:15 | |
| e.e Boa boa lucas, toma ai para tu +1 |
|
Convidado Convidado
| Assunto: Re: Comprar Itens com Cash! Qua 29 Jun 2011, 21:34 | |
| Cash é grana mesmo né? Então como o player faria para comprar cash e como o player poderia comprar um item no shop com currency normal (desculpe não testei o tutorial ainda). |
|
Lucas Roberto Administrador
Mensagens : 711
| Assunto: Re: Comprar Itens com Cash! Qui 30 Jun 2011, 20:10 | |
| simples tem a continuidade do sistema no forum ai vc pode ter opção de compra cash... | |
|
Convidado Convidado
| Assunto: Re: Comprar Itens com Cash! Seg 10 Fev 2014, 13:05 | |
| *Malz pelo Topic Revive, só que eu preciso esse sistema*
" 9ª Passo: Acabamos com o ClientSide agora, a única coisa que você deve fazer é substituir o frmShopEditor por esse que vou passar agora:[attachment=16ShopEditor.rar] " Eu não sei o que aconteceu, mas o arquivo .rar não aparece para baixar aqui.. Será que tem como arrumar o tópico para que possa baixar o arquivo? Valeu. |
|
Conteúdo patrocinado
| Assunto: Re: Comprar Itens com Cash! | |
| |
|