Einen Skript der auf MySQL basiert ohne ein MySQL Plugin zu betreiben ist keine so gute Idee, ebenso wie ohne Datenbank. Das wird nicht funktionieren. Du musst eine Datenbank erstellen und diese über ein MySQL Plugin an das Skript anbinden.
Schaue dir gegebenenfalls die Installationsanleitung des Gamemodes an von dem der das veröffentlicht hat. Alternativ schlage ich dir vor deinen Server selbst zu programmieren.
Beiträge von Jeffry
-
-
ForAllPlayers(i)
{
GetPlayerName(i,botname,sizeof(botname));
if(!strcmp(botname,"Intro_BMX",true))
{
new Float:x,Float:y,Float:z;
GetPlayerPos(i,x,y,z);
new Float:cx,Float:cy,Float:cz;
GetPlayerCameraPos(playerid,cx,cy,cz);
InterpolateCameraPos(playerid,cx,cy,cz,x+1,y,z,14010,CAMERA_MOVE);
InterpolateCameraLookAt(playerid,cx,cy,cz,x+1,y,z,14010, CAMERA_MOVE);
}
}Ich habe mich etwas falsch ausgedrückt. So war das gemeint.
-
Dann hast du diese Variablen nicht zu Floats gemacht.
User[i][Hitrate] = User[i][Hits] / User[i][Shots] * 100;Mach das zu
User[i][Hitrate] = User[i][Hits] * 100 / User[i][Shots];Dann klappt die Rechnung.
-
Mit GetPlayerPos fragst du die Position des Spielers ab, du willst aber die Position der Kamera wissen. Nutze:
http://wiki.sa-mp.com/wiki/GetPlayerCameraPos -
Nein, es muss hittype sein.
public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
User[playerid][Shots] ++;
if(hittype == BULLET_HIT_TYPE_PLAYER){
User[playerid][Hits] ++;
}
return 1;
}
So musst es machen.Und bei dem Textdraw solltest du beachten, dass die Shots nicht 0 sind, du darfst nicht durch 0 teilen. Am besten du setzt es dem Spieler schon auf 1 wenn er sich registriert, eben bevor er das erste mal das Textdraw sieht.
-
So wie das aussieht stürzt der Server ab.
Installiere mal das crashdetect Plugin und poste was in dem server_log steht.
http://forum.sa-mp.com/showthread.php?t=262796Das du gebannt bist ist ein SA-MP Bug, der oft vorkommt wenn der Server neu startet. Da du bei gta-servers.de bist, startet dein Server nach dem Crash automatisch neu, folglich kommt der Fehler.
-
Hier ein Tutorial (ist auf portugiesisch, aber das ändert nichts am Code): http://forum.sa-mp.com/showthread.php?t=289753 (XYZ mit deinen Coords ersetzen)
Oder siehe hier: http://forum.sa-mp.com/showthread.php?t=191124Bei beiden ist das System eigentlich klar zu erkennen, sollte dir eigentlich helfen.
-
Warum samp4337 ? Ich bin jetzt samp4514
Dann solltest du das im Code auch ändern. -
Wenn du Integers miteinander teilst musst du, bzw kannst du, nicht mehr runden, die Nachkommastellen werden abgeschnitten.
Du musst playerid verwenden, das ist die ID des Spielers der schießt.
-
kosten = 0- kosten;
GivePlayerMoneyEx(playerid,kosten);
FraktionsKasse[fraktion] += kosten;Zu
GivePlayerMoneyEx(playerid,-kosten);
FraktionsKasse[fraktion-1] += kosten; -
Ich hatte vor gut einem Jahr mal was angefangen, du könntest es vollenden und veröffentlichen. Da wärst du der Erste, wenn es funktioniert, der sowas veröffentlicht.
http://forum.sa-mp.de/gta-mult…hnelligkeit-2#post1694731
Ist auf jeden Fall kein 0815 Zeug, sondern daran wirst ne Weile zu knabbern haben.
-
Die neuste Version die es zur Zeit gibt ist die 0.3z R3.
http://files.sa-mp.com/samp03z_svr_R3_win32.zipIm Thread vom Plugin steht, dass nur 0.3z und 0.3z R1-2 unterstützt werden.
Probiere entweder eine dieser Versionen oder die neuste.Hast du die Scripts auch neu kompiliert? Und wenn du es bei einer Hosting Gesellschaft laufen hast, hast du auf dem vHost auch die Server Version geändert?
-
-
new carid = CreateVehicle(car, X,Y,Z, 0.0, color1, color2, 60000);
zu:
new carid = CreateVehicle(car, X,Y,Z, 0.0, color1, color2, 60000);
LinkVehicleToInterior(carid, GetPlayerInterior(playerid)); -
-
Poste mal deinen /veh Befehl.
-
Hier hast du ein Tutorial für das komplette Aufsetzen eines Linux-basierten SA-MP Servers:
http://forum.sa-mp.com/showthread.php?t=327272 -
Nimm den "root" Benutzer ohne Passwort. Localhost solltest du nehmen, wenn die Datenbank auf dem gleichen Server liegt:
#define MYSQL_HOST "127.0.0.1"
#define MYSQL_USER "root"
#define MYSQL_PASS ""
#define MYSQL_DATA "DATENBANKNAME"Das ist in 99% aller Fälle standardmäßig so eingestellt.
Dein user "samp" wird nicht die richtigen Berechtigungen haben, das ist auf localhost (dein Rechner) so eingestellt, standardmäßig zumindest.
Deshalb benutze, wie ich oben geschrieben habe, den root - User ohne Passwort, der hat ALLE Berechtigungen. Dem kannst du später auch, je nach Client, ein Passwort geben. -
Ändere das mal zu
if(PlayerInfo[i][pMember] > 0) fraktion = PlayerInfo[i][pMember];
if(PlayerInfo[i][pLeader] > 0) fraktion = PlayerInfo[i][pLeader];Das war vor ein paar Wochen schonmal der Fehler. Vielleicht dieses mal wieder.
-
Lass es mal so laufen und sage uns dann, was im server_log geprintet wird.
ocmd:makeadmin(playerid,params[])
{
if(!isAdmin(playerid,3500))return SendClientMessage(playerid,COLOR_WHITE,"Dir ist es nicht erlaubt, diesen Befehl zu benutzen");
new pID,a_level;
if(sscanf(params,"ui",pID,a_level))return SendClientMessage(playerid,COLOR_WHITE,"Verwendung: /makeadmin [Player ID] [Admin Level]");
printf("1: pID: %d / level: %d",pID,a_level);
sInfo[pID][alevel]=a_level;
printf("2");
GMRSavePlayer(pID);
printf("ENDE");
SendClientMessage(pID,COLOR_WHITE,"test.");
SendClientMessage(playerid,COLOR_WHITE,"test.");
return 1;
}GMRSavePlayer(playerid)
{
printf("4: playerid: %d", playerid);
if(sInfo[playerid][eingeloggt]==0)return 1;
//Speichern level,geld
printf("5");
new query[228];
printf("6");
format(query,sizeof(query),"UPDATE user SET='%i',money='%i',alevel='%i' WHERE id='%i'",sInfo[playerid][level],GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][id]);
printf("7");
print(query);
mysql_function_query(gmr,query,false,"","");
printf("8");
return 1;
}EDIT:
Und
format(query,sizeof(query),"UPDATE user SET='%i',money='%i',alevel='%i' WHERE id='%i'",sInfo[playerid][level],GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][id]);zu:
format(query,sizeof(query),"UPDATE user SET level='%i',money='%i',alevel='%i' WHERE id='%i'",sInfo[playerid][level],GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][id]);EDIT2: Ansonsten mal den MySQL Debug anschalten.