Beiträge von CaptainKevin

    Heyho.
    Eigentlich funktioniert alles, bisauf, dass ich die Waffe nicht bekomme, wenn ich durchlaufen....
    #define MAX_PICKS 30


    enum Picks_Info
    {
    iconID,
    waffenID,
    muniID,
    Float:x,
    Float:y,
    Float:z
    }


    new PickInfo[MAX_PICKS][Picks_Info];


    //OnGameModeInit
    for(new pi=1; pi<MAX_PICKS; pi++)
    {
    LoadPicks(pi);
    }


    //OnPlayerPickupPickup
    GivePlayerWeapon(playerid,PickInfo[pickupid][waffenID],PickInfo[pickupid][muniID]);


    //Erstellung
    ocmd:cpick(playerid,params[])
    {
    if(!istPlayerAdmin(playerid,8))return SendClientMessage(playerid,arot,"Info: Du kannst mit deinem Rang keine PickUps erstellen!");
    new pick, waffe, munni, Float:xx, Float:yy, Float:zz;
    GetPlayerPos(playerid,xx,yy,zz);
    if(sscanf(params,"iii",pick,waffe,munni))
    {
    SendClientMessage(playerid,weis,"Benutzung: /cpick [Pickup ID] [Waffen ID] [Munnition]");
    SendClientMessage(playerid,weis,"IDs: Deagle=348, MP5=353, AK=355, M4=356, Sniper=358");
    return 1;
    }
    CreatePick(xx,yy,zz,pick,waffe,munni);
    return 1;
    }


    //Stocks
    stock LoadPicks(pickupid)
    {
    new DatFile[64];
    format(DatFile,64,"/Picks/%d.ini",pickupid);
    PickInfo[pickupid][x]=dini_Float(DatFile,"PosX");
    PickInfo[pickupid][y]=dini_Float(DatFile,"PosY");
    PickInfo[pickupid][z]=dini_Float(DatFile,"PosZ");
    PickInfo[pickupid][iconID]=dini_Int(DatFile,"PickupID");
    PickInfo[pickupid][waffenID]=dini_Int(DatFile,"WaffenID");
    PickInfo[pickupid][muniID]=dini_Int(DatFile,"Munni");
    CreatePickup(PickInfo[pickupid][iconID],1,PickInfo[pickupid][x],PickInfo[pickupid][y],PickInfo[pickupid][z],0);
    //CreatePickup(dini_Int(DatFile,"PickupID"),1,dini_Float(DatFile,"PosX"),dini_Float(DatFile,"PosZ"),dini_Float(DatFile,"PosZ"),0);
    return 1;
    }


    stock CreatePick(Float:xx, Float:yy, Float:zz, pickup, waffen, munni)
    {
    new DatFile[64];
    for(new pp=1; pp<MAX_PICKS; pp++)
    {
    if(dini_Exists(DatFile))return 1;
    format(DatFile,64,"/Picks/%d.ini",pp);
    dini_Create(DatFile);
    PickInfo[pp][x]=dini_FloatSet(DatFile,"PosX",xx);
    PickInfo[pp][y]=dini_FloatSet(DatFile,"PosY",yy);
    PickInfo[pp][z]=dini_FloatSet(DatFile,"PosZ",zz);
    PickInfo[pp][iconID]=dini_IntSet(DatFile,"PickupID",pickup);
    PickInfo[pp][waffenID]=dini_IntSet(DatFile,"WaffenID",waffen);
    PickInfo[pp][muniID]=dini_IntSet(DatFile,"Munni",munni);
    return LoadPicks(pp);
    }
    return 1;
    }

    Irgendwie habe ich es immer noch nicht kapiert.....
    Ich habe nun folgenden Code und folgenden Error:

    ocmd:checkid(playerid,params[])
    {
    new id, string[128],s1[128],s2[128],s3[128],s4[128],s5[128];
    if(!isPlayerAdmin(playerid,2))return SendClientMessage(playerid,arot,"Du hast nicht den passenden Adminrang.");
    if(sscanf(params,"i",id))return SendClientMessage(playerid,weiß,"Info: /checkid [DatenbankID]");
    format(s3,sizeof(s3),"%d",mysql_GetInt("players","Level","ID",id));
    format(s5,sizeof(s5),"%d$",mysql_GetInt("players","Geld","ID",id));
    format(s4,sizeof(s4),"%d",mysql_GetInt("players","Adminlevel","ID",id));
    format(s1,sizeof(s1),"%s",mysql_GetString("players","Name","ID",id));
    format(s2,sizeof(s2),"%s",mysql_GetString("players","Passwort","ID",id));
    //s3=mysql_GetInt("players","Level","ID",id);
    //s5=mysql_GetInt("players","Geld","ID",id);
    //s4=mysql_GetInt("players","Adminlevel","ID",id);
    //s1=mysql_GetString("players","Name","ID",id);
    //s2=mysql_GetString("players","Passwort","ID",id);
    format(string,sizeof(string),"[Name: %s] [Passwort: %s] [Level: %s] [Adminlevel: %s] [Geld: %s]",s1,s2,s3,s4,s5);
    SendClientMessage(playerid,gelb,string);
    return 1;
    }



    //Error
    C:\Users\Kevin\Desktop\Sa-Mp 0.3x\gamemodes\nScript.pwn(375) : error 035: argument type mismatch (argument 4)
    C:\Users\Kevin\Desktop\Sa-Mp 0.3x\gamemodes\nScript.pwn(376) : error 035: argument type mismatch (argument 4)
    C:\Users\Kevin\Desktop\Sa-Mp 0.3x\gamemodes\nScript.pwn(377) : error 035: argument type mismatch (argument 4)
    C:\Users\Kevin\Desktop\Sa-Mp 0.3x\gamemodes\nScript.pwn(378) : error 035: argument type mismatch (argument 4)
    C:\Users\Kevin\Desktop\Sa-Mp 0.3x\gamemodes\nScript.pwn(379) : error 035: argument type mismatch (argument 4)
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    5 Errors.


    Hey, Leute!


    Ich habe nun endlich ein bisschen MySQL gecheckt....
    Nun die Frage: Wie bekomme ich die Informationen eines angegebenen Spielers?
    Kann mir da wer helfen?



    ocmd:checkid(playerid,params[])
    {
    new id, string[128],s1[128],s2[128],s3[128],s4[128],s5[128];
    if(!isPlayerAdmin(playerid,2))return SendClientMessage(playerid,arot,"Du hast nicht den passenden Adminrang.");
    if(sscanf(params,"d",id))return SendClientMessage(playerid,weiß,"Info: /checkid [DatenbankID]");
    s3=mysql_GetInt("players","Level","ID",id);
    s5=mysql_GetInt("players","Geld","ID",id);
    s4=mysql_GetInt("players","Adminlevel","ID",id);
    s1=mysql_GetString("players","Name","ID",id);
    s2=mysql_GetString("players","Passwort","ID",id);
    format(string,sizeof(string),"[Name: %s] [Passwort: %s] [Level: %s] [Adminlevel: %s] [Geld: %s]",s1,s2,s3,s4,s5);
    SendClientMessage(playerid,gelb,string);
    return 1;
    }


    stock mysql_GetInt(Table[], Field[], Where[], Is[])
    {
    new query[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Is, Is);
    format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    new sqlint = mysql_fetch_int();
    mysql_free_result();
    return sqlint;
    }


    stock mysql_GetString(Table[], Field[], Where[], Is[])
    {
    new query[128], Get[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Is, Is);
    format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_row(Get);
    mysql_free_result();
    return Get;
    }




    //Errors
    C:\Users\Kevin\Desktop\Sa-Mp 0.3x\gamemodes\nScript.pwn(375) : error 035: argument type mismatch (argument 4)C:\Users\Kevin\Desktop\Sa-Mp 0.3x\gamemodes\nScript.pwn(375) : error 033: array must be indexed (variable "s3")C:\Users\Kevin\Desktop\Sa-Mp 0.3x\gamemodes\nScript.pwn(376) : error 035: argument type mismatch (argument 4)C:\Users\Kevin\Desktop\Sa-Mp 0.3x\gamemodes\nScript.pwn(376) : error 033: array must be indexed (variable "s5")C:\Users\Kevin\Desktop\Sa-Mp 0.3x\gamemodes\nScript.pwn(377) : error 035: argument type mismatch (argument 4)C:\Users\Kevin\Desktop\Sa-Mp 0.3x\gamemodes\nScript.pwn(377) : error 033: array must be indexed (variable "s4")C:\Users\Kevin\Desktop\Sa-Mp 0.3x\gamemodes\nScript.pwn(378) : error 035: argument type mismatch (argument 4)C:\Users\Kevin\Desktop\Sa-Mp 0.3x\gamemodes\nScript.pwn(379) : error 035: argument type mismatch (argument 4)Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


    8 Errors.

    Das Script merkt erst sehr spät, dass er wieder HP hat, weil du es unter "OnPlayerUpdate" hast.
    Wenn du einen Timer erstellen würdest, mit dem der Spieler die ganze Zeit abgefragt wird, würde es nicht so lange dauern.


    Was lernen wir daraus? Genau! Wir erstellen einen SetTimerEx :)
    Ich hoffe, ich konnte dir das noch einmal einleuten :)

    Wenn du die Grundkenntnisse lernen würdest, wüsstest du, dass ein Race System sehr einfach ist.
    Man erstellt mehrere Checkpoints in einer Datei, die dann abgerufen werden.
    Das ganze kannst du natürlich Dynamisch machen.


    Dann fügst du per Variable die neuen Spieler hinzu und startest das Rennen.
    Dann brauchst du noch OnPlayerEnterCheckpoint.
    Mehr ist das nicht.

    Warum lässt du den Timer wiederholen?
    Du brauchst ihn doch nur um die Tore wieder zu schließen.
    Heißt, dass er trotzdem weiter macht, egal, wie oft du das Tor auf und zu machst.




    mfg Pinguin

    Heyho.
    Schaut euch einmal den Code an und sagt mir, was an diesem Code falsch ist....

    //Error Meldungen
    C:\Users\Smith Fmily\Desktop\NewS\gamemodes\dmscript.pwn(707) : warning 213: tag mismatch
    C:\Users\Smith Fmily\Desktop\NewS\gamemodes\dmscript.pwn(708) : warning 213: tag mismatch
    C:\Users\Smith Fmily\Desktop\NewS\gamemodes\dmscript.pwn(709) : warning 213: tag mismatch
    C:\Users\Smith Fmily\Desktop\NewS\gamemodes\dmscript.pwn(710) : warning 213: tag mismatch
    C:\Users\Smith Fmily\Desktop\NewS\gamemodes\dmscript.pwn(711) : warning 213: tag mismatch
    C:\Users\Smith Fmily\Desktop\NewS\gamemodes\dmscript.pwn(712) : warning 213: tag mismatch
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    6 Warnings.



    //Die angegebenen Zeilen
    stock CreateOBS(Float:obxxx, Float:oby, Float:obz, Float:obXX, Float:obYY, Float:obZZ,id)
    {
    for(new i=1; i<MAX_OBS; i++)
    {
    new Obj[64];
    format(Obj,64,"/Objecte/Objec.%d.ini",i);
    if(!fexist(Obj))
    {
    dini_Create(Obj);
    dini_IntSet(Obj,"PosX",obxxx);
    dini_IntSet(Obj,"PosY",oby);
    dini_IntSet(Obj,"PosZ",obz);
    dini_IntSet(Obj,"PosXX",obXX);
    dini_IntSet(Obj,"PosYY",obYY);
    dini_IntSet(Obj,"PosZZ",obZZ);
    dini_IntSet(Obj,"ObjectID",id);
    return LoadOBS(i);
    }
    }
    return 1;
    }

    Da Pawn bei 0 Anfängt zu zählen, musst du es so versuchen:
    #define DIALOG_KAUFEN 1
    ShowPlayerDialog(playerid,DIALOG_KAUFEN,DIALOG_STYLE_LIST,"Waffenkauf","Waffe 1\nWaffe 2\nWaffe 3","Kaufen","Abbrechen");


    //OnDialogResponse
    if(dialogid == DIALOG_KAUFEN)
    {
    if(listitem==0)//Waffe 1
    {
    GivePlayerWeapon....
    }
    if(listitem==1)//Waffe2
    {
    GivePlayerWeapon...
    }
    }


    Versuch einfach mal diesen Code vollständig mit ein dein Script zu bekommen.