Atualmente, estou criando um servidor RPG, e tive a ideia de fazer um sistema de mochila, que salva arma, skin e dinheiro. Mas isso é na versão v1.0.
Futuramente terá mais funções...
( Tempo fazendo : 40 minutos )
( É necessário fazer a pasta ''Mochilas'' no scriptfiles )
Por enquanto ele só salva 2 armas, 1 skin e a quantidade que quiser de dinheiro ( ... )
Não testei o FilterScript, caso tenha algum bug, informar via Inbox ou pelo tópico mesmo...
Espero que gostem do FilterScript, essa é a versão v1.0, como dito, futuramente terá mais, isso talvez dependam das dicas que você deem também
Codigo :
- #include a_samp
- #include DOF2
- #include ZCMD
- new
- StringMochila [ 128 ] ,
- String2 [ 70 ];
- #define DIALOG_MOCHILA1 123+123 // Dialog em Geral
- #define DIALOG_MOCHILA2 123+124 // Guardar Skin
- #define DIALOG_MOCHILA3 123+125 // Guardar Arma
- #define DIALOG_MOCHILA4 123+126 // Guardar Dinheiro
- #define DIALOG_MOCHILA5 123+127 // Usar Skin
- #define DIALOG_MOCHILA6 123+128 // Pegar Arma
- #define DIALOG_MOCHILA7 123+129 // Pegar Dinheiro
- #define DIALOG_MOCHILA8 123+130 // Guardar Arma 1
- #define DIALOG_MOCHILA9 123+131 // Guardar Arma 2
- #define DIALOG_MOCHILA10 123+132 // Pegar Arma 1
- #define DIALOG_MOCHILA11 123+133 // Pegar Arma 2
- public
- OnPlayerConnect ( playerid )
- {
- format ( StringMochila, sizeof ( StringMochila ), "Mochilas/%s.txt", PlayerName ( playerid ) );
- if ( !DOF2_FileExists ( StringMochila ) )
- {
- DOF2_CreateFile ( StringMochila ) ;
- DOF2_SetString ( StringMochila , "Skin", "Nenhuma" );
- DOF2_SetString ( StringMochila , "Arma1", "Nenhuma" );
- DOF2_SetString ( StringMochila , "Municao1", "Nenhuma" );
- DOF2_SetString ( StringMochila , "Arma2", "Nenhuma" );
- DOF2_SetString ( StringMochila , "Municao2", "Nenhuma" );
- DOF2_SetString ( StringMochila , "Dinheiro", "Nenhuma" ) ;
- }
- return true;
- }
- public
- OnPlayerSpawn ( playerid )
- {
- SetPlayerPos ( playerid , 2089.0505,2068.1211,10.8203 );
- SetPlayerInterior( playerid , 0 ) ;
- return true ;
- }
- CMD:minhamochila(playerid)
- {
- format ( StringMochila, sizeof ( StringMochila ), "Mochilas/%s.txt", PlayerName ( playerid ) );
- if ( DOF2_FileExists ( StringMochila ) )
- {
- ShowPlayerDialog ( playerid, DIALOG_MOCHILA1, DIALOG_STYLE_LIST, "Mochila", "Colocar Mochila\nGuardar Mochila\nGuardar Skin\nGuardar Arma\nGuardar Dinheiro\nUsar Skin\nPegar Arma\nPegar Dinheiro", "Feito" ,"Cancelar" ) ;
- }
- return true;
- }
- public
- OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- format ( StringMochila, sizeof ( StringMochila ), "Mochilas/%s.txt", PlayerName ( playerid ) );
- if ( dialogid == DIALOG_MOCHILA1 )
- {
- if ( response )
- {
- switch ( listitem )
- {
- case 0:
- {
- RemovePlayerAttachedObject ( playerid , 1 ) ;
- SetPlayerAttachedObject ( playerid , 1 , 3026 , 1,-0.16, -0.08, 0.0, 0.5, 0.5,0.0, 1.0, 1.3, 1.0, -1, 0); // Coordenadas by Fórum SA:MP
- SendClientMessage ( playerid, 0xFF6347 , "Mochila colocada." ) ;
- ShowPlayerDialog ( playerid, DIALOG_MOCHILA1, DIALOG_STYLE_LIST, "Mochila","Colocar Mochila\nGuardar Mochila\nGuardar Skin\nGuardar Arma\nGuardar Dinheiro\nUsar Skin\nPegar Arma\nPegar Dinheiro", "Feito" , "Cancelar" ) ;
- }
- case 1:
- {
- RemovePlayerAttachedObject ( playerid , 1 ) ;
- SendClientMessage ( playerid, 0xFF6347 , "Mochila guardada." ) ;
- ShowPlayerDialog ( playerid, DIALOG_MOCHILA1, DIALOG_STYLE_LIST, "Mochila","Colocar Mochila\nGuardar Mochila\nGuardar Skin\nGuardar Arma\nGuardar Dinheiro\nUsar Skin\nPegar Arma\nPegar Dinheiro", "Feito" , "Cancelar" ) ;
- }
- case 2:
- {
- ShowPlayerDialog ( playerid , DIALOG_MOCHILA2 , DIALOG_STYLE_MSGBOX, "Guardar Skin", "Você tem certeza que deseja guardar sua skin?", "Tenho", "Não" ) ;
- }
- case 3:
- {
- ShowPlayerDialog ( playerid , DIALOG_MOCHILA3, DIALOG_STYLE_LIST, "Guardar Arma", "Inventório 1\nIntentório 2", "Guardar", "Cancelar" );
- }
- case 4:
- {
- ShowPlayerDialog ( playerid , DIALOG_MOCHILA4, DIALOG_STYLE_INPUT,"Guardar Dinheiro", "Digite a quantia que deseja guardar:", "Guardar", "Cancelar" );
- }
- case 5:
- {
- if ( strcmp ( DOF2_GetString ( StringMochila , "Skin") , "Nenhuma", true ) ==0 )
- return SendClientMessage ( playerid , -1 , "Você não possui nenhuma Skin guardada!" ) ;
- if ( strcmp ( DOF2_GetString ( StringMochila , "Skin") , "Nenhuma", false ) ==0 )
- {
- format ( String2 , sizeof ( String2 ) , "Você tem certeza que deseja usar a Skin que guardou ( %d )?", DOF2_GetString ( StringMochila , "Skin" ) );
- ShowPlayerDialog ( playerid , DIALOG_MOCHILA5 , DIALOG_STYLE_MSGBOX , "Usar Skin" , String2 , "Usar" , "Cencelar");
- }
- }
- case 6:
- {
- ShowPlayerDialog ( playerid , DIALOG_MOCHILA6, DIALOG_STYLE_LIST, "Pegar Arma", "Inventório 1\nIntentório 2", "Pegar", "Cancelar" );
- }
- case 7:
- {
- format ( String2 , sizeof ( String2 ) , "Você deseja pegar quanto em dinheiro na sua mochila ( R$:%d )?", DOF2_GetString ( StringMochila , "Dinheiro" ) );
- ShowPlayerDialog ( playerid , DIALOG_MOCHILA7 , DIALOG_STYLE_INPUT ,"Pegar Dinheiro" , String2 , "Pegar" , "Cencelar");
- }
- }
- return true;
- }
- if ( dialogid == DIALOG_MOCHILA2 )
- {
- if ( strcmp ( DOF2_GetString ( StringMochila , "Skin") , "Nenhuma", false ) == 0 )
- return SendClientMessage ( playerid , 0xEE5C42, "Você já possui uma Skin guardada!" );
- if ( response )
- {
- DOF2_SetInt ( StringMochila , "Skin" , GetPlayerSkin ( playerid ) ) ;
- DOF2_SaveFile ();
- SendClientMessage ( playerid, 0x00FF7F, "Roupa Guardada com Sucesso!" ) ;
- SetPlayerSkin ( playerid, 0 ) ;
- }
- }
- return true;
- }
- if ( dialogid == DIALOG_MOCHILA3 )
- {
- if ( response )
- {
- switch ( listitem )
- {
- case 0:
- {
- if ( strcmp ( DOF2_GetString ( StringMochila , "Arma1") , "Nenhuma", false ) == 0 )
- return SendClientMessage ( playerid , 0xEE5C42, "Você já possui uma arma guardada nesse inventório!" );
- new
- NomeArma [ 30 ];
- GetWeaponName( GetPlayerWeapon ( playerid ) , NomeArma , sizeof ( NomeArma ) );
- if ( GetPlayerWeapon ( playerid ) == 0 )
- return SendClientMessage ( playerid , -1 , "Você não pode guardar sua mão na mochila." ) ;
- format ( String2 , sizeof ( String2 ) , "Você tem certeza que deseja guardar sua %s?", NomeArma );
- ShowPlayerDialog ( playerid , DIALOG_MOCHILA8 , DIALOG_STYLE_MSGBOX ,"Guardar Arma" , String2 , "Guardar" , "Cencelar");
- }
- case 1:
- {
- if ( strcmp ( DOF2_GetString ( StringMochila , "Arma2") , "Nenhuma", false ) == 0 )
- return SendClientMessage ( playerid , 0xEE5C42, "Você já possui uma arma guardada nesse inventório!" );
- if ( GetPlayerWeapon ( playerid ) == 0 )
- return SendClientMessage ( playerid , -1 , "Você não pode guardar sua mão na mochila." ) ;
- new
- NomeArma [ 30 ];
- GetWeaponName( GetPlayerWeapon ( playerid ) , NomeArma , sizeof ( NomeArma ) );
- format ( String2 , sizeof ( String2 ) , "Você tem certeza que deseja guardar sua %s?", NomeArma );
- ShowPlayerDialog ( playerid , DIALOG_MOCHILA9 , DIALOG_STYLE_MSGBOX ,"Guardar Arma" , String2 , "Guardar" , "Cencelar");
- }
- }
- }
- return true;
- }
- if ( dialogid == DIALOG_MOCHILA4 )
- {
- if ( response )
- {
- if ( ! IsNumeric ( inputtext ) )
- return SendClientMessage ( playerid , 0xEE5C42 , "Somente números!" ) ,ShowPlayerDialog ( playerid , DIALOG_MOCHILA4, DIALOG_STYLE_INPUT, "Guardar Dinheiro", "Digite a quantia que deseja guardar:", "Guardar", "Cancelar" );
- if ( GetPlayerMoney ( playerid ) < strval ( inputtext ) )
- return SendClientMessage ( playerid ,0xB22222AA , "Você não tem está quantia em dinheiro ! ") ;
- DOF2_SetInt ( StringMochila , "Dinheiro" , DOF2_GetInt ( StringMochila , "Dinheiro" ) +strval ( inputtext ) ) ;
- DOF2_SaveFile ();
- format ( String2 , sizeof ( String2 ) , "Você guardou R$%d na sua mochila. Você possui guardado R$%d" , strval ( inputtext ) , DOF2_GetInt ( StringMochila , "Dinheiro" ) );
- SendClientMessage ( playerid , 0x00FF00AA , String2 ) ;
- GivePlayerMoney ( playerid , - strval ( inputtext ) ) ;
- }
- return true;
- }
- if ( dialogid == DIALOG_MOCHILA5 )
- {
- if ( response )
- {
- format ( String2 , sizeof ( String2 ) , "Você colocou a Skin %d que estava em seu inventório." , DOF2_GetInt ( StringMochila , "Skin" ) );
- SendClientMessage ( playerid , 0x00FF00AA , String2 ) ;
- SetPlayerSkin ( playerid , DOF2_GetInt ( StringMochila , "Skin" ) ) ;
- DOF2_SetString ( StringMochila , "Skin" , "Nenhuma" ) ;
- DOF2_SaveFile();
- }
- return true;
- }
- if ( dialogid == DIALOG_MOCHILA6 )
- {
- if ( response )
- {
- switch ( listitem )
- {
- case 0:
- {
- if ( strcmp ( DOF2_GetString ( StringMochila , "Arma1") , "Nenhuma", true ) ==0 )
- return SendClientMessage ( playerid , 0xEE5C42, "Você não possui uma arma guardada nesse inventório!" );
- new
- NomeArma [ 30 ];
- GetWeaponName( GetPlayerWeapon ( playerid ) , NomeArma , sizeof ( NomeArma ) );
- format ( String2 , sizeof ( String2 ) , "Você tem certeza que deseja pegar sua %s?", NomeArma );
- ShowPlayerDialog ( playerid , DIALOG_MOCHILA10 , DIALOG_STYLE_MSGBOX ,"Pegar Arma" , String2 , "Pegar" , "Cencelar");
- }
- case 1:
- {
- if ( strcmp ( DOF2_GetString ( StringMochila , "Arma2") , "Nenhuma", true ) ==0 )
- return SendClientMessage ( playerid , 0xEE5C42, "Você não possui uma arma guardada nesse inventório!" );
- new
- NomeArma [ 30 ];
- GetWeaponName( GetPlayerWeapon ( playerid ) , NomeArma , sizeof ( NomeArma ) );
- format ( String2 , sizeof ( String2 ) , "Você tem certeza que deseja pegar sua %s?", NomeArma );
- ShowPlayerDialog ( playerid , DIALOG_MOCHILA11 , DIALOG_STYLE_MSGBOX ,"Pegar Arma" , String2 , "Pegar" , "Cencelar");
- }
- }
- }
- return true;
- }
- if ( dialogid == DIALOG_MOCHILA7 )
- {
- if ( response )
- {
- if ( ! IsNumeric ( inputtext ) )
- {
- SendClientMessage ( playerid , 0xEE5C42 , "Somente números!" ) ;
- format ( String2 , sizeof ( String2 ) , "Você deseja pegar quanto em dinheiro na sua mochila ( R$:%d )?", DOF2_GetString ( StringMochila , "Dinheiro" ) );
- ShowPlayerDialog ( playerid , DIALOG_MOCHILA7 , DIALOG_STYLE_INPUT , "Pegar Dinheiro" , String2 , "Pegar" , "Cencelar");
- }
- if ( DOF2_GetInt ( StringMochila , "Dinheiro" ) < strval ( inputtext ) )
- {
- SendClientMessage ( playerid ,0xB22222AA , "Você não tem está quantia em dinheiro ! ") ;
- format ( String2 , sizeof ( String2 ) , "Você deseja pegar quanto em dinheiro na sua mochila ( R$:%d )?", DOF2_GetString ( StringMochila , "Dinheiro" ) );
- ShowPlayerDialog ( playerid , DIALOG_MOCHILA7 , DIALOG_STYLE_INPUT , "Pegar Dinheiro" , String2 , "Pegar" , "Cencelar");
- }
- DOF2_SetInt ( StringMochila , "Dinheiro" , DOF2_GetInt ( StringMochila , "Dinheiro" ) -strval ( inputtext ) ) ;
- DOF2_SaveFile ();
- format ( String2 , sizeof ( String2 ) , "Você pegou R$%d na sua mochila. Você possui guardado R$%d" , strval ( inputtext ) , DOF2_GetInt ( StringMochila , "Dinheiro" ) );
- SendClientMessage ( playerid , 0x00FF00AA , String2 ) ;
- GivePlayerMoney ( playerid , GetPlayerMoney ( playerid ) + strval ( inputtext ) ) ;
- }
- return true;
- }
- if ( dialogid == DIALOG_MOCHILA8 )
- {
- if ( response )
- {
- new
- NomeArma [ 30 ];
- GetWeaponName( GetPlayerWeapon ( playerid ) , NomeArma , sizeof ( NomeArma ) ) ;
- format ( String2 , sizeof ( String2 ) , "Você colocou a arma %s em sua mochila." , NomeArma );
- SendClientMessage ( playerid , 0x00FF00AA , String2 ) ;
- new
- Armas [ 13 ] [ 2 ] ;
- for ( new i = 0; i < 13; ++ i)
- {
- GetPlayerWeaponData ( playerid , i , Armas [ i ] [ 0 ] , Armas [ i ] [ 1 ] ) ;
- DOF2_SetInt ( StringMochila , "Arma2" , GetPlayerWeapon ( playerid ) ) ;
- DOF2_SetString ( StringMochila , "Municao2" , Armas [ i ] [ 1 ] ) ;
- DOF2_SaveFile();
- }
- RemovePlayerWeapon ( playerid , GetPlayerWeapon ( playerid ) ) ;
- }
- return true;
- }
- if ( dialogid == DIALOG_MOCHILA9 )
- {
- if ( response )
- {
- new
- NomeArma2 [ 30 ];
- GetWeaponName( GetPlayerWeapon ( playerid ) , NomeArma2 , sizeof ( NomeArma2 ) ) ;
- format ( String2 , sizeof ( String2 ) , "Você colocou a arma %s em sua mochila." , NomeArma2 );
- SendClientMessage ( playerid , 0x00FF00AA , String2 ) ;
- new
- Armas2 [ 13 ] [ 2 ] ;
- for ( new i = 0; i < 13; ++ i)
- {
- GetPlayerWeaponData ( playerid , i , Armas2 [ i ] [ 0 ] , Armas2 [ i ] [ 1 ] ) ;
- DOF2_SetInt ( StringMochila , "Arma2" , GetPlayerWeapon ( playerid ) ) ;
- DOF2_SetString ( StringMochila , "Municao2" , Armas [ i ] [ 1 ] ) ;
- DOF2_SaveFile();
- }
- RemovePlayerWeapon ( playerid , GetPlayerWeapon ( playerid ) ) ;
- }
- return true;
- }
- if ( dialogid == DIALOG_MOCHILA10 )
- {
- if ( response )
- {
- new
- NomeArma3 [ 30 ];
- GetWeaponName( DOF2_GetInt ( StringMochila , "Arma1" ) , NomeArma3 , sizeof ( NomeArma3 )) ;
- format ( String2 , sizeof ( String2 ) , "Você pegou a arma %s em sua mochila." , NomeArma3);
- SendClientMessage ( playerid , 0x00FF00AA , String2 ) ;
- GivePlayerWeapon ( playerid , DOF2_GetInt ( StringMochila , "Arma1" ), DOF2_GetInt (StringMochila , "Municao1" ) ) ;
- DOF2_SetString ( StringMochila , "Arma1", "Nenhuma" ) ;
- DOF2_SetString ( StringMochila , "Municao1", "Nenhuma" ) ;
- DOF2_SaveFile ();
- }
- return true;
- }
- if ( dialogid == DIALOG_MOCHILA11 )
- {
- if ( response )
- {
- new
- NomeArma4 [ 30 ];
- GetWeaponName( DOF2_GetInt ( StringMochila , "Arma2" ) , NomeArma4 , sizeof ( NomeArma4 )) ;
- format ( String2 , sizeof ( String2 ) , "Você pegou a arma %s em sua mochila." , NomeArma4);
- SendClientMessage ( playerid , 0x00FF00AA , String2 ) ;
- GivePlayerWeapon ( playerid , DOF2_GetInt ( StringMochila , "Arma2" ), DOF2_GetInt (StringMochila , "Municao2" ) ) ;
- DOF2_SetString ( StringMochila , "Arma2", "Nenhuma" ) ;
- DOF2_SetString ( StringMochila , "Municao2", "Nenhuma" ) ;
- DOF2_SaveFile ();
- }
- return true;
- }
- return true;
- }
- PlayerName ( playerid )
- {
- new Nome [ 24 ] ;
- GetPlayerName ( playerid , Nome, sizeof (Nome) );
- return Nome;
- }
- IsNumeric(const string[]) // by Mike (MP2)
- {
- for (new i = 0, j = strlen(string); i < j; i++)
- {
- if (string[i] > '9' || string[i] < '0') return false;
- }
- return true;
- }
- RemovePlayerWeapon(playerid, weaponid) // by Mike (MP2)
- {
- new pWeaponData[13][2];
- for (new i = 0; i < 13; i++)
- {
- GetPlayerWeaponData(playerid, i, pWeaponData[i][0], pWeaponData[i][1]);
- }
- ResetPlayerWeapons(playerid);
- for(new i=0; i<13; i++)
- {
- if(pWeaponData[i][0] != 0 && pWeaponData[i][0] != weaponid)
- {
- GivePlayerWeapon(playerid, pWeaponData[i][0], pWeaponData[i][1]);
- }
- }
- return 0;
- }
Creditos : Julio Cardozo
como pega a mochila
ResponderExcluirComando /minhamochila
Excluirvou testar
ResponderExcluirnão funciona
ResponderExcluir