Wie bereits eben geschrieben kannst du die Scripting Machine nutzen (kannst du auch auf Deutsch stellen)
Screen:
Wie bereits eben geschrieben kannst du die Scripting Machine nutzen (kannst du auch auf Deutsch stellen)
Screen:
Ja vielen Dank, es wäre nützlich dieses kleine tool interne tool als einzelnes tool nochmal zu veröffentlichen.
Wer nen Gangzonemaker braucht per PN melden
Checkpoint erobbern
Nabend
Ich möchte an 4 Standpunkten einen Checkpoint haben wo man 20 Sekunden drin stehen bleiben muss, dann ist das Gebiet erobert.
Meine Frage ist: Wie scripte ich das ?
Alles anzeigenIch hab nen Problem mit sscanf
wenn ich das nutze:
if(sscanf(p,"s[20]z",Take,Anzahl))
meckert er mich deswegen an:
Nutz ich den so:
if(sscanf(p,"s[20]S[20]",Take,Anzahl))
sagt er mir das:
Was mach ich falsch bzw wie mach ich es richtig wehh der 2. wert also das z oder das S ein optimaler wert sein sollen?
So sollte das prima gehen wie es Tommy geschrieben hatte
"s[20]S(Niemand)[20]"
musst natürlich die werte der strings anpassen benutzt du das neueste sscanf plugin überhaupt ?
weil wie schon gesagt so sollten keine Probleme Auftreten
auch wenn du den inhalt weg lässt Also
"s[20]S()[20]"
so wird nix übergeben an den string nicht so wie oben Niemand.
Testest du das direkt auf deinem Server oder erst auf deinem Homepc da mir schon aufgefallen ist das Linux generel mal schwierigkeiten macht ab und zu.
//edit zum Thema der verwendung von Z oder z
Zitatthe old "z" optional string specifier is now "S" (there is still "z" and, for completeness, "Z", but both give warnings).
Im klar text früher gab es mal den Buchstaben z für die optionale Strings als specifier nun ist es S aber es gibt noch z Z nur geben diese warnings.
Hallöschen,
meine Frage:
Gibt es unsichtbare Pickups?
Ich möchte automatische Türen machen die sich öffnen, wenn jemand in die nähe kommt.
Um Ressourcen zu sparen wollte ich das ganze mit Unsichtbaren pickups machen.
Gibt es Unsichtbare Pickups und kennt evtl jemand die ID?
Alles anzeigenHallöschen,
meine Frage:
Gibt es unsichtbare Pickups?
Ich möchte automatische Türen machen die sich öffnen, wenn jemand in die nähe kommt.
Um Ressourcen zu sparen wollte ich das ganze mit Unsichtbaren pickups machen.
Gibt es Unsichtbare Pickups und kennt evtl jemand die ID?
Es gibt keine Unsichtbaren Pickup's ^^.
Du könntest allerdings via OnPlayerUpdate mit IsPlayerInRangeOf abfragen wo er steht und dann die Objekte öffnen.
Dies würde allerdings an die Ressourcen gehen ^^.
Du könntest allerdings via OnPlayerUpdate
scheiß idee da das schlimmer wird
ganz einfach ein Timer machen oder wenn du schon ne hr hast im Script den Timer nutzen und ne Punkt abfrage machen
scheiß idee da das schlimmer wird
ganz einfach ein Timer machen oder wenn du schon ne hr hast im Script den Timer nutzen und ne Punkt abfrage machen
Wie gesagt, geht an die Ressourcen, und ich nutze ebenfalls kein OnPlayerUpdate ^^.
Weiß jemand eine Formel um den Mittelpunkt einer Vierecks auszurechnen?
Weiß jemand eine Formel um den Mittelpunkt einer Vierecks auszurechnen?
wie liegt das Viereck vor ? 2D oder 3D, gedreht ? wenn es ein einfaches Viereck ist, das aus 2 Punkten aus aufgespannt wird(min und max), dann genügt das hier:
SquareCenter2D(&Float:result_x, &Float:result_y, Float:min_x, Float:min_y, Float:max_x, Float:max_y)
{
result_x = floatdiv( floatsub( max_x, min_x ), 2.0);
result_y = floatdiv( floatsub( max_y, min_y ), 2.0);
return 1;
}
@[DT]Beavis: @Rawr:
Ich finde die OnPlayerUpdate version um einiges besser als einen Timer...
public timer()
{
for(new i=0; i< MAX_PLAYERS;i++)
{
if(IsPlayerInRangeOfPoint(...)
{
//.......
//.......
}
}
}
= sagen wir mal für 200 Spieler eine range-Abfrage auf einen schlag(200x)
oder so: (besser)
public OnPlayerConnect(playerid)
{
lastRangeCheck[playerid] = GetTickCount();
return 1;
}
new lastRangeCheck[MAX_PLAYERS];
public OnPlayerUpdate(playerid)
{
new tick = GetTickCount(); // wird bei mir jedes mal mit OnPlayerUpdate ausgeführt
if(tick - lastRangeCheck[playerid] > 100) // alle 100 ms
{
if(IsPlayerInRangeOfPoint(...)
{
//.......
//.......
}
}
}
= für alle Spieler zu einem anderen Zeitpunkt
so einfach kann man OnPlayerUpdate nutzen um 200 Aufgaben aufzuteilen
Alles anzeigenwie liegt das Viereck vor ? 2D oder 3D, gedreht ? wenn es ein einfaches Viereck ist, das aus 2 Punkten aus aufgespannt wird(min und max), dann genügt das hier:
SquareCenter2D(&Float:result_x, &Float:result_y, Float:min_x, Float:min_y, Float:max_x, Float:max_y)
{
result_x = floatdiv( floatsub( max_x, min_x ), 2.0);
result_y = floatdiv( floatsub( max_y, min_y ), 2.0);
return 1;
}
@[DT]Beavis: @Rawr:
Ich finde die OnPlayerUpdate version um einiges besser als einen Timer...
public timer()
{
for(new i=0; i< MAX_PLAYERS;i++)
{
if(IsPlayerInRangeOfPoint(...)
{
//.......
//.......
}
}
}
= sagen wir mal für 200 Spieler eine range-Abfrage auf einen schlag(200x)
oder so: (besser)
public OnPlayerConnect(playerid)
{
lastRangeCheck[playerid] = GetTickCount();
return 1;
}
new lastRangeCheck[MAX_PLAYERS];
public OnPlayerUpdate(playerid)
{
new tick = GetTickCount(); // wird bei mir jedes mal mit OnPlayerUpdate ausgeführt
if(tick - lastRangeCheck[playerid] > 100) // alle 100 ms
{
if(IsPlayerInRangeOfPoint(...)
{
//.......
//.......
}
}
}
= für alle Spieler zu einem anderen Zeitpunkt
so einfach kann man OnPlayerUpdate nutzen um 200 Aufgaben aufzuteilen
Danke, Dachte an Areas
Hey,
wenn ich diesen Code bekomme, heißt das jetzt das die MySQL-Verbindung fehlschlägt oder klappt?
[Tue Mar 26 16:51:36 2013] Error (0): Failed to connect. Access denied for user 'root' localhost (using password: YES).
was sagt den die Zeile?
Richtig er kann sich nicht verbinden
Soweit kann ich lesen. Doch in der nächsten Zeile heißt es:
[Tue Mar 26 16:51:36 2013] Connected (0) to root @ 127.0.0.1 via TCP/IP.
Das hat mich halt bisschen verwirrt.
Hey ich bin ein Script neuling, und habe vollgendesproblem:
SA-MP Dedicated Server
----------------------
v0.3x, (C)2005-2013 SA-MP Team
[20:22:48] filterscripts = "" (string)
[20:22:48]
[20:22:48] Server Plugins
[20:22:48] --------------
[20:22:48] Loading plugin: mysql
[20:22:48]
> MySQL plugin R5 successfully loaded.
[20:22:48] Loaded.
[20:22:48] Loading plugin: streamer
[20:22:48]
*** Streamer Plugin v2.6 by Incognito loaded ***
[20:22:48] Loaded.
[20:22:48] Loaded 2 plugins.
[20:22:48] I couldn't load any gamemode scripts. Please verify your server.cfg
[20:22:48] It needs a gamemode0 line at the very least.
und ich kriege irgendwie keine amx hin.
Hoffentlich kann mir jemand helfen.
Teamviewer vorhanden, falls es mir jemand machen will.
hier meine Server.cfg:
echo Executing Server Config...
lanmode 0
rcon_password hallo
maxplayers 500
port 7777
hostname Bayside-Roleplay
gamemode0 bsrp
filterscripts
announce 1
query 1
weburl nemesus-scripts.de
onfoot_rate 40
incar_rate 40
weapon_rate 40
stream_distance 300.0
stream_rate 1000
maxnpc 100
plugins mysql streamer
mapname Nemesus-Scripts.de
So , habe das Problem , das wenn der Spieler stirbt , dieser immer wieder respawnt bis er schliesslich crasht
Ich denke es ist ein Timer Problem
Dies ist eine Killcam
public OnPlayerDeath(playerid, killerid, reason)
{
new
Float:fX,
Float:fY,
Float:fZ;
new
Float:aX,
Float:aY,
Float:aZ;
if ( killerid != INVALID_PLAYER_ID )
{
new gunname[32], string[64], fName[MAX_PLAYER_NAME], sName[MAX_PLAYER_NAME];
GetWeaponName(reason,gunname,sizeof(gunname));
format(string, sizeof(string), "Weapon: %s.",gunname);
TextDrawShowForPlayer(playerid,Textdraw1);
GetPlayerPos(playerid,fX,fY,fZ);
GetPlayerPos(killerid,aX,aY,aZ);
new Float: fDistance = GetPlayerDistanceFromPoint(playerid,aX,aY,aZ ),
szMessage[44];
format(szMessage, sizeof(szMessage), "Distance: %fm.", fDistance);
Textdraw1 = TextDrawCreate(264.000000, 410.000000, szMessage);
TextDrawBackgroundColor(Textdraw1, 255);
TextDrawFont(Textdraw1, 1);
TextDrawLetterSize(Textdraw1, 0.330000, 1.300000);
TextDrawColor(Textdraw1, -1);
TextDrawSetOutline(Textdraw1, 0);
TextDrawSetProportional(Textdraw1, 1);
TextDrawSetShadow(Textdraw1, 1);
TogglePlayerSpectating( playerid, 1 );
TextDrawShowForPlayer(playerid,BalkenOben);
TextDrawShowForPlayer(playerid,BalkenUnten);
new name[MAX_PLAYER_NAME+1], string2[24+MAX_PLAYER_NAME+1];
GetPlayerName(playerid, name, sizeof(name));
format(string2, sizeof(string2), "%s ", name);
GameTextForPlayer(playerid, string2, 3000, 1);
Textdraw0 = TextDrawCreate(120.000000, 410.000000, gunname);
TextDrawBackgroundColor(Textdraw0, 255);
TextDrawFont(Textdraw0, 1);
TextDrawLetterSize(Textdraw0, 0.330000, 1.300000);
TextDrawColor(Textdraw0, -1);
TextDrawSetOutline(Textdraw0, 0);
TextDrawSetProportional(Textdraw0, 1);
TextDrawSetShadow(Textdraw0, 1);
TextDrawShowForPlayer(playerid,Textdraw0);
SetTimerEx( "unSpectate", true, 3000, "i", playerid );
}
public unSpectate( playerid )
{
TextDrawHideForPlayer(playerid,Textdraw0),
TextDrawHideForPlayer(playerid,Textdraw1),
TogglePlayerSpectating( playerid, 0 );
TextDrawHideForPlayer(playerid,BalkenOben);
TextDrawHideForPlayer(playerid,BalkenUnten);
SpawnPlayer( playerid );
}
Nach dem er gebannt wurde und sich nochmal einloggen will soll eine Msg kommen er ist gebannt:
{
if(!IsPlayerAnAdmin(playerid,3))return
SendClientMessage(playerid,0xFF0000FF,"Du bist kein Admin oder dein
Adminrang ist zu niedrig!");
new pID, reason[128],string[128];
if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,0xFFFA00FF,"Benutzung: /ban [Spielername/ID] [Grund]");
format(string,sizeof(string),"AdmCmd: %s wurde von %s gebannt. Grund: %s",SpielerName(pID),SpielerName(playerid),reason);
SendClientMessageToAll(0xFF0A00FF,string);
SetPVarInt(pID,"Banned",1);
Kick(pID);
return 1;
}
Wie mach ich das?
ocmd:gehezu(playerid,params[])
{
if(!IsPlayerAnAdmin(playerid,3))return
SendClientMessage(playerid,0xFF0000FF,"Du bist kein Admin oder dein
Adminrang ist zu niedrig!");
new pID, string[128];
if(sscanf(params,"u",pID))return SendClientMessage(playerid,0xFFFA00FF,"Benutzung: /gehezu [Spielername/ID]");
format(string,sizeof(string),"AdmCmd: %s hat sich zu %s teleportiert.",SpielerName(playerid),SpielerName(pID));
SendClientMessageToAll(0xFF0A00FF,string);
{
IsPlayerConnected(pID);
new Float:x,Float:y,Float:z,Float:Angle;
GetPlayerPos(pID,x,y,z);
GetPlayerFacingAngle(pID,Angle);
SetPlayerPos(playerid,x+1,y,z);
SetPlayerFacingAngle(playerid,Angle);
}
return 1;
}
Wie kann ich das machen das man sich nur porten kann wen der Spieler online ist?
Mit IsPlayerConnected? Aber wie genau?
if(GetPVarInt(playerid,"Banned")==1)
{
SendClientMessage(playerid,0xFF1400FF,"Dieser Account ist gebannt.");
Kick(playerid);
}
return 1;
}
Das funkt nicht..
Zu den goto oder was das war^^
ocmd:gehezu(playerid,params[])
{
if(!IsPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,0xFF0000FF,"Du bist kein Admin oder dein Adminrang ist zu niedrig!");
new pID, string[128];
if(sscanf(params,"u",pID))return SendClientMessage(playerid,0xFFFA00FF,"Benutzung: /gehezu [Spielername/ID]");
if(!IsPlayerConnected(pID))return SendClientMessage(playerid,0xFF0000FF,"Spieler ist nicht Online!");
format(string,sizeof(string),"AdmCmd: %s hat sich zu %s teleportiert.",SpielerName(playerid),SpielerName(pID));
SendClientMessageToAll(0xFF0A00FF,string);
new Float:x,Float:y,Float:z,Float:Angle;
GetPlayerPos(pID,x,y,z);
GetPlayerFacingAngle(pID,Angle);
SetPlayerPos(playerid,x+1,y,z);
SetPlayerFacingAngle(playerid,Angle);
return 1;
}
Zu den mit den Ban, da musst du auch die Ban variable aus der datei holen
@東志新川薩摩:
Durch den Timer wird alle 3 Sekunden SpawnPlayer für den Spieler ausgeführt. Ich denke da liegt das Problem.