Beiträge von ENEF

    Huups :D


    Beim Speichern dann auch?


    mit GetPVarInt?


    Mit freundlichen Grüßen


    Edit:


    Jetzt geht er nicht mehr hoch, also wenn ich bsp den 12 Levelpunkt erreicht habe switcht er mich nicht auf lv 2 ..

    Spoiler anzeigen
    stock RequiredPoints(playerid)
    {
    new value = SpielerInfo[playerid][pLevel] * 4;
    new p = 12 + value;
    return p;
    }
    stock GivePlayerScore(playerid,amount)
    {
    SetPlayerScore(playerid,GetPlayerScore(playerid)+amount);
    return 1;
    }

    public PayDay(playerid)
    {
    SendClientMessage(playerid,info,"|____________Zahltag___________|");
    GivePlayerMoney(playerid,2000);
    SendClientMessage(playerid,hinweis,"Du hast 45 Minuten gespielt und bekommst nun dein Gehalt!");
    SetPVarInt(playerid, "pLevelPunkte", GetPVarInt(playerid, "pLevelPunkte")+1);
    SpielerInfo[playerid][pPayday] = 0;
    printf("playerid: %d | pLevelPunkte: %d | Required: %d", playerid, GetPVarInt(playerid, "pLevelPunkte"), RequiredPoints(playerid));
    if(GetPVarInt(playerid, "pLevelPunkte") == RequiredPoints(playerid))//Hier
    {
    printf("Level hoch");
    GivePlayerScore(playerid,1);
    SetPVarInt(playerid, "pLevelPunkte", 0);
    SpielerInfo[playerid][pLevel] ++;
    SendClientMessage(playerid,erfolg,"Herzlichen Glückwunsch, du bist ein Level gestiegen!");
    }
    return 1;
    }


    Jeffry:

    Okey


    Payday:


    Spoiler anzeigen
    //_______Paypay________//
    public ServerMinute()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    SpielerInfo[i][pPayday] += 1;
    if(SpielerInfo[i][pPayday] == 45)
    {
    PayDay(i);
    }
    }
    }
    return 1;
    }
    public PayDay(playerid)
    {
    SendClientMessage(playerid,info,"|____________Zahltag___________|");
    GivePlayerMoney(playerid,2000);
    SendClientMessage(playerid,hinweis,"Du hast 45 Minuten gespielt und bekommst nun dein Gehalt!");
    SetPVarInt(playerid, "pLevelPunkte", GetPVarInt(playerid, "pLevelPunkte")+1);
    SpielerInfo[playerid][pPayday] = 0;
    printf("playerid: %d | pLevelPunkte: %d | Required: %d", playerid, GetPVarInt(playerid, "pLevelPunkte"), RequiredPoints(playerid));
    if(GetPVarInt(playerid, "pLevelPunkte") == RequiredPoints(playerid))//Hier
    {
    printf("Level hoch");
    GivePlayerScore(playerid,1);
    SetPVarInt(playerid, "pLevelPunkte", 0);
    SpielerInfo[playerid][pLevel] ++;
    SendClientMessage(playerid,erfolg,"Herzlichen Glückwunsch, du bist ein Level gestiegen!");
    }
    return 1;
    }


    Laden:

    Spoiler anzeigen

    forward LoadPlayer(playerid);
    public LoadPlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1)
    {
    cache_get_field_content(0, "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pLevel] = cache_get_field_content_int(0, "Level");
    SpielerInfo[playerid][pGeld] = cache_get_field_content_int(0, "Geld");
    SpielerInfo[playerid][pKills] = cache_get_field_content_int(0, "Kills");
    SpielerInfo[playerid][pTode] = cache_get_field_content_int(0, "Tode");
    SpielerInfo[playerid][pAdmin] = cache_get_field_content_int(0, "Admin");
    SpielerInfo[playerid][pBanned] = cache_get_field_content_int(0, "Banned");
    SpielerInfo[playerid][pLeader] = cache_get_field_content_int(0, "Leader");
    SpielerInfo[playerid][pMember] = cache_get_field_content_int(0, "Member");
    SpielerInfo[playerid][pTeam] = cache_get_field_content_int(0, "Team");
    SpielerInfo[playerid][pRank] = cache_get_field_content_int(0, "Rank");
    SpielerInfo[playerid][pDuty] = cache_get_field_content_int(0, "Duty");
    SpielerInfo[playerid][pSkin] = cache_get_field_content_int(0, "Skin");
    SpielerInfo[playerid][pHealth] = cache_get_field_content_int(0, "Health");
    SpielerInfo[playerid][xKord] = cache_get_field_content_float(0, "xKord");
    SpielerInfo[playerid][yKord] = cache_get_field_content_float(0, "yKord");
    SpielerInfo[playerid][zKord] = cache_get_field_content_float(0, "zKord");
    SpielerInfo[playerid][pInterior] = cache_get_field_content_int(0, "Interior");
    SpielerInfo[playerid][pCarlic] = cache_get_field_content_int(0, "Carlic");
    SpielerInfo[playerid][pBikelic] = cache_get_field_content_int(0, "Bikelic");
    SpielerInfo[playerid][pFlylic] = cache_get_field_content_int(0, "Flylic");
    SpielerInfo[playerid][pBootlic] = cache_get_field_content_int(0, "Bootlic");
    SpielerInfo[playerid][pLKWlic] = cache_get_field_content_int(0, "LKWlic");
    SpielerInfo[playerid][Konto] = cache_get_field_content_int(0, "Konto");
    SpielerInfo[playerid][Kontostand] = cache_get_field_content_int(0, "Kontostand");
    SpielerInfo[playerid][Beantragt] = cache_get_field_content_int(0, "Beantragt");
    SpielerInfo[playerid][Pin] = cache_get_field_content_int(0, "Pin");
    SpielerInfo[playerid][Kontonr] = cache_get_field_content_int(0, "Kontonummer");
    SpielerInfo[playerid][Abholen] = cache_get_field_content_int(0, "Abholen");
    SpielerInfo[playerid][pAlter] = cache_get_field_content_int(0, "Alter");
    SpielerInfo[playerid][pGeschlecht] = cache_get_field_content_int(0, "Geschlecht");
    SpielerInfo[playerid][pLevelpunkte] = cache_get_field_content_int(0, "Levelpunkte");//Levelpunkte!!
    SpielerInfo[playerid][pPayday] = cache_get_field_content_int(0, "Payday");//payday
    SpielerInfo[playerid][pHerkunft] = cache_get_field_content_int(0, "Herkunft");
    cache_get_field_content(0, "Verheiratetmit", SpielerInfo[playerid][pVerheiratetmit]);
    SpielerInfo[playerid][pTelenummer] = cache_get_field_content_int(0, "Telefonnummer");
    SpielerInfo[playerid][pTut] = cache_get_field_content_int(0, "Tutorial");
    SpielerInfo[playerid][pDutyskin] = cache_get_field_content_int(0, "Dutyskin");
    SpielerInfo[playerid][pTot] = cache_get_field_content_int(0, "Tot");
    SpielerInfo[playerid][pTotskin] = cache_get_field_content_int(0, "Totskin");
    SetPlayerPos(playerid,SpielerInfo[playerid][xKord], SpielerInfo[playerid][xKord], SpielerInfo[playerid][zKord]);
    SetPlayerInterior(playerid,SpielerInfo[playerid][pInterior]);
    SetPlayerSkin(playerid,SpielerInfo[playerid][pSkin]);
    GivePlayerMoney(playerid, SpielerInfo[playerid][pGeld]);
    }
    }

    return 1;
    }


    Und dann hier in meinen Stats.


    Spoiler anzeigen
    format(_string_table[0],512,"~g~~h~Privat:~w~~n~----------~n~~w~Name: ~g~~h~%s~n~~w~Alter: ~g~~h~%d~n~~w~Geschlecht: ~g~~h~%s~n~~w~Level: ~g~~h~%d~n~~w~Levelpunkte: ~g~~h~%d~n~~w~Spawnenergie: ~g~~h~%d~n~~w~Leben: ~g~~h~%d~n~~n~~n~~w~",
    SpielerName(playerid),SpielerInfo[playerid][pAlter],SpielerInfo[playerid][pGeschlecht], SpielerInfo[playerid][pLevel],SpielerInfo[playerid][pLevelpunkte]);


    Levelpunkte geht wie gesagt immer auf 0 Zurück..


    Danke dir für deine Hilfe :)


    MfG

    Hallöchen.


    Ich habe ein kleines Problem und zwar habe ich nun eine SetPlayerWordBounds Zone in mein Script eingebaut für die Toten damit sie auf dem Friedhof bleiben.
    Diese funktion wird nur ausgeführt wenn pTot auf 1 ist.
    Nachdem man seine Zeit auf dem Friedhof abgessen hat wird man entweder wenn man reanimiert wurde an seinen alten Positionen gespawnt, oder am Krankenhaus wenn nicht.


    Bloß wenn ich bei einem von beiden Spawne zieht es mich wieder zum Friedhof obwohl die Variable auf 0 ist.


    Spoiler anzeigen
    public tottimer(playerid)
    {
    if(SpielerInfo[playerid][pTot] == 0)return KillTimer(tott[playerid]);
    tzeit[playerid] --;
    if(tzeit[playerid] == 0)
    {
    SetPlayerPos(playerid,-2655.4741,636.9430,14.4531);
    SetPlayerVirtualWorld(playerid,0);
    KillTimer(tott[playerid]);
    SetPlayerHealth(playerid, 100);
    DestroyPickup(toticon[playerid]);
    Delete3DTextLabel(totlabel);
    TogglePlayerControllable(playerid,1);
    SpielerInfo[playerid][pTot] = 0;
    tzeit[playerid] = -1;
    SetPlayerSkin(playerid,oskin[playerid]);
    SendClientMessage(playerid, erfolg, "Die Ärzte haben zulange gebraucht. Du wurdest nun im Krankenhaus wiederbelebt.");
    }
    return 1;
    }

    Spoiler anzeigen
    public reanimation(playerid)
    {
    new Float:x,Float:y,Float:z,string[144];
    GetPlayerPos(playerid,x,y,z);
    for(new i = 0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(SpielerInfo[i][pTot] == 0)continue;
    if(!IsPlayerInRangeOfPoint(playerid,5,tx[i],ty[i],tz[i]))continue;
    format(string,144,"Du hast den Spieler '%s' erfolgreich reanimiert.",SpielerName(i));
    SendClientMessage(playerid,erfolg,string);
    format(string,144,"'%s' hat dich erfolgreich reanimiert.",SpielerName(playerid));
    SendClientMessage(i,erfolg,string);
    SetPlayerHealth(i, 100);
    SetPlayerPos(i,x,y,z);
    KillTimer(tott[i]);
    DestroyPickup(toticon[playerid]);
    Delete3DTextLabel(totlabel);
    tzeit[i] = -1;
    SpielerInfo[i][pTot] = 0;
    SetPlayerVirtualWorld(i,0);
    TogglePlayerControllable(i,1);
    SetPlayerSkin(i,oskin[playerid]);
    }
    return 1;
    }


    Wie man sehen kann wird es auf 0 gestellt, hier mal meine Funktion mit dem Bounds


    public OnPlayerLeaveDynamicArea(playerid, areaid) {
    //_________Tot-System___________________//
    if(areaid == Totzone[1]) {
    if(SpielerInfo[playerid][pTot] == 1) {
    SetPlayerWorldBounds(playerid, -2692.109, -2784.814, -218.6009, -360.6196);
    SetPlayerVirtualWorld(playerid, 1);}
    return 1; }


    Eigentlich dürfte der Spieler ja dann nicht mehr zurück gezogen werden da die Variable auf 0 ist.



    Mit freundlichen Grüßen

    Wieso wird mir die Nachricht beim sterben nicht gesendet?
    Meine Variable pTot wird auch nicht auf 1 gesetzt.


    public OnPlayerDeath(playerid, killerid, reason)
    {
    SpielerInfo[playerid][pTode] +=1;
    SpielerInfo[killerid][pKills] +=1;
    SpielerInfo[playerid][pDuty] = 0;
    //if(SpielerInfo[playerid][pTot] != 1) {
    SpielerInfo[playerid][pTot] = 1;
    SendClientMessage(playerid, info, "Du bist nun tot"); //}
    TextDrawHideForPlayer(playerid,txtTimeDisp);
    return 1;
    }


    Mit freundlichen Grüßen Tv

    Ja klar, also ich komme ja on mit bsp 3 Levelpunkten jedoch krieg ich dann ein payday dann sind die wieder 0


    Und wie finde ich den Fehler ?
    ich habe ja nirgendwo ausser bei einem Textdraw die Variablen benutzt ..



    Jeffry:


    Mit freundlichen Grüßen

    Irgendwie geht es so.
    Anfangs hat es kurz gebuggt da es angefangen hat bevor ich eingeloggt war, danach hab ich einen Relog gemacht und dann hat er erst nach dem einloggen normal gezählt
    bin sogar Lv up geworden.



    Hier die Prints:

    SQL
    [03:17:37] [join] niddo_189 has joined the server (0:127.0.0.1)[03:17:44] playerid: 0 | pLevelPunkte: 1 | Required: 24[03:17:44] playerid: 0 | pLevelPunkte: 2 | Required: 24[03:17:45] playerid: 0 | pLevelPunkte: 3 | Required: 24[03:17:46] playerid: 0 | pLevelPunkte: 4 | Required: 24[03:17:46] playerid: 0 | pLevelPunkte: 5 | Required: 24[03:17:47] playerid: 0 | pLevelPunkte: 6 | Required: 24[03:17:48] playerid: 0 | pLevelPunkte: 7 | Required: 24[03:17:48] playerid: 0 | pLevelPunkte: 8 | Required: 24[03:17:49] playerid: 0 | pLevelPunkte: 9 | Required: 24[03:17:50] playerid: 0 | pLevelPunkte: 10 | Required: 24[03:17:50] playerid: 0 | pLevelPunkte: 11 | Required: 24[03:17:51] playerid: 0 | pLevelPunkte: 12 | Required: 24[03:17:52] playerid: 0 | pLevelPunkte: 13 | Required: 24[03:17:52] playerid: 0 | pLevelPunkte: 14 | Required: 24[03:17:53] playerid: 0 | pLevelPunkte: 15 | Required: 24[03:17:54] playerid: 0 | pLevelPunkte: 16 | Required: 24[03:17:54] playerid: 0 | pLevelPunkte: 17 | Required: 24[03:17:55] playerid: 0 | pLevelPunkte: 18 | Required: 24[03:17:56] playerid: 0 | pLevelPunkte: 19 | Required: 24[03:17:56] playerid: 0 | pLevelPunkte: 20 | Required: 24[03:17:57] playerid: 0 | pLevelPunkte: 21 | Required: 24[03:17:58] playerid: 0 | pLevelPunkte: 22 | Required: 24[03:17:58] playerid: 0 | pLevelPunkte: 23 | Required: 24[03:17:59] playerid: 0 | pLevelPunkte: 24 | Required: 24[03:17:59] Level hoch[03:18:00] playerid: 0 | pLevelPunkte: 1 | Required: 28[03:18:00] playerid: 0 | pLevelPunkte: 2 | Required: 28[03:18:01] query: UPDATE accounts SET Name = 'niddo_189', Level = '4', Geld = '191913', Kills = '0', Tode = '11', Admin = '5', Banned = '0', Leader = '1', Member = '0', Team = '1', Rank = '6', Duty = '0', Skin = '294', Health = '0.000000', xKord = '-1590.784179', yKord = '742.447326', zKord = '-5.242187', Interior = '0', Carlic = '1', Bikelic = '1', Flylic = '0', Bootlic = '0', LKWlic = '0', Konto = '1', Kontostand = '2035', Beantragt = '0', Pin = '1229', Kontonummer = '2006', Abholen = '0', `Alter` = '0', Geschlecht = '0', Levelpunkte = '0', Payday = '0', Herkunft = '0', Verheiratetmit = '', Telefonnummer = '1229', Tutorial = '0', Dutyskin = '283'  WHERE Name = 'niddo_189'[03:18:01] [part] niddo_189 has left the server (0:1)


    Also hat jetzt was überschrieben und mit den PVars geht es ^^


    //Edit:
    Aber irgendwie wird nach jeden Payday die Levelpunkte auf 0 gesetzt sofern man nicht alle in einem Spielablauf bekommt(ich gehe mit 3 Levelpunkte off, komme On bekomme einen Payday und habe dann wieder 0 (eig 4))



    MfG
    Jeffry:

    Hallo, ich wollte ein Dynamisches Pickups System erstellen wo man Ingame alles machen kann und es dann in MySQL gespeichert wird.
    Es soll vom Script aus eine Tabelle erstellt werden was es aber nicht tut -.-



    Hier mal die log:

    SQL
    [14:57:42] [DEBUG] mysql_tquery - connection: 1, query: "CREATE TABLE IF NOT EXISTS `pickups` (`id` int(11) NOT NULL AUTO", callback: "(null)", format: "(null)"[14:57:42] [DEBUG] mysql_tquery - connection: 1, query: "", callback: "(null)", format: "(null)"[14:57:42] [DEBUG] CMySQLConnection::Connect - establishing connection to database...[14:57:42] [DEBUG] CMySQLConnection::Connect - establishing connection to database...[14:57:42] [DEBUG] cache_get_field_content_int - row: 0, field_name: "PickupID", connection: 1[14:57:42] [DEBUG] CMySQLConnection::Connect - establishing connection to database...[14:57:42] [WARNING] cache_get_field_content_int - no active cache[14:57:42] [DEBUG] CMySQLConnection::Connect - connection was successful[14:57:42] [DEBUG] CMySQLConnection::Connect - connection was successful[14:57:42] [DEBUG] CMySQLConnection::Connect - connection was successful[14:57:42] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled[14:57:42] [DEBUG] cache_get_field_content_float - row: 0, field_name: "PickupX", connection: 1[14:57:42] [DEBUG] CMySQLQuery::Execute[] - starting query execution[14:57:42] [DEBUG] cache_get_field_content_float - row: 0, field_name: "PickupY", connection: 1[14:57:42] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '`PickupWorld` int(11),`Farbcode` int(11),PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAU' at line 1[14:57:42] [DEBUG] CMySQLQuery::Execute[] - error will be triggered in OnQueryError


    Und hier der Code:
    public OnFilterScriptInit()
    {
    /* print("\n--------------------------------------");
    print(" Dynamische Pickups von TVPikachu");
    print("--------------------------------------\n");*/
    mysql_log(LOG_ALL);
    new query[124];
    if(mysql_errno() < 1)print("MySQL: Die Verbindung wurde erfolgreich hergestellt."),mysql_log(LOG_ALL); else print("MySQL: Die Verbindung zur MySQL Datenbank konnte nicht hergestellt werden | Der Server wird nun heruntergefahren."), SendRconCommand("exit");
    dbhandle = mysql_connect(SQL_HOST, SQL_USER, SQL_DATA, SQL_PASS);
    mysql_tquery(dbhandle, "CREATE TABLE IF NOT EXISTS `pickups` (`id` int(11) NOT NULL AUTO_INCREMENT, `AusgangLabel` varchar(24), `EingangLabel` varchar(24), `PickupID` int(11), `PickupX` float(10),`PickupY` float(10),`PickupZ` float(10), `EnterX` float(10),`EnterY` float(10),`EnterZ` float(10),`PickupInt` int(11),,`PickupWorld` int(11),`Farbcode` int(11),PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;");
    mysql_tquery(dbhandle, query);
    printf("query: %s", query);
    for(new i=0; i<MAX_PICKUPS; i++) {
    LoadPickup(i); }
    return 1;
    }


    Mit freundlichen Grüßen

    Loadplayer nur da wo er geladen werden soll:


    Spoiler anzeigen
    forward CheckPassword(playerid);
    public CheckPassword(playerid)
    {
    if(cache_num_rows() != 0)
    {
    SetPVarInt(playerid,"Eingeloggt",1);
    LoadPlayer(playerid);
    SpawnPlayer(playerid);
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Einloggen","Datenbank: Das war das falsche Passwort!","Login","Abbrechen");
    }
    return 1;
    }


    Key:
    Jeffry:



    Mit freundlichen Grüßen


    TV ^^

    Kram ? ^^
    Ich versuche dir zu helfen und meins ist sicher nicht falsch.


    Lad das Script auf Pastebin hoch und ich schau es mir an. ;)



    MfG

    Frägst du überhaupt irgendwo ab welches Level er hat beim Speichern?


    bsp:
    new score = GetPlayerScore(playerid);
    new geld = GetPlayerMoney(playerid);


    Also:
    savePlayer(playerid)
    {
    if(sInfo[playerid][eingeloggt]==0) return 1;
    //speichern level,adminlevel,geld,id
    new score = GetPlayerScore(playerid);
    new geld = GetPlayerMoney(playerid);
    new query[256];
    format(query,sizeof(query),"UPDATE user SET Adminlevel='%i' ,money='%i' ,level='%i',id='%i' WHERE id='%i'",sInfo[playerid][Adminlevel],geld,score,sInfo[playerid][id]);
    return 1;
    }


    //Edit:
    Das gleiche Prinzip beim Laden ;)


    Mit freundlichen Grüßen

    Also Level benutze ich nur noch in meinem Textdraw genau so wie Levelpunkte:
    format(_string_table[0],512,"~g~~h~Privat:~w~~n~----------~n~~w~Name: ~g~~h~%s~n~~w~Alter: ~g~~h~%d~n~~w~Geschlecht: ~g~~h~%s~n~~w~Level: ~g~~h~%d~n~~w~Levelpunkte: ~g~~h~%d~n~~w~Spawnenergie: ~g~~h~%d~n~~w~Leben: ~g~~h~%d~n~~n~~n~~w~",
    SpielerName(playerid),SpielerInfo[playerid][pAlter],SpielerInfo[playerid][pGeschlecht], SpielerInfo[playerid][pLevel],SpielerInfo[playerid][pLevelpunkte]);


    Sonst nirgendwo, mein Payday nur im Befehl:
    ocmd:payday(playerid,params[])
    {
    new string[34];
    format(string, sizeof(string), "Du hast %d Minuten gespielt.",SpielerInfo[playerid][pPayday]);
    SendClientMessage(playerid, info, string);
    return 1;
    }


    Also ich habe den Code ja nicht unter OnGameModeInit sondern im Script weit unten.


    Jeffry:
    Key:


    Mit freundlichen Grüßen


    TV^^