Beitrag von Almaz ()
Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
Poste bitte deinen Code dazu nochmal, so wie er jetzt ist. Ich habe das Gefühl, dass du es nicht so gemacht hast, wie ich es postet habe, und es deshalb den print nicht anzeigt.
Poste bitte deinen Code dazu nochmal, so wie er jetzt ist. Ich habe das Gefühl, dass du es nicht so gemacht hast, wie ich es postet habe, und es deshalb den print nicht anzeigt.
[pwn=1337]
printf("IsARomero: %d / playerid: %d / model: %d", IsARomero(GetPlayerVehicleID(playerid)), playerid, GetVehicleModel(GetPlayerVehicleID(playerid)));
printf("Job: %d / NPC: %d", PlayerInfo[playerid][pJob], IsPlayerNPC(playerid));
if(IsARomero(GetPlayerVehicleID(playerid)))
{
if(PlayerInfo[playerid][pJob] != 33 IsPlayerNPC(playerid))
{
printf("Entfernt.");
SendClientMessage(playerid,COLOR_GREY," Du bist kein bestatter !");
RemovePlayerFromVehicle(playerid);
return 1;
}
}[/pwn]
Hast du TeamViewer? Wenn ja, PN mir mal kurz deine Daten. Das will ich selbst sehen, dass das nicht klappt.
Oder hast du eine mehrzeilige Meldung im Compiler, mit vielen Zahlen?
Hast du TeamViewer? Wenn ja, PN mir mal kurz deine Daten. Das will ich selbst sehen, dass das nicht klappt.
nein, ich besitzt kein TeamViewer ehm können wir das nicht, anderes machen mit der Abfrage?
Die Job ID ist 33 da bin ich mir auch hundert Prozent sicher und die Fahrzeug ID's: 442
was meinst du mit Mehrzeilig?
Lad dir doch einfach TV runter..
Ist sogar kostenlos :o
Er meint damit einen Code der verschiedene Statistiken anzeigt welche irrelevant sind.
Unter den normalen Fehlermeldungen
Hast du TeamViewer? Wenn ja, PN mir mal kurz deine Daten. Das will ich selbst sehen, dass das nicht klappt.
Oder hast du eine mehrzeilige Meldung im Compiler, mit vielen Zahlen?
Meinst du das?
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
Header size: 25600 bytes
Code size: 3960812 bytes
Data size: 19792516 bytes
Stack/heap size: 32768 bytes; estimated max. usage: unknown, due to recursion
Total requirements:23811696 bytes
Jaaaa! Genau das.
Füge unter dem letzten Include in deinem Gamemode das ein:
#pragma dynamic 1000000
Falls die Meldung nicht weg geht, erhöhe die Zahl etwas.
Jaaaa! Genau das.
Füge unter dem letzten Include in deinem Gamemode das ein:
#pragma dynamic 1000000
Falls die Meldung nicht weg geht, erhöhe die Zahl etwas.
haha, ich dachte schon Ya die Meldung ist nun weg
was müsste ich nun machen?
Nochmal deinen Code ausprobieren und den Log mit dem aktuellen Code zusammen posten falls es immer noch nicht klappt.
Eine Meldung mit Heap Size und ganz vielen Zahlen.
Unter die letzte Include die du angegeben hast.
hi, mhm könntest du mir irgend wie weiter helfen?
Was ist denn jetzt noch das Problem? Geht es immer noch nicht?
Kannst du nochmal den aktuellen Code posten, falls es nicht geht? Und einen aktuellen Log dazu.
Was ist denn jetzt noch das Problem? Geht es immer noch nicht?
Kannst du nochmal den aktuellen Code posten, falls es nicht geht? Und einen aktuellen Log dazu.
Server-Log:
[11.11.2014 | 19:11:05] IsARomero: 0 / playerid: 1 / model: 0
[11.11.2014 | 19:11:05] Job: 0 / NPC: 0
[pwn=1337]forward IsARomero(carid);public IsARomero(carid)
{
new modelid = GetVehicleModel(carid);
if(modelid == 442)
{
return 1;
}
return 0;
}
printf("IsARomero: %d / playerid: %d / model: %d", IsARomero(GetPlayerVehicleID(playerid)), playerid, GetVehicleModel(GetPlayerVehicleID(playerid)));
printf("Job: %d / NPC: %d", PlayerInfo[playerid][pJob], IsPlayerNPC(playerid));
if(IsARomero(GetPlayerVehicleID(playerid)))
{
if(PlayerInfo[playerid][pJob] != 33 IsPlayerNPC(playerid))
{
printf("Entfernt.");
SendClientMessage(playerid,COLOR_GREY," Du bist nicht, im Bestattungs Unternehmen!");
RemovePlayerFromVehicle(playerid);
return 1;
}
}[/pwn]
Also ich habe das gerade mal bei mir getestet:
#include <a_samp>
#define COLOR_GREY 0xAAAAAAFF
enum pData {
pJob
};
new PlayerInfo[MAX_PLAYERS][pData];
forward IsARomero(carid);
public IsARomero(carid)
{
new modelid = GetVehicleModel(carid);
if(modelid == 442)
{
return 1;
}
return 0;
}
public OnFilterScriptInit()
{
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
printf("IsARomero: %d | playerid: %d | model: %d", IsARomero(GetPlayerVehicleID(playerid)), playerid, GetVehicleModel(GetPlayerVehicleID(playerid)));
printf("Job: %d | NPC: %d", PlayerInfo[playerid][pJob], IsPlayerNPC(playerid));
if(IsARomero(GetPlayerVehicleID(playerid)))
{
if(PlayerInfo[playerid][pJob] != 33 || IsPlayerNPC(playerid))
{
printf("Entfernt.");
SendClientMessage(playerid,COLOR_GREY," Du bist kein bestatter !");
RemovePlayerFromVehicle(playerid);
return 1;
}
}
return 1;
}
Log:
Zitat[11/11/2014 20:02:21] IsARomero: 1 | playerid: 16 | model: 442
[11/11/2014 20:02:21] Job: 0 | NPC: 0
[11/11/2014 20:02:21] Entfernt.
Klappt einwandfrei.
Erstelle das bei dir mal als Filterscript und teste es dann.
Alles anzeigenAlso ich habe das gerade mal bei mir getestet:
#include
#define COLOR_GREY 0xAAAAAAFF
enum pData {
pJob
};
new PlayerInfo[MAX_PLAYERS][pData];
forward IsARomero(carid);
public IsARomero(carid)
{
new modelid = GetVehicleModel(carid);
if(modelid == 442)
{
return 1;
}
return 0;
}
public OnFilterScriptInit()
{
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
printf("IsARomero: %d | playerid: %d | model: %d", IsARomero(GetPlayerVehicleID(playerid)), playerid, GetVehicleModel(GetPlayerVehicleID(playerid)));
printf("Job: %d | NPC: %d", PlayerInfo[playerid][pJob], IsPlayerNPC(playerid));
if(IsARomero(GetPlayerVehicleID(playerid)))
{
if(PlayerInfo[playerid][pJob] != 33 || IsPlayerNPC(playerid))
{
printf("Entfernt.");
SendClientMessage(playerid,COLOR_GREY," Du bist kein bestatter !");
RemovePlayerFromVehicle(playerid);
return 1;
}
}
return 1;
}
Log:
Klappt einwandfrei.
Erstelle das bei dir mal als Filterscript und teste es dann.</a_samp>
hi, es funktioniert einwandfrei aber jetzt habe ich ein anderes Problem, z.B ich gebe mir den Job: 33 und steige dann ins Fahrzeug und dann werde ich wieder gekickt obwohl ich den Job habe?
und wenn ich den Code ins Skript einfüge bekomme ich noch Fehler:
C:\Users\suleyman\Desktop\John Script\gamemodes\John.pwn(529) : error 001: expected token: ";", but found "enum"
C:\Users\suleyman\Desktop\John Script\gamemodes\John.pwn(5342) : error 021: symbol already defined: "PlayerInfo"
Und zwar gibt es schon mal die Definition "PlayerInfo"
Zeile: 529
new PlayerInfo[MAX_PLAYERS][pData]
Zeile: 5342
new PlayerInfo[MAX_PLAYERS][pInfo];//SÜLO
Klar, mit dem Job geht es natürlich nicht, wenn es in einem extra Filterscript ist. Der ist ja nur zum testen gedacht.
Wenn du es jetzt bei dir einfügen willst in den Code (ist eigentlich 1:1 der Code den du hast), dann kannst du das machen, aber lass das hier weg:
#define COLOR_GREY 0xAAAAAAFF
enum pData {
pJob
};
new PlayerInfo[MAX_PLAYERS][pData];
Die Deklarationen hast du ja schon.
Alles anzeigenKlar, mit dem Job geht es natürlich nicht, wenn es in einem extra Filterscript ist. Der ist ja nur zum testen gedacht.
Wenn du es jetzt bei dir einfügen willst in den Code (ist eigentlich 1:1 der Code den du hast), dann kannst du das machen, aber lass das hier weg:
#define COLOR_GREY 0xAAAAAAFF
enum pData {
pJob
};
new PlayerInfo[MAX_PLAYERS][pData];
Die Deklarationen hast du ja schon.
Ich habe es genau jetzt so ins Skript eingefügt, jetzt Funktioniert es nicht, beim FliterSkript aber schon.
Code:
[pwn=1337]forward IsARomero(carid);
public IsARomero(carid)
{
new modelid = GetVehicleModel(carid);
if(modelid == 442)
{
return 1;
}
return 0;
}printf("IsARomero: %d | playerid: %d | model: %d", IsARomero(GetPlayerVehicleID(playerid)), playerid, GetVehicleModel(GetPlayerVehicleID(playerid)));
printf("Job: %d | NPC: %d", PlayerInfo[playerid][pJob], IsPlayerNPC(playerid));if(IsARomero(GetPlayerVehicleID(playerid)))
{
if(PlayerInfo[playerid][pJob] != 33 IsPlayerNPC(playerid))
{
printf("Entfernt.");
SendClientMessage(playerid,COLOR_GREY," Du bist kein bestatter !");
RemovePlayerFromVehicle(playerid);
return 1;
}
}[/pwn]
Dann hat dein Gamemode ein Problem an einer anderen Stelle, denn der Code ist 100% korrekt.
Du kannst es ja in dem Filterscript laufen lassen.
Wenn du dann dem Spieler einen Job gibst, setzt du die Variable auch in dem Filterscript über CallRemoteFunction.
Beispiel:
Im GM:
CallRemoteFunction("SetJob", "dd", playerid, 33);
Im FS:
forward SetJob(playerid, job);
public SetJob(playerid, job)
{
PlayerInfo[playerid][pJob] = job;
return 1;
}