25.01.2018, 17:46
Oi galera tudo bom? Espero que sim.
Bom vamos comeзar.
Eu fiz essa minha GM do zero estudando tudo o que a de disponнvel no fуrum e vendo alguns videos no *******, mas infelizmente ela tem alguns erros que alguns eu mesmo irei resolver, mas tem um erro que esta me perturbando e que nгo consigo resolver de jeito nenhum. O erro й no sistema de login/registro, eu mesmo fiz o sistema de login/registro com os meus conhecimentos, abaixo estarб os cуdios para vocкs com um nнvel superior ao meu analisar.
Aqui esta a public "OnDialogResponse"
Aqui estб o "GetPlayerArquivo"
Aqui estб o "SavePlayer" como mostra na public "OnDialogResponse"
E por ultimo aqui estб a public "OnPlayerDisconnect"
O erro nisso tudo, й que quando eu deslogo do servidor e logo novamente, sу esta salvo o meu dinheiro em mгos, mas infelizmente nгo salva a skin, vou colocar o comando /setskin para vocкs analisarem.
Um outro problema й quando morre com a skin. Por exemplo, eu coloco no /setskin pra me dar a skin 230 que й a do mendigo, atй ai tudo bem, Posso fazer tudo o que estiver disponнvel no server, mas se eu morrer, eu spawno com a skin de novato(uma skin que eu escolhi pra quando logarem no server), sу que tipo eu morro, mas sу pra min que a skin de novato aparece, pra outra pessoa que estiver dentro do server, ela ainda vai continuar vendo a skin 230 do mendigo mas eu vou ver a de novato. Se puderem me ajudar nisso tambйm eu agradeзo. <3
Jб pesquisei em tudo quanto й lugar mas infelizmente nгo consigo solucionar o problema.
Creio eu que o problema й no comando /setskin, pois eu fiz tudo certinho no resto.
Se alguйm puder me ajudar agradeзo desde ja. <3
Bom vamos comeзar.
Eu fiz essa minha GM do zero estudando tudo o que a de disponнvel no fуrum e vendo alguns videos no *******, mas infelizmente ela tem alguns erros que alguns eu mesmo irei resolver, mas tem um erro que esta me perturbando e que nгo consigo resolver de jeito nenhum. O erro й no sistema de login/registro, eu mesmo fiz o sistema de login/registro com os meus conhecimentos, abaixo estarб os cуdios para vocкs com um nнvel superior ao meu analisar.
Aqui esta a public "OnDialogResponse"
Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { switch(dialogid){ case DIALOG_REGISTRO: { if( response ) { if( strlen( inputtext ) < 3 || strlen( inputtext ) > 15 || !strlen( inputtext ) ) { ShowPlayerDialog( playerid, DIALOG_REGISTRO ,DIALOG_STYLE_INPUT, "» SERVER", "{FFFFFF}Sua Senha Deve Conter No Mнnimo {F50717}5 {FFFFFF}Caracteres!{F50717}\nTente Novamente!","Registrar","Cancelar" ); return 1; } // Criar Arquivo E Colocar Os Valores // DOF2_CreateFile( GetPlayerArquivo( playerid ) ); DOF2_SetString( GetPlayerArquivo( playerid ),"Senha", inputtext ); DOF2_SetInt( GetPlayerArquivo( playerid ), "Score" ,0 ); DOF2_SetInt( GetPlayerArquivo( playerid ), "Skin" ,0 ); DOF2_SetInt( GetPlayerArquivo( playerid ),"Dinheiro", 1500 ); DOF2_SetInt( GetPlayerArquivo( playerid ), "Admin",0 ); DOF2_SaveFile(); SendClientMessage(playerid, -1, "{16F00E} | INFO | {16F00E}Vocк se registrou no servidor,tenha um уtimo jogo!."); new Loginplayer[980]; format(Loginplayer, sizeof(Loginplayer), "\n{00FF00}Sua conta foi registrada.{FFFFFF}\n\nSeja bem vindo(a) ao SERVER\n\n\n{FC8403}Usuбrio(a): {FFFFFF}%s\n\n\n{FC8403}Status da conta: {00FF00}Registrada\n\n{FFFFFF}Insira sua senha abaixo para logar:",GetPlayerNameEx(playerid)); ShowPlayerDialog( playerid, DIALOG_LOGAR ,DIALOG_STYLE_PASSWORD, "»{F50A0E}Conta", Loginplayer,"Entrar","Cancelar" ); } else Kick( playerid ); } case DIALOG_LOGAR: { if( response ) { if( strlen( inputtext ) < 3 || strlen( inputtext ) > 15 || !strlen( inputtext ) ) { SendClientMessage( playerid, -1, "{F50717} | ERRO | {F50717}Digite Sua Senha Corretamente!." ); new Loginplayer[980]; format(Loginplayer, sizeof(Loginplayer), "\n{FC8403}Usuбrio(a): {FFFFFF}%s\n\n\n{FC8403}Status da conta: {00FF00}Registrada\n\n{F50A0E}Insira sua senha corretamente!",GetPlayerNameEx(playerid)); ShowPlayerDialog( playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "»{F50A0E}Conta", Loginplayer,"Entrar","Cancelar" ); return 1; } if( strcmp( inputtext, DOF2_GetString( GetPlayerArquivo( playerid ), "Senha" )) == 0 ) { Player[playerid][Skin] = DOF2_GetInt(GetPlayerArquivo(playerid), "Skin"); Player[playerid][Admin] = DOF2_GetInt(GetPlayerArquivo(playerid), "Admin"); Player[playerid][Dinheiro] = DOF2_GetInt(GetPlayerArquivo(playerid), "Dinheiro"); GivePlayerMoney(playerid, Player[playerid][Dinheiro]); SetPlayerSkin(playerid, Player[playerid][Skin]); } else { Erro[ playerid ] ++; // Aquivo adiciona + 1 a variavel erro... if ( Erro[ playerid ] == 3 ){ SavePlayer(playerid); Kick ( playerid ); } // se a variavel chegar a 3, kicka o player pois ele errou 5 vezes a senha. new Loginplayer[980]; format(Loginplayer, sizeof(Loginplayer), "\n{FC8403}Usuбrio(a): {FFFFFF}%s\n\n\n{FC8403}Status da conta: {00FF00}Registrada\n\n{F50A0E}Insira sua senha corretamente!",GetPlayerNameEx(playerid)); ShowPlayerDialog( playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "»{F50A0E}Conta", Loginplayer,"Entrar","Cancelar" ); } } else{ SendClientMessage(playerid, 0xF50A0EFF, "| ERRO | Vocк exedeu a quantidade de erros, portanto vocк foi kickado do servidor!"); SavePlayer( playerid ); Kick( playerid ); } } } return 1; }
Код:
GetPlayerArquivo(playerid) { new ArquivoPlayer[ 30 ]; format( ArquivoPlayer, sizeof( ArquivoPlayer ), "Contas/%s.ini", GetPlayerNameEx( playerid ) ); return ArquivoPlayer; }
Код:
SavePlayer(playerid) { if( DOF2_FileExists(GetPlayerArquivo(playerid))) DOF2_CreateFile(GetPlayerArquivo(playerid)); { Player[playerid][Dinheiro] = GetPlayerMoney(playerid); Player[playerid][Skin] = GetPlayerSkin(playerid); DOF2_SetInt(GetPlayerArquivo(playerid), "Skin", Player[playerid][Skin]); DOF2_SetInt(GetPlayerArquivo(playerid), "Score", Player[playerid][Score]); DOF2_SetInt(GetPlayerArquivo(playerid), "Dinheiro", Player[playerid][Dinheiro]); DOF2_SetInt(GetPlayerArquivo(playerid), "Admin", Player[playerid][Admin]); DOF2_SaveFile(); } return 1; }
Код:
public OnPlayerDisconnect(playerid, reason) { SavePlayer(playerid); return 1; }
Um outro problema й quando morre com a skin. Por exemplo, eu coloco no /setskin pra me dar a skin 230 que й a do mendigo, atй ai tudo bem, Posso fazer tudo o que estiver disponнvel no server, mas se eu morrer, eu spawno com a skin de novato(uma skin que eu escolhi pra quando logarem no server), sу que tipo eu morro, mas sу pra min que a skin de novato aparece, pra outra pessoa que estiver dentro do server, ela ainda vai continuar vendo a skin 230 do mendigo mas eu vou ver a de novato. Se puderem me ajudar nisso tambйm eu agradeзo. <3
Код:
CMD:setskin(playerid, params[]) { if(!IsPlayerAdmin(playerid) ) return SendClientMessage(playerid, 0xF50A0EFF, "| ERRO | Comando invбlido!"); new id, skin, jogador[24], admin[24], string[128], strg[128]; if(sscanf(params, "dd", id, skin)) return SendClientMessage(playerid, 0xF50A0EFF, "| ERRO | Use: /setskin [id] [skin]"); { if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xF50A0EFF, "| ERRO | Jogador invalido!"); if(skin < 0 || skin > 299) return SendClientMessage(playerid, 0xF50A0EFF,"| ERRO | Sу й permidito as skin de 0 a 299!"); GetPlayerName(id, jogador, 24); format(string, sizeof(string), "| SERVER | O(A) Administrador(a) %s trocou sua skin!", GetPlayerNameEx(playerid)); SetPlayerSkin(id, skin); GetPlayerName(playerid, admin, 24); SendClientMessage(playerid, 0x0099CCAA, string); format(strg, sizeof(strg), "| INFO | Comando efetuado com sucesso!"); SendClientMessage(playerid, 0x0099CCAA, strg); } return 1; }
Creio eu que o problema й no comando /setskin, pois eu fiz tudo certinho no resto.
Se alguйm puder me ajudar agradeзo desde ja. <3