Ich kenne zwar die beiden includes nicht wirklich jedoch kannst du mal den codeschnipsel testen ich hatte damit keine probleme beim testen
Beiträge von IPrototypeI
-
-
Das ganze geht schon jedoch brauchst du einen client dazu.
Clients : SampFox und Samp +
Deine Idee dazu wäre umsetzbar jedoch musst du alle Objekte entfernen und neu erstellen
standartobjekte sind nicht verschiebbar -
Überdurchschnittliche Grafiken
Danke J.L.Bourne
Ich hätte da noch was:
Ist heute aus langerweile entstanden
Orginal (Nachgemacht aus einem Video)
-
Hast du das ganze mal mit debug informatuionen gefüttert, sprich wird die gehookte version aufgerufen , liegt es nur am Speichern oder werden die daten nur nicht ausgelesen
-
PHP
<?php require("SampQueryAPI.php"); $samp = new SampQueryAPI("localhost", 7777); if ($samp->isOnline()){ $ServerInfo = $samp->getInfo(); echo($ServerInfo['players']."/".$ServerInfo['maxplayers']); } else echo("Server ist Offline"); ?>
erst die api einbinden danach eine instanz erstellen und auf die daten zugreifen via den funktionen wo ist das Problem daran ?
-
http://forum.sa-mp.de/gta-mult…Ctzliche-codeschnipsel-57
schau doch in den Codeschnipsel bereichich hab erst heute sowas gepostet
-
Danke Factory
ebenfalls ein dank an meinen Hater-club der (Ex Future e-Life ' ler)//Edit
Neues Design für exciting-reallife.de , welches schon gecodet ist.
-
Ich hatte gerade eben ein Codeschnipsel geschrieben womit man bestimmen kann abhängig von der Rotation des fahrzeugs ob sich der Spieler vor, neben oder hinter
dem Auto befindetstock GetPlayerPositionNextToACar(playerid,carid){
if(!GetPlayerVehicleID(playerid))return 0;
new Float:Pos[7];
GetVehiclePos(carid,Pos[0],Pos[1],Pos[2]);
GetVehicleZAngle(carid,Pos[3]);
GetPlayerPos(playerid,Pos[4],Pos[5],Pos[6]);
Pos[6] = ((Pos[4] - Pos[0])*floatcos(Pos[3],degrees)+(Pos[5] - Pos[1])*floatsin(Pos[3],degrees));
Pos[3] = ((-(Pos[4] - Pos[0]))*floatsin(Pos[3],degrees)+(Pos[5] - Pos[1])*floatcos(Pos[3],degrees));
GetVehicleModelInfo(GetVehicleModel(carid), VEHICLE_MODEL_INFO_SIZE, Pos[0],Pos[1],Pos[2]);
if(Pos[6] >= 0 && Pos[3] <= (Pos[1]/2) && Pos[3] >= (-Pos[1]/2))return 1; //Rechts
else if(Pos[6] <= 0 && Pos[3] <= Pos[1]/2 && Pos[3] >= -Pos[1]/2)return 2; //Links
else if(Pos[3] >= 0 && Pos[6] <= Pos[0]/2 && Pos[6] >= -Pos[0]/2)return 3; // Vorne
else if(Pos[3] <= 0 && Pos[6] <= Pos[0]/2 && Pos[6] >= -Pos[0]/2)return 4; // Dahinter
return 0;
}Anwendungsbeispiel:
if (strcmp("/mycommand", cmdtext, true, 10) == 0)
{
switch(GetPlayerPositionNextACar(playerid,1)){
case 1:SendClientMessage(playerid,-1,"Rechts");
case 2:SendClientMessage(playerid,-1,"Links");
case 3:SendClientMessage(playerid,-1,"Vorne");
case 4:SendClientMessage(playerid,-1,"Hinter");
}
return 1;
}Keywords: Spieler neben dem Fahrzeug, Spieler vor dem Fahrzeug
-
url]http://forum.sa-mp.com/showthread.php?t=275492[/url]
Erstmal nutz diese Version von mapandreas und der code müsste auf der letzten ider vorletzten seite sein
/edit
du bist damit auch nicht der erste mit dieser frage
-
Wenn du Straßen und Wege auswendig machen willst gibt es noch das GPS Plugin, welches die Nodes von GTA Sa nutzt oder du benutzt das Pathfinder Plugin.
Für eigene Objekte, da musst du eine eigene .hmap erstellen den code dazu gibt es in dem Thread von dem mapandreas Plugin von Mauzen
-
Ich danke euch, für die positive Rückmeldung.
Hier habe ich noch 1 Werk welches ich an iFeet verkauft habe:
Ranggrafiken:
//edit
Ich hab mal wieder paar neue Werke
Avatare:
Logo:
Designs:
Ts3 Banner:
UCP Layout:
Homepage Design (Schlicht):
-
überhaupt die a_samp enthalten und verwendest du einen anderen cmd prozessor
-
Wenn ihr schon versucht im Satz Nemesus RP nachzumachen, weil du damals Projektleiter warst tu das doch richtig.
Das Logo, welches aus dem Blauen WBB3 Designs stammt wleches ich mal releast habe passt sowas von garnicht.
-
@iFeet und die anderen danke für die positiven Rückmeldungen.
Editoren haben ja den Sinn, die Arbeit zu erleichtern. Ebenso ist es das selbe wie mit meinem Ingame Mapeditor die Leute wo keine Ahnung haben
werden es versuchen und sollte es nicht klappen so wird es anschließend einfach gelassen , da sie zu schüchtern sind zu fragen :D.
Zumindestens ist das mir schon zu ohren gekommen. -
habs mir schon gedacht da ich genau den selben Fehler bei nem Timercallback hatte ich trags gleich mal nach danke dir
Das ganze ist jedoch so aufgebaut das es für andere spieler nicht synchronisiert wird , also selbst wirst du den schuss sehen und die explosion -
Das liegt am hook der Parameter reason gab es damals noch nicht einfach diesen in der include hinzufügen
/*
© Gamer931215
This script allows to detect deathmatching vehicles and disable them when needed
*///includes/defines
#include <a_samp>
#define PRESSED(%0) \
(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
forward OnPlayerVehicleFire(playerid,vehicleid,allowed);
/*
These natives are commented to "fake" the natives for providing autocomplete when included
native ToggleVehicleWeaponsForAll()
native ToggleVehicleWeaponsForPlayer(playerid)
*///local variables
new filter[] = {
447, //seasparrow
476, //rustler
425, //hunter
520, //hydra
430, //predator
432 //rhino
};
new DisableForAll = 1;//public functions
stock ToggleVehicleWeaponsForAll(toggle)
{
if(toggle == 1)
{
DisableForAll = 0;
} else DisableForAll = 1;
}stock ToggleVehicleWeaponsForPlayer(playerid,toggle)
{
SetPVarInt(playerid,"__allowed",toggle);
}stock CanPlayerShootInVehicle(playerid)
{
if(DisableForAll == 0)
{
return true;
} else {
if(GetPVarInt(playerid,"__allowed") == 1)
{
return true;
}
}
return false;
}// SA-MP Default functions:
public OnPlayerUpdate(playerid)
{
new keys,updown,leftright;
GetPlayerKeys(playerid,keys,updown,leftright);
if(IsPlayerInArmedVehicle(playerid))
{
switch(GetVehicleModel(GetPlayerVehicleID(playerid)))
{
case 447,476,520: //vehicles with only one weapon
{
if(keys & KEY_ACTION)
{
if(GetPVarInt(playerid,"__shot") == 0)
{
SetPVarInt(playerid,"__shot",1);
CallLocalFunction("OnPlayerVehicleFire","iii",playerid,GetPlayerVehicleID(playerid),CanPlayerShootInVehicle(playerid));
return 0;
}
}
}
default: //all the other vehicles in filter (use KEY_ACTION and KEY_FIRE)
{
if(keys & KEY_ACTION || keys & KEY_FIRE) //respond to primary and secondary fire key (like hunter)
{
if(GetPVarInt(playerid,"__shot") == 0)
{
SetPVarInt(playerid,"__shot",1);
CallLocalFunction("OnPlayerVehicleFire","iii",playerid,GetPlayerVehicleID(playerid),CanPlayerShootInVehicle(playerid));
return 0;
}
}
}
}
}
return CallLocalFunction("nodmforu_OnPlayerUpdate","i",playerid);
}
#if defined _ALS_OnPlayerUpdate
#undef OnPlayerUpdate
#else
#define _ALS_OnPlayerUpdate
#endif
#define OnPlayerUpdate nodmforu_OnPlayerUpdate
forward nodmforu_OnPlayerUpdate(playerid);public OnPlayerConnect(playerid)
{
SetPVarInt(playerid,"__shot",0);
if(DisableForAll == 1)
{
SetPVarInt(playerid,"__allowed",0);
} else SetPVarInt(playerid,"__allowed",1);
return CallLocalFunction("nodmforu_OnPlayerConnect","i",playerid);
}
#if defined _ALS_OnPlayerConnect
#undef OnPlayerConnect
#else
#define _ALS_OnPlayerConnect
#endif
#define OnPlayerConnect nodmforu_OnPlayerConnect
forward nodmforu_OnPlayerConnect(playerid);public OnPlayerDisconnect(playerid,reason)
{
DeletePVar(playerid,"__shot");
DeletePVar(playerid,"__allowed");
return CallLocalFunction("nodmforu_OnPlayerDisconnect","ii",playerid,reason);
}
#if defined _ALS_OnPlayerDisconnect
#undef OnPlayerDisconnect
#else
#define _ALS_OnPlayerDisconnect
#endif
#define OnPlayerDisconnect nodmforu_OnPlayerDisconnect
forward nodmforu_OnPlayerDisconnect(playerid,reason);public OnPlayerKeyStateChange(playerid,newkeys,oldkeys)
{
if (!(newkeys & KEY_FIRE) && (oldkeys & KEY_FIRE)) //player released fire key
{
SetPVarInt(playerid,"__shot",0);
}
if (!(newkeys & KEY_ACTION) && (oldkeys & KEY_ACTION)) //player released fire key
{
SetPVarInt(playerid,"__shot",0);
}
return CallLocalFunction("nodmforu_OnPlayerKeyStateChange","iii",playerid,newkeys,oldkeys);
}
#if defined _ALS_OnPlayerKeyStateChange
#undef OnPlayerKeyStateChange
#else
#define _ALS_OnPlayerKeyStateChange
#endif
#define OnPlayerKeyStateChange nodmforu_OnPlayerKeyStateChange
forward nodmforu_OnPlayerKeyStateChange(playerid,newkeys,oldkeys);stock IsPlayerInArmedVehicle(playerid)
{
if(IsPlayerInAnyVehicle(playerid))
{
for(new i = 0;i<strlen(filter);i++)
{
if(filter[i] == GetVehicleModel(GetPlayerVehicleID(playerid)))
{
return true;
}
}
}
return false;
} -
Das ganze geht dazu hat jemand auch mal eine Include geschrieben
-
Also ich habe das Callback mal getestet, Funktioniert einwandfrei!
Nur ist bis dahin schon GetPlayerAmmo aktuell ?
mfg
Probier es doch aus in dem du dir das ausgibst, sollte jedoch schon der Fall sein ? -
Ist ja nicht so als würde es dieses Callback auch geben
OnPlayerWeaponShot -
Du benutzt aber nirgendwo alle 4. Du benutzt nur 3.
0b00, 0b01 und 0b10. Niemals aber 0b11 ( binär ausgedrückt ), um gleichzeitig horizontal und vertikal zu nutzen.
Denn würdest du es parallel nutzen wollen (0b11) , würde bei switch noch fehlen:
case: (pUSE_ZEPH | pUSE_ZEPV)
Was macht der markierte Bereich ? Das ist von pastebin kopiert. Entweder da fehlt etwas oder ich verstehe nicht,was das bewirkt. Ansonsten ist auch so nicht ganz klar, was /mycommand bewirkt.Punkt 3 und 4 hast wohl unter den Tisch fallen lassen :/.
Die Funktionsweise ist so gedacht, bei /start starten die Motoren an der Seite , in diesem Modus kannst du das Luftschiff hoch und runter bewegen
während es sich auf der stelle befindet mit dem Befehl /go wechselst du in den Flugmodus und kannst die Flugrichtung über deine Maus bestimmen,
das Objekt bewegt sich dabei kontinuierlich weiter.Daher lass ich die zwei Variablen nicht nebenher laufen. Mit einer Variable wäre das in der Tat einfach gelöst das stimmt , jedoch wollte ich das ganze damals noch erweitern.
Den Pastebinlink habe ich jetzt aktualisiert, wie auch die zu downloadende Datei.
Als du mich das erste mal darauf aufmerksam gemacht hattest, hatte ich es irgendwie hier noch vergessen den Pastebinlink auszutauschen./mycommand ruft den Timer auf für den Lauftext sieht man auch am Namen der Funktion , welche aufgerufen wird.
Zu Punkt 3: Das ist mir recht egal ob strcmp die Zeichenkette bis zu 10 Zeichen überprüft oder 6.
Zu Punkt 4: Die Abfrage könnte ja jeder noch hinzufügen.
Ich bedanke mich nochmals für die objektive Bewertung ^^.
Der ursprüngliche Gedanke zum Release, war der das die Leute bestimmt gewisse Elemente vom Code gebrauchen könnten zum größten Teil die Berechnungen
und wie bereits geschrieben ich mach sowieso nix mehr in die Richtung und möchte das Skript nicht sinnlos auf meinem PC bunkern bis es irgendwann
dem Papierkorb zum Opfer wird.