Jim Membro
Mensagens : 18 Moeda : 33 Pontos : 3 Data de inscrição : 08/01/2013
| Assunto: [Tutorial]Arrow com custo de Mp Ter Jan 08, 2013 11:11 pm | |
| Não lembro dos créditos, caso seja seu me avise - Atençao, faça sempre um backup de seu projeto e cuidado com o que adiciona ao mesmo, pode estar substituindo parte de uma modificaçao sua, que ira gerar conflito e erros no seu projeto.- Spoiler:
arrow com custo de mp Bem, este tutorial o ajuda a colocar um custo de Mana nas Flechas. Utilize o Head "ArrowMPCost" do arquivo anexado Extras.ini como base para isso. Agora, no Servidor, procure por: - Código:
-
' Número de classes Public Max_Classes As Byte Public Map() As MapRec Public TempTile() As TempTileRec Public PlayersOnMap() As Long Public Player() As AccountRec Public Class() As ClassRec Public Item() As ItemRec Public Npc() As NpcRec Public MapItem() As MapItemRec Public MapNpc() As MapNpcRec Public Grid() As GridRec Public Shop() As ShopRec Public Spell() As SpellRec Public Guild() As GuildRec Public Party() As PartyRec Public Emoticons() As EmoRec Public Experience() As Long Public CMessages(1 To 6) As CMRec Public Speech() As SpeechRec Abaixo, adicione: - Código:
-
Public ArrowMPCost(1 To 50) As Long 'Mude 50 para o número máximo de itens, caso contrário estará dar erro!
Procure por: - Código:
-
Sub LoadExps() Dim FileName As String Dim i As Long
Call CheckExps FileName = App.Path & "\Experiência.ini"
For i = 1 To MAX_LEVEL Call SetStatus("Carregando experiência... " & Int((i / MAX_LEVEL) * 100) & "%") Experience(i) = GetVar(FileName, "EXPERIENCE", "Exp" & i)
DoEvents Next
End Sub
Abaixo, adicione: - Código:
-
Sub LoadArrowCost() Dim i As Integer For i = 1 To MAX_ITEMS ArrowMPCost(i) = Val(GetVar(App.Path & "\Extras.ini", "ArrowMPCost", Trim$(i))) Next End Sub Agora, procure por: - Código:
-
Call SetStatus("Carregando itens...") Call LoadItems
Acima, adicione: - Código:
-
Call SetStatus("Carregando custo de flechas...") Call LoadArrowCost
Procure por: - Código:
-
Case "attack"
If GetPlayerWeaponSlot(Index) > 0 Then If Item(GetPlayerInvItemNum(Index, GetPlayerWeaponSlot(Index))).Data3 > 0 Then Call SendDataToMap(GetPlayerMap(Index), "checkarrows" & SEP_CHAR & Index & SEP_CHAR & Item(GetPlayerInvItemNum(Index, GetPlayerWeaponSlot(Index))).Data3 & SEP_CHAR & GetPlayerDir(Index) & END_CHAR) Exit Sub End If End If
- Código:
-
Case "attack"
If GetPlayerWeaponSlot(Index) > 0 Then If Item(GetPlayerInvItemNum(Index, GetPlayerWeaponSlot(Index))).Data3 > 0 Then If GetPlayerMP(Index) >= ArrowMPCost(GetPlayerInvItemNum(Index, GetPlayerWeaponSlot(Index))) Then Call SetPlayerMP(Index, GetPlayerMP(Index) - ArrowMPCost(GetPlayerInvItemNum(Index, GetPlayerWeaponSlot(Index)))) Call SendDataToMap(GetPlayerMap(Index), "checkarrows" & SEP_CHAR & Index & SEP_CHAR & Item(GetPlayerInvItemNum(Index, GetPlayerWeaponSlot(Index))).Data3 & SEP_CHAR & GetPlayerDir(Index) & END_CHAR) Call SendPlayerData(Index) Exit Sub Else Call PlayerMsg(Index, "Você precisa de " & ArrowMPCost(GetPlayerInvItemNum(Index, GetPlayerWeaponSlot(Index))) & " pontos de mana para isto!", 5) Call SendPlayerData(Index) End If End If End If
É isso aí pessoal! Agora basta editar quanto de MP o item tal (desde que esteja com a função de 'Arco' marcada!) vai gastar/precisar ao soltar a flecha!
| |
|