EDIT:// Falscher Thread ich dummkopf
Beiträge von .snx
-
-
Level & Geld hab ich hinbekommen,
allerdings payday & Banned ist nun das problem
Werden immer wieder auf null gesetzt nach dem Login.Beim Login steht
public OnPlayerConnect(playerid)
{
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Spieler,sizeof(Spieler),"/Accounts/%s.cfg",Sname);
if(dini_Exists(Spieler))
{
if(dini_Int(Spieler,"Banned") == 1)
{
SendClientMessage(playerid,dunkelrot,"Du bist gebannt!");
Kick(playerid);
}
}
if(dini_Exists(Spieler))
{
ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_INPUT,"****** LOGIN ******","Account wurde gefunden\nBitte gebe dein Passwort ein:","WEITER","ABBRUCH");
}
else
{
ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"****** REGISTRIERUNG ******","Account nicht gefunden\nBitte erstelle dein Passwort:","WEITER","ABBRUCH");
}
new PName[MAX_PLAYER_NAME];
GetPlayerName(playerid,PName,sizeof(PName));
if ( strfind ( PName, "_", false , false) == -1 && !IsPlayerNPC (playerid) )
{
SendClientMessage(playerid,dunkelrot,"Sie haben keinen Roleplay Namen. Bitte benutze folgende Vorlage:");
SendClientMessage(playerid,dunkelrot,"Max_Mustermann , Steve_Riley , Jayson_Smith , etc.");
Kick(playerid);
return 1;
}
return 1;
}Der Spieler lädt bei meinem Login Stock.
stock SpielerSpeichern(playerid)
{
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Spieler,sizeof(Spieler),"/Accounts/%s.cfg",Sname);
dini_IntSet(Spieler,"Adminlevel",pInfo[playerid][Admin]);
dini_IntSet(Spieler,"Level",GetPlayerScore(playerid));
dini_IntSet(Spieler,"Geld",GetPlayerMoney(playerid));
dini_IntSet(Spieler,"Banned",pInfo[playerid][Banned]);
dini_IntSet(Spieler,"payday",pInfo[playerid][payday]);
return 1;
}stock SpielerLaden(playerid)
{
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Spieler,sizeof(Spieler),"/Accounts/%s.cfg",Sname);
dini_Int(Spieler,"Adminlevel");
new getlevel = dini_Int(Spieler,"Level");
SetPlayerScore(playerid, getlevel);
new getmoney = dini_Int(Spieler,"Geld");
GivePlayerMoney(playerid, getmoney);
dini_Int(Spieler,"Banned");
dini_Int(Spieler,"payday");
return 1;
} -
Danke an alle funktioniert perfekto gusto!
-
So weit, so gut.
Das Problem gelöst, kommt bei SetPlayerScore ebenfalls errors....BTW: Das sollte nur zum test sein mit der Minute, wie müsste das aussehen wenn ich das auf 60Minuten hochschrauben wollen würde?
-
Was bedeutet das -- ? -- = -1?
Und ebenso spuckt er mir noch fehler bei dem GivePlayerMoney aus.
-
Moin @breadfish User,
Ich hab mir eben nach kleiner Anleitung mal ein PayDay System gescriptet und ich verzweifle gerade...
public minute()
{
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
dini_IntSet(i,"payday",pInfo[playerid][payday]+1);
if(pInfo[playerid][payday]==1)
{
dini_IntSet(i,"payday",pInfo[playerid][payday]-1);
GivePlayerMoney(i,+1500);
SetPlayerScore(i,+1);
SendClientMessageToAll(dunkelgrün, "Du hast deinen Gehaltscheck erhalten. 2500€");
continue;
}
}
}
}errors:
C:\Users\danie\Desktop\SERVER\gamemodes\script.pwn(573) : error 035: argument type mismatch (argument 1)
C:\Users\danie\Desktop\SERVER\gamemodes\script.pwn(574) : error 017: undefined symbol "playerid"
C:\Users\danie\Desktop\SERVER\gamemodes\script.pwn(576) : error 035: argument type mismatch (argument 1)
C:\Users\danie\Desktop\SERVER\gamemodes\script.pwn(577) : error 029: invalid expression, assumed zero
C:\Users\danie\Desktop\SERVER\gamemodes\script.pwn(577) : warning 215: expression has no effect
C:\Users\danie\Desktop\SERVER\gamemodes\script.pwn(577) : error 001: expected token: ";", but found ")"
C:\Users\danie\Desktop\SERVER\gamemodes\script.pwn(577) : error 029: invalid expression, assumed zero
C:\Users\danie\Desktop\SERVER\gamemodes\script.pwn(577) : fatal error 107: too many error messages on one lineCompilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
7 Errors.
Hilfe wäre echt nett
-
Hay, ich bin heute mal wieder hier wegen einem kleinen Speicher Problem.
Hier der Stock zum Registrieren
stock Register(playerid,key[])
{
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Spieler,sizeof(Spieler),"/Accounts/%s.cfg",Sname);
dini_Create(Spieler);
dini_Set(Spieler,"Passwort",key);
dini_IntSet(Spieler,"Fraktion",0);
dini_IntSet(Spieler,"Adminlevel",0);
dini_IntSet(Spieler,"Banned",0);
dini_IntSet(Spieler,"Geld",0);
GivePlayerMoney(playerid, 25000);
dini_IntSet(Spieler,"Level",0);
SetPlayerScore(playerid,1);
SetSpawnInfo(playerid,0,0,1567.9358,-1891.7168,13.5593,359.1738,0,0,0,0,0,0);
SpawnPlayer(playerid);
return 1;
}Hier die Stocks zum Laden&Speichern
stock SpielerSpeichern(playerid)
{
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Spieler,sizeof(Spieler),"/Accounts/%s.cfg",Sname);
dini_IntSet(Spieler,"Fraktion",pInfo[playerid][Fraktion]);
dini_IntSet(Spieler,"Adminlevel",pInfo[playerid][Admin]);
dini_IntSet(Spieler,"Level",GetPlayerScore(playerid));
dini_IntSet(Spieler,"Geld",GetPlayerMoney(playerid));
dini_IntSet(Spieler,"Banned",pInfo[playerid][Banned]);
return 1;
}stock SpielerLaden(playerid)
{
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Spieler,sizeof(Spieler),"/Accounts/%s.cfg",Sname);
pInfo[playerid][Admin]=dini_Int(Spieler,"Adminlevel");
pInfo[playerid][Fraktion]=dini_Int(Spieler,"Fraktion");
pInfo[playerid][Level]=dini_Int(Spieler,"Level");
pInfo[playerid][Geld]=dini_Int(Spieler,"Geld");
pInfo[playerid][Banned]=dini_Int(Spieler,"Banned");
return 1;
}Ich gebe dem Spieler bei der Registration 25000€, nach dem ausloggen stand alles noch richtig in der Spielerdatei mit 25000€(nachgeschaut), allerdings nach dem erneuten einloggen sind diese weg und in der Spielerdatei steht auch 0€.
Das gleiche mit dem Level(Score) und dem Banned....Ich kapier es einfach nicht...
Hilfe wäre nett -
Funktioniert! Herzlichen dank!
-
Mensch bin ich heute dämlich
Aber, nun sagt er
array must be indexed (variable "dini_Get")Gab es da nichts zum abrufen der Datei?
-
Vergiss die Zeile, das ist der Code
if(dini_Get(Spieler,"Banned" == 1)Irgendwat scheint da nicht zu passen
-
Danke @DasNeo
Der fehler mit dem Aufhängen ist nun behoben.
Allerdings kommen jetzt errors, -
Oh, das hab ich gar nicht gesehen
Aber das hat den Fehler leider nicht behoben -
Hey Breadfish,
Also ich hab mir nen kleines Bansystem geschrieben(hust*)
und bekomme immer den Fehler Compiler reagiert nicht mehr seit dem.
Wenn ich das System wieder entferne gehts wieder
public OnPlayerConnect(playerid)
{
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Spieler,sizeof(Spieler),"/Accounts/%s.cfg",Sname);
if(dini_Get(Spieler,"Banned" = 1)
{
if(dini_Exists(Spieler))
{
SendClientMessage(playerid,dunkelrot,"Du bist gebannt!");
Kick(playerid)
}
}
else
{
if(dini_Exists(Spieler))
{
ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_INPUT,"LOGIN","Account wurde gefunden\nBitte gebe dein Passwort ein:","WEITER","ABBRUCH");
}
else
{
ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"REGISTRIERUNG","Account nicht gefunden\nBitte erstelle dein Passwort:","WEITER","ABBRUCH");
}
}
return 1;
}Hilfe wäre nett
-
Huawei P8 LiteIm Laden wo mein Vater arbeitet, von ~180€ auf 108€ runtergesetzt
-
Der Stock SpielerLaden
[list=1][*]stock SpielerLaden(playerid)
[*]{
[*]new Spieler[64];
[*]new Sname[MAX_PLAYER_NAME];
[*]GetPlayerName(playerid,Sname,sizeof(Sname));
[*]format(Spieler,sizeof(Spieler),"/Accounts/%s.cfg",Sname);
[*]pInfo[playerid][Admin]=dini_Int(Spieler,"Adminlevel");
[*]pInfo[playerid][Fraktion]=dini_Int(Spieler,"Fraktion");
[*]pInfo[playerid][Level]=dini_Int(Spieler,"Level");
[*]pInfo[playerid][Geld]=dini_Int(Spieler,"Geld");
[*]return 1;
[*]}
[/list]ansonsten halt noch
if(dialogid == LOGIN)
{
if(response == 0)
{
SendClientMessage(playerid,weiß,"Du hast den Login Vorgang abgebrochen.");
Kick(playerid);
return 1;
}
if(response == 1)
{
SpielerLaden(playerid);
Login(playerid,inputtext);
return 1;
}
}Aber sonst momentan keiner.
-
LÖSCHEN BITTE
-
Dann kann doch trotzdem jeder zugreifen weil das Script ja nicht abfragt welcher Admin ist und welcher nicht? Oder liege ich da falsch?
//EDIT:
Habs falsch gelesen schon gut//EDIT2:
Alle fehler ausgemärzt bis auf einen.
Der Integer in der Spielerdatei setzt sich immer wieder auf 0 zurück nach dem Logout...
stock Register(playerid,key[])
{
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Spieler,sizeof(Spieler),"/Accounts/%s.cfg",Sname);
dini_Create(Spieler);
dini_Set(Spieler,"Passwort",key);
dini_IntSet(Spieler,"Fraktion",0);
dini_IntSet(Spieler,"Adminlevel",0);
SetSpawnInfo(playerid,0,0,1567.9358,-1891.7168,13.5593,359.1738,0,0,0,0,0,0);
SpawnPlayer(playerid);
return 1;
}//Login
stock Login(playerid,key[])
{
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Spieler,sizeof(Spieler),"/Accounts/%s.cfg",Sname);
if(!strcmp(key,dini_Get(Spieler,"Passwort"),true))
{
SpielerLaden(playerid);
SetSpawnInfo(playerid,0,0,1567.9358,-1891.7168,13.5593,359.1738,0,0,0,0,0,0);
SpawnPlayer(playerid);
}
else
{
SendClientMessage(playerid,dunkelrot,"Falsches Passwort.");
ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_INPUT,"LOGIN","Account wurde gefunden\nBitte gebe dein Passwort ein:","WEITER","ABBRUCH");
}
return 1;
}stock SpielerSpeichern(playerid)
{
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Spieler,sizeof(Spieler),"/Accounts/%s.cfg",Sname);
dini_IntSet(Spieler,"Fraktion",pInfo[playerid][Fraktion]);
dini_IntSet(Spieler,"Adminlevel",pInfo[playerid][Admin]);
return 1;
}stock SpielerLaden(playerid)
{
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Spieler,sizeof(Spieler),"/Accounts/%s.cfg",Sname);
pInfo[playerid][Admin]=dini_Int(Spieler,"Adminlevel");
pInfo[playerid][Fraktion]=dini_Int(Spieler,"Fraktion");
return 1;
} -
Gut, warum auch immer hatte ich die SAMPVoice configuration anscheinend noch drinne, das Plugin aber nicht
Hab den Code ein wenig auf mein Script angepasst, sieht nun so aus und funktioniert fast perfekt
if(strcmp("/restart", cmdtext, true, 10) == 0)
{
new Spieler[64];
if (dini_Int(Spieler, "Adminlevel") >= 0)
{
new string[64];
GetPlayerName(playerid,string,MAX_PLAYER_NAME);
format(string,sizeof(string),"*** %s hat den Server neugestartet! ***",string);
SendClientMessageToAll(dunkelrot,string);
SendRconCommand("gmx");
}
else
{
SendClientMessage(playerid,dunkelrot,"Du hast nicht die benötigte Berechtigung!");
}
return 1;
}So, nun besteht noch das problem dass wenn ich in meiner Spielerdatei Admin 2 eintrage, nach dem Einloggen der Server das ganze wieder auf null setzt
Dazu kommt das nun auch einer mit Rang 0 das ganze ausführen kann.... #IchBinSchlecht -
Danke @Kaliber, allerdings startet der server nun garnicht mehr
Code
Alles anzeigenSA-MP Dedicated Server ---------------------- v0.3.7-R2, (C)2005-2015 SA-MP Team [17:54:39] filterscripts = "" (string) [17:54:39] [17:54:39] Server Plugins [17:54:39] -------------- [17:54:39] Loaded 0 plugins. [17:54:40] [17:54:40] Filterscripts [17:54:40] --------------- [17:54:40] Loaded 0 filterscripts. [17:54:40] Script[gamemodes/script.amx]: Run time error 19: "File or function is not found" [17:54:40] Number of vehicle models: 0
Script ist im richtigen Ordner,
Eingetragen ist auch eigentlich alles richtig. -
Guten Tag,
Ich habe ein für mich wichtiges ProblemIst wahrscheinlich unnötig dieses zu entfernen, keine Ahnung.
Naja, auf jedenfall kommt diese Fehlermeldung beim Compilen:warning 202: number of arguments does not match definition
bei diesem Code:
if(strcmp("/restart", cmdtext, true, 10) == 0)
{
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
if (dini_Int(Spieler, "Adminlevel") >= 1)
{
SendClientMessage(playerid,dunkelrot,"***%s hat den Server neugestartet!***",Sname); DAS IST DIE PROBLEMZEILE
SendRconCommand("gmx");
}
else
{
SendClientMessage(playerid,dunkelrot,"Du hast nicht die benötigte Berechtigung!");
}
return 1;
}Ich bedanke mich für Hilfe