Prosím vás zjistil jsme pár chyb ve své registraci :
1) Chtěl bych , aby v ni bylo 3x za zadání spatneho hesla kick ze serveru. tim ze zmizi dialog na login a nahore v chatu bude napsano neco 3x zadane neuspesne prihlaseni na server.
2) kdyz nezadam do registrace heslo a dam cancel ,tak chci ,abych mel closed connection tedy zase odpojeni, v mem pripade se jde normalne do hry.
3) kdyz se registruju a prijdu znova , tak se musim na stejnym ucte znova registrovat ,neuklada to hesla.
Prosím kdyby byl nekdo tk hodny a opravil mi ten kod , aby v nem bylo tohle co jsem napsal budu moc vdecny.
#include <a_samp>
#include <file>
#include <dini>
#include <dudb>
#include <dutils>
#define SCM SendClientMessage
#define SendMessage SendClientMessage
// TERAZ MOZES POUZIVAT AJ SendMessage aj len SCM
//#define
#define modra 0x4778C9
#define MODRA 0x0000BBAA
#define MODRA2 0x4682B4AA
#define MODRA3 0x4169FFAA
#define SVMODRA 0x33CCFFAA
#define ZELENA 0x008000AA
#define CYAN 0x00FFFFAA
#define TMAVACYAN 0x008B8BAA
#define BILA 0xFFFFFFAA
#define ZLUTA 0xFFFF00AA
#define HNEDA 0xA52A2AAA
#define HNEDA2 0xBC8F8FAA
#define COKOLADA 0xD2691EAA
#define CERVENA 0xFF0000AA
#define SEDA 0x808080AA
#define FIALOVA 0x800080AA
#define RUZOVA 0xFFC0CBAA
#define CHARTR 0x7FFF00AA
#define ORANZCERV 0xFF4500AA
#define ORANZOVA 0xFF8C00AA
#define NEVIDITE 0x4682B400
#define B_SEDA 0x808080FF //seda barva
#define B_CERV 0xA40000FF //cervena barva
#define B_BILA 0xFFFFFFFF //bila barva
#define B_ZELE 0x00A400FF //zelena barva
#define REG_DIALOG 0
#define LOG_DIALOG 1
enum PLAYER_INFO// - něco jako databaze odkud bere informace proměná Informace
{
bool:Login // pokud už enum máte stačí do něj přidat toto (bool: logická porměnná, true or false)
}
new Informace[MAX_PLAYERS][PLAYER_INFO]; // info o hráč, využívá seznam z enumu
stock Jmeno(playerid) // zjištění jména
{
new pName[MAX_PLAYER_NAME]; //proměnná na zapsání jména
if(IsPlayerConnected(playerid)) //pokud je hráč připojen
{
if(!IsPlayerNPC(playerid)) // a pokud to není NPC
{
GetPlayerName(playerid, pName, sizeof(pName)); //zjistí jeho jméno
}
}
return pName; //odešle jméno
}
main()
{
print("\n----------------------------------");
print("Real.Play1.1");
print("----------------------------------\n");
}
public OnGameModeInit()
{
// Don't use these lines if it's a filterscript
SetGameModeText("Real.Play1.1");
AddPlayerClass(105,2118.1868,1284.3336,8.6268,86.0900,0,0,0,0,0,0);
AddPlayerClass(103,2118.1868,1284.3336,8.6268,86.0900,0,0,0,0,0,0);
AddPlayerClass(106,2118.1868,1284.3336,8.6268,86.0900,0,0,0,0,0,0);
AddPlayerClass(107,2118.1868,1284.3336,8.6268,86.0900,0,0,0,0,0,0);
return 1;
}
public OnGameModeExit()
{
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
if(!Informace[playerid][Login]) // kontrola jestli neni prihlasen
{
if(udb_Exists(Jmeno(playerid))) // pokud je zaregistrován
{
new message[256]; // proměnná pro zprávu
format(message, sizeof(message), "Vitej zpatky, %s!\n\n\nDole vypln heslo!\n\n\n", Jmeno(playerid)); //připraví zprávu¨s parametrem do dialogu
ShowPlayerDialog(playerid, LOG_DIALOG, DIALOG_STYLE_INPUT, "Prihlaseni", message, "OK", "Konec"); // otevře přihlašovací dialog s kolonkou na heslo
}
else // ale pokud nemá účet
{
new message[256]; // připraví proměnnou pro zprávu
format(message, sizeof(message), "Zaregistruj se %s!\n\n\nDole vypln heslo!\n\n\n", Jmeno(playerid)); // formát zprávy s parametrem
ShowPlayerDialog(playerid, REG_DIALOG, DIALOG_STYLE_INPUT, "Registrace", message, "OK", "Konec"); // pošle hráči registrační dialog s kolonkou pro heslo
}
}
SetPlayerPos(playerid, 2118.1868,1284.3336,8.6268);
SetPlayerCameraPos(playerid, 2120.1868,1284.3336,8.6268);
SetPlayerCameraLookAt(playerid,2118.1868,1284.3336,8.6268);
return 1;
}
public OnPlayerConnect(playerid)
{
Informace[playerid][Login] = false; //nejdřív se musí přihlásit
SendClientMessage(playerid,ZELENA, "Vytaj Na RoelPlay-Servery,RealPlay1.1");
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
if(Informace[playerid][Login] == true) //pokud je přihlášen
{
dUserSetINT(Jmeno(playerid)).("Penize",GetPlayerMoney(playerid)); //zjistí peníze a uloží je to na váš účet
Informace[playerid][Login] = false; //aby nebyl přiští hráč již přihlášen
}
return 1;
}
public OnPlayerSpawn(playerid)
{
SetPlayerPos(playerid,2118.1868,1284.3336,8.6268);
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
SetPlayerPos(playerid, -2630.0396,700.8793,27.9495);
SendClientMessage(playerid,ZELENA, "Zomrel si!");
return 1;
}
public OnVehicleSpawn(vehicleid)
{
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}
public OnPlayerText(playerid, text[])
{
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/mycommand", cmdtext, true, 10) == 0)
{
// Do something here
return 1;
}
return 0;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveCheckpoint(playerid)
{
return 1;
}
public OnPlayerEnterRaceCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveRaceCheckpoint(playerid)
{
return 1;
}
public OnRconCommand(cmd[])
{
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
return 1;
}
public OnObjectMoved(objectid)
{
return 1;
}
public OnPlayerObjectMoved(playerid, objectid)
{
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}
public OnVehicleMod(playerid, vehicleid, componentid)
{
return 1;
}
public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
return 1;
}
public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
return 1;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}
public OnPlayerExitedMenu(playerid)
{
return 1;
}
public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
return 1;
}
public OnRconLoginAttempt(ip[], password[], success)
{
return 1;
}
public OnPlayerUpdate(playerid)
{
return 1;
}
public OnPlayerStreamIn(playerid, forplayerid)
{
return 1;
}
public OnPlayerStreamOut(playerid, forplayerid)
{
return 1;
}
public OnVehicleStreamIn(vehicleid, forplayerid)
{
return 1;
}
public OnVehicleStreamOut(vehicleid, forplayerid)
{
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == REG_DIALOG && response) //pokud je to registrační dialog
{
if(strlen(inputtext) == 0) //pokud nezadá heslo
{
SendClientMessage(playerid, B_CERV, "[ ! ] Moc kratke heslo!"); //napíše informaci
new message[256]; //proměnná pro zprávu
format(message, sizeof(message), "Zaregistruj se %s!\n\n\nDole vypln heslo!\n\n\n", Jmeno(playerid)); //příprava zprávy s parametrem
ShowPlayerDialog(playerid, REG_DIALOG, DIALOG_STYLE_INPUT, "Registrace", message, "OK", "Konec"); //odešle znova reg. dialog
}
else //ppokud zadal heslo
{
if (udb_Create(Jmeno(playerid),inputtext)) //pokud se podaří zaregistrovat
{
new message[256]; // proměnná pro zprávu
format(message, sizeof(message), "Prihlas se %s!\n\n\nDole vypln heslo!\n\n\n", Jmeno(playerid)); //formát zprávy s parametrem
ShowPlayerDialog(playerid, LOG_DIALOG, DIALOG_STYLE_INPUT, "Prihlaseni", message, "OK", "Konec"); //odešle log. dialog
}
else
{
new message[256]; //proměnná pro zprávu
format(message, sizeof(message), "Zaregistruj se %s!\n\n\nDole vypln heslo!\n\n\n", Jmeno(playerid)); //příprava zprávy s parametrem
ShowPlayerDialog(playerid, REG_DIALOG, DIALOG_STYLE_INPUT, "Registrace", message, "OK", "Konec"); //odešle znova reg. dialog
}
}
}
if(dialogid == LOG_DIALOG) // pokud je to přihlašovací dialog
{
if(response==1)
{
if (udb_CheckLogin(Jmeno(playerid),inputtext)) //pokud se povede přihlásit
{
//zde dávejte věci které se provedou po přihlášení - nahrání peněz atp.
GivePlayerMoney(playerid,dUserINT(Jmeno(playerid)).("Penize")-GetPlayerMoney(playerid)); //nahraje uložené peníze
//sem davejte veci ktere chcete nacist!
Informace[playerid][Login] = true; // že už je přihlášen
new message[256]; //proměnná na uložení zprávy
format(message, sizeof(message), "[ * ] Vitej ve hre %s!", Jmeno(playerid)); // zpráva s parametrem
SendMessage(playerid, B_ZELE, message); //odeslání zprávy
SendMessage(playerid, B_BILA, "[ * ] Mel by jsi si zaridit obcansky prukaz."); //informace při přihlášení
SendMessage(playerid, B_BILA, "[ * ] Bez neho si nic neporidis, ani se nezamestnas."); //informace při přihlášení
SendMessage(playerid, B_BILA, "[ * ] Napis /commads pro seznam prikazu."); //informace při přihlášení
SendMessage(playerid, B_BILA, "[ * ] Napis /help pokud neco nevis."); //informace při přihlášení
}
else // pokud dal špatné heslo
{
SendMessage(playerid, B_CERV, "[ ! ] Spatne heslo!"); //napíše informaci
new message[256]; //proměnná pro zprávu
format(message, sizeof(message), "Prihlas se %s!\n\n\nDole vypln heslo!\n\n\n", Jmeno(playerid)); //zpráva s parametrem Jmeno
ShowPlayerDialog(playerid, LOG_DIALOG, DIALOG_STYLE_INPUT, "Prihlaseni", message, "OK", "Konec"); //pošle znova přihlašovací dialog
}
}
else //pokud zmáčkne talčítko Konec
{
SendMessage(playerid, B_CERV, "[ ! ] Prihlaseni je povinne!"); //napíše informaci
new message[256]; //proměnná pro zprávu
format(message, sizeof(message), "Prihlas se %s!\n\n\nDole vypln heslo!\n\n\n", Jmeno(playerid)); // zpráva
ShowPlayerDialog(playerid, LOG_DIALOG, DIALOG_STYLE_INPUT, "Prihlaseni", message, "OK", "Konec"); //zobrazí znova log. dialog s zprávou
}
}
return 1;
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}
Dotaz
scrofly 0
Ahoj
Prosím vás zjistil jsme pár chyb ve své registraci :
1) Chtěl bych , aby v ni bylo 3x za zadání spatneho hesla kick ze serveru. tim ze zmizi dialog na login a nahore v chatu bude napsano neco 3x zadane neuspesne prihlaseni na server.
2) kdyz nezadam do registrace heslo a dam cancel ,tak chci ,abych mel closed connection tedy zase odpojeni, v mem pripade se jde normalne do hry.
3) kdyz se registruju a prijdu znova , tak se musim na stejnym ucte znova registrovat ,neuklada to hesla.
Prosím kdyby byl nekdo tk hodny a opravil mi ten kod , aby v nem bylo tohle co jsem napsal budu moc vdecny.
Link to comment
Share on other sites
11 odpovědí na tuto otázku
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now