Poste evtl mal den kompletten Befehl ![]()
Beiträge von Kaliber
-
-
Auf die neuen Fx, Fy und Fz umgeschrieben werden kann ich mir irgendwie die neue Position des Objects ausgeben lassen?
Ja, habe den Callback doch schon gepostet gehabt, les dir nochmal den wiki Eintrag durch: OnPlayerEditObjectmfg.

-
if(SpielerInfo[playerid][pAdmin] >= 3)
1. Der Pawn BB Code - Die richtige Anwendung//Edit:
schreibe es so:if(SpielerInfo[playerid][pAdmin] < 3)
mfg.

-
Destroy und neu erstellen

Natürlich erst mit GetObjectPos die Koordinaten raussuchen
Um Gottes Willen, nein nicht so machen!Dadurch bricht EditObject ab und alles hängt.
Mach es einfach so:
public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ)
{
if(!playerobject)
{
if(!IsValidObject(objectid)) return 1;
MoveObject(objectid, fX, fY, fZ, 10.0, fRotX, fRotY, fRotZ);
}
return 1;
}mfg.

-
Dazu sollte man noch sagen, das man AObjectID nicht einfach drin stehen lassen kann
Doch natürlich, wenn man ein Objekt vorher erstellt hat (so wie ich es beschrieben habe), kann man das genau so lassen
Das Objekt welches man erstellt hat, gibt doch die objektid zurück, die in dieser Variable gespeichert wird und auf diese man zugreift um es zu editieren

mfg.

-
1. Musst du das Enum über deiner Variablen Deklaration stehen, sprich so:
enum AdminObjectsInfo
{
AObjectID,
Float:AObjectX,
Float:AObjectY,
Float:AObjectZ,
ANewsObject
};
new AdminObjects[MAX_PLAYERS][AdminObjectsInfo];2. Musst du die Variable erstmal initialisieren.
AdminObjects[playerid][AObjectID] = CreateObject(...); //Hier erstmal das Objekt, welches du dann später editieren willst.
3. Und dann kannst du auf diesen Wert zugreifen:
if(!strcmp(cmdtext, "/oedit", true))
{
EditObject(playerid, AdminObjects[playerid][AObjectID]);
SendClientMessage(playerid, 0xFFFFFFFF, "SERVER: You can now edit the object!");
return 1;
}mfg.

-
Vielleicht gibt es auch noch ein paar andere Antworten.
Wenn du die ID willst schreibe es so:new id;
for(new i,tmp=-1; i<MAX_PLAYERS; i++) {
if(!IsPlayerConnected(i)) continue;
if(Kills[i] > tmp) tmp=Kills[i],id=i;
}format(string,sizeof(string),"Der Spieler %s hat die meisten Kills gemacht. %i Kills",SpielerName(id),Kills[id]);
SendClientMessageToAll(Irgendeinetollefarbe, string);mfg.

-
Idx ist nun die ID des Führenden, hat aber nicht den Wert.
Auch nicht, so wie er es geschrieben hat, funktioniert der Algorithmus nicht
Es muss so heißen:
new idx;
for(new i;i<MAX_PLAYERS;i++;)
{
if(Kills[i] > idx)idx = Kills[i];
}mfg.

-
Mach das #undef OnPlayerConnect raus.
Sollte denke ich einmal an dem liegen. Hatte noch nie so ein Problem also einfach probieren.
Nein, das wird nicht helfen, im Gegenteil
Es liegt an einer anderen Include, welche nutzt du denn alles?

-
0.0m und 3.0m
Das ist aber ganz schön nah!Schau dir diese Funktion mal an: GetPlayerCameraFrontVector
Da ist sogar schon ein passendes Beispiel dabei

mfg.

-
Ja, mehrere Sachen, schreib das so:
Tore[0][TorID][0] = CreateObject(987, -1522.80005, 482.5, 6.2, 0, 0, 180);//Army Oben
Tore[1][TorID][1] = CreateObject(980, -1631.7, 688.20001, 8.5, 0, 0, 0); //SFPD//Dann das so schreiben:
if(newkeys & KEY_CROUCH) {
for(new Gateid = 0; Gateid < sizeof(Tore); Gateid++) {
if(!IsPlayerInRangeOfPoint(playerid,20.0, Tore[Gateid][CloseX],Tore[Gateid][CloseY],Tore[Gateid][CloseZ])) continue;
if(SpielerInfo[playerid][pTeam] != Tore[Gateid][Gateteam]) break;
MoveObject(Tore[Gateid][TorID], Tore[Gateid][OpenX], Tore[Gateid][OpenY], Tore[Gateid][OpenZ], 5);
SendClientMessage(playerid,tortext, Tore[Gateid][Text]);
SetTimer("CloseTor", 8000, 0);
}
}mfg.

-
Wurde erst letztens mal gefragt: Kann man ein 2tes PNS und oder ein 2tes Transfender über Scripten erstellen?
-
-
Muss ich da nicht noch was machen?
Ja, einfach so:public OnPlayerEnterDynamicArea(playerid, areaid) {
if(areaid == ADAC[0])
{
SendClientMessage(playerid,-1,"Zone betreten");
}
return 1;
}Solange du nur 1ne Zone hast, kannst du es lassen, aber wenn du mehrere Zonen hast wo unterschiedliche Regeln gelten, dann so

mfg.

-
-
Du kannst das auch einfach so machen:
new Float:z;
GetPlayerPos(playerid,z,z,z);//und das in der Schleife verwenden:
if(IsPlayerInRangeOfPoint(playerid,5.0,Baum[i][BaumX],Baum[i][BaumY],z))
{
//Hier ist er in der Nähe
}So ignorierst du auch die Z-Koordinate

mfg.

-
Gibt es ein Problem damit, dass 2 Leute an diesem Code schreiben und ich nicht gerade sehr viel in PHP drauf habe?
Nein, fande es nur suspekt...und, funktioniert es nun?

-
Welches Speicherungssystem du verwendest ist eigentlich irrelevant.
Schau mal, wenn du willst, dass ein PayDay jede Stunde (nicht volle) stattfindet:
//Unter OnGameModeInit
SetTimer("PayDay",1000*60*60,1);forward PayDay();
public PayDay() {
for(new playerid; playerid<MAX_PLAYERS; playerid++) {
if(!IsPlayerConnected(playerid)) continue;
GivePlayerMoney(playerid, 1000);
SpielerInfo[playerid][Respektpunkt] += 1; // (ein Beispiel)
/* Hier kommt alles zum PayDay rein */
}
return 1;
}Und da du auf vorhandene Variablen für den Spieler zugreifst, speichert er diese doch eh schon

mfg.

-
Okay. Nun folgendes:
Schon doof, wenn man seinen "eigenen" Code nicht versteht, wa?
$row[members]
Evtl $row["members"] schreiben
-
Helfen dir Tutorials nicht weiter?

[ SCRIPTING ] Individuellen Payday
[ SCRIPTING ] Individuellen Payday Scripten [Updated]
http://forum.sa-mp.com/showthread.php?t=522980mfg.
