Detaljan opis problema: Radilo je sve dobro dok nisam dodao spol,tacnije sada nece da prikaze nijedan dialog,sve lepo povezano.
Dio skripte:
#include < a_samp >
#include < a_mysql >
#include < streamer >
#include < sscanf2 >
#include < foreach >
#include < YSI\y_commands >
#define SERVER_NAME "{FF0000}MYSQL {FFFFFF}- TESTING"
#define SERVER_MAP "San Andreas"
#define SERVER_SCRIPT "mysql - v1.0b"
#define SERVER_FORUM "www.beta-test.com"
#define SQL_HOST "localhost"
#define SQL_USER "root"
#define SQL_DB "samp"
#define SQL_PW ""
#define DIALOG_LOGIN 1
#define DIALOG_REGISTER 2
#define DIALOG_SPOL 3
#define SPD ShowPlayerDialog
#define SCM SendClientMessage
#define function%0(%1) \
forward%0(%1); \
public%0(%1)
#define SPFD(%0,%1,%2,%3,%4,%5,%6,%7) \
format(gDialogMsg, sizeof(gDialogMsg), %4, %7); \
SPD(%0, %1, %2, %3, gDialogMsg, %5, %6)
new BazaConnect, gDialogMsg, gQuery, QueryOutput;
enum E_PLAYER_DATA
{
E_PLAYER_PASSWORD,
E_PLAYER_CASH,
bool:E_PLAYER_LOGGED,
E_PLAYER_SPOL
}
new
gPlayerData;
main()
{
print("mysql r33 v1.0b");
}
public OnGameModeInit()
{
SetGameModeText(SERVER_SCRIPT);SendRconCommand("mapname "SERVER_MAP""); SendRconCommand("weburl "SERVER_FORUM"");DisableInteriorEnterExits();
UsePlayerPedAnims();EnableStuntBonusForAll(0);ShowPlayerMarkers(false);SetNameTagDrawDistance(20);AllowInteriorWeapons(1);ManualVehicleEngineAndLights();
mysql_debug();
BazaConnect = mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PW);
return true;
}
public OnGameModeExit()
{
mysql_close( BazaConnect );
return true;
}
public OnPlayerConnect(playerid)
{
format(gQuery, sizeof(gQuery), "SELECT * FROM `users` WHERE `Username` = '%e' LIMIT 1", GetName(playerid));
mysql_function_query(BazaConnect, gQuery, true, "CheckUser", "i", playerid);
return true;
}
public OnPlayerRequestClass(playerid, classid)
{
format(gQuery, sizeof(gQuery), "SELECT * FROM `users` WHERE `Username` = '%e' LIMIT 1", GetName(playerid));
mysql_function_query(BazaConnect, gQuery, true, "CheckUser", "i", playerid);
return true;
}
public OnPlayerDisconnect(playerid, reason)
{
format(QueryOutput, sizeof(QueryOutput),"UPDATE `users` SET `Spol` = %d, `Cash` = %d WHERE `Username` = '%e'",gPlayerData,GetPlayerMoney(playerid), GetName(playerid));
mysql_function_query(BazaConnect, QueryOutput, false, "", "");
return true;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case DIALOG_LOGIN:
{
if(response)
{
format(gQuery, sizeof(gQuery), "SELECT * FROM `users` WHERE `Username` = '%e' AND `Password` = md5('%e') LIMIT 1", GetName(playerid), inputtext);
mysql_function_query(BazaConnect, gQuery, true, "LoginUser", "i", playerid);
}
else Kick(playerid);
}
case DIALOG_REGISTER:
{
if(response)
{
strins(gPlayerData, inputtext, 0);
mysql_format(1, gQuery, "INSERT INTO `users` (`Username`, `Password`, `Cash`) VALUES ('%e', md5('%e'), 0)", GetName(playerid));
SPD(playerid, DIALOG_SPOL, DIALOG_STYLE_MSGBOX," - REGISTRACIJA","Kojeg ste pola?","Musko","Zensko");
}
else Kick(playerid);
}
case DIALOG_SPOL:
{
if(response)
{
SetPlayerScore(playerid,1);
gPlayerData = 1;
SpawnPlayer(playerid);
format(QueryOutput, sizeof(QueryOutput),"UPDATE `users` SET `Spol` = %d",gPlayerData);
mysql_function_query(BazaConnect, QueryOutput, false, "", "");
}
if(!response)
{
SetPlayerScore(playerid,1);
gPlayerData = 2;
SpawnPlayer(playerid);
format(QueryOutput, sizeof(QueryOutput),"UPDATE `users` SET `Spol` = %d",gPlayerData);
mysql_function_query(BazaConnect, QueryOutput, false, "", "");
}
}
}
return true;
}
function CheckUser(query[], index, extraid, connectionHandle)
{
mysql_store_result();
if(mysql_num_rows() == 1)
{
SPFD(index, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, SERVER_NAME" - LOGIRANJE", "{FFFFFF}Dobrodošao na "SERVER_NAME"server, %s!\n\nTi si registrirani korisnik te se trebaš logirati.\nUpiši u polje ispod svoju lozinku da se logiraš.", "Login", "Izlaz", GetName(index));
}
else
{
SPFD(index, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, SERVER_NAME" - REGISTRACIJA", "{FFFFFF}Dobrodošao na "SERVER_NAME" server, %s!\n\nTi nisi registrirani korisnik te se trebaš registrirati.\nUpiši u polje ispod svoju lozinku da se registriraš.", "Register", "Izlaz", GetName(index));
}
mysql_free_result();
return true;
}
function LoginUser(query[], index, extraid, connectionHandle)
{
mysql_store_result();
if(mysql_num_rows() == 1)
{
sscanf(query, "e{ds}sdddl>", gPlayerData);
gPlayerData = true;
GivePlayerMoney(index, gPlayerData);
SpawnPlayer(index);
}
else
{
SCM(index,-1,"{FF0000}ERROR: {FFFFFF}Pogrešna lozinka!");
SPFD(index, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, SERVER_NAME" - LOGIRANJE", "{FFFFFF}Dobrodošao na "SERVER_NAME"server, %s!\n\nTi si registrirani korisnik te se trebaš logirati.\nUpiši u polje ispod svoju lozinku da se logiraš.", "Login", "Izlaz", GetName(index));
}
mysql_free_result();
return true;
}
function RegisterUser(query[], index, extraid, connectionHandle)
{
SpawnPlayer(index);
return true;
}
function SaveUser(query[], index, extraid, connectionHandle)
{
format(gPlayerData, 32, "\0");
return true;
}
stock GetName(playerid)
{
static
pName;
GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
return pName;
}
Neke slike/video za lakse dobivanje pomoci(neobavezno):
