Hä? Den hast aber selbst erstellt
Beiträge von Templer
-
-
-
Hier bitte
new bool:gPlayerIn[MAX_PLAYERS];
forward CheckPlayer();
public OnGameModeInit()
{
SetTimer("CheckPlayer", 1000, 1);
return 1;
}public CheckPlayer()
{
new playerid = 0;
for(; playerid < MAX_PLAYERS; playerid++)
{
if(IsPlayerInRangeOfPoint(playerid, Float:radius, Float:X, Float:Y, Float:Z) && gPlayerIn[playerid] == false) //Koordinaten einsetzen
{
gPlayerIn[playerid] = true; //Um unnötige Loops zu vermeiden
//Code wenn Spieler IM Radius
}
else if(!IsPlayerInRangeOfPoint(playerid, Float:radius, Float:X, Float:Y, Float:Z) && gPlayerIn[playerid] == true) //Koordinaten einsetzen
{
gPlayerIn[playerid] = false; //Um unnötige Loops zu vermeiden
//Code wenn Spieler AUS Radius
}
}
return true;
} -
So jungs, jetzt kommt der Weihnachtsmann der in Google nach "Samp Nagelbänder" suchte und sofort der erste Link...
http://forum.sa-mp.com/showthread.php?t=142191
Frohe Weihnachten
-
Hey glaubste ich streng mich dabei an? xD Ja schon, zuerst kam mir das mim PVar hoch und erst später begriff ich, das VW auch benötigt wird
-
@ InternetInk aka Benjamin Meine Methode ist ja noch Zeilensparender
Zitatstock Float:GetPos(playerid, pos[2])
{
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid,X,Y,Z);
if(!strcmp(pos, "X", true)) return X;
else if(!strcmp(pos, "Y", true)) return Y;
else if(!strcmp(pos, "Z", true)) return Z;
else return float(-1);
} -
Hier bitte Im Anhang
-
Bitte umgeändert: (Alles neu ersetzen wenn du schon was vom alten kopiert hast)
stock GetClosestVehicle(playerid, &vehicleid) //by Templer
{
new Float:X, Float:Y, Float:Z, Float:pX, Float:pY, Float:pZ, Float:dist = 0.0, vehicles = 0, Float:cdist = 0.000000;
vehicleid = -1;
for(; vehicles < MAX_VEHICLES; vehicles++)
{
GetVehiclePos(vehicles, X, Y, Z);
dist = floatsqroot(floatpower(floatabs(floatsub(X,pX)),2)+floatpower(floatabs(floatsub(Y,pY)),2)+floatpower(floatabs(floatsub(Z,pZ)),2));
if(dist > cdist && vehicles != GetPlayerVehicleID(playerid))
{
cdist = dist;
vehicleid = vehicles;
}
}
if(cdist > 0.000000) return cdist;
else return false;
}public OnPlayerConnect(playerid)
{
SetPVarInt(playerid, "TrailerID", -1);
return 1;
}public OnPlayerDisconnect(playerid)
{
RemovePVar(playerid, "TrailerID");
return 1;
}public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, "/truckin", false))
{
if(!IsPlayerConnected(playerid)) return 1;
new vehicle, Float:X, Float:Y, Float:Z, Float:angle;
dist = GetClosestVehicle(playerid, vehicle);
if(vehicle == -1) return SendClientMessage(playerid, 0xFFFFFF00, "Kein Anhänger in deiner Nähe...");
if(GetVehicleModel(vehicle) != 435 && GetVehicleModel(vehicle) != 591) return SendClientMessage(playerid, 0xFFFFFF00, "Das ist kein Anhänger...");
GetVehiclePos(vehicle, X, Y, Z); GetVehicleZAngle(vehicle, angle);
if(angle < 180.0) floatadd(angle, 180.0);
else floatsub(angle, 180.0);
floatadd(X, (distance * floatsin(-angle, degrees))); floatadd(Y, (distance * floatcos(-angle, degrees)));
if(!IsPlayerInRangeOfPoint(playerid, 3.5, X, Y, Z)) return SendClientMessage(playerid, 0xFFFFFF00, "Du musst hinter dem Anhänger stehen...");
GameTextForPlayer(playerid, "Willkommen im Anhaenger ^^", 2500, 3);
SetPVarInt(playerid, "TrailerID", vehicle);
SetPlayerVirtualWorld(playerid, vehicle); //Diese ID nicht verändern, damit dein Interior mehrfach benützt werden kann!
//Bitte diese Koordinaten unterbei anpassen ^^
if(IsPlayerInAnyVehicle(playerid))
{
SetVehiclePos(GetPlayerVehicleID(playerid), X, Y, Z); //Die Position im Interior vom Anhänger
SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), vehicle);
}
else SetPlayerPos(playerid, X, Y, Z); //Die Position im Interior vom Anhänger
return 1;
}
if(!strcmp(cmdtext, "/truckexit", false))
{
if(!IsPlayerConnected(playerid)) return 1;
if(GetPVarInt(playerid, "TrailerID") == -1) return SendClientMessage(playerid, 0xFFFFFF00, "Du bist in einem Anhänger drinnen...");
if(GetPlayerVirtualWorld(playerid) != GetPVarInt(playerid, "TrailerID"))
{
SetPVarInt(playerid, "TrailerID", -1);
return SendClientMessage(playerid, 0xFFFFFF00, "Du bist in einem Anhänger drinnen...");
}
new vehicle = GetPVarInt(playerid, "TrailerID"), Float:X, Float:Y, Float:Z, Float:angle;
GetVehiclePos(vehicle, X, Y, Z); GetVehicleZAngle(vehicle, angle);
if(angle < 180.0) floatadd(angle, 180.0);
else floatsub(angle, 180.0);
floatadd(X, (distance * floatsin(-angle, degrees))); floatadd(Y, (distance * floatcos(-angle, degrees)));
SetPlayerVirtualWorld(playerid, 0);
if(IsPlayerInAnyVehicle(playerid))
{
SetVehiclePos(GetPlayerVehicleID(playerid), X, Y, Z); //Diese Werte NICHT Ändern..
SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), 0);
}
else SetPlayerPos(playerid, X, Y, Z); //Diese Werte NICHT Ändern..
GameTextForPlayer(playerid, "Hoffe der Besuch im Haenger war doll ^^", 2500, 3);
SetPVarInt(playerid, "TrailerID", -1);
return 1;
}
return 0;
} -
*Hust*
public SavePlayerFahrzeuge(test)
{
new fahrzeug[64]; format(fahrzeug, sizeof(fahrzeug), "/Carsystem/Car00%d.ini", test);
dini_Create(fahrzeug);
dini_IntSet(fahrzeug, "ModelID", FahrzeugeInfo[test][fModelID]);
dini_IntSet(fahrzeug, "Farbe1", FahrzeugeInfo[test][fFarbe1]);
dini_IntSet(fahrzeug, "Farbe2", FahrzeugeInfo[test][fFarbe2]);
dini_IntSet(fahrzeug, "Verkaufbar", FahrzeugeInfo[test][fVerkaufbar]);
dini_IntSet(fahrzeug, "Preis", FahrzeugeInfo[test][fPreis]);
dini_IntSet(fahrzeug, "Locked", FahrzeugeInfo[test][fLocked]);
dini_FloatSet(fahrzeug, "XParken", FahrzeugeInfo[test][carX]);
dini_FloatSet(fahrzeug, "YParken", FahrzeugeInfo[test][carY]);
dini_FloatSet(fahrzeug, "ZParken", FahrzeugeInfo[test][carZ]);
dini_FloatSet(fahrzeug, "AParken", FahrzeugeInfo[test][carA]);
dini_IntSet(fahrzeug, "Verwahrt", FahrzeugeInfo[test][fVerwahrt]);
dini_FloatSet(fahrzeug, "XADAC", FahrzeugeInfo[test][adacX]);
dini_FloatSet(fahrzeug, "YADAC", FahrzeugeInfo[test][adacY]);
dini_FloatSet(fahrzeug, "ZADAC", FahrzeugeInfo[test][adacZ]);
dini_FloatSet(fahrzeug, "AADAC", FahrzeugeInfo[test][adacA]);
dini_IntSet(fahrzeug, "Fraktion", FahrzeugeInfo[test][fFraktion]);
dini_IntSet(fahrzeug, "Job", FahrzeugeInfo[test][fJob]);
dini_IntSet(fahrzeug, "Tunbar", FahrzeugeInfo[test][fTunbar]);
dini_IntSet(fahrzeug, "Paintjob", FahrzeugeInfo[test][fPaintjob]);
dini_IntSet(fahrzeug, "Tuningteil1", FahrzeugeInfo[test][fTuningteil1]);
dini_IntSet(fahrzeug, "Tuningteil2", FahrzeugeInfo[test][fTuningteil2]);
dini_IntSet(fahrzeug, "Tuningteil3", FahrzeugeInfo[test][fTuningteil3]);
dini_IntSet(fahrzeug, "Tuningteil4", FahrzeugeInfo[test][fTuningteil4]);
dini_IntSet(fahrzeug, "Tuningteil5", FahrzeugeInfo[test][fTuningteil5]);
dini_IntSet(fahrzeug, "Tuningteil6", FahrzeugeInfo[test][fTuningteil6]);
dini_IntSet(fahrzeug, "Tuningteil7", FahrzeugeInfo[test][fTuningteil7]);
dini_IntSet(fahrzeug, "Tuningteil8", FahrzeugeInfo[test][fTuningteil8]);
dini_IntSet(fahrzeug, "Tuningteil9", FahrzeugeInfo[test][fTuningteil9]);
dini_IntSet(fahrzeug, "Tuningteil10", FahrzeugeInfo[test][fTuningteil10]);
dini_IntSet(fahrzeug, "Tuningteil11", FahrzeugeInfo[test][fTuningteil11]);
dini_IntSet(fahrzeug, "Tuningteil12", FahrzeugeInfo[test][fTuningteil12]);
dini_IntSet(fahrzeug, "Tuningteil13", FahrzeugeInfo[test][fTuningteil13]);
return true;
} -
Hier bitte:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == 2)
{
new carid = GetPlayerVehicleID(playerid);
new i = 0;
for(;i<sizeof(Fahrschulwagen);i++)
{
if(carid == Fahrschulwagen[i])
{
if(pinfo[playerid][schein] == 0)
{
SendClientMessage(playerid, Gruen, "Willkommen bei der Automatischen Fahrschule");
SendClientMessage(playerid, Gruen, "Bitte satteln Sie einen Trailer auf und fahren die Punkte ab um den Schein zu bestehen!");
SetPlayerCheckpoint(playerid, 130.4706,-195.6291,1.9923, 5.0);
fscb[playerid] = 1;
}
else
{
SendClientMessage(playerid, Rot, "Sie haben schon einen Führerschein!");
RemovePlayerFromVehicle(playerid);
}
}
}
}
return 1;
} -
Hier die Beschreibungen:
warning 219: local variable "hour" shadows a variable at a preceding level
- Die Variable hour (in diesem Fall) überlappt mit einer anderen new Definition, sozusagen du hast es zweimal hintereinander definiert.
error 017: undefined symbol "GetVehicleDamageStatus"- Das beduetet, dass die Variable GetVehicleDamageStatus (in diesem Fall) verwendet wird, jedoch wurde Sie nicht definiert. Jedoch ist das eine Definition vom neuen Samp, bitte lade dir die neusten Daten von sa-mp.com runter!
error 076: syntax error in the expression, or invalid function call- Eine Funktion wurde 'falsch' formatiert bzw. mit falschen Parametern aufgerufen (also wenn du den Datenyp Float mit String aufrufen würdest xD)
-
@ Mailer Wenn es so einfach wäre
stock Float:GetPos(playerid, pos[2])
{
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid,X,Y,Z);
if(!strcmp(pos, "X", true)) return X;
else if(!strcmp(pos, "Y", true)) return Y;
else if(!strcmp(pos, "Z", true)) return Z;
else return float(-1);
}Verwendung als Beispiel ^^:
SetPlayerPos(playerid, GetPos(playerid, "X", GetPos(playerid, "Y"), floatadd(GetPos(playerid, "Z"), 5.0));
-
ies sollte dies sein, was du gesucht hast Sollten keine Fehler enthalten sein...
stock GetClosestVehicle(playerid, &vehicleid) //by Templer
{
new Float:X, Float:Y, Float:Z, Float:pX, Float:pY, Float:pZ, Float:dist = 0.0, vehicles = 0, Float:cdist = 0.000000;
vehicleid = -1;
for(; vehicles < MAX_VEHICLES; vehicles++)
{
GetVehiclePos(vehicles, X, Y, Z);
dist = floatsqroot(floatpower(floatabs(floatsub(X,pX)),2)+floatpower(floatabs(floatsub(Y,pY)),2)+floatpower(floatabs(floatsub(Z,pZ)),2));
if(dist > cdist)
{
cdist = dist;
vehicleid = vehicles;
}
}
if(cdist > 0.000000) return cdist;
else return false;
}public OnPlayerConnect(playerid)
{
SetPVarInt(playerid, "TrailerID", -1);
return 1;
}public OnPlayerDisconnect(playerid)
{
RemovePVar(playerid, "TrailerID");
return 1;
}public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, "/truckin", false))
{
if(!IsPlayerConnected(playerid)) return 1;
if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, 0xFFFFFF00, "Du bist in einem Fahrzeug...");
new vehicle, Float:X, Float:Y, Float:Z, Float:angle;
dist = GetClosestVehicle(playerid, vehicle);
if(vehicle == -1) return SendClientMessage(playerid, 0xFFFFFF00, "Kein Anhänger in deiner Nähe...");
if(GetVehicleModel(vehicle) != 435 && GetVehicleModel(vehicle) != 591) return SendClientMessage(playerid, 0xFFFFFF00, "Das ist kein Anhänger...");
GetVehiclePos(vehicle, X, Y, Z); GetVehicleZAngle(vehicle, angle);
if(angle < 180.0) floatadd(angle, 180.0);
else floatsub(angle, 180.0);
floatadd(X, (distance * floatsin(-angle, degrees))); floatadd(Y, (distance * floatcos(-angle, degrees)));
if(!IsPlayerInRangeOfPoint(playerid, 3.5, X, Y, Z)) return SendClientMessage(playerid, 0xFFFFFF00, "Du musst hinter dem Anhänger stehen...");
PutPlayerInVehicle(playerid, vehicle, playerid);
GameTextForPlayer(playerid, "Willkommen im Anhaenger ^^", 2500, 3);
SetPVarInt(playerid, "TrailerID", vehicle);
SetPlayerVirtualWorld(playerid, vehicle); //Diese ID nicht verändern, damit dein Interior mehrfach benützt werden kann!
//Bitte diese Koordinaten unterbei anpassen ^^
SetPlayerPos(playerid, X, Y, Z); //Die Position im Interior vom Anhänger
return 1;
}
if(!strcmp(cmdtext, "/truckexit", false))
{
if(!IsPlayerConnected(playerid)) return 1;
if(GetPVarInt(playerid, "TrailerID") == -1) return SendClientMessage(playerid, 0xFFFFFF00, "Du bist in einem Anhänger drinnen...");
if(GetPlayerVirtualWorld(playerid) != GetPVarInt(playerid, "TrailerID"))
{
SetPVarInt(playerid, "TrailerID", -1);
return SendClientMessage(playerid, 0xFFFFFF00, "Du bist in einem Anhänger drinnen...");
}
new vehicle = GetPVarInt(playerid, "TrailerID"), Float:X, Float:Y, Float:Z, Float:angle;
GetVehiclePos(vehicle, X, Y, Z); GetVehicleZAngle(vehicle, angle);
if(angle < 180.0) floatadd(angle, 180.0);
else floatsub(angle, 180.0);
floatadd(X, (distance * floatsin(-angle, degrees))); floatadd(Y, (distance * floatcos(-angle, degrees)));
SetPlayerPos(playerid, X, Y, Z);
GameTextForPlayer(playerid, "Hoffe der Besuch im Haenger war doll ^^", 2500, 3);
SetPVarInt(playerid, "TrailerID", -1);
return 1;
}
return 0;
} -
Ne Danke brauch ich nicht
-
-
Ok sry es liegt an OnPlayerCommandText...
-
Gib mir den ganzen Callback OnGameModeInit (also irgendwo als txt-Datei hochladen und mir Link geben)
-
Dein Wunsch ist mir Befehl
public OnPlayerDeath(playerid, killerid, reason)
{
GameTextForPlayer(playerid, "Du bist es nicht Wert!", 2500, 2);
return 1;
} -
Dann hast du einen Klammerfehler also { oder } fehlt/zuviel
-
Ok schau die Hitze macht mich kaputt xD Mach einfach vor der for-Schleife folgendes ...
new zoneid = 0;