Komisch.
Dann mal mal überall bei "doors" eine 0 rein, lass aber die FixDoors Funktion drunter stehen.
Beiträge von Jeffry
-
-
format(string, sizeof(string), "UPDATE `businesse` SET `bowner` = '%s' WHERE `bid` = '%i'", BizzInfo[h][bOwner], h);
zu:
format(string, sizeof(string), "UPDATE `businesse` SET `bowner` = '%s' WHERE `bid` = '%i'", BizzInfo[h][bOwner], BizzInfo[h][bID]);Das gleiche beim Verkauf.
-
Poste bitte den Kaufen-Befehl.
-
Ok, dann ist es genau das was ich vermutet habe. doors = 1 = locked
Nutze diese Funktion:
stock FixDoors(vehicleid)
{
for(new i = 1; i < sizeof(fvInfo); i++)
{
if(vehicleid == fvInfo[i][fvCar])
{
for(new p=0; p<MAX_PLAYERS; p++)
{
if(!IsPlayerConnected(p)) continueM
if(fvInfo[i][fvAbgeschlossen] == 1)
{
if(fvInfo[i][fvfrakid] == sInfo[p][pFraktion])
{
SetVehicleParamsForPlayer(fvInfo[i][fvCar],p,0,0);
}
else
{
SetVehicleParamsForPlayer(fvInfo[i][fvCar],p,0,1);
}
}
else if(fvInfo[i][fvAbgeschlossen] == 0)
{
SetVehicleParamsForPlayer(fvInfo[i][fvCar],p,0,0);
}
}
return 1;
}
}
return 1;
}Und füge im Befehl, jeweils nach dem SetVehicleParamsEx
FixDoors(vID);
ein. -
Dann hast du es nicht richtig gemacht.
Versuche es nochmal. Achte darauf, nicht den Code über die Datei zu öffnen, sondern über /pawno/pawno.exe -> Öffnen -> Datei auswählen.Die Include und das Plugin müssen die selbe Version haben.
-
Wie sieht deine IsAPlane Funktion aus? Möglicherweise steht da das Flugzeug nicht drin, das du fliegen willst.
-
Bei UpdateBizz:
format(query, sizeof(query),
"UPDATE `businesse` SET bowned = %i,bbx = %.3f,bby = %.3f,bbz = %.3f,blevel = %i,bpreis = %i,btill = %i,bproducts = %i,bmaxproducts = %i,bpriceprod = %i,bkasse = %i,bprods = %i WHERE `bid` = %d",
BizzInfo[h][bOwned],BizzInfo[h][bEntranceX],BizzInfo[h][bEntranceY],BizzInfo[h][bEntranceZ],BizzInfo[h][bLevelNeeded],BizzInfo[h][bBuyPrice],BizzInfo[h][bTill],BizzInfo[h][bProducts],BizzInfo[h][bMaxProducts],BizzInfo[h][bPriceProd],BizzInfo[h][bKasse],BizzInfo[h][bProds],h);
zu:
format(query, sizeof(query),
"UPDATE `businesse` SET bowned = %i,bbx = %.3f,bby = %.3f,bbz = %.3f,blevel = %i,bpreis = %i,btill = %i,bproducts = %i,bmaxproducts = %i,bpriceprod = %i,bkasse = %i,bprods = %i WHERE `bid` = %d",
BizzInfo[h][bOwned],BizzInfo[h][bEntranceX],BizzInfo[h][bEntranceY],BizzInfo[h][bEntranceZ],BizzInfo[h][bLevelNeeded],BizzInfo[h][bBuyPrice],BizzInfo[h][bTill],BizzInfo[h][bProducts],BizzInfo[h][bMaxProducts],BizzInfo[h][bPriceProd],BizzInfo[h][bKasse],BizzInfo[h][bProds],BizzInfo[h][bID]); -
new query[768];
for(new i=0; i<39; i++) format(SpielerInfo[playerid][pSkins], 313, "%s00000000", SpielerInfo[playerid][pSkins]);
SpielerInfo[playerid][pSkins][303] = '1';
SpielerInfo[playerid][pSkins][304] = '1';
SpielerInfo[playerid][pSkins][305] = '1';
mysql_format(handle, query, sizeof(query), "INSERT INTO accounts (Name, Passwort, Skins) VALUES ('%e', MD5('%e'), '%e')", SpielerInfo[playerid][pName], inputtext, SpielerInfo[playerid][pSkins]);
mysql_pquery(handle, query, "CreateAccount", "d", playerid); -
Zitat
Streamer Plugin: Warning: Include file version (0x275201) does not match plugin version (0x27201) (script might need to be recompiled with the latest include file)
Lade dir die neuste Streamer Plugin Version herunter, füge die neuste Include zu deinen Includes hinzu, kompiliere den Code neu und füge das neue Plugin in den Plugins Ordner ein.
http://forum.sa-mp.com/showthread.php?t=102865 -
Die Farbe muss hier - nicht wie bei Textdraws - in ARGB angegeben werden. Bei Textdraws ist es RGBA.
Daher ist bei dir A = 00 = Transparent.0x00FF00FF
zu:
0xFF00FF00(0x00FF00FF -> 0xFF00FF00)
-
Das return 1 muss aus der Schleife raus.
if((TakingLesson[playerid] == 1) || IsPlayerNPC(playerid))
{
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Du hast noch keinen Führerschein!");
new sendername[MAX_PLAYER_NAME];
GetPlayerName(playerid, sendername, sizeof(sendername));
format(oschein, sizeof(oschein), "HQ: VORSICHT %s faehrt ohne Fuehrerschein Auto", sendername);
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsACop(i) && IsPlayerConnected(i))
{
SendClientMessage(i, COLOR_RED, oschein);
}
}
return 1;
}
} -
Wie sieht denn dein Code aus?
-
Dann mach
for(new i=0; i<MAX_PLAYERS; i++) if(Iter_Contains(DM, i)) Count++;
zu:
for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i) && !IsPlayerNPC(i) && Iter_Contains(DM, i)) Count++;Dann sollte es passen.
-
SpielerInfo[playerid][pSecAntwort] = ??
zu:
format(SpielerInfo[playerid][pSecAntwort], 128, inputtext);Und beim Speichern:
new query[256];
zu:
new query[1024];Und am Ende:
WHERE id = '%s'",
zu:
WHERE id = '%d'", -
So:
public OnPlayerSpawn(playerid)
{
printf("OnPlayerSpawn: %d", playerid);
PreloadPlayerAnims(playerid);
SetPlayerSkin(playerid,sInfo[playerid][sSkin]);
printf("sIsDeath: %d", sInfo[playerid][sIsDeath]);
if(sInfo[playerid][sIsDeath] == 1)
{
printf("ok");
ClearAnimations(playerid);
SetPlayerVirtualWorld(playerid, sInfo[playerid][sDeathWorld]);
SetPlayerInterior(playerid, sInfo[playerid][sDeathInterior]);
SetPlayerPos(playerid, sInfo[playerid][sDeathPosX], sInfo[playerid][sDeathPosY], sInfo[playerid][sDeathPosZ]);
ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 0, 0, 0, 0, 0);
SetTimerEx("StartDeathAnim", 500, false, "i", playerid);
SetTimerEx("DeathTimer", 1000*60*2, false, "i", playerid);
TogglePlayerControllable(playerid,1);
return 1;
}
return 1;
}forward StartDeathAnim(playerid);
public StartDeathAnim(playerid)
{
ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 0, 0, 0, 0, 0);
return 1;
} -
Nein, ohne das i in TextDrawSetString.
-
Der X Wert ist die Position PLUS die Größe des nach rechts anklickbaren Bereiches. Der Y Wert ist die geschätzte Höhe.
Angenommen du erstellst dein Textdraw bei X = 120 und Y = 90. Dann machst du den Text "Hallo Welt" da rein. Sagen wir, der Text ist so groß, dass er in etwa über ein Zehntel deines Bildschirmes geht (musst du abschätzen, oder mit einem Lineal abmessen), dann heißt das 640 durch 10, das wäre 64. Somit ist PlayerTextDrawTextSize-X = 120 + 64 = 184.
Nun misst, bzw. schätzt, du die Höhe des Textdraws, sagen wir mal du bekommst den Text in etwa 20 mal untereinander hin, bis dein Bildschirm von oben nach unten voll damit wäre. Heißt also: 480 durch 20, das gibt 24. Somit wäre PlayerTextDrawTextSize-Y = 24. -
Siehst du diese Meldung, wenn du in den ersten Checkpoint fährst?
SendClientMessage(playerid,COLOR_WHITE, "{E8FF60}Fahrschul Schritt ({FF0000}1{E8FF60})");Wenn nicht, poste bitte dein ganzes OnPlayerEnterCheckpoint public.
-
Ich kenne die Funktionen zwar nicht, aber dem Anschein nach dürfte es so passen:
forward RoundCheck();
public RoundCheck()
{
new Count;
for(new i=0; i<MAX_PLAYERS; i++) if(Iter_Contains(DM, i)) Count++;
if(Count == 1)
{
//Beenden
}
else
{
new str[20];
format(str, sizeof(str), "Alive: %d", Count);
TextDrawSetString(...);
}
return 1;
} -
Lass dir den doors-Status mal ausgeben, vielleicht kommt er durch SetVehicleParamsForPlayer durcheinander.
GetVehicleParamsEx(vID,engine,lights,alarm,doors,bonnet,boot,objective);
printf("doors: %d", doors);Was steht dann im Server Log, wenn du den Motor an machst, als Member, und dann das Fahrzeug verlässt und wieder einsteigen willst, was nicht geht.