Beiträge von nehli

    Das ist ja mein Haussystem, krass ^^


    @B2T:
    Ich füge bei v1.2 sowieso noch MySQL hinzu ;) (Gstylezz und Strickenkid)
    Das dauert vl. noch bis Sonntag ;)

    kann schon sein ^^.. habs von einem Freund bekommen.. hab net nachgefragt wo er es her hat ;) aba hast du nicht schlecht hin bekommen ;)



    /Edit:
    Godliker das ich beim stock 4 Paramter angegeben hab und bei der Abfrage nur 2 ist mir jetz auch aufgefallen^^ dafür schon mal danke aber ich weiß nicht was ich beim stock für eine Parameterabfrage machen muss
    damit es funktioniert ;( ;(

    Hei
    Ich würde gern dieses Hausscript von der Dini auf mysql umschreiben. Komm aber bei ein paar Abfragen nicht zurecht, weil ich mich selbst noch nicht so gut mit mysql auskenn.


    Hier der Script mit dini:
    #define MAX_HAUS 100
    enum hausEnum
    {
    Float:AussenX, Float:AussenY, Float:AussenZ,
    Float:InnenX, Float:InnenY, Float:InnenZ,
    Kaufpreis, Interior, Text3DHausLabel, Hauspick,
    Besitzer[24]
    };
    new Haus[MAX_HAUS][hausEnum];
    new hstring[64];
    new unusedstring[64];

    OnFilterScriptInt()
    {
    new h;
    for(;h!=MAX_HAUS;h++)
    {
    format(hstring,64,"%s/Haus_%d.ini",ORDNERNAME,h);
    if(dini_Exists(hstring))
    {
    Haus[h][AussenX] = mysql_Float(hstring,"Aussen_X");
    Haus[h][AussenY] = dini_Float(hstring,"Aussen_Y");
    Haus[h][AussenZ] = dini_Float(hstring,"Aussen_Z");


    Haus[h][InnenX] = dini_Float(hstring,"Innen_X");
    Haus[h][InnenY] = dini_Float(hstring,"Innen_Y");
    Haus[h][InnenZ] = dini_Float(hstring,"Innen_Z");


    Haus[h][Kaufpreis] = dini_Int(hstring,"Kaufpreis");
    Haus[h][Interior] = dini_Int(hstring,"Interior");


    format(Haus[h][Besitzer],24,"%s",dini_Get(hstring,"Besitzer"));
    if(!strcmp(Haus[h][Besitzer],"Niemand",true))
    {
    format(unusedstring,64,"Haus zu verkaufen.\nKaufpreis: %d$",Haus[h][Kaufpreis]);
    Haus[h][HausPickup]= CreatePickup(1273,1,Haus[h][AussenX],Haus[h][AussenY],Haus[h][AussenZ],-1);
    Haus[h][HausLabel] = Create3DTextLabel(unusedstring, 0xFFFFFFFF, Haus[h][AussenX], Haus[h][AussenY], Haus[h][AussenZ], 20.0, -1);
    }
    else
    {
    format(unusedstring,64,"Dieses Haus gehört: %s",Haus[h][Besitzer]);
    Haus[h][HausPickup]= CreatePickup(1272,1,Haus[h][AussenX],Haus[h][AussenY],Haus[h][AussenZ],-1);
    Haus[h][HausLabel] = Create3DTextLabel(unusedstring, 0xFFFFFFFF, Haus[h][AussenX], Haus[h][AussenY], Haus[h][AussenZ], 20.0, -1);
    }
    }
    }
    return 1;
    }
    stock HausErstellen(Float:Aussen_X,Float:Aussen_Y,Float:Aussen_Z,Float:Innen_X,Float:Innen_Y,Float:Innen_Z,Kaufpreis_,Interior_)
    {
    new h;
    for(;h!=MAX_HAUS;h++)
    if(Haus[h][Interior] != 0)
    {
    Haus[h][AussenX] = Aussen_X;
    Haus[h][AussenY] = Aussen_Y;
    Haus[h][AussenZ] = Aussen_Z;
    Haus[h][InnenX] = Innen_X;
    Haus[h][InnenY] = Innen_Y;
    Haus[h][InnenZ] = Innen_Z;


    Haus[h][Kaufpreis] = Kaufpreis_;
    Haus[h][Interior] = Interior_;


    format(hstring,64,"Haus zu verkaufen.\nKaufpreis: %d$",Haus[h][Kaufpreis]);
    Haus[h][HausLabel] = Create3DTextLabel(hstring,0xFFFFFFFF,Haus[h][AussenX],Haus[h][AussenY],Haus[h][AussenZ]+1.7,20.0,-1);
    Haus[h][HausPickup]= CreatePickup(1273,1,Haus[h][AussenX],Haus[h][AussenY],Haus[h][AussenZ],-1);
    format(hstring,64,"%s/Haus_%d.ini",ORDNERNAME,h);
    dini_Create(hstring);
    dini_IntSet(hstring,"Aussen_X",Aussen_X);
    dini_IntSet(hstring,"Aussen_Y",Aussen_Y);
    dini_IntSet(hstring,"Aussen_Z",Aussen_Z);


    dini_IntSet(hstring,"Innen_X",Innen_X);
    dini_IntSet(hstring,"Innen_Y",Innen_Y);
    dini_IntSet(hstring,"Innen_Z",Innen_Z);


    dini_IntSet(hstring,"Kaufpreis",Kaufpreis_);
    dini_IntSet(hstring,"Interior",Interior_);
    return 1;
    }
    return 0;
    }


    stock RemoveHaus(playerid)
    {
    if(IsPlayerInRangeOfAnyHaus(playerid))
    {
    new h = IsPlayerInRangeOfAnyHaus(playerid);
    Haus[h][AussenX] = 0;
    Haus[h][AussenY] = 0;
    Haus[h][AussenZ] = 0;
    Haus[h][InnenX] = 0;
    Haus[h][InnenY] = 0;
    Haus[h][InnenZ] = 0;
    Haus[h][Kaufpreis] = 0;
    Haus[h][Interior] = 0;


    format(hstring,64,"%s/Haus_%d.ini",ORDNERNAME,h);
    dini_Remove(hstring);
    return 1;
    }
    return 0;
    }


    stock HausKaufen(playerid)
    {
    new CurrMoney = Mau5_GetPlayerMoney(playerid);
    if(IsPlayerInRangeOfAnyHaus(playerid))
    {
    new h = IsPlayerInRangeOfAnyHaus(playerid);
    if(!strcmp(Haus[h][Besitzer],"Niemand",true))
    {
    if(CurrMoney >= Haus[h][Kaufpreis])
    {
    new name[24];
    GetPlayerName(playerid,name,24);
    format(Haus[h][Besitzer],64,"%s",name);
    format(hstring,64,"%s/Haus_%d.ini",ORDNERNAME,h);
    dini_Set(hstring,"Besitzer",name);


    format(unusedstring,64,"Dieses Haus gehört: %s",Haus[h][Besitzer]);
    DestroyPickup(Haus[h][HausPickup]);
    Update3DTextLabelText(Haus[h][HausLabel],0xFFFFFFFF,unusedstring);
    Haus[h][HausPickup]= CreatePickup(1272,1,Haus[h][AussenX],Haus[h][AussenY],Haus[h][AussenZ],-1);
    return 1;
    }
    }
    }
    return 0;
    }


    stock HausVerkaufen(playerid)
    {
    new h;
    for(;h!=MAX_HAUS;h++)
    if(Haus[h][Interior] != 0)
    {
    if(!strcmp(Haus[h][Besitzer],name,true))
    {
    format(unusedstring,64,"Dieses Haus ist zu verkaufen.\nKaufpreis: %d$",Haus[h][Kaufpreis]);
    DestroyPickup(Haus[h][HausPickup]);
    Update3DTextLabelText(Haus[h][HausLabel],0xFFFFFFFF,unusedstring);
    Haus[h][HausPickup]= CreatePickup(1273,1,Haus[h][AussenX],Haus[h][AussenY],Haus[h][AussenZ],-1);


    format(Haus[h][Besitzer],64,"Niemand");
    return 1;
    }
    }
    return 0;
    }


    stock IsPlayerInRangeOfAnyHaus(playerid)
    {
    new h;
    for(;h!=MAX_HAUS;h++)
    if(Haus[h][Interior] != 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,2.5,Haus[h][AussenX],Haus[h][AussenY],Haus[h][AussenZ]))
    {
    return h;
    }
    }
    return -1;
    }


    Nun zu meinem Problem:
    1. Hier wird bei dei "OnFilterScriptInt()" abgefragt ob die dini existiert und ich weiß nicht ob bzw wie ich die Abfrage bei mysql mach.
    2. Bei dem Script wird mit "dini_Float" gearbeitet. Ich hab es so versucht:


    Haus[h][AussenX] = mysql_Float(hstring,"Aussen_X");//Zeile 61
    Haus[h][AussenY] = mysql_Float(hstring,"Aussen_Y");//Zeile 62
    Haus[h][AussenZ] = mysql_Float(hstring,"Aussen_Z");//Zeile 63


    da kommt die Fehlermeldung J:\gta\0.3d\filterscripts\haustest.pwn(89) : warning 208: function with tag result used before definition, forcing reparse
    J:\gta\0.3d\filterscripts\haustest.pwn(61) : warning 202: number of arguments does not match definition
    J:\gta\0.3d\filterscripts\haustest.pwn(61) : warning 202: number of arguments does not match definition
    J:\gta\0.3d\filterscripts\haustest.pwn(62) : warning 202: number of arguments does not match definition
    J:\gta\0.3d\filterscripts\haustest.pwn(62) : warning 202: number of arguments does not match definition
    J:\gta\0.3d\filterscripts\haustest.pwn(63) : warning 202: number of arguments does not match definition
    J:\gta\0.3d\filterscripts\haustest.pwn(63) : warning 202: number of arguments does not match definition
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    7 Warnings.
    der stock von mysql_Float:
    stock Float:mysql_Float(Table[], Field[], Where[], Is[])//Zeile 89
    {
    new query[128], Float:sqlfloat;
    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_float(sqlfloat);
    mysql_free_result();
    return sqlfloat;
    }


    Ich hoffe mir kann einer von euch helfen!


    MfG

    hmm ich glaub dein Fehler ist das du iergendwas beim definieren der Ränge falsch gemacht hast. Ich habs dir jetz mal so mit switch gemacht:
    hier die defines oben:
    #define adminlevel1 "Moderator"
    #define adminlevel2 "Supporter"
    #define adminlevel3 "1337 Admin"
    #define adminlevel4 "1338 Admin"
    #define adminlevel5 "Serverleiter"


    und hier der Befehl selbst:


    ocmd:a(playerid,params[])
    {
    if(!IsPlayerAnAdmin(playerid,1))
    {
    new text[128], string[128],adminlevel[54];
    if(sscanf(params,"s",text))return SendClientMessage(playerid,Weiß,"Benutzung: /a [Text]");
    switch(GetPVarInt(playerid,"Adminlevel"))
    {
    case 1:{adminlevel=adminlevel1;}
    case 2:{adminlevel=adminlevel2;}
    case 3:{adminlevel=adminlevel3;}
    case 4:{adminlevel=adminlevel4;}
    case 5:{adminlevel=adminlevel5;}
    }
    format(string,sizeof(string),"** %s %s: %s )) **",adminlevel,SpielerName(playerid),text);
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsPlayerInFrakt(i,GetPVarInt(playerid,"Adminlevel"))) { SendClientMessage(i,ADMINBLAU,string); }
    }
    }
    }
    return 1;
    }


    so müsste es eigentlich funktionieren ;)


    MfG

    bei mir hat es auch nie mit switch funktioniert deswegen versuch es einmal so:


    ocmd:a(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,1))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin!");
    new text[400];
    if(sscanf(params,"s",text))return SendClientMessage(playerid,COLOR_YELLOW,"Verwendung: /a [Text]");
    new string[128];
    if(GetPVarInt(playerid,"admin")==1) { format(string, sizeof(string), "** (ADMINCHAT) Supporter %s: %s. **", SpielerName(playerid), text);}
    else if(GetPVarInt(playerid,"admin")==2) {format(string,sizeof(string),"**(ADMINCHAT) Moderator %s: %s.**",SpielerName(playerid),text);}
    else if(GetPVarInt(playerid,"admin")==3) {format(string,sizeof(string),"**(ADMINCHAT) 1337 Admin %s: %s.**",SpielerName(playerid),text);}
    else if(GetPVarInt(playerid,"admin")==4) {format(string,sizeof(string),"**(ADMINCHAT) 1338 Admin %s: %s.**",SpielerName(playerid),text);}
    else if(GetPVarInt(playerid,"admin")==5) {format(string,sizeof(string),"**(ADMINCHAT) 1339 Admin %s: %s.**",SpielerName(playerid),text);}
    print("-----");
    print(string);
    for(new i=0; i<GetMaxPlayers(); i++) { if(IsPlayerConnected(i)) { if(IsPlayerInFrakt(i,GetPVarInt(playerid,"Adminlevel"))) { SendClientMessage(i,ADMINBLAU,string); } } }
    return 1;
    }

    zeig mal bitte auch die Zeilen wo der Spieler auf dem Server connected und hast du es mit einem Dialog gemacht wo er das Passwort eingibt?


    Wenn ja dann zeig mal bitte was du bei "OnDialogResponse" geschrieben hast also bei dem Logindialog


    MfG

    so müsste es eigentlich funktionieren:


    stock Login (playerid,key[])
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
    if(!strcmp(key,dini_Get(Spieler,"Passwort"),false))
    {
    LoadAccount(playerid);
    SendClientMessage(playerid,HBLAU,"Erfolg : {F0F0F0}Du hast dich eingeloggt !");
    return 1;
    }

    else
    {
    SendClientMessage(playerid,ROT,"Fehler : {F0F0F0}Das Passwort ist Falsch !");
    ShowPlayerDialog(playerid,DIALOG_ID,DIALOG_STYLE,"Login","Dein Account wurde gefunden. Gibt bitte das Passwort ein.","Login","Abbrechen");
    }
    return 1;
    }


    MfG

    verusch mal so weiß aber net ob es so geht ;)



    if(strcmp(cmdtext,"/stats",true)==0)
    {
    new string[128], string2[128], string3[128], string4[128];
    new fraktname[64];
    switch(GetPVarInt(playerid,"Fraktion"))
    {
    case 0:{fraktname="Zivilist";}
    case 1:{fraktname="Las Venturas Police Department";}
    case 2:{fraktname="Las Venturas Hospital";}
    case 3:{fraktname="Greasy Choppers";}
    case 4:{fraktname="Fraktname 4";}
    }
    //1 Reihe
    SendClientMessage(playerid,BLAU,"|~~~~~~~~~~~Statistik~~~~~~~~~~~|");
    format(string,sizeof(string),"[Name: %s]",SpielerName(playerid));
    //2 Reihe
    format(string2,sizeof(string2),"[Level: %i]",GetPlayerScore(playerid));
    SendClientMessage(playerid,0xBEBEBEFF,string2);
    //3 Reihe
    format(string3,sizeof(string3),"[AdminLevel: %i]",GetPVarInt(playerid,"AdminLevel"));
    SendClientMessage(playerid,0xBEBEBEFF,string3);
    //4 Reihe
    format(string4,sizeof(string4),"[Fraktion: %s]",GetPVarInt,(playerid),fraktname); //Fehlerzeile, hier sollte der Spieler dann haben Fraktion: Name seiner Fraktion, die am Anfang immer 0 ist (Zivilist)
    SendClientMessage(playerid,0xBEBEBEFF,string4);
    return 1;
    }
    return 0;
    }

    einfach die Fehlerzeile weg machen und das schreiben:


    format(string,sizeof(string),"[Fraktion: %s]",fraktname);


    du hast bei dem %s das Script einmal von der GetPVarInt lesen lassen und einmal von der Fraktion und das löste den Error aus. Du brauchst in dem Fall nur fraktname machen weil du ihn mit new hinzugefügt hast und der schreibt je nach Zahl
    die richtige Zahl hin, weil du das beim switch definiert hast ;)

    da wird der fehler sein:


    format(string,sizeof(string),"[Name: %s] [Level: %i] [AdminLevel: %i] [Fraktion: %s]",SpielerName(playerid));



    versuchs so mal:
    format(string,sizeof(string),"[Name: %s] [Level: %i] [AdminLevel: %i] [Fraktion: %s]",SpielerName(playerid), GetPlayerScore(playerid),"da soll er das Adminlevel rauslesen",fraktnamen);


    so müsste es funken ;)


    bzw damit du es so hast wie du es willst:


    if(strcmp(cmdtext,"/stats",true)==0) { new string[128]; new fraktname[64]; switch(GetPVarInt(playerid,"Fraktion")) { case 0:{fraktname="Zensiert";} case 1:{fraktname="Zensiert";} case 2:{fraktname="Zensiert";} case 3:{fraktname="Zensiert";} case 4:{fraktname="Zensiert";} } //1 Reihe SendClientMessage(playerid,BLAU,"|~~~~~~~~~~~Statistik~~~~~~~~~~~|"); format(string,sizeof(string),"[Name: %s] [Level: %i] [AdminLevel: %i] [Fraktion: %s]",SpielerName(playerid)); //2 Reihe format(string,sizeof(string),"[Level: %i]",GetPlayerScore(playerid)); SendClientMessage(playerid,0xBEBEBEFF,string); //3 Reihe format(string,sizeof(string),"[AdminLevel: %i]",GetPVarInt(playerid,"AdminLevel")); SendClientMessage(playerid,0xBEBEBEFF,string); //4 Reihe format(string,sizeof(string),"[Fraktion: %s]",,fraktname); //da hattest du den Fehler der Grund: du hast bei einer Abfrage 2 Sachen heraus lesen lassen. Dadurch du es mit dem switch gemacht hast brauchst du bei der Fraktion nur mehr den fraktnamen verwenden den du mit new gemacht hast. SendClientMessage(playerid,0xBEBEBEFF,string); return 1; } return 0;

    aso dann liegt es an deinem dini include oder sscanf


    hier mal das sscanf von mir: stock sscanf(sstring[], format[], {Float,_}:...)
    {
    #if defined isnull
    if (isnull(sstring))
    #else
    if (sstring[0] == 0 || (sstring[0] == 1 && sstring[1] == 0))
    #endif
    {
    return format[0];
    }
    #pragma tabsize 4
    new
    formatPos = 0,
    sstringPos = 0,
    paramPos = 2,
    paramCount = numargs(),
    delim = ' ';
    while (sstring[sstringPos] && sstring[sstringPos] <= ' ')
    {
    sstringPos++;
    }
    while (paramPos < paramCount && sstring[sstringPos])
    {
    switch (format[formatPos++])
    {
    case '\0':
    {
    return 0;
    }
    case 'i', 'd':
    {
    new
    neg = 1,
    num = 0,
    ch = sstring[sstringPos];
    if (ch == '-')
    {
    neg = -1;
    ch = sstring[++sstringPos];
    }
    do
    {
    sstringPos++;
    if ('0' <= ch <= '9')
    {
    num = (num * 10) + (ch - '0');
    }
    else
    {
    return -1;
    }
    }
    while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num * neg);
    }
    case 'h', 'x':
    {
    new
    num = 0,
    ch = sstring[sstringPos];
    do
    {
    sstringPos++;
    switch (ch)
    {
    case 'x', 'X':
    {
    num = 0;
    continue;
    }
    case '0' .. '9':
    {
    num = (num << 4) | (ch - '0');
    }
    case 'a' .. 'f':
    {
    num = (num << 4) | (ch - ('a' - 10));
    }
    case 'A' .. 'F':
    {
    num = (num << 4) | (ch - ('A' - 10));
    }
    default:
    {
    return -1;
    }
    }
    }
    while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num);
    }
    case 'c':
    {
    setarg(paramPos, 0, sstring[sstringPos++]);
    }
    case 'f':
    {


    new changestr[16], changepos = 0, strpos = sstringPos;
    while(changepos < 16 && sstring[strpos] && sstring[strpos] != delim)
    {
    changestr[changepos++] = sstring[strpos++];
    }
    changestr[changepos] = '\0';
    setarg(paramPos,0,_:floatstr(changestr));
    }
    case 'p':
    {
    delim = format[formatPos++];
    continue;
    }
    case '\'':
    {
    new
    end = formatPos - 1,
    ch;
    while ((ch = format[++end]) && ch != '\'') {}
    if (!ch)
    {
    return -1;
    }
    format[end] = '\0';
    if ((ch = strfind(sstring, format[formatPos], false, sstringPos)) == -1)
    {
    if (format[end + 1])
    {
    return -1;
    }
    return 0;
    }
    format[end] = '\'';
    sstringPos = ch + (end - formatPos);
    formatPos = end + 1;
    }
    case 'u':
    {
    new
    end = sstringPos - 1,
    id = 0,
    bool:num = true,
    ch;
    while ((ch = sstring[++end]) && ch != delim)
    {
    if (num)
    {
    if ('0' <= ch <= '9')
    {
    id = (id * 10) + (ch - '0');
    }
    else
    {
    num = false;
    }
    }
    }
    if (num && IsPlayerConnected(id))
    {
    setarg(paramPos, 0, id);
    }
    else
    {
    #if !defined foreach
    #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
    #define __SSCANF_FOREACH__
    #endif
    sstring[end] = '\0';
    num = false;
    new
    name[MAX_PLAYER_NAME];
    id = end - sstringPos;
    foreach (Player, playerid)
    {
    GetPlayerName(playerid, name, sizeof (name));
    if (!strcmp(name, sstring[sstringPos], true, id))
    {
    setarg(paramPos, 0, playerid);
    num = true;
    break;
    }
    }
    if (!num)
    {
    setarg(paramPos, 0, INVALID_PLAYER_ID);
    }
    sstring[end] = ch;
    #if defined __SSCANF_FOREACH__
    #undef foreach
    #undef __SSCANF_FOREACH__
    #endif
    }
    sstringPos = end;
    }
    case 's', 'z':
    {
    new
    i = 0,
    ch;
    if (format[formatPos])
    {
    while ((ch = sstring[sstringPos++]) && ch != delim)
    {
    setarg(paramPos, i++, ch);
    }
    if (!i)
    {
    return -1;
    }
    }
    else
    {
    while ((ch = sstring[sstringPos++]))
    {
    setarg(paramPos, i++, ch);
    }
    }
    sstringPos--;
    setarg(paramPos, i, '\0');
    }
    default:
    {
    continue;
    }
    }
    while (sstring[sstringPos] && sstring[sstringPos] != delim && sstring[sstringPos] > ' ')
    {
    sstringPos++;
    }
    while (sstring[sstringPos] && (sstring[sstringPos] == delim || sstring[sstringPos] <= ' '))
    {
    sstringPos++;
    }
    paramPos++;
    }
    do
    {
    if ((delim = format[formatPos++]) > ' ')
    {
    if (delim == '\'')
    {
    while ((delim = format[formatPos++]) && delim != '\'') {}
    }
    else if (delim != 'z')
    {
    return delim;
    }
    }
    }
    while (delim > ' ');
    return 0;
    }


    dini kommt gleich ;)


    /edit: hier die dini


    kann mir nicht vorstellen das es am "u" liegt, weil "u" steht ja für endweder den Name also den Spielername oder der Spielerid also kann ich mir nicht vorstellen das es am u liegt ;)

    hier ein gethere Befehl sogar mit Auto Port ;)


    müsste funken: ocmd:gethere(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,1)) return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin!");
    new pID, string[200], string2[200];
    new Float: X, Float: Y, Float: Z;
    new ziel[MAX_PLAYER_NAME];
    GetPlayerName(pid,ziel,sizeof(ziel));
    new admin[MAX_PLAYER_NAME];
    GetPlayerName(playerid,admin,sizeof(admin));
    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,COLOR_YELLOW,"Verwendung: /gethere [Spieler]");
    format(string,sizeof(string),"**Du hast den Spieler %s zu dir geportet!**",ziel);
    format(string2,sizeof(string2),"**Der Admin %s hat dich geportet!**",admin);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
    SendClientMessage(playerid,COLOR_GREEN,string2);
    GetPlayerPos(playerid, X, Y, Z);
    if(IsPlayerInAnyVehicle(pID))
    {
    SetVehiclePos(GetPlayerVehicleID(pID), X+5, Y+5, Z);
    }
    else
    {
    SetPlayerPos(pID, X+5, Y+5, Z);
    }
    return 1;
    }


    müsste eigentlich so funken ;)

    eigentlich brauchst nur logisch überlegen ;)


    ziemlich gleich wie goto ;)
    du brauchst nur bei den vehicle und player Spawn statt playerid die definierte id wie bei pid. Also so:
    if(IsPlayerInAnyVehicle(pID))
    {
    SetVehiclePos(GetPlayerVehicleID(pID), X+5, Y+5, Z);
    }
    else
    {
    SetPlayerPos(pID, X+5, Y+5, Z);
    }
    return 1;
    }

    kannst du mal bitte bei allen Zeilen hinten mit // die richtige Zeile aus dem Script hinzufügen danke ;)


    /edit versuchs mal so:


    public OnPlayerConnect(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(dini_Exists(Spielerdatei))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Ihr Account wurde gefunden, bitte geben Sie das Passwort ein","Login","Abbrechen");
    }
    else
    {
    //----Fehlerzeile--- ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrierung","Geben Sie bitte das gewünschte Passwort ein","Register","Abbrechen");

    }
    return 1;//also das return einfach am Schluss nach der } Klammer
    }


    schreib das unten dazu: stock SpielerName(playerid)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    return name;
    }


    dann kannst du immer spielername verwenden wenn du den Namen von Spielern herausfinden willst einfach SpielerName(playerid) ;)


    MfG

    hier: ;)


    ocmd:givemoney(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,4))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin!");
    new pID, money, string[200], string1[200];
    if(sscanf(params,"ui",pID,money))return SendClientMessage(playerid,COLOR_YELLOW,"Verwendung: /givemoney [Spieler][Money]");
    format(string,sizeof(string),"**Du hast dem Spieler %s einen Betrag in Höhe von %d überwiesen!**",SpielerName(pID),money);
    format(string1,sizeof(string1),"**Der Admin %s hat dir %d Euro überwiesen!**",SpielerName(playerid),money);
    GivePlayerMoney(pID,money);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
    SendClientMessage(pID,COLOR_GREEN,string1);
    return 1;
    }


    Hoffe das es dir weiterhilft


    MfG