Ah, in OnDialogResponse:
for(new i=1; i<MAX_LEICHEN; i++)
zu:
for(new i=0; i<MAX_LEICHEN; i++)
Beiträge von Jeffry
-
-
ocmd:corpselist(playerid,params[])
{
new string[512],Float:x,Float:y,Float:z;
if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,COLOR_GRAY,"*Du bist in keinem Fahrzeug!");
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)return SendClientMessage(playerid,COLOR_GRAY,"*Du bist nicht der Fahrer eines Fahrzeugs!");
for(new i = 0; i < MAX_LEICHEN; i++)
{
if(leichenInfo[i][existiert] == 0) continue;
format(string,sizeof(string),"%s%s\t%0.2f Meter\n",string,GetAreaName(leichenInfo[i][l_x],leichenInfo[i][l_y],leichenInfo[i][l_z]),GetDistance(x,y,z,leichenInfo[i][l_x],leichenInfo[i][l_y],leichenInfo[i][l_z]));
}
if(!strlen(string)) return SendClientMessage(playerid, COLOR_GRAY, "Error: Keine Leichen vorhanden.");
format(string,sizeof(string),"Ort\tEntfernung\n%s",string);
ShowPlayerDialog(playerid, DIALOG_LeichenMenu, DIALOG_STYLE_TABLIST_HEADERS, "Leichen Menu",string, "Wählen", "Abbrechen");
return 1;
}if(dialogid==DIALOG_LeichenMenu)
{
if(!response)return 1;
new tmp;
for(new i=0; i<MAX_LEICHEN; i++)
{
if(leichenInfo[i][existiert] == 0) continue;
if(tmp==listitem)
{
if(leichenInfo[i][onload]==1) return 1;
SetPlayerCheckpoint(playerid,leichenInfo[i][l_x],leichenInfo[i][l_y],leichenInfo[i][l_z],3.0);
return 1;
}
else tmp++;
}
} -
public OnPlayerDeath(playerid, killerid, reason)
{
new Float:tot_x,Float:tot_y,Float:tot_z;
tot[playerid] = 1;
giveplayermoney(playerid,-GetPlayerScore(playerid)*50);
new namenstring[200];
format(namenstring,sizeof(namenstring),"†\n%s",getPlayerName(playerid));
for(new l = 0; l < MAX_LEICHEN; l++)
{
if(leichenInfo[l][existiert] == 1) continue;
GetPlayerPos(playerid,tot_x,tot_y,tot_z);
leichenInfo[l][l_x] = tot_x;
leichenInfo[l][l_y] = tot_y;
leichenInfo[l][l_z] = tot_z;
leichenInfo[l][pickup] = CreatePickup(1254,1,leichenInfo[l][l_x],leichenInfo[l][l_y],leichenInfo[l][l_z],0);
leichenInfo[l][NamenLabel] = Create3DTextLabel(namenstring,C_Weiß,leichenInfo[l][l_x],leichenInfo[l][l_y],leichenInfo[l][l_z],10.0,0,0);
leichenInfo[l][onload] = 0;
leichenInfo[l][existiert] = 1;
print("OnPlayerDeath.. Leichenpickup usw. wurde erstellt!");
break;
}
//.....
//.....
} -
ummauerte rasenfläche
3522 ist sowas, aber das hat eine etwas unpassende Form.
Ebenso 8308 und 9087.
Dazu gibt es auch noch Objekte die aus mehreren dieser Teile bestehen, aber die Formen sind wahrscheinlich noch unpassender. -
Benenne deine Tabelle von häuser um zu haeuser. Umlaute sind nicht gut und führen hier zum Fehler.
Du kannst alternativ versuchen ob
`häuser`
geht, aber selbst dann würde ich es umbenennen. -
if(PlayerMoraleSpree[killerid] > -15 && PlayerMoraleSpree[killerid] < 25)
zu:
if(killerid != INVALID_PLAYER_ID && PlayerMoraleSpree[killerid] > -15 && PlayerMoraleSpree[killerid] < 25)Dies muss dann eben vor die obige Abfrage:
if(killerid == INVALID_PLAYER_ID) PlayerMoraleSpree[playerid]--;
den else-Teil dazu kannst du ohne das else dort lassen wo es ist. -
format(string,sizeof(string),"Du hast Erfolgreich %d Eventpunkte umgewandelt.",SpielerName(ep));
zu:
format(string,sizeof(string),"Du hast Erfolgreich %d Eventpunkte umgewandelt.",ep);Und:
if(sscanf(params,"u",ep))
zu:
if(sscanf(params,"i",ep)) -
if(IsVehicleDrivingBackwards(574))
zu:
if(IsVehicleDrivingBackwards(GetPlayerVehicleID(playerid))) -
Oh, gut da spiele ich jetzt nicht drin rum.
Mache es bei OnPlayerLeaveCheckpoint so:
if(Spieler[playerid][Job] == 2)
{
new vehicle = GetPlayerVehicleID(playerid);
for(new i; i != sizeof(buscars); i++)
{
if(vehicle == buscars[i])
{
SendClientMessage(playerid, ROT, "Du hast die Haltestelle verpasst.");
if(pCP[playerid] == CHECKPOINT_BUSBERUF && BusCP[playerid] > 0)
{
KillTimer(BusCountdown[playerid]);
BusCountdown[playerid] = -1;
return 1;
}
else if(pCP[playerid] == CHECKPOINT_BUSBERUF2 && BusCP[playerid] > 0)
{
KillTimer(BusCountdown2[playerid]);
BusCountdown2[playerid] = -1;
return 1;
}
else if(pCP[playerid] == CHECKPOINT_BUSBERUF3 && BusCP[playerid] > 0)
{
KillTimer(BusCountdown3[playerid]);
BusCountdown3[playerid] = -1;
return 1;
}
else if(pCP[playerid] == CHECKPOINT_BUSBERUF4 && BusCP[playerid] > 0)
{
KillTimer(BusCountdown4[playerid]);
BusCountdown4[playerid] = -1;
return 1;
}
else if(pCP[playerid] == CHECKPOINT_BUSBERUF5 && BusCP[playerid] > 0)
{
KillTimer(BusCountdown5[playerid]);
BusCountdown5[playerid] = -1;
return 1;
}
else if(pCP[playerid] == CHECKPOINT_BUSBERUF6 && BusCP[playerid] > 0)
{
KillTimer(BusCountdown6[playerid]);
BusCountdown6[playerid] = -1;
return 1;
}
else if(pCP[playerid] == CHECKPOINT_BUSBERUF7 && BusCP[playerid] > 0)
{
KillTimer(BusCountdown7[playerid]);
BusCountdown7[playerid] = -1;
return 1;
}
else if(pCP[playerid] == CHECKPOINT_BUSBERUF8 && BusCP[playerid] > 0)
{
KillTimer(BusCountdown8[playerid]);
BusCountdown8[playerid] = -1;
return 1;
}
}
}
} -
forward KillsTodeUpdate(playerid);
public KillsTodeUpdate(playerid)Das ist der Funktionskopf. Den zu
forward KillsTodeUpdate();
public KillsTodeUpdate()
ändern.Brauchst dich nicht zu entschuldigen.

-
Poste bitte den Code.
-
In Pseudo-Code:
GFirmaInfo[gfirma][firmenname] = OrgInfo[Spieler[playerid][OrgID]][orgname];Er packt OrgInfo[Spieler[playerid][OrgID]][orgname] in die GFirmaInfo[gfirma][firmenname] Variable.
Man könnte es auch so schreiben:
format(GFirmaInfo[gfirma][firmenname],64,OrgInfo[Spieler[playerid][OrgID]][orgname]);
oder:
format(GFirmaInfo[gfirma][firmenname],64,"%s",OrgInfo[Spieler[playerid][OrgID]][orgname]);Wie du willst.
-
Gibt es einen neuen Link für diese Seite?
-
/*MinX, MinY, MaxX, MaxY, CTFx, CTFy, CTFz*/
Zuerst die kleine X Koordinate
Dann die kleine Y Koordinate
Dann die große X Koordinate
Dann die große Y Koordinate
Dann die CP Koordinaten X, Y, Z.Und da -1250 kleiner ist als -1082 muss es als erstes kommen (-10 ist ja kleiner als -5).
-
stock bool:IsVehicleDrivingBackwards(vehicleid) //©Nero_3D
{
new Float:Float[3];
if(GetVehicleVelocity(vehicleid, Float[1], Float[2], Float[0])) {
GetVehicleZAngle(vehicleid, Float[0]);
if(Float[0] < 90) {
if(Float[1] > 0 && Float[2] < 0) return true;
} else if(Float[0] < 180) {
if(Float[1] > 0 && Float[2] > 0) return true;
} else if(Float[0] < 270) {
if(Float[1] < 0 && Float[2] > 0) return true;
} else if(Float[1] < 0 && Float[2] < 0) return true;
}
return false;
} -
Poste bitte mal ein/zwei dieser Timer hier: BusCountdownTimer4
-
Passt das soweit?
Was ich nicht verstehe ist, warum du BusCountdown8[playerid] machst, und das für 8 Timer (1,2,3,...8). Es würde reichen, eine Variable und einen Timer zu nutzen, dann könnte man den Timer einfach mit:
KillTimer(BusCountdown[playerid]);
beenden. -
{1876.4862,-1082.4648,2056.5623,-1250.7635,,1972.5774,-1235.1443,19.6214},
zu:
{1876.4862,-1250.7635,2056.5623,-1082.4648,1972.5774,-1235.1443,19.6214},
Da -1250 kleiner ist als -1082.Dann sollte es gehen.
-
Nutze PlayerTextDraws: http://wiki.sa-mp.com/wiki/CreatePlayerTextDraw
Und erstelle diese unter OnPlayerConnect.Außerdem musst du im KillsTodeUpdate-Timer eine Schleife durch alle Spieler machen, und playerid aus dem Kopf entfernen:
for(new i=0; i<MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i)) continue;
//Textdraw für i hier ändern (playerid ist i)
} -