CMD:fcreate(playerid, params[]) { new string[40], query[128]; if(scorelevel[playerid] < 500) return SendClientMessage(playerid, COLOR_RED, "Vocк precisa ter score/level 500 para criar uma faction"); if(GetPlayerMoney(playerid) < 5000000) return SendClientMessage(playerid, COLOR_RED, "You do not have 5000000"); if(fmembro[playerid] > 0) return SendClientMessage(playerid, COLOR_RED, "Vocк jб tem uma faction"); new localfname[32]; if(sscanf(params,"s", localfname)) return SendClientMessage(playerid, -1, "Use: /fcreate [name]"); format(query, sizeof(query), "INSERT INTO `factions` (`facname`) VALUES ('%s')" , localfname ); mysql_query(ConnectMYSQL,query); new novafacid, consulta; consulta = cache_get_field_content_int(0, "ID"); novafacid = consulta; fmembro[playerid] = novafacid; fcargo[playerid] = 5; GivePlayerMoney(playerid,-5000000); new facid = fmembro[playerid]; FactionInfo[facid][facname] = localfname; format(string, sizeof(string), "%s (id:%i) criada! (/fhelp)", FactionInfo[facid][facname], novafacid ); SendClientMessage(playerid, COLOR_GREEN, string); return 1; }
CMD:insertuser(playerid) {new name[24], query[128]; GetPlayerName(playerid, name, 24); mysql_format(handler, query, sizeof(query), "INSERT INTO `users` VALUES('NULL', '%s', 1234)", name); //NULL = coluna do auto_increment (id), serб ignorado pelo mysql quando criado e terб um valor automбtico mysql_tquery(handler, query, "OnInsert", " ", " ");//sem parвmetros na public return 1;} forward OnInsert(); public OnInsert() {new PlayerInfo[playerid][id] = mysql_insert_id(); //...}
Essa funзгo retorna o insert_id (valor inteiro do auto_increment), essa funзгo jб salvou minha vida xD
OBS: Essa funза й R33+ se nгo me engano, usabilidade: Код:
mysql_format(handler, query, sizeof(query), "INSERT INTO `users` VALUES('NULL', ...); mysql_tquery(handler, query, "OnInsert", ""); //NULL = coluna do auto_increment, serб ignorado pelo mysql forward OnInsert(); public OnInsert() { new PlayerInfo[playerid][id] = mysql_insert_id(); //... } |
Nгo consegui pegar como usar, pode fazer com o codigo dele como exemplo pra eu tentar adaptar pro meu?
|
CMD:fcreate(playerid, params[]) { new string[40], query[128]; if(scorelevel[playerid] < 500) return SendClientMessage(playerid, COLOR_RED, "Vocк precisa ter score/level 500 para criar uma faction"); if(GetPlayerMoney(playerid) < 5000000) return SendClientMessage(playerid, COLOR_RED, "You do not have 5000000"); if(fmembro[playerid] > 0) return SendClientMessage(playerid, COLOR_RED, "Vocк jб tem uma faction"); new localfname[32]; if(sscanf(params,"s", localfname)) return SendClientMessage(playerid, -1, "Use: /fcreate [name]"); format(query, sizeof(query), "INSERT INTO `factions` (`facname`) VALUES ('%s')" , localfname ); mysql_query(ConnectMYSQL,query); new novafacid, consulta; //consulta = cache_get_field_content_int(0, "ID"); novafacid = consulta; novafacid = mysql_insert_id(); fmembro[playerid] = novafacid; fcargo[playerid] = 5; GivePlayerMoney(playerid,-5000000); new facid = fmembro[playerid]; FactionInfo[facid][facname] = localfname; format(string, sizeof(string), "%s (id:%i) criada! (/fhelp)", FactionInfo[facid][facname], novafacid ); SendClientMessage(playerid, COLOR_GREEN, string); return 1; }
CMD:criarfacao(playerid,params[])
{
// Seu comando de criar facзгo bla bla bla
format(query,sizeof query,"INSERT INTO factions (facname) VALUES ('%s');",localfname);
mysql_function_query(mysqlhandle,query,true,"r@MySQL_CreateFaction","d",playerid) // importante deixar o cache como TRUE.
return 1;
}
// Declarar a callback de resposta (topo do GM)
forward r@MySQL_CreateFaction(playerid); // Playerid й quem criou a facзгo.
public r@MySQL_CreateFaction(playerid)
{
// A partir daqui, o MySQL pode retornar um erro (caso algo tenha dado errado)
// Ou o ID da facзгo criada, que pode ser acessado pela funзгo mysql_insert_id();
Player[playerid][faccao] = mysql_insert_id();
SendClientMessage(playerid,-1,"Sua facзгo foi criada com sucesso!");
// outras coisas bla bla bla
return 1;
}