[SQLite] Dynamic Factions
#1

pawn Код:
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.
Line 1161:

pawn Код:
CreateFaction(name, type, rank0, rank1, rank2, rank3, rank4, rank5, rank6);
The Stock

pawn Код:
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();
}
I dont understand why I'm getting this error.
Reply
#2

anyone help?
Reply
#3

Ranks are strings.
pawn Код:
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();
}
Reply
#4

Quote:
Originally Posted by HazardouS
Посмотреть сообщение
Ranks are strings.
pawn Код:
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();
}
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.");
    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;
}
Reply
#5

Quote:
Originally Posted by JordanDoughty
Посмотреть сообщение
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.");
    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;
}
anyone?
Reply
#6

Quote:
Originally Posted by JordanDoughty
Посмотреть сообщение
anyone?
anyone help me? please.
Reply
#7

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);
}
No more warnings, but I haven't tested it..
EDIT: Oops, fixed a typo

EDIT #2:
pawn Код:
stock GetName(playerid)
{
    new pnameid[24];
    GetPlayerName(playerid,pnameid,sizeof(pnameid));
    return pnameid;
}
Here's the GetName stock, If you don't have it.
Reply
#8

Quote:
Originally Posted by Kyance
Посмотреть сообщение
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);
}
No more warnings, but I haven't tested it..
EDIT: Oops, fixed a typo

EDIT #2:
pawn Код:
stock GetName(playerid)
{
    new pnameid[24];
    GetPlayerName(playerid,pnameid,sizeof(pnameid));
    return pnameid;
}
Here's the GetName stock, If you don't have it.
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
Reply
#9

Quote:
Originally Posted by JordanDoughty
Посмотреть сообщение
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
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 Код:
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;
}
I think you should know what to do next
Reply
#10

Quote:
Originally Posted by Kyance
Посмотреть сообщение
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 Код:
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;
}
I think you should know what to do next
Thanks one last thing, is this code right to remove the faction from the databasE?

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);
}
pawn Код:
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;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)