Beiträge von rocco95

    jo weil ein filterscript speichert vllt wo anders account dateien, als wo du zum beispiel jetzt dein geld oder so beim disconnecten speicherst also von der datei her, drum ist es immer besser sowas immer selber zu machen

    ok damit ist der 1. error weg (also die errors bei zeile 57)



    die 2 unteren warnings könnt ihr ignorieren. da weiß ich wie es geht, bzw. hab die funktionen noch nicht wo ich das verwende.


    meine momentanen errors:


    C:\Dokumente und Einstellungen\Rocco\Desktop\samp03e_svr_R2_win32\gamemodes\test.pwn(138) : error 047: array sizes do not match, or destination array is too small



    stock CreateAccount(playerid,pass[])
    {
    new Account[128];
    Account = PlayerAccount(playerid);
    setString:Account("Passwort",pass); //Zeile 138
    setFloat:Account("posX",1512.0344);
    setFloat:Account("posY",-1674.6484);
    setFloat:Account("posZ",14.0469);
    setFloat:Account("posA",268.5105);
    return 1;
    }


    //der stock für playeraccount


    stock PlayerAccount(playerid)
    {
    new Acc[128];
    format(Acc,sizeof(Acc), "/Accounts/%s", SpielerName(playerid));
    return 1;
    }

    ich erhalte folgende errors un warnings bei folgenden zeilen:


    test.pwn(57) : warning 202: number of arguments does not match definition
    test.pwn(57) : warning 202: number of arguments does not match definition
    test.pwn(57) : error 033: array must be indexed (variable "Name")
    test.pwn(137) : error 033: array must be indexed (variable "Account")
    test.pwn(138) : error 047: array sizes do not match, or destination array is too small
    test.pwn(146) : warning 203: symbol is never used: "playerid"
    test.pwn(160) : warning 203: symbol is never used: "SpielerInfo"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    3 Errors.



    für zeile 57:



    stock SpielerName(playerid)
    {
    new Name[MAX_PLAYER_NAME];
    Name = GetPlayerName(playerid);
    return 1;
    }


    für zeile 137-138



    stock CreateAccount(playerid,pass[])
    {
    new Account[128];
    Account = PlayerAccount(playerid);
    setString:Account("Passwort",pass);
    setFloat:Account("posX",1512.0344);
    setFloat:Account("posY",-1674.6484);
    setFloat:Account("posZ",14.0469);
    setFloat:Account("posA",268.5105);
    return 1;
    }


    //der stock für playeraccount


    stock PlayerAccount(playerid)
    {
    new Acc[128];
    format(Acc,sizeof(Acc), "/Accounts/%s", SpielerName(playerid));
    return 1;
    }


    was ist da nicht in ordnung ?

    ich erhalte bei allen meinen format zeilen den einen error:



    new eAccount[128];
    format(eAccount,sizeof(eAccount),"/Accounts/%s.hsa", SpielerName);//Zeile 64


    test.pwn(64) : error 076: syntax error in the expression, or invalid function call

    naja das load account hab ich ja von maddin aber war er nicht erklärt hat ist ja das zu beispiel mit dem SetPlayerSkin dazu sagt er ja nichts drum hab ich das mit hier rein gemacht in diesen stock


    oder soll ich nen neuen stock machen für SetPlayer... (aber schonender ist das doch auch nicht :D

    ich arbeite un mal mit enum weil ich das auch mal probieren möchte :D


    da habe ich ein login und register system nur wenn ich mich registriere spawne ich nicht


    hier meine funktion:



    stock LoadAccount(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    SetPVarInt(playerid,"Eingeloggt",1);
    GetPlayerName(playerid, SpielerInfo[playerid][pName], MAX_PLAYER_NAME);
    SpielerInfo[playerid][pGeld] = mysql_GetInt("Accounts", "Geld", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pSkin] = mysql_GetInt("Accounts", "Skin", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pPosX] = mysql_GetInt("Accounts", "pPosX", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pPosY] = mysql_GetInt("Accounts", "pPosY", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pPosZ] = mysql_GetInt("Accounts", "pPosZ", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pPosA] = mysql_GetInt("Accounts", "pPosA", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pInt] = mysql_GetInt("Accounts", "Interior", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pLevel] = mysql_GetInt("Accounts", "Level", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pHealth] = mysql_GetFloat("Accounts", "Health", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pArmor] = mysql_GetFloat("Accounts", "Armor", "Name", SpielerInfo[playerid][pName]);
    SpawnPlayer(playerid);
    GivePlayerMoney(playerid,SpielerInfo[playerid][pGeld]);
    SetPlayerSkin(playerid,SpielerInfo[playerid][pSkin]);
    SetPlayerPos(playerid,SpielerInfo[playerid][pPosX],SpielerInfo[playerid][pPosY],SpielerInfo[playerid][pPosZ]);
    SetPlayerInterior(playerid,SpielerInfo[playerid][pInt]);
    SetPlayerScore(playerid,SpielerInfo[playerid][pLevel]);
    SetPlayerHealth(playerid,SpielerInfo[playerid][pHealth]);
    SetPlayerArmour(playerid,SpielerInfo[playerid][pArmor]);
    }
    return 1;
    }


    meine 2. frage dieser code ist der zu ressourcenlastig ?

    darf man verstehen das du jemanden geld geben willst also das du so givemoney machen willst.


    ich meine damit ich gebe dir von mir 5 euro die zieht es mit ab un du bekommst sie oder willst du das einfach nur der jenige per befehl einfach geld bekommt ?

    da musst aus aus dem server gehen und per hand in der account ini das den tutorial wert oder wie der dort heißt um stellen ich glaube von 0 auf 1 dann vllt server nochmal neu starten und dann biste unfreezed


    ich hatte das auch wo ich den gamemode verwendet hab un hatte das problem so lösen können

    also die tabellen struktur ist bei den 4 werten also die typen sind alle auf float gestellt und eingetragen werden sie auch imemr ohne punkt und rest also wird er es ingame sicher auch so ausgeben :D

    ich möchet bei meiner datenbank bei createaccount diese zeile rein machen:

    format(query, sizeof(query), "INSERT INTO `Accounts` (`Name`, `Passwort`, `Geld`, `Skin`, `posX`, `posY`, `posZ`, `posA`) VALUES ('%s', '%s', '5000', '0', '1512.0344', '-1674.6484', '14.0469', '268.5105')", Name, passwort);


    geht auch nur werden die koordinaten in der datenbank ohne punkt und rest gespeichert also für -1674.6484 steht dann in der datenbank 1674 drin das ist auch bei den anderen koordinaten so also feld typ hab ich dort unter Nummeric Float ausgewählt