terça-feira, 16 de abril de 2013

0 Salvamento/Carregamento de Armas Load/Save Weapons

Introdução:
Este fs serve para carregar as armas e balas de um Jogador por Nome.
Na proxima versão ele vai ser com Senha para o Player carregar as armas/ballas Sómente quando Logar


Informação:
Crie este fs sem nenhum algoritimo ou exemplo, e tenho certeza que não esta pronto, Mas a éssa altura ele esta funcionando.



PS:
Testei 1 vez sómente.
Qualquer Bug me Avisar/Identificar



Créditos:
iShock
Double-of-seven


ChangeLog:
11/04/2013
- Removido Bug's
- Otimizações no script

07/04/2013
- Criação do FilterScript.
- Adicionado funções para Salvar/Carregar as armas e balas.




pawn Code:
#include                <a_samp> #include                <DOF2> forward OnPlayerSaveWeapon( playerid ); forward OnPlayerLoadWeapon( playerid ); #define MAX_WEAPONS                                     ( 13 ) #define MAX_AMMO                                        ( 99999 ) new         g_sGetAmmoWeapon    [     MAX_AMMO        ],         g_sGetWeapon        [     MAX_WEAPONS     ],         g_sStrTemp2         [     128             ],         g_sStringW          [     128             ],         g_sStrTemp          [     128             ] ; public OnFilterScriptInit() {     print(#\n--------------------------------------);     print(# Sistema de Weapon's Save/Load Carregado\n );     print(# SysWeapon's By iShock" );     print(# SysWeapon's Version: 0.2 );     print(#--------------------------------------\n);     return 1; } public OnFilterScriptExit() {     DOF2_Exit();     return 1; } public OnPlayerSaveWeapon( playerid ) {     format( g_sStringW, sizeof( g_sStringW ), "Contas/%s.ini", PlayerName( playerid ) );         if( !DOF2::FileExists( g_sStringW ) )     {         DOF2::CreateFile( g_sStringW );         for( new w = 0; w < MAX_WEAPONS; w++ )         {             GetPlayerWeaponData( playerid, w, g_sGetWeapon[ w ], g_sGetAmmoWeapon[ w ] );             format( g_sStrTemp, 16, "WeaponID_%d", w );             format( g_sStrTemp2, 16, "WeaponAmmo_%d", w );             DOF2::SetInt( g_sStringW, g_sStrTemp,  g_sGetWeapon[ w ] );             DOF2::SetInt( g_sStringW, g_sStrTemp2,  g_sGetAmmoWeapon[ w ] );         }         DOF2::SaveFile();     }     for( new i = 0; i < MAX_WEAPONS; i++ )     {         GetPlayerWeaponData( playerid, i, g_sGetWeapon[ i ], g_sGetAmmoWeapon[ i ] );         format( g_sStrTemp, 16, "WeaponID_%d", i );         format( g_sStrTemp2, 16, "WeaponAmmo_%d", i );         DOF2::SetInt( g_sStringW, g_sStrTemp,  g_sGetWeapon[ i ] );         DOF2::SetInt( g_sStringW, g_sStrTemp2,  g_sGetAmmoWeapon[ i ]);     }     DOF2::SaveFile();     SendClientMessage( playerid, -1, #Suas armas foram salvadas );         return 1; } public OnPlayerLoadWeapon( playerid ) {     format( g_sStringW, sizeof( g_sStringW ), "Contas/%s.ini", PlayerName( playerid ) );         ResetPlayerWeapons( playerid );     if( !fexist( g_sStringW  ) ) return false;     for( new i = 0; i < 12; i++ )     {         format( g_sStrTemp, 16, "WeaponID_%d", i );                     format( g_sStrTemp2, 16, "WeaponAmmo_%d", i );                     g_sGetWeapon[ i ]           =   DOF2::GetInt( g_sStringW, g_sStrTemp );         g_sGetAmmoWeapon[ i ]       =   DOF2::GetInt( g_sStringW, g_sStrTemp2 );                 GivePlayerWeapon( playerid, g_sGetWeapon[ i ], g_sGetAmmoWeapon[ i ] );     }     SendClientMessage( playerid, -1, #Suas armas estão Carregadas );     return 1; } public OnPlayerDisconnect(playerid, reason) {     OnPlayerSaveWeapon( playerid );     DOF2::SaveFile();     return 1; } public OnPlayerSpawn(playerid) {     OnPlayerLoadWeapon( playerid );     return 1; } public OnPlayerDeath(playerid, killerid, reason) {     OnPlayerSaveWeapon( playerid );     return 1; } stock PlayerName( playerid ) {     new Name[MAX_PLAYER_NAME];     GetPlayerName( playerid, Name, MAX_PLAYER_NAME);     return Name; }
__________________

0 comentários: