Das kannst du so machen:
if(newkeys & KEY_CROUCH)
{
if(IsPlayerInRangeOfPoint(playerid,15.0,2518.39, 1827.70, 13.40))
{
static bool:isOpen;
if(!isOpen)
{
MoveObject(tor15,2518.24, 1833.53, 13.40, 4);
MoveObject(tor16,2518.40, 1812.90, 13.40, 4);
SendClientMessage(playerid,COLOR_WHITE,"Du hast das Tor geöffnet.");
isOpen = true;
}
else
{
MoveObject(tor15,/*Koordinaten zu*/, 4);
MoveObject(tor16,/*Koordinaten zu*/, 4);
SendClientMessage(playerid,COLOR_WHITE,"Du hast das Tor geschlossen.");
isOpen = false;
}
}
}
Beiträge von Jeffry
-
-
Wie sieht der Teil von OnPlayerConnect aus, bei dem du abfragst, ob der Spieler gebannt ist?
Speicherst du die pVar auch in der Spielerdatei/Datenbank und lädst es, bevor du es abfrägst? Wenn nein, mach das. -
if(dialogid == DIALOG_BUG_MELDEN)
{
if(strlen(inputtext) < 5) return SendClientMessage(playerid, 0xFF0000FF,"Dein Bug-Report ist zu kurz!");
static b_count;
if(b_count == sizeof Bugs) return SendClientMessage(playerid, 0xFF0000FF, "ERROR: Es ist leider kein Platz für einen Bug mehr frei!.");
format(Bugs[b_count], MAX_BUG_LEN, inputtext);
SendClientMessage(playerid, 0xFFFFFFFF, "Bug gemeldet. Danke!");
SetPVarString(playerid,"Bugmlder",inputtext);
savebugs(playerid,inputtext);
b_count++;
valstr(string,b_count);
for(new u=0; u<MAX_PLAYERS; u++) PlayerTextDrawSetString(u,Bugs_2[u],string);
return 1;
}Außerdem ist es keine sonderlich gute Idee, für jeden Spieler ein Textdraw zu haben, das die gleiche Zahl anzeigt. Könntest es auch mit einem normalen Textdraw machen. Geht zwar, ist aber nicht wirklich toll.
-
Wie gesagt, die darfst du nicht kompilieren.
Füge einfach
#include <colors>
in deinen Gamemode ein und kompiliere den.Die Include brauchst du nur zu speichern, aber nicht kompilieren.
-
Das Problem ist ohne dieses Anticheat Include funktioniert alles !
Der Anti Cheat an sich hat sehr viele Probleme (je nach dem wie viele bereits behoben sind), und wenn es ohne den geht dann liegt es wohl daran, ja.
Ich kann mir vorstellen, dass da ein Hook nicht klappt, oder eine Funktion nicht richtig aufgerufen oder durchgeführt wird. Am besten du kontaktierst ErikSon direkt, oder du debuggst das alles mal, aber das ist, je nach dem wie groß dein Code ist, ein ziemlicher Aufwand.Crocky:
Dann musst du es so schreiben:
Spoiler anzeigen ocmd:carinfo(playerid, params[])
{
new vID;
if(!Spieler[playerid][Team] == 7)return SendClientMessage(playerid,ROT,"Du bist kein Ordnungsbeamter!");
if(sscanf(params, "d", vID)) return SendClientMessage(playerid,ROT,"/carinfo [VehicleID]");
//Abfragen ob der Spieler online ist...
new id, pID;
for(new p = 0; p<MAX_PLAYERS; p++)
{
if(IsPlayerConnected(p))
{
for(new i=0; i<MaxVeh;i++)
{
if(PlayerCar[p][i][CarId] == vID)
{
id = i;
pID = p;
break;
}
}
}
}
new str[512];
format(str, sizeof(str), "Besitzer: %s (ID: %D)\n", SpielerName(pID), pID);
format(str, sizeof(str), "%sModel ID: %d\n", str, PlayerCar[pID][id][CarModel]);
format(str, sizeof(str), "%sTank: %d\n", str, PlayerCar[pID][id][CarTank]);
format(str, sizeof(str), "%sPreis: %d\n", str, PlayerCar[pID][id][CarPreis]);
//...
ShowPlayerDialog(playerid, DIALOG_CARINFO, DIALOG_STYLE_MSGBOX, "Carinfo", str, "Ok", "");
return 1;
} -
Poste bitte mal den Code für ein solches Textdraw bei dem es nicht klappt.
-
Dann fällt mir spontan kein wirklich erklärbarer Grund ein ohne den Code zu haben.
Aber wenn es jetzt wieder geht ist ja gut.Ansonsten einfach nochmal melden.

-
Debugge den Anfang der Funktion mal so:
stock s_SetVehicleToRespawn(vID,id)
{
printf("vID: %d", vID);
switch(id)
{
case -1:
{
for(new i=0;i<MAX_VEHICLES - 1;i++)
{
printf("i: %d", i);
if(FahrzeugInfo[i][fz_ID] == vID)
{
printf("Typ: %d", FahrzeugInfo[i][fz_Typ]);
switch(FahrzeugInfo[i][fz_Typ])
{
case 0:
{
DestroyVehicle(FahrzeugInfo[i][fz_ID]);Was steht im Log, wenn du den Befehl ausführst?
-
ShowPlayerDialog(playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, "E-Mail", "Bitte gebe deine E-Mail an:", "Ok", "");
Bei OnDialogResponse:
if(dialogid == DIALOG_EMAIL)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, "E-Mail", "Bitte gebe deine E-Mail an:", "Ok", "");
//Hier dann den inputtext in die Variable speichern...
} -
Von Anfang an nicht, oder wenn das Haus gekauft wird?
Was passiert, wenn du das Haus kaufst, kommt der Text dann, falls er am Anfang gefehlt hat?Hast du alle Änderungen gemacht?
-
Welchen Code hast du denn offen, in dem du auf "Kompilieren" drückst?
Die Include oder deinen Gamemode? -
Naja, um an den Index zu kommen:
new id;
for(new i=0; i<MaxVeh;i++)
{
if(PlayerCar[playerid][i][CarId] == GetPlayerVehicleID(playerid))
{
id = i;
break;
}
}
//Und dann hier eben alles auslesen, zum Beispiel "PlayerCar[playerid][id][CarOwner]" oder so...Pr0x: Das scheint ein Sprite zu sein, sonst wüsste ich nicht wie das geht. Kannst ja mal schauen ob du da eins findest.
EDIT:
Crocky:
Das was du mir geschickt hast, etwas erweitert:
Spoiler anzeigen ocmd:carinfo(playerid, params[])
{
new pID;
if(!Spieler[playerid][Team] == 7)return SendClientMessage(playerid,ROT,"Du bist kein Ordnungsbeamter!");
if(sscanf(params, "u", pID)) return SendClientMessage(playerid,ROT,"/carinfo [Spieler]");
//Abfragen ob der Spieler online ist...
new id;
for(new i=0; i<MaxVeh;i++)
{
if(PlayerCar[pID][i][CarId] == GetPlayerVehicleID(pID))
{
id = i;
break;
}
}
new str[512];
format(str, sizeof(str), "Besitzer: %s (ID: %D)\n", SpielerName(pID), pID);
format(str, sizeof(str), "%sTank: %d\n", str, PlayerCar[pID][id][CarTank]);
format(str, sizeof(str), "%sPreis: %d\n", str, PlayerCar[pID][id][CarPreis]);
//...
ShowPlayerDialog(playerid, DIALOG_CARINFO, DIALOG_STYLE_MSGBOX, "Carinfo", str, "Ok", "");
return 1;
}Das sollte reichen damit du den Rest fertig machen kannst. Ansonsten einfach hier Bescheid geben.
PMs kann ich dir keine mehr schicken, da du es auf "Nur Freunde" umgestellt hast. -
Du hast vor pkwlic zwei Kommata, in deinem Code aber nicht. Du hast den Code wohl nochmal geändert, schau mal nochmal nach, ob der Code wirklich so ist, wie du ihn gepostet hast, denn so ist er richtig, da ist nur 1 Komma, in deinem Log sind da zwei.
-
Wahrscheinlich hast du DIALOG_BUG_MELDEN auch als 1 definiert, oder? Schau mal nach, ob das der Fall ist.
-
Jetzt hast du den Code ja wieder weg gemacht, kanns mir nicht nochmal anschauen. Aber was du machen kannst, was auf jeden Fall geht, ziehe den Login Dialog Teil vor den Bug Dialog nach ganz oben.
Schau auch mal nach, ob du vielleicht zwei mal einen Dialog mit der ID 1 deklariert hast.
-
Versuchst du die Include zu kompilieren? Wenn ja, das darfst bzw brauchst du nicht zu machen, du inkludierst sie ja mit
#include <colors>
In deinem Gamemode.Oder was machst du?
-
Ok, setze mal nach:
//Bug melden
einen print:
printf("dialogid = %d / %d / %d", dialogid, DIALOG_LOGIN, response);Und dann vor:
if(dialogid == DIALOG_LOGIN)
das hier:
printf("vor: dialogid = %d / %d response: %d", dialogid, DIALOG_LOGIN, response);Was steht dann im Log?
-
strmid(PlayerInfo[playerid][pKey], valtmp, 0, strlen(valtmp)-1, 255);
zu:
strmid(PlayerInfo[playerid][pKey], valtmp, 0, strlen(valtmp), 255); -
Hast du im enum von sInfo auch "baned" drin stehen?
Wenn nein, mach das dazu. -
Welcher Text? Kannst du posten was nicht angezeigt wird?
Und kannst du bitte nicht den ganzen Post von mir mit allen Codes zitieren? Das stört extrem. Danke!