|
You last visited: Today at 23:25
Advertisement
[SAMMELTHREAD]Pawn Scripting Codeschnipsel
Discussion on [SAMMELTHREAD]Pawn Scripting Codeschnipsel within the Grand Theft Auto forum part of the Other Online Games category.
06/27/2013, 01:38
|
#1
|
elite*gold: 40
Join Date: Jun 2013
Posts: 79
Received Thanks: 57
|
[SAMMELTHREAD]****/LUA Scripting Codeschnipsel
Dies, ist eine Sammelthread über **** 'Codeschnipsel'
==============
SAMP / Scripting Support Foren:
==============
==============
Code:
stock ChangeCar(playerid, modelid) {
if(!IsPlayerInAnyVehicle(playerid)) return 0;
new veh = GetPlayerVehicleID(playerid);
if(GetVehicleModel(veh) == modelid) return 0;
new Float:Q[7];
GetVehiclePos(veh,Q[0],Q[1],Q[2]);
GetVehicleZAngle(veh,Q[3]);
GetVehicleVelocity(veh,Q[4],Q[5],Q[6]);
DestroyVehicle(veh);
veh = CreateVehicle(modelid,Q[0],Q[1],Q[2],Q[3],-1,-1,-1);
PutPlayerInVehicle(playerid,veh, 0);
SetVehicleVelocity(veh, Q[4],Q[5],Q[6]);
return 1;
}
==============
|
|
|
06/27/2013, 14:05
|
#2
|
elite*gold: 235
Join Date: Jan 2012
Posts: 920
Received Thanks: 377
|
Als verbesserungs Vorschlag würde ich dir raten alle "Schnipsel" in einer Tabelle zu führen mit Autor, Datum, Version etc. und es in einen Spoiler zu packen. Ach ja und warum grenzt du LUA aus
|
|
|
06/27/2013, 14:13
|
#3
|
elite*gold: 16
Join Date: Apr 2012
Posts: 5,497
Received Thanks: 632
|
Quote:
Originally Posted by Croco™
Als verbesserungs Vorschlag würde ich dir raten alle "Schnipsel" in einer Tabelle zu führen mit Autor, Datum, Version etc. und es in einen Spoiler zu packen. Ach ja und warum grenzt du LUA aus
|
Wollte ich auch Fragen, wieso nicht auch Lua ^^
PHP Code:
function _getPlayerPos ( player ) if player then local x,y,z = getElementPosition( player ) return x,y,z end end
PHP Code:
for i = 1, 25 do outputChatBox( "", getRootElement() ) end
PHP Code:
function _givePlayerMoney ( player, cmd, target, howmuch ) if target and howmuch then local target = getPlayerFromName( target ) local playermoney = getPlayerMoney( target ) setPlayerMoney(target, ( tonumber ( howmuch ) ) + playermoney ) end end addCommandHandler("giveplayermoney", _givePlayerMoney )
PHP Code:
function _killPlayer ( player, cmd, target ) if target then local target = getPlayerFromName( target ) killPed( target ) end end addCommandHandler("killplayer", _killPlayer )
Die Funktionen erklären sich hoffentlich von selbst ^^
Fangen wir mit etwas kleines an, auf anfrage kann ich auch gerne mehr machen bzw. für eine Person etwas genaueres.
|
|
|
06/27/2013, 14:58
|
#4
|
elite*gold: 40
Join Date: Jun 2013
Posts: 79
Received Thanks: 57
|
LUA, hinzugefügt.
MfG
|
|
|
06/27/2013, 15:48
|
#5
|
elite*gold: 235
Join Date: Jan 2012
Posts: 920
Received Thanks: 377
|
Dann hau ich auch ma was raus XD
Code:
function createObjectPickup(obj,x,y,z,i,b)
b = b or ""
local Pickup = createObject(obj,x,y,z,0,0,0,true)
local Marker = createMarker(x,y,z-1,"cylinder",1,0,0,0,0,false)
setElementInterior(Pickup,i)
setElementInterior(Marker,i)
if b ~= "" then
setElementData(Pickup,"obj",true)
setElementData(Pickup,"obj.desc",b)
end
setTimer(function()
if isElement(Pickup) then
local x ,y,z = getElementRotation(Pickup)
setElementRotation(Pickup,0,0,z+3)
end
end,50,0)
return Marker
end
Code:
function XMLRead(Datei,Pfad)
local Childs = split(Pfad,"->")
local XML = xmlLoadFile(Datei)
local tmp = XML
for i=1,#Childs do
tmp = xmlFindChild(tmp,Childs[i],0)
end
return xmlNodeGetValue(tmp)
end
Code:
function XMLSet(Datei,Pfad,Inhalt)
local Childs = split(Pfad,"->")
local XML = xmlLoadFile(Datei)
local last = XML
local tmp = XML
for i=1,#Childs do
tmp = xmlFindChild(tmp,Childs[i],0)
if tmp == false then
tmp = xmlCreateChild(last,Childs[i])
else
last = tmp
end
end
xmlNodeSetValue(tmp,tostring(Inhalt))
xmlSaveFile(XML)
end
Code:
function XMLExist(Datei,Pfad)
local Childs = split(Pfad,"->")
local XML = xmlLoadFile(Datei)
local tmp = XML
for i=1,#Childs do
tmp = xmlFindChild(tmp,Childs[i],0)
if tmp == false then
return false
end
end
return true
end
Code:
function XMLCount(Datei)
local XML = xmlLoadFile(Datei)
local count = xmlNodeGetChildren(XML)
return #count
end
|
|
|
06/29/2013, 09:46
|
#6
|
elite*gold: 111
Join Date: Apr 2013
Posts: 216
Received Thanks: 11
|
Simples Login Script:
Client:
Code:
GUIEditor = {
button = {},
window = {},
edit = {},
label = {},
}
LoginRegisterWindow = guiCreateWindow(123, 152, 486, 219, "Login/Register", false)
guiWindowSetSizable(LoginRegisterWindow, false)
LoginUsernameText = guiCreateLabel(10, 28, 156, 15, "Username", false, LoginRegisterWindow)
LoginUsernameTextBox = guiCreateEdit(9, 47, 156, 23, "", false, LoginRegisterWindow)
LoginPasswortText = guiCreateLabel(10, 80, 161, 15, "Passwort", false, LoginRegisterWindow)
LoginPasswortTextBox = guiCreateEdit(9, 98, 158, 26, "", false, LoginRegisterWindow)
guiEditSetMasked(LoginPasswortTextBox, true)
LoginButton = guiCreateButton(11, 139, 151, 41, "Login!", false, LoginRegisterWindow)
guiSetFont(LoginButton, "sa-header")
guiSetProperty(LoginButton, "NormalTextColour", "FFAAAAAA")
AlsGastSpielenButton = guiCreateButton(225, 38, 41, 139, "A\nL\nS\n\nG\nA\nS\nT", false, LoginRegisterWindow)
guiSetFont(AlsGastSpielenButton, "default-bold-small")
guiSetProperty(AlsGastSpielenButton, "NormalTextColour", "FFAAAAAA")
RegisterUsernameText = guiCreateLabel(327, 30, 149, 15, "Username", false, LoginRegisterWindow)
RegisterUsernameTextBox = guiCreateEdit(316, 43, 161, 23, "", false, LoginRegisterWindow)
RegisterPasswortText = guiCreateLabel(325, 81, 157, 15, "Passwort", false, LoginRegisterWindow)
RegisterPasswortTextBox = guiCreateEdit(319, 103, 158, 24, "", false, LoginRegisterWindow)
RegisterButton = guiCreateButton(326, 137, 138, 42, "Register!", false, LoginRegisterWindow)
guiSetFont(RegisterButton, "sa-header")
guiSetProperty(RegisterButton, "NormalTextColour", "FFAAAAAA")
showCursor(true)
function asGuestPlay ()
guiSetVisible(LoginRegisterWindow, false)
showCursor(false)
outputChatBox("Öffne doch das Hilfemenü mit '/hilfe'!", player, 148, 252, 0)
end
addEventHandler("onClientGUIClick", AlsGastSpielenButton, asGuestPlay, false)
function closeLoginPanel()
guiSetVisible(LoginRegisterWindow, false)
showCursor(false)
end
addEvent("closeLoginPanel", true)
addEventHandler("closeLoginPanel", getRootElement(), closeLoginPanel)
function onRegisterClick ()
local username = guiGetText(RegisterUsernameTextBox)
local password = guiGetText(RegisterPasswortTextBox)
if username ~= "" and password ~= "" then
triggerServerEvent("register", getLocalPlayer(), getLocalPlayer(), username, password)
end
end
addEventHandler("onClientGUIClick", RegisterButton, onRegisterClick,false)
function onLoginClick ()
local username = guiGetText(LoginUsernameTextBox)
local password = guiGetText(LoginPasswortTextBox)
if username ~= "" and password ~= "" then
triggerServerEvent("login", getLocalPlayer(), getLocalPlayer(), username, password)
end
end
addEventHandler("onClientGUIClick", LoginButton, onLoginClick,false)
Server:
Code:
function register_func (player, username, passwort)
local acc = addAccount(username,passwort)
if acc then
logIn(player,acc,passwort)
outputChatBox("Du hast dich erfolgreich registriert!", player, 148, 252, 0)
triggerClientEvent(player,"closeLoginPanel", player)
else
outputChatBox("Error: Admin kontaktieren!",player, 0, 125, 0)
end
end
addEvent("register", true)
addEventHandler("register", getRootElement(), register_func)
function login_func (player,username,passwort)
local acc = getAccount(username,passwort)
if acc then
logIn(player, acc, passwort)
outputChatBox("Du hast dich erfolgreich eingeloggt!", player, 148, 252, 0)
outputChatBox("Willkommen zurueck, "..getPlayerName(player), player, 148, 252, 0)
triggerClientEvent(player,"closeLoginPanel", player)
else
outputChatBox("Dein Username oder dein Passwort ist falsch!", player, 0,0,0)
end
end
addEvent("login", true)
addEventHandler("login", getRootElement(), login_func)
|
|
|
07/02/2013, 21:10
|
#7
|
elite*gold: 159
Join Date: Sep 2010
Posts: 3,001
Received Thanks: 595
|
SA:MP /tpa Befehl wie in Minecraft.
Benutzung Ingame: /tpa [senden/annehmen/ablehnen/status/abbrechen]
Was ihr braucht:
defines:
Code:
#define COLOR_RED 0xAA3333AA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_BLUE 0x0087FFFF
#define COLOR_GREY 0xAFAFAFAA
enum/new
Code:
enum pInfo
{
pTPA,
pXTPA
}
new PlayerInfo[MAX_PLAYERS][pInfo];
wenn das enum schon existiert, dann einfach die hier oben mit einfügen:
Im:
Code:
public OnPlayerConnect(playerid)
{
return 1;
}
einfach folgendes über return 1; adden:
Code:
PlayerInfo[playerid][pTPA] = 1000;
Nun zum Command
Bei
Code:
public OnPlayerCommandText(playerid, cmdtext[])
{
folgende Dinge einfügen (falls nicht vorhanden):
Code:
new string[256];
new tmp[256];
new idx;
new cmd[256];
cmd = strtok(cmdtext, idx);
Und an einer freien Stelle unter public OnPlayerCommandText fügt ihr dann noch den Command selber ein:
Code:
//TPA ANFANG
if(strcmp(cmd, "/tpa", true, 10) == 0) // /tpa command by Yasunai
{
new tmp2[256];
tmp2 = strtok(cmdtext, idx);
if(!strlen(tmp2))
{
SendClientMessage(playerid, COLOR_GREY, "Benutung: /tpa [senden/annehmen/ablehnen/status/abbrechen] ([ID])");
}
else
{
if(strcmp(tmp2, "senden", true) == 0)
{
tmp = strtok(cmdtext, idx);
new playa;
playa = ReturnUser(tmp);
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(playa, giveplayer, sizeof(giveplayer));
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GREY, "Benutung: /tpa senden [ID]");
}
else
{
if(playa != playerid)
{
if(IsPlayerConnected(playa))
{
if(PlayerInfo[playerid][pXTPA] == 0)
{
if(PlayerInfo[playa][pTPA] == 1000)
{
PlayerInfo[playa][pTPA] = playerid;
PlayerInfo[playerid][pXTPA] = 1;
format(string, sizeof(string), "Du hast %s eine TPA gesendet.", giveplayer);
SendClientMessage(playerid, COLOR_BLUE, string);
format(string, sizeof(string), "Du hast eine TPA von %s bekommen. /tpa [annehmen/ablehnen]", sendername);
SendClientMessage(playa, COLOR_BLUE, string);
}
else
{
new playa2 = PlayerInfo[playa][pTPA];
new others[MAX_PLAYER_NAME];
GetPlayerName(playa2, others, sizeof(others));
format(string, sizeof(string), "%s hat bereits eine TPA von %s.", giveplayer, others);
SendClientMessage(playerid, COLOR_RED, string);
}
}
else
{
SendClientMessage(playerid, COLOR_RED, "Du hast bereits eine TPA an jemanden gesendet. Nutze /tpa abbrechen");
}
}
else
{
SendClientMessage(playerid, COLOR_RED, "Dieser Spieler existiert nicht.");
}
}
else
{
SendClientMessage(playerid, COLOR_RED, "Du kannst die selber keine TPA senden.");
}
}
return 1;
}
if(strcmp(tmp2, "annehmen", true) == 0)
{
if(PlayerInfo[playerid][pTPA] < 1000)
{
new playa;
playa = PlayerInfo[playerid][pTPA];
new Float:x, Float:y, Float:z;
if(IsPlayerConnected(playa))
{
new in;
in = GetPlayerInterior(playerid);
GetPlayerPos(playerid, x, y, z);
SetPlayerInterior(playa, in);
SetPlayerPos(playa, x+1, y+1, z);
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(playa, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "Du hast dich zu %s teleportiert.", sendername);
SendClientMessage(playa, COLOR_GREEN, string);
format(string, sizeof(string), "%s hat sich zu dir teleportiert.", giveplayer);
SendClientMessage(playerid, COLOR_GREEN, string);
PlayerInfo[playerid][pTPA] = 1000;
PlayerInfo[playa][pXTPA] = 0;
}
else
{
SendClientMessage(playerid, COLOR_RED, "Der Spieler ist nicht mehr online!");
}
}
else
{
SendClientMessage(playerid, COLOR_RED, "Es liegen keine Anfragen vor.");
}
return 1;
}
if(strcmp(tmp2, "ablehnen", true) == 0)
{
if(PlayerInfo[playerid][pTPA] < 1000)
{
new playa;
playa = PlayerInfo[playerid][pTPA];
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(playa, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "Deine TPA wurde von %s abgelehnt.", sendername);
SendClientMessage(playa, COLOR_RED, string);
format(string, sizeof(string), "Du hast die TPA von %s abgelehnt.", giveplayer);
SendClientMessage(playerid, COLOR_RED, string);
PlayerInfo[playerid][pTPA] = 1000;
PlayerInfo[playa][pXTPA] = 0;
}
else
{
SendClientMessage(playerid, COLOR_RED, "Es liegen keine Anfragen vor.");
}
return 1;
}
if(strcmp(tmp2, "status", true) == 0)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(PlayerInfo[i][pTPA] == playerid)
{
if(playerid != 0)
{
GetPlayerName(i, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "Du hast eine TPA an %s gesendet.", giveplayer);
}
else
{
format(string, sizeof(string), "Du hast keine TPA versendet.");
}
}
else
{
format(string, sizeof(string), "Du hast keine TPA versendet.");
}
}
SendClientMessage(playerid, COLOR_BLUE, string);
if(PlayerInfo[playerid][pTPA] == 1000)
{
SendClientMessage(playerid, COLOR_BLUE, "Es liegt keine TPA vor.");
}
else
{
new pid = PlayerInfo[playerid][pTPA];
GetPlayerName(pid, sendername, sizeof(sendername));
format(string, sizeof(string), "Dir liegt eine TPA von %s vor", sendername);
SendClientMessage(playerid, COLOR_BLUE, string);
}
return 1;
}
if(strcmp(tmp2, "abbrechen", true) == 0)
{
if(PlayerInfo[playerid][pXTPA] == 1)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[i][pTPA] == playerid)
{
PlayerInfo[i][pTPA] = 1000;
PlayerInfo[playerid][pXTPA] = 0;
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(i, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "%s hat die TPA abgebrochen.", sendername);
SendClientMessage(i, COLOR_RED, string);
format(string, sizeof(string), "Du hast die TPA an %s abgebrochen.", giveplayer);
SendClientMessage(playerid, COLOR_RED, string);
}
else
{
SendClientMessage(playerid, COLOR_RED, "Die Person, die du suchst ist offline.");
SendClientMessage(playerid, COLOR_RED, "Deine TPA wurde zurückgezogen.");
PlayerInfo[playerid][pXTPA] = 0;
}
}
}
}
else
{
SendClientMessage(playerid, COLOR_RED, "Du hast keine Anfrage gesendet.");
}
return 1;
}
}
return 1;
}
//TPA Ende
Sollte etwas nicht klappen, schreibt mich an.
Credits:
100% Ich (Yasunai)
|
|
|
07/03/2013, 18:25
|
#8
|
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
|
^ mit ocmd und sscanf (ungetestet und nicht kompiliert, kann sein das dort ein paar Flüchtigkeitsfehler entstanden sind)
PHP Code:
//TPA ANFANG ocmd:tpa(playerid,params[]) { new str[128], pid, opt[10]; if(sscanf(params,"sd", opt, id)) return SendClientMessage(playerid, COLOR_GREY, "Benutzung: /tpa <option> <id>"); if(playerid == pid || pid == INVALID_PLAYER_ID || !IsPlayerConnected(pid)) return SendClientMessage(playerid, COLOR_GREY, "Diesen Spieler gibt es nicht."); if(PlayerInfo[pid][pTPA] != -1 && PlayerInfo[pid][pTPA] == playerid) return SendClientMessage(playerid,COLOR_GREY, "Dieser Spieler hat bereits eine Anfrage von dir erhalten."); if(!strcmp(opt,"senden",true)) { format(str, 128, "Du hast %s eine TPA gesendet.", PlayerName(pid)); SendClientMessage(playerid, COLOR_BLUE, str); format(str, 128, "Du hast eine TPA von %s bekommen. /tpa [annehmen/ablehnen]", PlayerName(playerid)); SendClientMessage(pid, COLOR_BLUE, str); PlayerInfo[pid][pTPA] = playerid; return 1; } else if(!strcmp(opt, "annehmen", true)) { new Float:pPos[3]; pid = PlayerInfo[playerid][pTPA]; if(PlayerInfo[playerid][pTPA] == -1) return SendClientMessage(playerid, COLOR_GREY, "Dir wurde kein Teleport angeboten."); GetPlayerPos(pid, pPos[0], pPos[1], pPos[2]); SetPlayerInterior(playerid, GetPlayerInterior(pid)); SetPlayerPos(playerid, pPos[0]+1, pPos[1]+1, pPos[2]); format(str, 128, "Du hast dich zu %s teleportiert.", PlayerName(pid)); SendClientMessage(playerid, COLOR_GREEN, str); format(str, 128, "%s hat sich zu dir teleportiert.", PlayerName(playerid)); SendClientMessage(pid, COLOR_GREEN, str); PlayerInfo[playerid][pTPA] = -1; return 1; } else if(!strcmp(opt, "ablehnen", true)) { pid = PlayerInfo[playerid][pTPA]; if(PlayerInfo[playerid][pTPA] == -1) return SendClientMessage(playerid, COLOR_GREY, "Dir wurde kein Teleport angeboten."); format(string, 128, "Deine TPA wurde von %s abgelehnt.", PlayerName(playerid)); SendClientMessage(pid, COLOR_RED, string); format(string, 128, "Du hast die TPA von %s abgelehnt.", PlayerName(pid)); SendClientMessage(playerid, COLOR_RED, str); PlayerInfo[playerid][pTPA] = -1; return 1; } else if(!strcmp(opt, "status", true)) { new res; pid = PlayerInfo[playerid][pTPA]; for(new i; i < MAX_PLAYERS; i++) { if(!IsPlayerConnected(i)) continue; if(PlayerInfo[i][pTPA] != playerid) continue; format(str, 128, "Du hast eine TPA an %s gesendet.", PlayerName(i)); res = 1; break; } if(!res) format(str, sizeof(str), "Du hast keine TPA versendet."); SendClientMessage(playerid, COLOR_BLUE, str); if(PlayerInfo[playerid][pTPA] == -1) return SendClientMessage(playerid, COLOR_BLUE, "Es liegt keine TPA vor."); format(str, 128, "Dir liegt eine TPA von %s vor", PlayerName(pid)); SendClientMessage(playerid, COLOR_BLUE, str); return 1; } }
|
|
|
|
Similar Threads
|
[SAMMLUNG] Codeschnipsel
04/20/2013 - Flyff PServer Guides & Releases - 26 Replies
Hallo alle zusammen im laufe der zeit werden viele Fragen gestellt und als antwort werden nicht zu selten code Snippets
gepostet welche somit zwar irgendwo stehen aber meist nicht wieder gefunden werden auch denn die Funktion dieser Snippets meist recht praktisch ist hier werde ich einige dieser Snippets zusammentragen um das ewige suchen zu erleichtern.
Maximaler Speed
MoverParam.cpp -> FLOAT CMover::GetSpeed(FLOAT fSrcSpeed)
unter:
int nAdjValue = GetAdjParam( DST_SPEED );
|
[Source-Release]Kleines Event und Paar Codeschnipsel
03/13/2013 - Flyff PServer Guides & Releases - 13 Replies
Naja, da ich nun in eine andere scene gewechselt bin könnt ihr meine schnipsel haben, wer sie nutz kann dies tun , wer lästern wirll, kann seinen kommentar behalten.
PvP Event:
In diesem System Könnt ihr per GM Command das Event starten.
Es wird im Systemshout angekündigt und ab dann bekommt man für das Töten von Spielern EXP. Auch die,die getötet werden bekommen ein wenig EXP dazu.
Wieviel Exp und die Exp formel können und sollten noch angepasst werden.
Natürlich kann man dort noch...
|
[B]Professionelles Pawn Scripting [S]PSC/e*gold
02/02/2013 - Trading - 2 Replies
PAWN SCRIPTING
Die Überschrift sagt eigentlich alles. Ich biete professionelles Pawn Scripting für den GTA:SA Multiplayer Mod Samp. Ich verlange dafür PSC/e*gold.
Werke:
-Premium Roleplay
-Easy Admin
|
►►Biete Pawn-Scripting
09/21/2012 - elite*gold Trading - 0 Replies
Hey.
Hiermit biete ich mich als Scripter für kleinere SA-MP Systeme an, wie z.B. eine Eisdiele oder eine Rennstrecke.
Preise:
Script - 40 e*gold (+/- , je nach Aufwand)
Script + Map - 60 e*gold (+/- , je nach Aufwand)
Map - 26 e*gold (+/- , je nach Aufwand)
Preise verhandelbar.
|
[Sammelthread]PAWN Script Codes
06/27/2012 - Grand Theft Auto - 2 Replies
Hallo ihr Gamer,
ich dachte mir, eventuell hat mal jemand hier ein paar kleine Scriptfragen und sucht Hilfe. Eventuell kann man das hier ja pinnen und ein paar Leute die scripten können, melden sich.
Grüße,Drew
|
All times are GMT +2. The time now is 23:25.
|
|