Schau mal hier. Ich habe da mal was gemacht. Funktioniert auch, ist halt nicht wirklich nutzerfreundlich, aber es ist ja auch kein Release.
http://forum.sa-mp.de/gta-mult…hnelligkeit-2#post1694731
Beiträge von Jeffry
-
-
Hm....
Sitzt nativechecker an der letzten Stelle bei plugins in der server.cfg?
Hast du den Code mit den neuen Includes kompiliert und hochgeladen? -
Ich verstehe nicht wie man beim googlen scheitern kann, aber gut. Hier:
http://forum.sa-mp.com/showthread.php?t=372212
http://forum.sa-mp.com/showthread.php?t=414367
http://forum.sa-mp.com/showthread.php?t=386118 -
[28.08.2014 - 17:04:57] >> plugin.TSConnector: v0.6.2 loaded.
Du sollst die 1.0 runterladen!
https://github.com/maddinat0r/samp-tsconnector/releasesSiehst du doch selbst, dass das nicht die richtige Version ist.
-
if(playerid == i)return 1;
Zu
if(playerid != i)Ja, auch das return weg machen!
-
Dass immer die arme ID 0 als Sündenbock hingestellt wird verstehe ich bis heute nicht.
An einer ID liegt das Problem nicht, das macht schon aussagetechnisch keinen Sinn, denn wie soll denn eine ID (was letztendlich nur ein angezeigter Wert ist) etwas kaputt machen?
Das liegt wenn dann an einem Fehler in deinem Code, der möglicherweise nur bei ID 0 auftritt, das liegt dann aber nicht an der ID 0, sondern am Code.Lange Rede kurzer Sinn:
Entweder du setzt eine Variable nicht richtig zurück, oder da läuft noch ein Timer, der nicht mehr laufen sollte.Was kannst du machen?
Entweder du debuggst den Code, und schaust dir die Variablen an, oder du postest ihn hier, dann schauen wir uns den Code an. -
Da player negativ werden kann solltest du das andersherum schreiben:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys & 16)
{
new player = GetInteriorEnter(playerid);
if(player!=-1) {
if(GetPVarInt(playerid, "Team") == IntInt[player][Frakid])
{
SetPlayerPos(playerid,IntInt[player][exitX],IntInt[player][exitY],IntInt[player][exitZ]);
SetPlayerInterior(playerid,IntInt[player][InteriorID]);
SetPlayerVirtualWorld(playerid,IntInt[player][InteriorVirtualWorld]); }
}
player = GetInteriorExit(playerid);
if(player!=-1) {
if(GetPVarInt(playerid, "Team") == IntInt[player][Frakid])
{
SetPlayerPos(playerid,IntInt[player][enterX],IntInt[player][enterY],IntInt[player][enterZ]);
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,0); }
}
}
return 1;
}Falls es so auch nicht klappt sind wohl deine Variablen falsch. Lass dir dann mit printf einfach mal die Werte von player, Frakid, und Team ausgeben, dann weißt du wo es hängt.
-
Die Variable bzw das Array AutoControl ist nicht definiert. Hast du wohl vergessen zu kopieren. Oder du hast es falsch kopiert, deshalb die Fehler in Zeile 138+.
-
stock SetPlayerMoney(playerid, money)
{
ResetPlayerMoney(playerid);
return GivePlayerMoney(playerid, money);
}Oder du machst es als #define wenn es dir lieber ist...
-
Ich hätte eine Idee, die hat aber nichts mit SA-MP direkt zu tun.
In MTA gibt es folgende Funktion: https://wiki.multitheftauto.com/wiki/GetGroundPosition
Da du die Maps wohl in MTA erstellst, könntest du versuchen, ob MTA schlau genug ist, um diese selbst gemappten Objekte zu erkennen. Dann könntest du einen Code dafür schreiben und für jede X/Y Position dir die Z Koordinate ausgeben lassen.
Ist so ähnlich wie die SetPlayerPosFindZ Funktion, nur dass diese eben nicht immer gescheit funktioniert.Oder du fragst den der das gemacht hat mal, ob er es dir erklärt. aber ich würde es erst mal so versuchen, vielleicht klappt es ja.
-
ocmd:givemoney(playerid,params[])
{
new pID,geld,string[128],string2[128];
if(sscanf(params,"ui",pID,geld))return SendClientMessage(playerid,HRot,"{FF0000}INFO: /givemoney [ID] [GELD]");
if(SpielerInfo[playerid][pAlevel] >= 4)
{
if(IsPlayerConnected(pID))
{
if(pID != INVALID_PLAYER_ID)
{
GivePlayerMoney(pID,geld);
SpielerInfo[playerid][pMoney]+=geld; //Das hier hat gefehlt.
format(string,sizeof(string),"Administrator %s hat dir %i Dollar gegeben",SpielerName2(playerid),geld);
SendClientMessage(pID,HGruen,string);
format(string2,sizeof(string2),"Du hast dem Spieler %s %i Dollar gegeben",SpielerName2(pID),geld);
SendClientMessage(playerid,HGruen,string2);
SavePlayer(playerid);
}
}
}
return 1;
} -
-
Startest du den Timer auch richtig? Der Code passt eigentlich.
-
Hast du das beachtet was Mauzen gesagt hat?
Lade dir die neueste Version des Plugins nochmal herunter (0.4): http://forum.sa-mp.com/showthread.php?t=355849Lösche dann das aktuelle Plugin und füge das richtige aus dem Download Paket ein.
Ansonsten kannst du ja auch noch das neuste Visual Studio installieren, link befindet sich auch in dem genannten Thread.
-
Zitat
[21:14:43] >> plugin.mysql: R34 successfully loaded.
Erklärt warum es nicht funktioniert, oder?
Du wolltest die R5 nutzt aber gerade die R34. -
Nein, die Include brauchst du gar nicht auf deinem Linux Server, die brauchst du nur dort wo du deine Codes kompilierst.
Also füge die Include in den Includes Ordner (pawno/Includes/) ein, öffne die pawno.exe und kompiliere deinen Code. Lade dann die amx Datei wieder auf deinen Host hoch.
-
Lösche die aktuelle mysql.so, benenne die static Version zu mysql.so um und lade sie in das Plugins Verzeichnis.
-
Plugin im Plugins Ordner? (dll bei Windows, so bei Linux)
Plugin in die server.cfg eingetragen?
Richtiges Plugin heruntergeladen? http://forum.sa-mp.com/showthread.php?t=437671 -
Du musst natürlich die static Version auch starten, nicht nur reintun. Dir andere, nicht static Version, nicht mehr starten.
Außerdem solltest du dir das sscanf Plugin neu herunterladen, da hast du auch eine falsche Version.
-
Nutze die mysql_static.so .
(Entweder wenn es dir jemand hochladen kann, oder wenn du es später selbst herunterladen kannst)Diese hat die Library bereits inkludiert, dann ist der Fehler weg.