Beiträge von Scripter-oNE

    Ich weiß nicht, ob andere es auch haben, das ist mein test server, wo ich bisher eig nur allein drauf Joine
    ich versuche das mal, aber es ommt ja nur auf meinem server vor, und dann auch nur nach dem "Spawn" klicken!


    Ich melde mich gleich wieder, ich versuche das mal mit der .set


    //edit: Mhh, Tatsache, es lag daran... aber warum dann nur auf meinem Server? Komische Sache, nungut, ich danke dir Vielmals!

    Heyho Leute, ich habe nun gescriptet, das man an der lezten Position Spawnt, an der man sich ausgeloggt hat. Laufen tut das ganze via MySQL
    Doch habe ich seidem ein Grafik Problem, der Ganze Bildschirm färbt sich erst nach dem Spawne Weiß-Gelblich und die CPU auslastung steigt ins unermessliche!
    Dies ist erst wen ich mich in mein Server eingeloggt habe, und auf "spawnen" gelickt habe.
    Auf anderen Server ist dies nicht der fall


    Hier mal ein Bild, damit man sich mehr darunter vorstellen kann


    Hier mal der Code
    enum SpielerDaten
    {
    pName[MAX_PLAYER_NAME],
    pLevel,
    pGeld,
    pKills,
    pTode,
    Float:pHealth,
    pAdmin,
    Float:xKord,
    Float:yKord,
    Float:zKord,
    }


    stock Float:mysql_GetFloat(Table[], Field[], Where[], Is[])
    {
    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;
    }


    stock LoadPlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    GetPlayerName(playerid, SpielerInfo[playerid][pName], MAX_PLAYER_NAME);
    SpielerInfo[playerid][pLevel] = mysql_GetInt("accounts", "Level", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pGeld] = mysql_GetInt("accounts", "Geld", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pKills] = mysql_GetInt("accounts", "Kills", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pTode] = mysql_GetInt("accounts", "Tode", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pAdmin] = mysql_GetInt("accounts", "Admin", "Name", SpielerInfo[playerid][pName]);
    //SpielerInfo[playerid][xxKord] = mysql_GetFloat("accounts", "xKord", "Name", SpielerInfo[playerid][pName]);
    //SpielerInfo[playerid][yyKord] = mysql_GetFloat("accounts", "yKord", "Name", SpielerInfo[playerid][pName]);
    //SpielerInfo[playerid][zzKord] = mysql_GetFloat("accounts", "zKord", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][xKord] = mysql_GetFloat("accounts", "xKord", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][yKord] = mysql_GetFloat("accounts", "yKord", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][zKord] = mysql_GetFloat("accounts", "zKord", "Name", SpielerInfo[playerid][pName]);
    //SetPlayerPos(playerid,SpielerInfo[playerid][xKord], SpielerInfo[playerid][yKord], SpielerInfo[playerid][zKord]); //Unter den anderen Sache
    SetPlayerHealth(playerid,SpielerInfo[playerid][pHealth]);
    }
    return 1;
    }
    stock SavePlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1)
    {
    new Float:xxKord,Float:yyKord,Float:zzKord;
    GetPlayerPos(playerid,xxKord,yyKord,zzKord);
    mysql_SetInt("accounts", "Level", SpielerInfo[playerid][pLevel], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Geld", SpielerInfo[playerid][pGeld], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Kills", SpielerInfo[playerid][pKills], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Tode", SpielerInfo[playerid][pTode], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Admin", SpielerInfo[playerid][pAdmin], "Name", SpielerInfo[playerid][pName]);
    GetPlayerHealth(playerid,SpielerInfo[playerid][pHealth]);
    mysql_SetFloat("accounts", "Health", SpielerInfo[playerid][pHealth], "Name", SpielerInfo[playerid][pName]);
    /* mysql_SetFloat("accounts", "xKord", SpielerInfo[playerid][xKord], "Name", SpielerInfo[playerid][pName]);
    mysql_SetFloat("accounts", "yKord", SpielerInfo[playerid][yKord], "Name", SpielerInfo[playerid][pName]);
    mysql_SetFloat("accounts", "zKord", SpielerInfo[playerid][zKord], "Name", SpielerInfo[playerid][pName]);*/
    mysql_SetFloat("accounts","xKord",xxKord,"Name",SpielerInfo[playerid][pName]);
    mysql_SetFloat("accounts","yKord",yyKord,"Name",SpielerInfo[playerid][pName]);
    mysql_SetFloat("accounts","zKord",zzKord,"Name",SpielerInfo[playerid][pName]);
    }
    }
    return 1;
    }


    Ich hoffe ihr könnt mir bei dem problem helfen. MFG

    //edit: nochmal ein Komplett Edit, damit jeder weis, wo man nun stehen geblieben ist,
    allso es geht immernoich darum, das die letzte spieler Position nicht geladen wird, bzw man nicht dort gespawnt wird.


    stock LoadPlayer
    stock LoadPlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {


    new Float:xxKord,Float:yyKord,Float:zzKord;
    GetPlayerPos(playerid,xxKord,yyKord,zzKord);
    GetPlayerName(playerid, SpielerInfo[playerid][pName], MAX_PLAYER_NAME);
    SpielerInfo[playerid][pLevel] = mysql_GetInt("accounts", "Level", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pGeld] = mysql_GetInt("accounts", "Geld", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pKills] = mysql_GetInt("accounts", "Kills", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pTode] = mysql_GetInt("accounts", "Tode", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pAdmin] = mysql_GetInt("accounts", "Admin", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][xxKord] = mysql_GetFloat("accounts", "xKord", "Name", SpielerInfo[playerid][pName]);//warning
    SpielerInfo[playerid][yyKord] = mysql_GetFloat("accounts", "yKord", "Name", SpielerInfo[playerid][pName]);//warning
    SpielerInfo[playerid][zzKord] = mysql_GetFloat("accounts", "zKord", "Name", SpielerInfo[playerid][pName]);//warning
    SetPlayerPos(playerid,SpielerInfo[playerid][xKord], SpielerInfo[playerid][yKord], SpielerInfo[playerid][zKord]); //Unter den anderen Sache
    SetPlayerHealth(playerid,SpielerInfo[playerid][pHealth]);
    }
    return 1;
    }


    stock SavePlayer


    stock SavePlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1)
    {
    new Float:xxKord,Float:yyKord,Float:zzKord;
    GetPlayerPos(playerid,xxKord,yyKord,zzKord);
    mysql_SetInt("accounts", "Level", SpielerInfo[playerid][pLevel], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Geld", SpielerInfo[playerid][pGeld], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Kills", SpielerInfo[playerid][pKills], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Tode", SpielerInfo[playerid][pTode], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Admin", SpielerInfo[playerid][pAdmin], "Name", SpielerInfo[playerid][pName]);
    GetPlayerHealth(playerid,SpielerInfo[playerid][pHealth]);
    mysql_SetFloat("accounts", "Health", SpielerInfo[playerid][pHealth], "Name", SpielerInfo[playerid][pName]);
    /* mysql_SetFloat("accounts", "xKord", SpielerInfo[playerid][xKord], "Name", SpielerInfo[playerid][pName]);
    mysql_SetFloat("accounts", "yKord", SpielerInfo[playerid][yKord], "Name", SpielerInfo[playerid][pName]);
    mysql_SetFloat("accounts", "zKord", SpielerInfo[playerid][zKord], "Name", SpielerInfo[playerid][pName]);*/
    mysql_SetFloat("accounts","xKord",xxKord,"Name",SpielerInfo[playerid][pName]);
    mysql_SetFloat("accounts","yKord",yyKord,"Name",SpielerInfo[playerid][pName]);
    mysql_SetFloat("accounts","zKord",zzKord,"Name",SpielerInfo[playerid][pName]);
    }
    }
    return 1;
    }


    der/die/das WTF enum
    enum SpielerDaten
    {
    pName[MAX_PLAYER_NAME],
    pLevel,
    pGeld,
    pKills,
    pTode,
    Float:pHealth,
    pAdmin,
    Float:xKord,
    Float:yKord,
    Float:zKord
    }


    Soo, allso ich werde nicht an der Letzten Position gespawnt, und ausserdem habe cih folgende Warnings.
    G:\Scripting\Eigenes script\gamemodes\RLScript.pwn(1286) : warning 213: tag mismatch
    G:\Scripting\Eigenes script\gamemodes\RLScript.pwn(1287) : warning 213: tag mismatch
    G:\Scripting\Eigenes script\gamemodes\RLScript.pwn(128 : warning 213: tag mismatch
    G:\Scripting\Eigenes script\gamemodes\RLScript.pwn(1373) : warning 213: tag mismatch
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Warnings.


    Wie gesagt, bin MySQL noob, und fände es sehr freundlich wen mir jemand unter die arme greift, und mir die fehler genau erklär!


    //edit:
    Ein Warning kommt noch von hier: aber erst seid dem ich das GetFloat bei LoadPlayer drinn habe
    stock mysql_GetFloat(Table[], Field[], Where[], Is[])
    {
    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; //warning
    }

    Zsss.... Rauskopieren.... GF.....


    Kinders, lern Scripten oder lasst es einfach, Ein Server ohne aktiven scripter ist MÜLL, wird doch eh wieder nur ein 0815 Server!

    ja, und? OCMD ist das wohl schnellste und übersichtlichste, aber gut, wie du willst
    if (strcmp(cmd, "/veh", true)==0 )
    {
    new tmp[256];
    new giveplayerid;
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) {
    SendClientMessage(playerid, 0xFFFFFFAA, "Benutze: /veh [model id]");
    return 1;
    }
    giveplayerid = strval(tmp);
    if(giveplayerid > 399 && giveplayerid < 612)
    {
    new Float:x,Float:y,Float:z,Float:a;
    GetPlayerPos(playerid,x,y,z);
    GetPlayerFacingAngle(playerid,a);
    SetPlayerPos(playerid,x,y,z+4);
    new vi = CreateVehicleEx(giveplayerid,x,y,z,a,-1,-1,3600000);


    LinkVehicleToInterior(vi,GetPlayerInterior(playerid));
    printf("***%s hat ein Auto createt",PlayerName(playerid));

    kmstand[vi] = 0;
    kaputtnach[vi] = 200;
    kaputtnachdatei[vi] = 200;
    autotuer[vi] = 1;
    PutPlayerInVehicle(playerid,vi,0);
    TogglePlayerControllable(playerid,1);

    for(new i;i<MAX_CARS;i++)
    {
    if(autotuer[i]==0)
    {
    if(dienst[playerid]==1 && beruf[playerid]==4)
    {
    SetVehicleParamsForPlayer(i,playerid,0,0);
    } else {
    SetVehicleParamsForPlayer(i,playerid,0,1);
    }
    } else {
    SetVehicleParamsForPlayer(i,playerid,0,0);
    }
    }

    } else {
    SendClientMessage(playerid,COLOR_RED,"DU NOOB! wegen dir wäre fast der Server abgestürzt! ^^");
    }
    return 1;
    }

    ocmd:veh(playerid,params[])
    {
    if(SpielerInfo[playerid][pAdmin] == 3 ) //musst du deinem script anpassen
    {
    new modelid;
    if(sscanf(params,"d",modelid))return SendClientMessage(playerid,0xFF0000,"Info: /create [model]");
    if(modelid < 400 || modelid > 611)return SendClientMessage(playerid,0xFF0000,"Ungültige Model-ID!");
    new Float:pos[3];
    GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
    CreateVehicle(modelid,pos[0]+1,pos[1]+1,pos[2],0,0,0,-1);
    }
    return 1;
    }

    Eigentlich schon, oder nicht?


    SetPlayerPos(playerid,SpielerInfo[playerid][xKord], SpielerInfo[playerid][yKord], SpielerInfo[playerid][zKord]);


    Oder erkäre es mir besser, ich fange grad erst mit MySQL an, und kenne mich damit noch "0" aus



    MFG

    Hallo Community,
    ich habe da ein kleines Problem, Udzwar Speichert mein Script nun endlich die letzte Position des spielers, aber aber das leben noc nicht
    Und spwanen tut er mich auch nicht auf der gespeicherten Position


    Wäre nett wen mir da nochmal jemand hilft


    Das enum:
    enum SpielerDaten
    {
    pName[MAX_PLAYER_NAME],
    pLevel,
    pGeld,
    pKills,
    pTode,
    Float:pHealth,
    pAdmin,
    xKord,
    yKord,
    zKord
    }
    new SpielerInfo[MAX_PLAYERS][SpielerDaten];


    Das Speichern beim public OnPlayerDisconnect
    SavePlayer(playerid);


    Der LoadPlayer und SavePlayer stock

    stock LoadPlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    GetPlayerName(playerid, SpielerInfo[playerid][pName], MAX_PLAYER_NAME);
    SpielerInfo[playerid][pLevel] = mysql_GetInt("accounts", "Level", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pGeld] = mysql_GetInt("accounts", "Geld", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pKills] = mysql_GetInt("accounts", "Kills", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pTode] = mysql_GetInt("accounts", "Tode", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pAdmin] = mysql_GetInt("accounts", "Admin", "Name", SpielerInfo[playerid][pName]);
    SetPlayerPos(playerid,SpielerInfo[playerid][xKord], SpielerInfo[playerid][yKord], SpielerInfo[playerid][zKord]); //Unter den anderen Sache
    }
    return 1;
    }
    stock SavePlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1)
    {
    new Float:xxKord,Float:yyKord,Float:zzKord;
    GetPlayerPos(playerid,xxKord,yyKord,zzKord);
    mysql_SetInt("accounts", "Level", SpielerInfo[playerid][pLevel], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Geld", SpielerInfo[playerid][pGeld], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Kills", SpielerInfo[playerid][pKills], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Tode", SpielerInfo[playerid][pTode], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Admin", SpielerInfo[playerid][pAdmin], "Name", SpielerInfo[playerid][pName]);
    mysql_SetFloat("accounts", "Health", SpielerInfo[playerid][pHealth], "Name", SpielerInfo[playerid][pName]);
    /* mysql_SetFloat("accounts", "xKord", SpielerInfo[playerid][xKord], "Name", SpielerInfo[playerid][pName]);
    mysql_SetFloat("accounts", "yKord", SpielerInfo[playerid][yKord], "Name", SpielerInfo[playerid][pName]);
    mysql_SetFloat("accounts", "zKord", SpielerInfo[playerid][zKord], "Name", SpielerInfo[playerid][pName]);*/
    mysql_SetFloat("accounts","xKord",xxKord,"Name",SpielerInfo[playerid][pName]);
    mysql_SetFloat("accounts","yKord",yyKord,"Name",SpielerInfo[playerid][pName]);
    mysql_SetFloat("accounts","zKord",zzKord,"Name",SpielerInfo[playerid][pName]);
    }
    }
    return 1;
    }


    //edit: Nun speichert er auch die Position, aber er gibt sie nicht wieder. und das Helth speichert er auch noch nicht