error 035: argument type mismatch (argument 2)
cache_get_value_int(0, nameOnTable, skillLVL);
CMD:reset(playerid, params[]) { if(admin[playerid] < 1337) return 0; if(admstatus[playerid] == 0) return SendClientMessage(playerid, -1, "You are in the player mode, you can not use this command! (use: /adminstats)"); new skillselect[64], motivo[64]; if(sscanf(params,"ss", skillselect, motivo)) { SendClientMessage(playerid, -1, "Use: /resetskill [skill-id] [reason]"); return 1; } new skillLVL, userID, query[512], rows, fields, nameOnTable[64], strx[128]; mysql_format(ConnectMYSQL, query, sizeof(query), "SELECT `experience`, `UserID` FROM `accounts`" ); mysql_query(ConnectMYSQL,query); cache_get_row_count(rows); cache_get_field_count(fields); if(rows) { cache_get_value_int(0, "UserID", userID); if(!strcmp(skillselect, "lvl", true)) nameOnTable = "experience"; else if(!strcmp(skillselect, "respect", true)) nameOnTable = "respect"; else if(!strcmp(skillselect, "pistol", true)) nameOnTable = "PISTOLskills"; else if(!strcmp(skillselect, "shotgun", true)) nameOnTable = "SHOTGUNskills"; else if(!strcmp(skillselect, "mp5", true)) nameOnTable = "MP5skills"; else if(!strcmp(skillselect, "ak47", true)) nameOnTable = "AKskills"; else if(!strcmp(skillselect, "m4", true)) nameOnTable = "M4skills"; else if(!strcmp(skillselect, "rifle", true)) nameOnTable = "RIFLEskills"; else if(!strcmp(skillselect, "sniper", true)) nameOnTable = "SNIPERskills"; else if(!strcmp(skillselect, "minigun", true)) nameOnTable = "MINIGUNskills"; cache_get_value_int(0, nameOnTable, skillLVL); skillLVL = skillLVL / 2; mysql_format(ConnectMYSQL, query, sizeof(query), "UPDATE `accounts` SET `%s` = '%d' WHERE `UserID` = '%d'", nameOnTable, skillLVL, userID); } format(strx,sizeof(strx),"AdmCmd: %s started a reset on SKILL %s. Reason: %s.", PlayerName(playerid), skillselect, (motivo)); SendClientMessageToAll(COLOR_LIGHTRED, strx); writeLog("LOGS/resets.txt",strx); return 1; }
cache_get_value_int(0, "nome da coluna na tabela", skillLVL); |
UPDATE nome_tabela SET nome_coluna = valor; |
Como voce so quer resetar uma coluna nao precisa disso.
Basta executar a seguinte operaзao no seu SGBD: |
Ai no caso ia setar todos pro mesmo valor, eu queria pegar o valor antigo e colocar um novo / 2
Tipo, se sua exp de respeito for 10, vira 5, se for 8 vira 4... |
// reset skills:
CMD:reset(playerid, params[]) {
if(admin[playerid] < 1337) return 0;
if(admstatus[playerid] == 0) return SendClientMessage(playerid, -1, "You are in the player mode, you can not use this command! (use: /adminstats)");
new skillselect[64], motivo[64];
if(sscanf(params,"ss", skillselect, motivo)) {
SendClientMessage(playerid, -1, "Use: /resetskill [skill-id] [reason]");
return 1;
}
new query[512], nameOnTable[64], strx[128];
if(!strcmp(skillselect, "lvl", true)) nameOnTable = "experience";
else if(!strcmp(skillselect, "respect", true)) nameOnTable = "respect";
else if(!strcmp(skillselect, "pistol", true)) nameOnTable = "PISTOLskills";
else if(!strcmp(skillselect, "shotgun", true)) nameOnTable = "SHOTGUNskills";
else if(!strcmp(skillselect, "mp5", true)) nameOnTable = "MP5skills";
else if(!strcmp(skillselect, "ak47", true)) nameOnTable = "AKskills";
else if(!strcmp(skillselect, "m4", true)) nameOnTable = "M4skills";
else if(!strcmp(skillselect, "rifle", true)) nameOnTable = "RIFLEskills";
else if(!strcmp(skillselect, "sniper", true)) nameOnTable = "SNIPERskills";
else if(!strcmp(skillselect, "minigun", true)) nameOnTable = "MINIGUNskills";
mysql_format(ConnectMYSQL, query, sizeof(query), "UPDATE `accounts` SET `%s` = `%s`/2",
nameOnTable,
nameOnTable
);
format(strx,sizeof(strx),"AdmCmd: %s started a reset on SKILL %s. Reason: %s.", PlayerName(playerid), skillselect, (motivo));
SendClientMessageToAll(COLOR_LIGHTRED, strx);
writeLog("LOGS/resets.txt",strx);
return 1;
}