Hallo....ich brauch auch mal wieder Hilfe:
Kann man ein %-Zeichen in printf ausgeben? Es wird nicht angezeigt, wegen den %d %s %c-"Dingern".
Hallo....ich brauch auch mal wieder Hilfe:
Kann man ein %-Zeichen in printf ausgeben? Es wird nicht angezeigt, wegen den %d %s %c-"Dingern".
Recht einfach
public OnPlayerText(playerid,text[])
{
if(!strfind(text,"fuck",true))
{
SendClientMessage(playerid,COLOR_RED," KEINE SCHIMPFWÖRTER!");
return 0;
}
if(!strfind(text,"arsch",true))
{
SendClientMessage(playerid,COLOR_RED," KEINE SCHIMPFWÖRTER!");
return 0;
}
if(!strfind(text,"huso",true))
{
SendClientMessage(playerid,COLOR_RED," KEINE SCHIMPFWÖRTER!");
return 0;
}
// ... und so weiter
return 1;
}
Ich seh da jetzt keine Fehler...aber ich hatte mal ein ähnliches Problem. Ich hatte DestroyMenu benutzt um das Menu "auszublenden" und dann bei nächsten Aufruf per ShowMenuForPlayer ist der Server gecrasht.
Vllt hilft dir das weiter.... Hast du irgendwo DestroyMenu verwendet, wenn ja wo?
Vehicle[v][vOwner] = strval( val );
Eventuell könnte es daran liegen, dass der Owner kein Integer sondern eben ein Name => String ist.
Dann sollte das so aussehen:
key = ini_GetKey( Data );
format(INFO, sizeof(INFO), "Owner[%d]",v);
if( strcmp( key , INFO, true ) == 0 ) { val = ini_GetValue( Data ); strmid(Vehicle[v][vOwner], val, 0, strlen(val)-1, 255); }
else { return 1; }
Ebenso müssen die Koordinaten Floats sein:
format(INFO, sizeof(INFO), "X[%d]",v);
if( strcmp( key , INFO, true ) == 0 ) { val = ini_GetValue( Data ); Vehicle[v][vX] = floatstr( val ); }
Also bei vY, vZ und vA auch floatstr benutzen.
Ich hab mal wo gesehen, dass man sich dafür bewerben kann, aber man muss mit dem GameRank auf gamemonitor unter 50 sein....
Und das dauert
Ich würds mal so machen:
format(Vehicle[v][vOwner],sizeof(Vehicle[v][vOwner]),dini_Get("cars.cfg", INFO));
Und wenn das nicht geht:
strmid(Vehicle[v][vOwner],dini_Get(String, "Name"),0,strlen(Vehicle[v][vOwner]),strlen(Vehicle[v][vOwner]));
format(PlayerInfo[playerid][pName],sizeof(PlayerInfo[playerid][pName]),dini_Get(String, "Name"));
Ja...kommt im Endeffekt etwa das gleiche raus.
AddMenuItem(MyMenu,dini_Get("file.txt","text"));
Ja, das kann man
if(strcmp(cmd,"/grank",true) == 0)
{
new GangwithMostDrugs = -1, MostDrugs = 0;
for(new g=0; g<MAX_GANGS; g++)
{
if(Drugs[g] > MostDrugs)
{
MostDrugs = Drugs[g];
GangwithMostDrugs = g;
}
}
new s[100];
format(s,sizeof(s)," Gang %s hat am meisten Drogen!",GetGangName(GangwithMostDrugs));
SendClientMessage(playerid,COLOR_YELLOW,s);
return 1;
}
Das war jetzt mal ein Versuch. Das ganze klappt nur, wenn die gegeben Variablen irgendwie so sind.
das muss doch PlayerInfo heißen oder? anstatt pInfo einfach mal PlayerInfo
Wieso sollte er seine Variablen wie in GF benennen?
Wenn du die Funktion noch nicht benötigst, kannst du einfach #pragma unused pInfo unter das new... schreiben.
Ich glaube, ich hab nen Fehler gemacht, probiers mal so:
//Bei OnPlayerSpawn:
SetPlayerMapIcon(playerid,0,1546.3845,-1675.7490,13.5622,30,0xFFFFFFFF);
SetPlayerMapIcon(playerid,1,1438.3583,-2286.7317,13.5469,51,0xFFFFFFFF);
SetPlayerMapIcon(playerid,2,73.2726,-1534.1525,5.2262,11,0xFFFFFFFF);
SetPlayerMapIcon(playerid,3,143.5704,-1374.3032,49.8520,55,0xFFFFFFFF);
SetPlayerMapIcon(playerid,4,1182.2349,-687.2576,61.5457,55,0xFFFFFFFF);
SetPlayerMapIcon(playerid,5,-1864.0883,-216.7429,18.3750,61,0xFFFFFFFF);
//Bei OnPlayerSpawn:
SetPlayerMapIcon(playerid,0,1546.3845,-1675.7490,13.5622,30,0xFFFFFFFF);
SetPlayerMapIcon(playerid,0,1438.3583,-2286.7317,13.5469,51,0xFFFFFFFF);
SetPlayerMapIcon(playerid,0,73.2726,-1534.1525,5.2262,11,0xFFFFFFFF);
SetPlayerMapIcon(playerid,0,143.5704,-1374.3032,49.8520,55,0xFFFFFFFF);
SetPlayerMapIcon(playerid,0,1182.2349,-687.2576,61.5457,55,0xFFFFFFFF);
SetPlayerMapIcon(playerid,0,-1864.0883,-216.7429,18.3750,61,0xFFFFFFFF);
Mach an der Stelle da return 1; weg.
DisableInteriorEnterExits();
PortTimer = SetTimer("Ports", 1000, 1);
CreatePickup(1318, 23, 4871.7666,-2121.8618,3.4560); // PD Eingang // kleiner gelber Trichter
CreatePickup(1559, 23, 246.7282, 62.7136, 1003.6406); // PD Ausgang // Weißer Pfeil
return 1;
Man sollte mal feststellen, ob das ganze funktioniert, wenn man ein Tut dazu macht.
forward Ports();
public Ports()
{
for(new playerid=0; playerid<GetMaxPlayers(); playerid++)
{
if(IsPlayerConnected(playerid))
{
if (PlayerToPoint(1, playerid, 1555.1205, -1675.6710, 16.1953)) // PD Eingang // if (PlayerToPoint(Radius, playerid, Float:X, Float:Y, Float:Z)) // Wo der Spieler Stehen soll
{
SetPlayerInterior(playerid, 6);
SetPlayerPos(playerid, 246.7840, 63.9002, 1003.6406); // Wo der Spieler hin kommen soll
SetPlayerFacingAngle(playerid, 0.0);
}
else if (PlayerToPoint(1, playerid, 246.7282, 62.7136, 1003.6406)) // PD Ausgang
{
SetPlayerInterior(playerid, 0);
SetPlayerPos(playerid, 1552.4490, -1674.9897, 16.1953);
SetPlayerFacingAngle(playerid, 90.0);
}
}
}
return 1;
}
Ist nicht böse gemeint, aber dein Code funktioniert nur für ID 0 und wenn man das alleine testet, kanns vorkommen, dass man ID 0 ist
Benutzt du strtok, DCMD-sscanf, oder vllt strget?
Wie ist die Variable für Adminlevel bei dir?
In welcher Traumwelt lebst du?
Wenn da steht "random(100000 - 400000);" dann ist das eine Rechenaufgabe für den Compiler...Da heißt soviel wie "random(-300000);"
Zur Erklärung:
random(5) heißt, es wird eine Zahl von 0 bis 4 augegeben...so wird bei random(400000) dann was von 0 bis 399999 ausgegeben...
...Link...
Ich hätte so ne Idee...
Oben hin:
new firstcar, lastcar;
Du machst dein erstes und letztes Auto für das Ding so:
firstcar = AddStaticVehicle(...);
lastcar = AddStaticVehicle(...);
Dann tust du das UnfreezeHim so ändern:
public UnFreezeHim(playerid)
{
TogglePlayerControllable(playerid,true);
for(new v=firstcar; v<=lastcar; v++)
{
if(GetVehicleDriver(v) != -1)
{
SetVehicleToRespawn(v);
}
}
return 1;
}
// Und das auch irgendwo unten hin:
stock GetVehicleDriver(vehicleid)
{
for(new i = 0; i < GetMaxPlayers(); i++)
{
if(IsPlayerConnected(i) && GetPlayerState(i) == PLAYER_STATE_DRIVER && GetPlayerVehicleID(i) == vehicleid)
{
return i;
}
}
return -1;
}
Die ganzen aufgelisteten Variablen hast du als new ; drinne, benutzst sie aber nicht weiter...
Du kannst sie ignorieren bis du sie brauchst, oder du fügst das hier ein:
#pragma unused plRank
#pragma unused bankgeld
#pragma unused adminlevel
#pragma unused waffenschein
#pragma unused bootschein
#pragma unused motoschein
#pragma unused lkwschein
#pragma unused mofaschein
#pragma unused flugschein
#pragma unused autoschein