im ServerLog sagt er nix beim Crash.
Und die MySQL-Log sagt auch nichts vielversprechendes.
Beiträge von DJ Deagle
-
-
Scheint so, als würde der Server sofort Crashen.
Anscheinend hast du etwas im SA:MP Server Falsch eingestellt.
Gruß
Deshalb kackt er immer erst nach ca. 25 Minuten ab? -
Huhu,
wie oben schon steht, habe ich andauernd den "Screen is terminating"-Error.
Hier ein kleiner Auszug aus PuTTY:Ich habe auch nur ./samp03svr versucht, dort wird der Prozess allerdings nach ca. 25 Minuten von alleine beendet:
Codeusr@156011:/home/SAMP# ./samp03svr Started server on XX.XX.XXX.XX:7777, with maxplayers: 500 lanmode is OFF. Killed
Woran liegt das?
lg
-
if(sscanf(params,"iis",preis,maxprodukte,name))
Damit man z.B. "Hans Peter Biz" als Biznamen nehmen kann, den namen bei SSCANF immer hinten dran schreiben.
Hast du das sscanf-Plugin, das Include oder den stock?
PS: Beim stock bizerstellen muss Name so eingetragen werden:
stock Bizerstellen(Float:X,Float:Y,Float:Z,Name[],Preis,Maxprodukte)
{
//Code..
}/edit: Soll name der Biz, oder SPielername sein?
-
Normal brauch er die Koordinaten doch nicht, da Interpolate ja seinen Standort nicht versetzt, oder?
Zur Sicherheit kann man das trotzdem machen -
Soll ich sie direkt unter der InterPolateCameraPos setzen?
Nein, du setzt einen Timer, der solange geht wie das InterpolateCameraPos, hier ein Beispiel:COMMAND:sprechen(playerid,params[])
{
if(Spieler[playerid][pLevel] == 1)
{
new Float:X,Float:Y,Float:Z;
GetPlayerPos(playerid,X,Y,Z);
SetPVarFloat(playerid,"X",X);
SetPVarFloat(playerid,"Y",Y);
SetPVarFloat(playerid,"Z",Z);
SetTimerEx("stopinterpolate",15000,false,"d",playerid);
InterpolateCameraPos(playerid, 35.768413, -2645.905029, 40.368675, 32.859527, -2645.795166, 41.972183, 15000);
InterpolateCameraLookAt(playerid, 33.074897, -2650.047607, 41.133026, 35.998821, -2649.338378, 40.362483, 15000);
}
if(Spieler[playerid][pLevel] >= 2)
{
SendClientMessage(playerid,0xFF63E9FF,"Du bist kein Level 1er!");
}
return 1;
}forward stopinterpolate(playerid);
public stopinterpolate(playerid)
{
SetPlayerPos(playerid,GetPVarFloat(playerid,"X"),GetPVarFloat(playerid,"Y"),GetPVarFloat(playerid,"Z"));
SetCameraBehindPlayer(playerid);
return 1;
}habe aus langeweile mal alles gemacht, sollte eigl klappen.
-
SetCameraBehindPlayer(playerid);
Damit stoppt man InterpolateCameraPos & LookAt.Wenn nicht, frag die Position ab, und speicher sie mit SetPVarFloat.
Dann nach dem Sprechen liest du sie aus und setzt den Spieler wieder an den Punkt, welcher in den PVars gespeichert ist. -
Vielleicht setzt er die Variable nicht herrab machs mal so
TutTime[playerid] --;
TutTime[playerid] = -1;Setzt die Variable auf Invalid, nachdem das Tut vorbei ist, daran liegts nich..
-
Huhu,
wie oben schon erklärt, muss man bei der Registration das Tutorial 2 mal durchlaufen.
Warum ist das so?
Hier das wichtigste aus dem Tutorial, und alles, was dazu gehört:
Peter PAWN-Code else if(TutTime[playerid] == 67)
{
SetPlayerPos(playerid,1191.0471,-912.3734,48.4298);
SetPlayerCameraPos(playerid,1173.7498,-963.0220,66.3751);
SetPlayerCameraLookAt(playerid,1199.3129,-909.8687,48.4400);
KillTimer(TutTimer[playerid]);
TutTime[playerid] = -1;
TogglePlayerSpectating(playerid,false);
ShowPlayerDialog(playerid,DIALOG_GESCHLECHT,DIALOG_STYLE_LIST,"Geschlecht auswählen","Männlich\nWeiblich","Weiter","Abbrechen");
}Peter PAWN-Code if(FirstLogin[playerid] == true)
{
newtimer[playerid] = SetTimerEx("UpdateTextdraws",1000,1,"i",playerid);
RandomPlayerScreen(playerid);
if(!IsPlayerNPC(playerid))
{
if(GetPVarInt(playerid,"Eingeloggt") == 0)
{
if(mysql_CheckAccount(playerid) == 0)
{
new Hour, Minute, Second;
gettime(Hour, Minute, Second);
if(Hour >= 1 && Hour <= 6)
{
SendClientMessage(playerid, COLOR_LIGHTRED, "Du kannst dich um diese Uhrzeit nicht registrieren. Bitte versuche es später erneut!");
Kick(playerid);
}
else
{
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registration","Bitte registriere dich mit einem Passwort:","Register","Abbrechen");
SetPlayerSkin(playerid,101);
SpielerInfo[playerid][pSkin] = 101;
}
}
else if(mysql_CheckAccount(playerid) == 1)
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Dein Account wurde in unserem System gefunden!\nBitte logge dich mit deinem Passwort ein:","Login","Abbrechen");
}
}
}
}
else if(pFirstLog[playerid] == true)
{
RandomPlayerScreen(playerid);
TogglePlayerControllable(playerid,false);
TutTime[playerid] = 1;
TogglePlayerSpectating(playerid,true);
TutTimer[playerid] = SetTimerEx("Tutorial",1000,1,"i",playerid);
}Peter PAWN-Code case DIALOG_REGISTER:
{
if(response)
{
if(strlen(inputtext) == 0)
{
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registration","Das eingegebene Passwort war zu kurz!\nBitte registriere dich mit einem längerem Passwort:","Register","Abbrechen");
return 1;
}
else
{
CreateAccount(playerid, MD5_Hash(inputtext));
SetPVarInt(playerid,"Eingeloggt",1);
SpielerInfo[playerid][pNextPayday] = 0;
SetMySQLint("accounts", "NextPayday", 0, "Name", SpielerInfo[playerid][pName]);
SpielerInfo[playerid][P_Timer] = SetTimerEx("PaydayTimeCheck",60000,1,"i",playerid);
PDTimer[playerid] = SetTimerEx("UpdatePDTime",10000,1,"i",playerid);
pFirstLog[playerid] = true;
FirstLogin[playerid] = false;
for(new i; i < MAX_PLAYERS; i ++)
{
if(IsPlayerConnected(i))
{
PlayerTextDrawShow(i, Paydayzeit[i]);
PlayerTextDrawShow(i, Money[i]);
}
}
SpawnPlayer(playerid);
}
}
else
{
Kick(playerid);
}
}
case DIALOG_LOGIN:
{
if(response)
{
if(strlen(inputtext) == 0)
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Das eingegebene Passwort war falsch!\nBitte logge dich mit deinem Passwort ein:","Login","Abbrechen");
return 0;
}
else
{
new SpielerNamee[MAX_PLAYER_NAME];
GetPlayerName(playerid, SpielerNamee, MAX_PLAYER_NAME);
if(!strcmp(MD5_Hash(inputtext), mysql_ReturnPasswort(SpielerNamee), true))
{
new str[128];
format(str,sizeof(str),"Willkommen zurück, %s",PlayerName(playerid));
SetPVarInt(playerid,"Eingeloggt",1);
LoadPlayer(playerid);
SCM(playerid,COLOR_WHITE,"");
SCM(playerid,COLOR_WHITE,str);
SCM(playerid,COLOR_WHITE,"");
SpielerInfo[playerid][pNextPayday] = GetMySQLint("accounts", "NextPayday", "Name", SpielerInfo[playerid][pName]);
SpielerInfo[playerid][P_Timer] = SetTimerEx("PaydayTimeCheck",60000,1,"i",playerid);
PDTimer[playerid] = SetTimerEx("UpdatePDTime",10000,1,"i",playerid);
if(SpielerInfo[playerid][pAdmin] > 0 && SpielerInfo[playerid][pAdmin] < 5)
{
new stir[128];
if(SpielerInfo[playerid][pGeschlecht] == 1)
{
format(stir,sizeof(stir),"Meldung: %s hat sich als Supporter angemeldet. Er ist per /support erreichbar!",PlayerName(playerid));
SendClientMessageToAll(ADMDUTY,stir);
SupDuty[playerid] = 1;
SetPVarInt(playerid,"inSupport",0);
SetPVarInt(playerid,"SupportID",-1);
Supporter ++;
}
else
{
format(stir,sizeof(stir),"Meldung: %s hat sich als Supporterin angemeldet. Sie ist per /support erreichbar!",PlayerName(playerid));
SendClientMessageToAll(ADMDUTY,stir);
SupDuty[playerid] = 1;
SetPVarInt(playerid,"inSupport",0);
SetPVarInt(playerid,"SupportID",-1);
Supporter ++;
}
}
for(new p; p < MAX_PLAYERS; p++)
{
if(IsPlayerConnected(p))
{
new frak = SpielerInfo[playerid][pFraktion];
if(isPlayerInFrakt(p,frak) && SpielerInfo[p][pFraktion] != 0)
{
new msg[128];
format(msg,sizeof(msg),"Nachricht: Der Spieler %s hat sich eingeloggt!",PlayerName(playerid));
SCM(p,COLOR_ADMSG,msg);
}
}
}
for(new i; i < MAX_PLAYERS; i ++)
{
if(IsPlayerConnected(i))
{
PlayerTextDrawShow(i, Paydayzeit[i]);
PlayerTextDrawShow(i, Money[i]);
}
}
FirstLogin[playerid] = false;
SpawnPlayer(playerid);
}
else
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Das eingegebene Passwort war falsch!\nBitte logge dich mit deinem Passwort ein:","Login","Abbrechen");
}
}
}
else
{
Kick(playerid);
}
}Warum ist das so?
lg
-
Huhu,
ja, es steht eigl alles in der Überschrift.
Wie mache ich aus folgendem Callback:
public _WBB_AddThread ( Username[ ] , Board , Prefix[ ] , Subject[ ] , Content[ ] , State , Closed , Disabled , Smilies , HTML , BBCodes , Signature , Index ) {
new PostData[ 2000 ];
format ( PostData , 2000 , "Username=%s&Board=%d&Prefix=%s&Subject=%s&Content=%s&State=%d&Closed=%d&Disabled=%d&Smilies=%d&HTML=%d&BBCodes=%d&Signature=%d" , Username , Board , Prefix , Subject , Content , State , Closed , Disabled , Smilies , HTML , BBCodes , Signature );
SendRequest ( "AddThread" , PostData , HTTP_REQUEST_ADD_THREAD , Index );
}das er das in ein bestimmtes Forum sendet?
lg
-
Sauber Hauke, gefällt mir.
Allerdings, wann wird es, wie RoBoy schon fragte, eine Open Beta oder eine erste Veröffentlichung geben?
Wird dafür der Updatezugang für die Betalizensen nocheinmal erweitert?
PS: Wenn man als Betatester das Programm besitzen sollte, dann musste mir das mal schicken
-
Sorry, ich benutze nichts von Godfather ich möchte es selber schreiben, auserdem sind da viele unnötige sachen drin
Das hab ich selber geschrieben, aber Kopf hoch! -
if(GetPVarInt(playerid,"inSupport") == 1 && GetPVarInt(playerid,"SupportID") != -1)
{
new Partner = GetPVarInt(playerid,"SupportID");
new Admlvl[64];
if(SpielerInfo[playerid][pAdmin]==1){format(Admlvl,sizeof(Admlvl),"Supporter");}
else if(SpielerInfo[playerid][pAdmin]==2){format(Admlvl,sizeof(Admlvl),"Moderator");}
else if(SpielerInfo[playerid][pAdmin]==3){format(Admlvl,sizeof(Admlvl),"Administrator");}
else if(SpielerInfo[playerid][pAdmin]==4){format(Admlvl,sizeof(Admlvl),"Lead-Admin");}
else if(SpielerInfo[playerid][pAdmin]==5){format(Admlvl,sizeof(Admlvl),"Serverinhaber");}
GetPlayerName(playerid, sendername, sizeof(sendername));
if(isPlayerAnAdmin(playerid,1)) { format(string, sizeof(string), "%s (%s) sagt: %s", sendername, Admlvl, text); }
else { format(string, sizeof(string), "%s sagt: %s", sendername, text); }
SCM(Partner,SUPCHAT,string);
SCM(playerid,SUPCHAT,string);
new Hour,Minute,Second;
gettime(Hour,Minute,Second);
new stringg[165], pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, sizeof(pname));
format(stringg,165,"[SUPPORTCHAT](%d:%d:%d) %s: %s",Hour,Minute,Second,pname,text);
Log("chatlog.txt",string);
return 0;
}
bau es dir um. -
Zitat
DT_DynamicCar Spawns Maps wbb_connect
Spawns & Maps sind nur Maps, der Rest erklärt sich von selber. -
HeyHoo,
nach 20 Minuten in etwa, schmiert andauernd mein Server ab, leider weiss ich nicht warum........
Ich habe ein Selfmadescript, welches nicht grade viele Timer besitzt, welche einen Servercrash hervorrufen können.Was da los?
lg
-
Huhuu,
nach langer Zeit habe ich meinen alten Script wieder herangeschafft.
MySQL-Datenbank usw, alles ist verbunden.
Leider, werden mal wieder keine Häuser / Biz erstellt.Hier der Code:
stock CreateHouse(Float:X,Float:Y,Float:Z,Level,Price,Rooms,Interior)
{
mysql_query("SELECT * FROM `haeuser`");
mysql_store_result();
new rows = mysql_num_rows();
mysql_free_result();
if(rows > MAX_HAEUSER) return 0;
new query[2000];
format(query,sizeof(query),"INSERT INTO `haeuser` (`ID`, `PosX`, `PosY`,\
`PosZ`, `Level`, `Preis`, `Besitzer`, `Bought`, `Rooms`,`InteriorID`,`Interior`,`IntX`,`IntY`,`IntZ`,`Rentable`,\
`RentPrice`, `Renter1`, `Renter2`, `Renter3`, `Renter4`, `Renter5`");
format(query,sizeof(query),"%s,`Renter6`, `Kasse`, `VirtualWorld`)VALUES('%d', '%f', '%f', '%f', '%d', '%d', 'Niemand','0', '%d',\
'%d', '%d', '%f', '%f', '%f', '1', '100', 'Niemand', 'Niemand', 'Niemand', 'Niemand', 'Niemand', 'Niemand', '0', '0')"\
,query,rows,X,Y,Z,Level,Price,Rooms,Interior,IntID[Interior][0],InteriorList[Interior][0], InteriorList[Interior][1], InteriorList[Interior][2]);
mysql_query(query);
LoadHouse(rows);
return 1;
}stock LoadHouse(HouseID)
{
new str[128];
format(str,sizeof(str),"%d",HouseID);
HausInfo[HouseID][hPosX] = GetMySQLfloat("haeuser", "PosX", "ID", str);
HausInfo[HouseID][hPosY] = GetMySQLfloat("haeuser", "PosY", "ID", str);
HausInfo[HouseID][hPosZ] = GetMySQLfloat("haeuser", "PosZ", "ID", str);
HausInfo[HouseID][hLevel] = GetMySQLint("haeuser", "Level", "ID", str);
HausInfo[HouseID][hPreis] = GetMySQLint("haeuser", "Preis", "ID", str);
format(HausInfo[HouseID][hBesitzer],24,"%s",GetMySQLstring("haeuser", "Besitzer", "ID", str));
HausInfo[HouseID][hBought] = GetMySQLint("haeuser", "Bought", "ID", str);
HausInfo[HouseID][hRooms] = GetMySQLint("haeuser", "Rooms", "ID", str);
HausInfo[HouseID][hInteriorID] = GetMySQLint("haeuser", "InteriorID", "ID", str);
HausInfo[HouseID][hInterior] = GetMySQLint("haeuser", "Interior", "ID", str);
HausInfo[HouseID][hIntX] = GetMySQLfloat("haeuser", "IntX", "ID", str);
HausInfo[HouseID][hIntY] = GetMySQLfloat("haeuser", "IntY", "ID", str);
HausInfo[HouseID][hIntZ] = GetMySQLfloat("haeuser", "IntZ", "ID", str);
HausInfo[HouseID][hLocked] = GetMySQLint("haeuser", "Locked", "ID", str);
HausInfo[HouseID][hRentable] = GetMySQLint("haeuser", "Rentable", "ID", str);
HausInfo[HouseID][hRentPrice] = GetMySQLint("haeuser", "RentPrice", "ID", str);
format(HausInfo[HouseID][hRenter1],24,"%s",GetMySQLstring("haeuser", "Renter1", "ID", str));
format(HausInfo[HouseID][hRenter2],24,"%s",GetMySQLstring("haeuser", "Renter2", "ID", str));
format(HausInfo[HouseID][hRenter3],24,"%s",GetMySQLstring("haeuser", "Renter3", "ID", str));
format(HausInfo[HouseID][hRenter4],24,"%s",GetMySQLstring("haeuser", "Renter4", "ID", str));
format(HausInfo[HouseID][hRenter5],24,"%s",GetMySQLstring("haeuser", "Renter5", "ID", str));
format(HausInfo[HouseID][hRenter6],24,"%s",GetMySQLstring("haeuser", "Renter6", "ID", str));
HausInfo[HouseID][hKasse] = GetMySQLint("haeuser", "Kasse", "ID", str);
HausInfo[HouseID][hVW] = HouseID+1;
HausInfo[HouseID][hPickup] = CreatePickup(1239,1,HausInfo[HouseID][hPosX],HausInfo[HouseID][hPosY],HausInfo[HouseID][hPosZ]);
HausInfo[HouseID][hOutPickup] = CreatePickup(1318,1,HausInfo[HouseID][hIntX],HausInfo[HouseID][hIntY],HausInfo[HouseID][hIntZ],HausInfo[HouseID][hVW]);
if(HausInfo[HouseID][hBought] == 0)
{
format(str,sizeof(str),"Dieses Haus ist zu verkaufen!\nPreis: %d€\nLevel: %d\nHaus kaufen: /buyhouse",HausInfo[HouseID][hPreis],HausInfo[HouseID][hLevel]);
}
else
{
if(HausInfo[HouseID][hRentable] == 1)
{
format(str,sizeof(str),"Besitzer: %s\nMietpreis: %d€\nZimmer mieten - /rentroom",HausInfo[HouseID][hBesitzer],HausInfo[HouseID][hRentPrice]);
}
else if(HausInfo[HouseID][hRentable] == 0)
{
format(str,sizeof(str),"Besitzer: %s",HausInfo[HouseID][hBesitzer]);
}
}
HausInfo[HouseID][hLabel]=Create3DTextLabel(str,COLOR_RED,HausInfo[HouseID][hPosX],HausInfo[HouseID][hPosY],HausInfo[HouseID][hPosZ],7,0);
HausInfo[HouseID][hOutLabel]=Create3DTextLabel("Austreten:\nEnter drücken",COLOR_RED,HausInfo[HouseID][hIntX],HausInfo[HouseID][hIntY],HausInfo[HouseID][hIntZ],5,HausInfo[HouseID][hVW]);
return 1;
}In die DB wird nix eingetragen.....
Was da wieder los? -.-
lg
/e LoadHouse reingehaun
-
Ich will die Map
-
wie setzt du die SpielerInfo[playerid][pDay]?
-
enum SpielerDaten
{
pName[24],
...
}
das meine Ich, ebenso wie stock LoadPlayer oder wie das bei dir heißt -
Zeig mir mal dein SpielerDaten-Enum(merator) sowie den stock / public LoadPlayer oder wie das bei dir deklariert ist.