So geht's, grade mal getestet:
new Float:x, Float:y, Float:z, seat;
GetPlayerPos(playerid, x, y, z);
seat = GetPlayerVehicleSeat(playerid);
SetPlayerPos(playerid, x, y, z);
PutPlayerInVehicle(playerid, vehicleid, seat);
Viel Spaß!
So geht's, grade mal getestet:
new Float:x, Float:y, Float:z, seat;
GetPlayerPos(playerid, x, y, z);
seat = GetPlayerVehicleSeat(playerid);
SetPlayerPos(playerid, x, y, z);
PutPlayerInVehicle(playerid, vehicleid, seat);
Viel Spaß!
Nativechecker muss als letztes in die "plugins" Zeile.
Zitatplugins mysql nativechecker
Ansonsten versuche eben mal die neueste R39-2 Version und poste dann den Log (nativechecker am Ende!).
Hast du das Plugin auch im "plugins" Ordner in deinem Server-Ordner (die .dll Datei)?
Lade sie dir gegebenenfalls nochmals runter, vielleicht hast du eine falsche Version oder ein falsches Plugin heruntergeladen.
Lade dir die neuste Include herunter und füge die in deinen Server ein:
[ INCLUDE ] ocmd 2.1.1 [ Update 3.11.2013 ]
Mach das false zu 0, oder füge den bool Tag bei der Deklaration von pEingeloggt hinzu.
bool:pEingeloggt,
Die Tabellen erstellst du zum Beispiel mit phpMyAdmin oder NaviCat. Es geht auch per PAWN Code, das würde ich dir aber nicht empfehlen.
@xsL33p:
Was machst du da? O.o
So:
ocmd@2:gate,tor(playerid, params[])
{
Es fehlt ein
new query[256];
Und
if(!strlen(inputtext) < 4)
Muss
if(strlen(inputtext) < 4)
Sein.
Bei loose indentation stimmt deine Einrückung nicht, achte darauf, dass alles schön in einer Reihe steht, pro Ebene.
Poste bitte den Code dazu, sonst können wir dir nicht helfen.
@[GeD]Max:
Bei OnPlayerRequestClass mit classid einen switch machen. Dann GameTextForPlayer nutzen. Case 0 wäre der erste Skin, Case 1 der zweite Skin, und so weiter.
xSnake:
ocmd@2:gate,tor
Du kannst auch einfach bei OnPlayerExitVehicle abfragen, ob das Fahrzeug im Wasser ist, ohne die Variable bei OnPlayerUpdate zu nutzen.
Den Spieler direkt wieder in das Fahrzeug zu setzen klappt nicht wirklich, aber du kannst versuchen, bei OnPlayerExitVehicle den Spieler zu freezen, dann einen kurzen Timer zu setzen, 50ms zum Beispiel, und ihn dann wieder zu entfreezen.
Du kannst es auch ohne Timer versuchen, also einfach freeze und entfreeze direkt hintereinander, bei OnPlayerEnterVehicle klappt das auch.
Dann musst du es so machen:
if(!isPlayerInFrakt(playerid, 1) && sInfo[playerid][adminduty] == 0) return 1;
new Float:Geld[MAX_PLAYERS];
forward Float:GetPlayerMoneyEx(playerid);
stock Float:GetPlayerMoneyEx(playerid)
{
return Geld[playerid];
}
stock GivePlayerMoneyEx(playerid, Float:money)
{
Geld[playerid] += money;
return 1;
}
stock GeldAnzeige(Float:money)
{
new str[16];
format(str, sizeof(str), "%0.2f€", money);
for(new i=0, j = strlen(str); i<j; i++) if(str[i] == '.') str[i] = ',';
return str;
}
In einem Befehl:
new Float:money, tmp[16];
if(sscanf(params, "s[16]", tmp)) return SendClientMessage(playerid, -1, "/befehl [Geld] -> Bsp: /befehl 1,23");
for(new i=0, j = strlen(tmp); i<j; i++) if(tmp[i] == ',') tmp[i] = '.';
money = floatstr(tmp);
GivePlayerMoneyEx(playerid, money);
Teste es mal so aus, mache dir aber zuvor ein Backup von deinem Code, falls es nicht klappt.
Du musst natürlich einige Änderungen in deinem bisherigen Code machen, sprich überall dort, wo du mit den Geldfunktionen arbeitest, musst du es etwas ändern.
Du übergibst ja hiermit direkt den Wert als Kommazahl (eben mit Punkt im Code), also 10.00 entspricht 10,00€ in der Anzeige.
Wenn du Probleme beim ändern des Codes hast musst du eben Bescheid sagen, ich weiß ja nicht wie fit du im beheben von Warnungen/Errors bist. Es werden sicher ein paar am Anfang da sein, weil die Funktionen sich nicht 1:1 mit deinen decken.
Also falls Fragen sind, einfach Bescheid sagen.
Aber du siehst schon, so ist es wesentlich übersichtlicher.
Ah, sorry. Das habe ich dir falsch gesagt, ich habe deine Variablen verwechselt.
Es muss so sein:
GetPlayerWeaponData(playerid,GetWeaponSlot2(dpw_model[playerid]),PICKUP_MODELW[playerid],PICKUP_AMMOW[playerid]);
Dann sollte es klappen.
xSnake:
if(IsPlayerInRangeOfPoint(playerid,10,1590.33, -1637.92, 14.83))
{
if(!isPlayerInFrakt(playerid, 1)) return 1;
if(!isAdmin(playerid,1)) return SendClientMessage(playerid,ROT,"Info: Du bist dazu nicht befugt!");
if(sInfo[playerid][adminduty] == 0) return SendClientMessage(playerid,ROT,"Du bist nicht Aduty!");
MoveDynamicObject(LSPDGTor, 1590.35, -1637.92, 8.33, 2.5);
SendClientMessage(playerid,ROT,"Das Tor schließt in 10sec automatisch!");
SetTimerEx("CloseGate", 10000, 0, "d", LSPDGTor);
printf("%s Öffnet das LSPDGTOR)",getPlayerName(playerid));
return 1;
}
Falls du meinst, dass man mindestens eines davon braucht:
if(IsPlayerInRangeOfPoint(playerid,10,1590.33, -1637.92, 14.83))
{
if(!isPlayerInFrakt(playerid, 1) && !isAdmin(playerid,1) && sInfo[playerid][adminduty] == 0) return 1;
MoveDynamicObject(LSPDGTor, 1590.35, -1637.92, 8.33, 2.5);
SendClientMessage(playerid,ROT,"Das Tor schließt in 10sec automatisch!");
SetTimerEx("CloseGate", 10000, 0, "d", LSPDGTor);
printf("%s Öffnet das LSPDGTOR)",getPlayerName(playerid));
return 1;
}
Es fehlt ein
new query[256];
Bei der Warnung:
if(!strlen(inputtext) < 4)
Zu
if(strlen(inputtext) < 4)
Und richtig einrücken.
Wieso eigentlich 10 Schuss? Davon steht gar nichts in deinem Code. Schau mal nach ob du es irgendwo hart im Code stehen hast, dass du 10 Schuss bekommst.
Wenn du nichts findest, poste nochmal den aktuellen Code vom droppen und den vom aufnehmen der Waffe, dann debuggen wir es mal.
Das ist dann auf jeden Fall eine der älteren Versionen des Plugins von BlueG.
Versuche mal eins der folgenden Mirrors:
MySQL Plugins R5
[MySQL] R5 von G-sTyLeZzZ (Linux)
Brauche Mysql R5 oder R6
Einer der Mirrors klappt sicher.
Wenn es auch damit nicht klappt, dann hänge bitte hier das Plugin an deinen Post an, dann lade ich es mal morgen bei mir. Möglicherweise fehlen bei dir die richtige .NET Version.
Benenne die beiden GetWeaponSlot von mit um zu GetWeaponSlot2, dann bist du die Fehler los.
Ich kann dir nur sagen, dass du ein falsches Plugin verwendest. Welches du verwenden musst steht entweder dort wo du den Code her hast, oder (wie es eigentlich vorbildlich wäre, im Code).
Ansonsten kannst du ja mal verschiedene. MySQL Teile aus dem Code posten, vor allem der Verbindungsaufbau und ein zwei weitere Beispiele.
Das heißt, dass die Waffen 0 und 1 den Slot 0 haben.
Das GetPlayerWeaponData muss in dein DropPlayerWeapons.