Unter welchem Callback startest du denn den Timer?
SetTimer("CheckHealth",1039,true);//Fahrzeug checken
Beiträge von Jeffry
-
-
SetPlayerPos(playerid,1763.2980,-1896.6514,13.5625,276.7087);
zu:
SetPlayerPos(playerid,1763.2980,-1896.6514,13.5625);
SetPlayerFacingAngle(playerid, 276.7087);Kannst du die Zeilen mit den Fehlern bitte mal markieren? Und die restlichen Zeilen posten? Das sind nämlich Errors die gar nicht hier vorkommen.
-
Da habe ich dir doch das Tutorial gegeben: http://forum.sa-mp.com/showthread.php?t=176688
Vielleicht versuchst du mal es umzusetzen, wenn es nicht klappt, poste einfach den Code den du gemacht hast. Einfach mal ausprobieren, auch wenn totaler Müll rauskommt. Macht ja nichts, aber dann hast du es wenigstens versucht. Probiere es einfach mal.
-
Du schreibst das einfach in einen ocmd Befehl:
ocmd:dm(playerid, params[])
{
new Random = random(sizeof(RandomSpawns));
SetPlayerPos(playerid, RandomSpawns[Random][0], RandomSpawns[Random][1], RandomSpawns[Random][2]);
SetPlayerFacingAngle(playerid, RandomSpawns[Random][3]);
return 1;
} -
Das ist übrigens nicht das R5, sondern:
Zitat> MySQL plugin R6-2 successfully loaded.

Füge bei OnGameModeInit das ein:
mysql_debug(1);
Was steht dann im MySQL Log, bevor der Server abstürzt? -
Ich glaube, diese Variable hat gar keinen Sinn in dem Zusammenhang, oder? "Dtc_PlayerKey[playerid]"
Ändere mal:
if(Dtc_PlayerHaveCar[playerid][Dtc_PlayerKey[playerid]])
zu:
if(Dtc_PlayerHaveCar[playerid][mv])(Hab's dir auch in Post #5 geändert.)
EDIT:
[DT]Sniper: Danke für die Info.
-
Sorry, das gehört natürlich weg, ist ja keine Schleife mehr da.
if(dialogid==DIALOG_CARKEYS)
{
if(response)
{
new wstring[145];
if(Dtc_PlayerHaveCar[playerid][listitem])
{
format(wstring, sizeof(wstring), "Du nimmst deinen %dten Auto-Schlüssel, für deinen %s!",listitem+1,CarName[PlayerCar[playerid][listitem][CarModel]-400]);
SendClientMessage(playerid,blau,wstring);
}
else
{
format(wstring, sizeof(wstring), "Du nimmst deinen %dten Auto-Schlüssel, für deinen einen freien Platz!",listitem+1);
SendClientMessage(playerid,blau,wstring);
}
}
return 1;
} -
Ok, schreibe es mal so. Ich habe es etwas umgestellt, so wie ich denke es sein muss, bzw. du es haben willst. Wenn ich deinen Code richtig interpretiert habe sollte es so passen.
ocmd:carkey(playerid)
{
new mc = MaxVeh;
if(mc > 1)
{
new mvstring[800];
for(new mv;mv<MaxVeh;mv++)
{
if(Dtc_PlayerHaveCar[playerid][mv])
{
format(mvstring,800,"%s\n%s",mvstring,CarName[PlayerCar[playerid][mv][CarModel]-400]);
}
else
{
format(mvstring,800,"%s\nFrei",mvstring);
}
}
ShowPlayerDialog(playerid,DIALOG_CARKEYS,DIALOG_STYLE_LIST,"Autoschlüssel",mvstring,"Auswählen","Abbrechen");
}
return 1;
}if(dialogid==DIALOG_CARKEYS)
{
if(response)
{
new wstring[145];
if(Dtc_PlayerHaveCar[playerid][listitem])
{
format(wstring, sizeof(wstring), "Du nimmst deinen %dten Auto-Schlüssel, für deinen %s!",listitem+1,CarName[PlayerCar[playerid][listitem][CarModel]-400]);
SendClientMessage(playerid,blau,wstring);
}
else
{
format(wstring, sizeof(wstring), "Du nimmst deinen %dten Auto-Schlüssel, für deinen einen freien Platz!",listitem+1);
SendClientMessage(playerid,blau,wstring);
}
}
return 1;
}EDIT:
@leader_king: ^ -
Schau mal hier:
http://forum.sa-mp.com/showthread.php?t=162488Nur dass du es nicht in OnPlayerSpawn packst, sondern in deinen Befehl.
Zum /exit kannst du ja zum Beispiel abfragen, ob der Spieler in einer anderen virtuellen Welt ist, die du beim Befehl gesetzt hast, oder du machst eine PVar auf 1 wenn er die Area betritt.
Edit:
Siehe auch:
http://forum.sa-mp.com/showthread.php?t=176688Edit2:
@CIBERKILLER: Es gibt keine deutschen Tutorials dazu, zumindest habe ich keins gefunden, welches dazu noch etwas taugt. Hast du eins? -
OnGameModeInit
SetTimer("CheckPos", 200, true);Unten im Code
forward CheckPos();
public CheckPos()
{
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerInRangeOfPoint(i, 5.0, X, Y, Z))
{
//SetPlayerPos(...)
}
}
return 1;
}In IsPlayerInRangeOfPoint musst du das XYZ mit deinen Koordinaten ersetzen, an denen es den Spieler weg teleportieren soll. Die 5.0 ist der Prüfungsradius.
-
Einen Befehl erstellen der dich raus teleportiert, oder beim drücken einer Taste (OnPlayerKeyStateChange), oder per Timer wenn man an einer bestimmten Position ist.
Wie du willst. Oder eben mit einem zweiten Pickup.
-
Bei OnPlayerPickUpPickup:
if(pickupid == pickup)
{
//Spieler hat das Haus-Pickup betreten... SetPlayerPos oder so hier...
} -
if(!strcmp(inputtext, "samp2233") && strlen(inputtext))
{
//alles ok
}
else
{
//PW falsch
} -
Schreibe es mal so:
format(query,350,"INSERT INTO biz (`bx`, `by`, `bz`, `ib_x`, `ib_y`, `ib_z`, `b_interior`,`b_level`,`b_preis`,`b_kasse`) VALUES ('%f','%f','%f','0.0','0.0','0.0','0','%i','%i','%i')",
x,y,z,klevel,kpreis,bkasse);BY ist in ORDER BY vorhanden, deshalb wird es nicht klappen.
-
Kannst du ganz einfach mit einem Editor machen:
http://forum.sa-mp.com/showthread.php?t=282883
http://forum.sa-mp.com/showthread.php?t=215963 -
Zitat
[17:01:00] [DEBUG] CMySQLQuery::Execute[()] - query was successful
[17:01:00] [DEBUG] CMySQLQuery::Execute[()] - no callback specified, skipping result saving
[17:01:00] [DEBUG] CMySQLQuery::Execute[()] - data being passed to ProcessCallbacks()
[17:01:00] [DEBUG] CMySQLQuery::Execute[()] - starting query execution
Das ist nur eine Debug-Meldung, weil du mysql_log mit ALLEN Logs nutzt. Das ist kein Fehler, also alles gut. An deinem Code ist nichts falsch.=> Query succesful: Erfolgreich
=> No callback specified: Es wurde kein Callback angegeben, es wird also kein Result zurück gegeben. Passt.
=> Daten werden an ProcessCallbacks() weitergegeben
=> Query wird ausgeführt.===> Alles OK!
-
Du nutzt kein TextDrawTextSize.
Schau dir mal diesen Thread an, da sind wir das mal ausführlich durchgegangen, wie das mit dem Radius zum anklicken gemacht werden muss.
Anklickbare TextDraws Funktionieren nichtDie Box kannst du natürlich, wenn es mit dem Anklicken klappt auf TextDrawUseBox false setzen, aber zum anpassen des anklickbaren Bereichs eignet sich eine Box gut.
Aufpassen: Die Y-Größe (Höhe) sieht man an der Box nicht, die musst du abschätzen!
-
Erstelle bitte in deinem /pawno/ Verzeichnis eine Datei "pawn.cfg" und schreibe dort "-d3" rein.
Dann kompiliere deinen Gamemode neu und poste was dann im Log steht, wenn der Server abstürzt. Poste dazu auch gleich die Zeilen um die Zeilenangabe im Log. -
Es ist relativ egal wie die Variable heißt, aber wenn du es so machen willst ja.
Du musst es einfach wie zum Beispiel das Geld behandeln, speichern und laden. Die Zeit sollte dann ganz normal runterzählen.Wenn nicht, poste bitte den Code, wie du ihn dann hast.
-
Lass es erst mal so laufen:
Spoiler anzeigen ocmd:creport(playerid,params[])
{
if(!IsPlayerConnected(playerid))return 1;
new string[128];
if(SpielerInfo[playerid][pReportAktiv] == 0)return SendClientMessage(playerid, Rot, "** Kein aktiver Report!");
printf("Level: %d", SpielerInfo[playerid][pAdminlevel])
if(SpielerInfo[playerid][pAdminlevel] == 0)
{
for(new i=0;i<MAX_REPORTS;i++)
{
if(gSupport[i][ticketCreated])
{
if(gSupport[i][ticketSender] == playerid)
{
if(gSupport[i][ticketAdmin] == INVALID_PLAYER_ID)
{
SendClientMessage(playerid, Rot, "* Du hast das Report Ticket zurückgezogen.");
gSupport[i][ticketCreated] = false;
gSupport[i][ticketSender] = INVALID_PLAYER_ID;
gSupport[i][ticketAdmin] = INVALID_PLAYER_ID;
switch(gSupport[i][ticketType])
{
case 1: gAllgFragen--;
case 2: gBugmeldung--;
case 3: gRegelverstoss--;
case 4: gEinweisung --;
}
gSupport[i][ticketType] = 0;
strdel(gSupport[i][ticketMessage], 0, 90);
SpielerInfo[playerid][pReportAktiv] = 0;
UpdateReports();
return 1;
}
else
{
SendClientMessage(playerid, Rot, "** Dein Ticket wurde bereits geöffnet und kann nur von einem Admin geschlossen werden!");
return 1;
}
}
}
}
}
else
{
for(new i=0;i<MAX_REPORTS;i++)
{
if(gSupport[i][ticketCreated])
{
if(gSupport[i][ticketAdmin] == playerid)
{
format(string, sizeof(string), "* Du hast das Report Ticket von %s gelöscht.", GetName(gSupport[i][ticketSender]));
SendClientMessage(playerid, Rot, string);
if(IsPlayerConnected(gSupport[i][ticketSender]) && SpielerInfo[gSupport[i][ticketSender]][pReportAktiv] == 1)
{
format(string, sizeof(string), "* %s hat das Ticket gelöscht.", GetName(playerid));
SendClientMessage(gSupport[i][ticketSender], Rot, string);
}
gSupport[i][ticketCreated] = false;
SpielerInfo[playerid][pReportAktiv] = 0;
SpielerInfo[gSupport[i][ticketSender]][pReportAktiv] = 0;
gSupport[i][ticketSender] = INVALID_PLAYER_ID;
gSupport[i][ticketAdmin] = INVALID_PLAYER_ID;
switch(gSupport[i][ticketType])
{
case 1: gAllgFragen--;
case 2: gBugmeldung--;
case 3: gRegelverstoss--;
case 4: gEinweisung --;
}
gSupport[i][ticketType] = 0;
strdel(gSupport[i][ticketMessage], 0, 90);
UpdateReports();
return 1;
}
}
}
}
return SendClientMessage(playerid, Rot, "** Irgendwas ging schief.");
}Kommt jetzt eine Nachricht im Chat?
Was steht im Log?