mysql_fetch_field_row(result, "GangfightZoneOwner");
Das Selbe gilt natürlich auch für die anderen.
mysql_fetch_field_row(result, "GangfightZoneOwner");
Das Selbe gilt natürlich auch für die anderen.
public OnPlayerDeath(playerid, killerid, reason)
{
if(killerid == INVALID_PLAYER_ID) {
SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
SetPlayerScore(playerid,GetPlayerScore(killerid)-1);
SendClientMessage(playerid,0x98A400FF,"You were Killed by yourself !");
} else {
SendDeathMessage(killerid,playerid,reason);
SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
new str[144], spname[MAX_PLAYER_NAME];
GetPlayerName(killerid, spname, MAX_PLAYER_NAME);
format(str, sizeof(str),"You have Killed %s !", spname);
SendClientMessage(playerid,0x98A400FF,str);
}
return 1;
}
Strings mit Platzhaltern müssen formatiert werden.
if(HP <= 500 && IsPlayerInAnyVehicle(playerid))
Schau mal hier:
Automatisch leben verlieren?
Das war gestern fast das selbe. Du änderst eben das SetPlayerHealth zu deinem Bloodyscreen und die 30 zu 50.
Den timer setzt du auf 1000 anstatt 60000.
Das hier schaut kurz und knackig aus: http://forum.sa-mp.com/showthread.php?t=331497
Oder: http://www.youtube.com/watch?v=r2Lf4V3PYlI
Ich hab auch ein sehr ausführliches in einem anderen deutschen SA-MP Forum gefunden, allerdings zeigt mit Norton dort an, dass die Seite eine Bedrohung enthält, daher werde ich den Link nicht posten. Wenn du es selbst suchen willst: Google => samp SetObjectMaterial tutorial a-z
Wenn ich das aus habe, wird auch kein Audiostream gespielt
Korrekt.
Wenn du nur die Spieler anzeigen lässt, die ein "[pWanteds]" haben welches nicht 0 ist, dann ja.
if(dialogid==DEIN_DIALOG)
{
new count = -1;
if(response)
{
for(new i=0;i<MAX_PLAYERS;i++)
{
if(var[i] == bedingung) count++;
if(count != listitem) continue;
//Mache was hier... i = die Spieler ID auf dessen Name du gedrückt hast.
break;
}
}
}
Wobei das natürlich nicht den Fall regeln kann, wenn sich die Bedingung ändert, während der Spieler den Dialog offen hat, das würde mit meinem Tutorial gehen, deshalb ist es auch mehr Code.
if(vehicleid != bus && vehicleid != bus2 && vehicleid != bus3 && vehicleid != bus4)
{
saveCars(vehicleid);
}
Wenn das Auto nicht bus1 ist und nicht bus2 ist und nicht bus3 ist und nicht bus4 ist, dann speichere.
Ich würde dir mein Tutorial empfehlen.
[ SCRIPTING ] [jTuT] Interaktive Dialoge
Damit kannst du den Inhalt der Zeile des listitems abfragen, und an Hand dessen dann deine Bedingung einfach mit strcmp prüfen.
dini_Float(Spielerdatei,pPosXE);
Der zweite Parameter muss ein String sein.
Je nach dem wie es in deiner Datei steht.
dini_Float(Spielerdatei,"pPosXE");
Ansonsten poste mal den Inhalt einer solchen Datei.
Bei mir kommt bei dem SetPlayerPos Befehl ein Tagmissmatch. Ansonsten klappt alles scheinbar. Kann mir wer sagen wodran das liegt?
Du bist ja ein Genie, einen 3 Jahre alten Thread zu pushen. ![]()
Poste bitte den Code, ohne Code ist hier nämlich nichts los.
Und nächstes mal mach einen neuen Thread auf.
OnGameModeInit:
SetTimer("CheckHealth", 60000, 1);
Unten im Code:
forward CheckHealth();
public CheckHealth()
{
new Float:health;
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
GetPlayerHealth(i, health);
if(health <= 30.0 && health > 0.0)
{
SendClientMessage(i, COLOR_RED, "Du verlierst Blut, da du weniger als 30% deiner Lebenspunkte hast!");
SetPlayerHealth(i, health - 3.0);
}
}
}
return 1;
}
Hast du schon versucht die Spawn Position etwas zu ändern? Fahr mal ein paar Meter zurück, oder setze die Z Pos. höher, oder beides. Das scheint mir nicht nach einem Problem im Code, da ich annehme die Position wo es spawnt bevor du dagegenläufst, ist nirgends im Code angegeben.
tmp_int muss ein Integer sein, wenn du Zahlen eingibst. Du kannst es zwar auch als String machen, aber das macht keinen Sinn.
ocmd:setint(playerid, params[])
{
if(!IsPlayerAnAdmin(playerid, 3))return SendClientMessage(playerid, ERROR, "Dein Adminrang ist zu niedrig.");
new tmp_int;
if(sscanf(params, "i", tmp_int))return SendClientMessage(playerid, ERROR, "INFO: /setint [1-14]");
for(new i=0; i<sizeof(hInfo); i++)
{
if(!hInfo[i][h_id])continue;
if(!IsPlayerInRangeOfPoint(playerid, 2, hInfo[i][h_x], hInfo[i][h_y], hInfo[i][h_z]))continue;
switch(tmp_int)
{
case 1:
{
hInfo[i][ih_x] = 244.411987;
hInfo[i][ih_y] = 305.032989;
hInfo[i][ih_z] = 999.148437;
hInfo[i][h_interior] = 1;
saveHaus(i);
updateHaus(i);
return 1;
}
case 2://einzimmer
{
hInfo[i][ih_x] = 266.4988;
hInfo[i][ih_y] = 304.9798;
hInfo[i][ih_z] = 999.1484;
hInfo[i][h_interior] = 2;
saveHaus(i);
updateHaus(i);
return 1;
}
case 3://motelroom
{
hInfo[i][ih_x] = 444.646911;
hInfo[i][ih_y] = 508.239044;
hInfo[i][ih_z] = 1001.419494;
hInfo[i][h_interior] = 12;
saveHaus(i);
updateHaus(i);
return 1;
}
case 4://B Dup's house
{
hInfo[i][ih_x] = 1527.229980;
hInfo[i][ih_y] = -11.574499;
hInfo[i][ih_z] = 1002.097106;
hInfo[i][h_interior] = 3;
saveHaus(i);
updateHaus(i);
return 1;
}
case 5://Cj's house
{
hInfo[i][ih_x] = 2496.049804;
hInfo[i][ih_y] = -1695.238159;
hInfo[i][ih_z] = 1014.742187;
hInfo[i][h_interior] = 3;
saveHaus(i);
updateHaus(i);
return 1;
}
case 6://Og Loc's house
{
hInfo[i][ih_x] = 513.882507;
hInfo[i][ih_y] = -11.269994;
hInfo[i][ih_z] = 1001.565307;
hInfo[i][h_interior] = 3;
saveHaus(i);
updateHaus(i);
return 1;
}
case 7://Ryders house
{
hInfo[i][ih_x] = 2454.717041;
hInfo[i][ih_y] = -1700.871582;
hInfo[i][ih_z] = 1013.515197;
hInfo[i][h_interior] = 2;
saveHaus(i);
updateHaus(i);
return 1;
}
}
return 1;
}
return 1;
}
ocmd:drogeernten(playerid,params[])
{
for(new weed = 0; weed < sizeof(WeedInfo); weed++)
{
new string2[120];
if(IsPlayerInRangeOfPoint(playerid,6.0,WeedInfo[weed][wX],WeedInfo[weed][wY],WeedInfo[weed][wZ]))
{
if(WeedInfo[weed][wPlanted] == 1)
{
if(WeedInfo[weed][wTime] <= 0)
{
ApplyAnimation(playerid, "BOMBER","BOM_Plant_In",4.0,0,0,0,0,0);
DestroyDynamicObject(WeedInfo[weed][wObject]);
format(query,sizeof(query),"DELETE FROM drogen WHERE id='%i'",weed);
mysql_query(query);
WeedInfo[weed][wX] = 0.0;
WeedInfo[weed][wY] = 0.0;
WeedInfo[weed][wZ] = 0.0;
WeedInfo[weed][wPlanted] = 0;
SendClientMessage(playerid,COLOR_GREEN,"Du hast die Drogenpflanze erfolgreich abgepflanzt!");
SpielerInfo[playerid][pDrugsplanted]--;
Delete3DTextLabel(WeedInfo[weed][Weedlbl]);
return 1;
}
else
{
format(string2,sizeof(string2),"Deine Pflanze ist noch nicht fertig du musst noch %d Minuten warten.",WeedInfo[weed][wTime]);
SendClientMessage(playerid, COLOR_RED, string2);
return 1;
}
}
}
}
SendClientMessage(playerid,COLOR_RED,"Hier ist keine Drogepflanze!");
return 1;
}
Du hast nur die erste Pflanze geprüft, wenn er dort nicht war, kam sofort die Nachricht und der Return.
Schade.
Das einzige was du noch testen könntest wäre, einen leeren GameMode zu nehmen, ein Objekt zu erstellen, mit dem Streamer versteht sich, und dann die Edit Funktion aufzurufen. Wenn es dann auch nicht geht, dann liegt es am Streamer. Dann wirst du die Objekte die du für diesen Teil brauchst wohl oder übel statisch machen müssen.
Mehr weiß ich dazu leider nicht.