C:\Users\Jordan\Desktop\Liberty-RP (SQLite)\gamemodes\rp.pwn(1161) : error 035: argument type mismatch (argument 3)
C:\Users\Jordan\Desktop\Liberty-RP (SQLite)\gamemodes\rp.pwn(2710) : warning 204: symbol is assigned a value that is never used: "dTitle"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Error.
CreateFaction(name, type, rank0, rank1, rank2, rank3, rank4, rank5, rank6);
stock CreateFaction(name[], type, rank0, rank1, rank2, rank3, rank4, rank5, rank6)
{
new string[256];
format(string, sizeof(string), "INSERT INTO Groups (NAME, TYPE, RANK0, RANK1, RANK2, RANK3, RANK4, RANK5, RANK6) VALUES ('%s','%i','%s','%s','%s','%s','%s', '%s', '%s')", name, type, rank0, rank1, rank2, rank3, rank4, rank5, rank6);
db_free_result(db_query(Database, string));
ReloadFactions();
}
stock CreateFaction(name[], type, rank0[], rank1[], rank2[], rank3[], rank4[], rank5[], rank6[])
{
new string[256];
format(string, sizeof(string), "INSERT INTO Groups (NAME, TYPE, RANK0, RANK1, RANK2, RANK3, RANK4, RANK5, RANK6) VALUES ('%s','%i','%s','%s','%s','%s','%s', '%s', '%s')", name, type, rank0, rank1, rank2, rank3, rank4, rank5, rank6);
db_free_result(db_query(Database, string));
ReloadFactions();
}
Ranks are strings.
pawn Код:
|
CMD:creategroup(playerid, params[])
{
new name[128], type, rank0[128], rank1[128], rank2[128], rank3[128], rank4[128], rank5[128], rank6[128];
if(!PermissionCheck(playerid, 6)) return SendClientMessageEx(playerid, COLOR_GREY, "You are not authourized to use this command.");
else if(sscanf(params, "{s[64]is[128]s[128]s[128]s[128]s[128]s[128]s[128]s[128]}", name, type, rank0, rank1, rank2, rank3, rank4, rank5, rank6)) return SendClientMessageEx(playerid, COLOR_GREY, "Usage: /creategroup [name] [type] [rank0] [rank1] [rank2] [rank3] [rank4] [rank5] [rank6]");
CreateFaction(name, type, rank0, rank1, rank2, rank3, rank4, rank5, rank6);
SendClientMessageEx(playerid, COLOR_WHITE, "SERVER: You have made the group!.");
return 1;
}
Thanks when I do the command ,it doesnt actually insert anything into the database, just blank values.
pawn Код:
|
CMD:creategroup(playerid, params[])
{
new name[128], type, rank0[128], rank1[128], rank2[128], rank3[128], rank4[128], rank5[128], rank6[128];
if(!PermissionCheck(playerid, 6)) return SendClientMessageEx(playerid, COLOR_GREY, "You are not authourized to use this command.");
if(sscanf(params, "s[64]is[128]s[128]s[128]s[128]s[128]s[128]s[128]", name, type, rank0, rank1, rank2, rank3, rank4, rank5, rank6)) return SendClientMessageEx(playerid, COLOR_GREY, "Usage: /creategroup [name] [type] [rank0] [rank1] [rank2] [rank3] [rank4] [rank5] [rank6]");
CreateFaction(playerid, name, type, rank0, rank1, rank2, rank3, rank4, rank5, rank6);
return 1;
}
stock CreateFaction(playerid, name[], type, rank0[], rank1[], rank2[], rank3[], rank4[], rank5[], rank6[])
{
new Query[256], DBResult:Result;
format(Query, sizeof(Query), "INSERT INTO Groups (NAME, TYPE, RANK0, RANK1, RANK2, RANK3, RANK4, RANK5, RANK6) VALUES ('%s','%i','%s','%s','%s','%s','%s', '%s', '%s')", name, type, rank0, rank1, rank2, rank3, rank4, rank5, rank6);
Result = db_query(Database, Query);
if(Result)
{
printf("[debug] %s created faction called %s(%i)\nRank 1: %s Rank 2: %s Rank 3: %s\nRank 4: %s Rank 5: %s Rank 6: %s", GetName(playerid), name, type, rank0, rank1, rank2, rank3, rank4, rank5, rank6);
SendClientMessage(playerid, -1, "Faction successfully created!");
ReloadFactions();
}
else
{
printf("[debug] couldn't create faction called %s(%i) by %s\nRank 1: %s Rank 2: %s Rank 3: %s\nRank 4: %s Rank 5: %s Rank 6: %s", name, type, GetName(playerid), rank0, rank1, rank2, rank3, rank4, rank5, rank6);
SendClientMessage(playerid, -1, "Couldn't create faction..");
}
db_free_result(Result);
}
stock GetName(playerid)
{
new pnameid[24];
GetPlayerName(playerid,pnameid,sizeof(pnameid));
return pnameid;
}
pawn Код:
EDIT: Oops, fixed a typo EDIT #2: pawn Код:
|
Thanks, how can I make it so I can put a space in a name for a rank? or would I have to do a "-"? then edit it
|
CMD:editfaction(playerid, params[]) {
if(InFaction(playerid) && FactionRank(playerid) == 5) ShowPlayerDialog(playerid, DIALOG_EDITFACTION, DIALOG_STYLE_LIST, "Editing your faction", "Edit Name\nEdit Type\nEdit Rank 1\nEdit Rank 2\nEdit Rank 3\nEdit Rank 4\nEdit Rank 5\nEdit Rank 6", "Select", "Close");
else //error message here
return 1;
}
Eh, I think it's a flaw with sscanf(using the strings in a middle of something).
You can create a command - editfaction, and then edit the ranks/name etc. Example; pawn Код:
![]() |
stock DeleteFaction(FactionID, name[], type, rank0[], rank1[], rank2[], rank3[], rank4[], rank5[], rank6[])
{
new Query[256], DBResult:Result;
new active = 0;
new playerid;
format(Query, sizeof(Query), "DELETE FROM Groups WHERE ACTIVE='%i' NAME='%s', TYPE='%i', RANK0='%s', RANK1='%s', RANK2='%s', RANK3='%s', RANK4='%s', RANK5='%s' and RANK6='%s'", active, name, type, rank0, rank1, rank2, rank3, rank4, rank5, rank6);
Result = db_query(Database, Query);
if(Result)
{
printf("[debug] %s deleted faction called %s(%i)", GetName(playerid), name);
SendClientMessage(playerid, -1, "Faction successfully deleted");
ReloadFactions();
}
else
{
printf("[debug] couldn't delete faction called %s(%i)", name, type, GetName(playerid));
SendClientMessage(playerid, -1, "Couldn't delete faction..");
}
db_free_result(Result);
}
CMD:deletefaction(playerid, params[])
{
new name[128], type, rank0[128], rank1[128], rank2[128], rank3[128], rank4[128], rank5[128], rank6[128], FactionID;
if(!PermissionCheck(playerid, 6)) return SendClientMessageEx(playerid, COLOR_GREY, "You are not authourized to use this command.");
if(sscanf(params, "i", FactionID)) return SendClientMessageEx(playerid, COLOR_GREY, "Usage: /deletefaction [ID]");
DeleteFaction(FactionID, name, type, rank0, rank1, rank2, rank3, rank4, rank5, rank6);
return 1;
}