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
Beiträge von rocco95
-
-
naja wenn du scripten kannst dann könntest du doch auch die fehler beheben
-
schon gemacht der löst mein prob leider auch nicht^^
-
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 CompuPhase3 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 ?
-
ne hab es jetzt ich hatte bei dem stock SpielerName unter new Name[MAX_PLAYER_NAME] das ER bei PLAY(ER) vergessen nun geht alles
-
ja aber da muss ich fopen un fclose etc machen ich mach das mit hsa das läuft auch sehr schnell^^
-
ich erhalte bei allen meinen format zeilen den einen error:
new eAccount[128];
format(eAccount,sizeof(eAccount),"/Accounts/%s.hsa", SpielerName);//Zeile 64test.pwn(64) : error 076: syntax error in the expression, or invalid function call
-
ja vllt lass ich das mit mysql
-
hm naja kann ich da auch das hsa system verwenden ?
-
ja wie den auseinander pflügen ? (also was soll ich dort raus nehmen) ?
-
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
-
und wie kann ich das ressourcen schonender machen ?
-
ich arbeite un mal mit enum weil ich das auch mal probieren möchte
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 ?
-
ja habs gemerkt ist mir auch etwas zu kompliziert
drum nehm ich die, die es im tut gibt^^
-
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
-
gib bei google gta sa recovery tool ein und hol dir deine gta sa cd raus also den inhalt der dvd (installations dvd) rest dann den anweisungen des recoverers folgen
-
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
-
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